aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-11-11player/Control: Seek*() returns Error informationMax Kellermann3-11/+18
2015-11-11decoder/Control: Seek() returns Error informationMax Kellermann3-5/+18
2015-11-11queue/Playlist: seek methods return bool/Error instead of PlaylistResultMax Kellermann5-48/+78
2015-11-11command/CommandError: send verbose error message to clientMax Kellermann1-22/+55
2015-11-11PlaylistError: remove unused code "ERRNO"Max Kellermann2-5/+0
2015-11-11decoder/Control: State::ERROR is illegalMax Kellermann1-1/+2
The state ERROR can only be entered during decoder initialization, and Seek() may only be called after initialization has been finished.
2015-11-11decoder/Control: use switch/case in Seek()Max Kellermann1-2/+13
2015-11-11player/Control: use class ScopeLockMax Kellermann2-36/+19
2015-11-11player/Control: move code to ClearError()Max Kellermann2-6/+6
2015-11-11player/Control: move code to SeekLocked()Max Kellermann2-5/+14
2015-11-11player/Control: add Lock prefix to locking method namesMax Kellermann9-44/+44
2015-11-11StateFile: use StringAfterPrefix() instead of StringStartsWith()Max Kellermann4-41/+30
2015-11-11db/simple: use StringAfterPrefix() instead of StringStartsWith()Max Kellermann2-21/+20
2015-11-11util/StringPointer: add method empty()Max Kellermann1-0/+6
2015-11-06util/StringView: add method Literal()Max Kellermann1-2/+12
2015-11-06util/StringCompare: use StringView to simplify inline implementationsMax Kellermann2-31/+14
2015-11-06playlist/soundcloud: make key_str "static const"Max Kellermann1-1/+1
2015-11-06db/update/InotifyQueue: use StringAfterPrefix()Max Kellermann1-6/+6
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