aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-11-06input/alsa: use StringAfterPrefix()Max Kellermann1-3/+2
2015-11-06util/UriUtil: use StringAfterPrefix() instead of memcmp()Max Kellermann1-9/+9
2015-11-06util/UriUtil: move code to SkipUriScheme()Max Kellermann1-6/+15
2015-11-06util/UriUtil: make variables more localMax Kellermann1-7/+4
2015-11-06util/StringCompare: add StringIsEmpty()Max Kellermann13-16/+37
2015-11-06util/StringCompare: use strncmp() instead of memcmp() in StringStartsWith()Max Kellermann2-3/+4
Some optimized implementations of memcmp() may not start from the beginning of the string, and may thus segfault.
2015-11-06util/StringUtil: move comparison functions to StringCompare.cxxMax Kellermann30-153/+232
2015-11-06tag/id3: convert path from "wchar_t*" to "char*" for error messageMax Kellermann1-1/+3
2015-11-05player/Thread: call DecoderCommand::SEEK only on existing decoderMax Kellermann1-17/+22
If the decoder was just started, it already seeks to the desired position.
2015-11-05player/Thread: move code to WaitDecoderStartup()Max Kellermann1-7/+21
2015-11-05player/Thread: move player_command_finished() to PlayerControlMax Kellermann2-12/+10
2015-11-05player/Thread: copy pc.seek_time in ActivateDecoder()Max Kellermann1-2/+1
If this gets called while seeking, do the right thing. This moves the elapsed_time setter from method Run(), which is now redundant.
2015-11-05player/Control: initialize seek_time in EnqueueSongLocked()Max Kellermann2-6/+3
Allows removing a few special cases in the player thread.
2015-10-28player/Thread: remove decoder error check from ActivateDecoder()Max Kellermann1-37/+8
It is futile to check for decoder errors before the decoder has finished startup. At this time, it's unlikely that the decoder has already failed.
2015-10-28player/Thread: rename WaitForDecoder() to ActivateDecoder()Max Kellermann1-10/+15
.. and fix its API documentation.
2015-10-27player/Thread: move code to ForwardDecoderError()Max Kellermann1-6/+22
2015-10-27player/Thread: clear pc.next_song earlier in WaitForDecoder()Max Kellermann1-4/+3
2015-10-27player/Control: use CANCEL to clear next_song in Seek()Max Kellermann1-1/+5
Assigning nullptr to next_song may disrupt the player thread and render undefined behavior.
2015-10-27player/Thread: merge the cross_fading flag into enum CrossFadeStateMax Kellermann1-22/+25
2015-10-27player/Thread: move ResetCrossFade() calls to where pipes are setMax Kellermann1-3/+8
Move ResetCrossFade() to where cross-fading would actually break, to make the cross-fading state more reliable.
2015-10-27player/Thread: add method ResetCrossFade()Max Kellermann1-2/+10
2015-10-27player/Thread: more CrossFadeState documentationMax Kellermann1-1/+16
2015-10-27player/Thread: automatic CrossFadeState enum valuesMax Kellermann1-4/+4
2015-10-27player/Thread: move enum CrossFadeState into the Player classMax Kellermann1-7/+5
2015-10-27command/queue: add range parameter to plchanges and plchangesposidMax Kellermann6-17/+52
2015-10-27pcm/Order: new library to convert from FLAC to ALSA channel orderMax Kellermann6-2/+201
This new library is integrated in the PcmExport class and (if enabled) converts MPD's channel order (= FLAC channel order) to ALSA channel order. This fixes: http://bugs.musicpd.org/view.php?id=3147 and http://bugs.musicpd.org/view.php?id=3255
2015-10-27AudioFormat: define that channel order follows the FLAC conventionMax Kellermann1-2/+13
Basic definition to solve http://bugs.musicpd.org/view.php?id=3147 and http://bugs.musicpd.org/view.php?id=3255
2015-10-26gme: don't loop forever, fall back to GME's default play lengthMax Kellermann1-3/+3
Fixes http://bugs.musicpd.org/view.php?id=4432
2015-10-26decoder/gme: free the gme_info_t as early as possibleMax Kellermann1-6/+7
2015-10-26decoder/gme: log the emulator typeMax Kellermann1-0/+3
2015-10-26decoder/gme: add option "accuracy"Max Kellermann1-1/+24
2015-10-26decoder/gme: call decoder_seek_error() on seek errorMax Kellermann1-2/+4
2015-10-26output/Command: flush the mixer cache when enabling/disabling outputMax Kellermann1-0/+8
Fixes mixer lag (http://bugs.musicpd.org/view.php?id=4425).
2015-10-26playlist/flac: re-add the pluginMax Kellermann3-0/+164
This reverts commit d7d9dbd2c2798b6ff39acb07a3bed38b6f99e283 by reimplementing it with the current MPD API. 3 years ago, I was wrong about the "embcue" plugin being able to replace this one, because "embcue" reads a tag named "CUESHEET", while this plugin reads the "CUESHEET" FLAC metablock. There's an important difference between those two!
2015-10-26decoder/ffmpeg: fix crash due to wrong avio_alloc_context() callMax Kellermann1-4/+13
Allocate the buffer dynamically using av_malloc(), and free AVIOContext.buffer in the destructor, as mandated by the libavformat documentation. Fixes http://bugs.musicpd.org/view.php?id=4446
2015-10-22LocateUri: new library to classify URIs in a standard wayMax Kellermann9-186/+472
2015-10-22SongLoader: move code to LoadFromDatabase()Max Kellermann2-10/+20
Avoids the recursion in LoadFile().
2015-10-21Filter out this extra data and leading zeroes in "track" and "disc" tags.Andreas Mair1-1/+14
2015-10-20PlaylistPrint: fix -Wunused #ifndef ENABLE_DATABASEMax Kellermann2-0/+2
2015-10-20DetachedSong: check AllocatedPath::FromUTF8() resultMax Kellermann1-0/+2
2015-10-20DetachedSong: move code from Update() to LoadFile()Max Kellermann4-24/+34
Avoid duplicate AllocatedPath::FromUTF8() invocations in two callers.
2015-10-20command/DatabaseCommands: pass URI to handle_lsinfo2()Max Kellermann3-6/+3
2015-10-20command/FileCommands: fix access to absolute paths in "readcomments"Max Kellermann1-6/+3
2015-10-20input/InputStream: remove obsolete method OverrideMimeType()Max Kellermann1-7/+0
2015-10-19output/httpd: use boost::intrusive::list instead of std::forward_listMax Kellermann3-25/+18
2015-10-19util/DeleteDisposer: new utility classMax Kellermann6-24/+54
2015-10-19decoder/mad: reduce memory usage while scanning tagsMax Kellermann1-3/+11
Allocate the frame pointers only when actually decoding the file.
2015-10-19fs/Traits: use StringAfterPrefix() in Relative()Max Kellermann1-3/+3
2015-10-16util/StringUtil: add StringAfterPrefix()Max Kellermann4-0/+49
2015-10-16util/WStringUtil: fix indentMax Kellermann1-5/+5