aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* player/Control: Seek*() returns Error informationMax Kellermann2015-11-113-11/+18
|
* decoder/Control: Seek() returns Error informationMax Kellermann2015-11-113-5/+18
|
* queue/Playlist: seek methods return bool/Error instead of PlaylistResultMax Kellermann2015-11-115-48/+78
|
* command/CommandError: send verbose error message to clientMax Kellermann2015-11-112-22/+56
|
* PlaylistError: remove unused code "ERRNO"Max Kellermann2015-11-112-5/+0
|
* decoder/Control: State::ERROR is illegalMax Kellermann2015-11-111-1/+2
| | | | | The state ERROR can only be entered during decoder initialization, and Seek() may only be called after initialization has been finished.
* decoder/Control: use switch/case in Seek()Max Kellermann2015-11-111-2/+13
|
* player/Control: use class ScopeLockMax Kellermann2015-11-112-36/+19
|
* player/Control: move code to ClearError()Max Kellermann2015-11-112-6/+6
|
* player/Control: move code to SeekLocked()Max Kellermann2015-11-112-5/+14
|
* player/Control: add Lock prefix to locking method namesMax Kellermann2015-11-119-44/+44
|
* StateFile: use StringAfterPrefix() instead of StringStartsWith()Max Kellermann2015-11-114-41/+30
|
* db/simple: use StringAfterPrefix() instead of StringStartsWith()Max Kellermann2015-11-112-21/+20
|
* util/StringPointer: add method empty()Max Kellermann2015-11-111-0/+6
|
* util/StringView: add method Literal()Max Kellermann2015-11-061-2/+12
|
* util/StringCompare: use StringView to simplify inline implementationsMax Kellermann2015-11-062-31/+14
|
* playlist/soundcloud: make key_str "static const"Max Kellermann2015-11-061-1/+1
|
* db/update/InotifyQueue: use StringAfterPrefix()Max Kellermann2015-11-061-6/+6
|
* input/alsa: use StringAfterPrefix()Max Kellermann2015-11-061-3/+2
|
* util/UriUtil: use StringAfterPrefix() instead of memcmp()Max Kellermann2015-11-061-9/+9
|
* util/UriUtil: move code to SkipUriScheme()Max Kellermann2015-11-061-6/+15
|
* util/UriUtil: make variables more localMax Kellermann2015-11-061-7/+4
|
* util/StringCompare: add StringIsEmpty()Max Kellermann2015-11-0613-16/+37
|
* util/StringCompare: use strncmp() instead of memcmp() in StringStartsWith()Max Kellermann2015-11-062-3/+4
| | | | | Some optimized implementations of memcmp() may not start from the beginning of the string, and may thus segfault.
* util/StringUtil: move comparison functions to StringCompare.cxxMax Kellermann2015-11-0631-156/+236
|
* tag/id3: convert path from "wchar_t*" to "char*" for error messageMax Kellermann2015-11-061-1/+3
|
* player/Thread: call DecoderCommand::SEEK only on existing decoderMax Kellermann2015-11-051-17/+22
| | | | | If the decoder was just started, it already seeks to the desired position.
* player/Thread: move code to WaitDecoderStartup()Max Kellermann2015-11-051-7/+21
|
* player/Thread: move player_command_finished() to PlayerControlMax Kellermann2015-11-052-12/+10
|
* player/Thread: copy pc.seek_time in ActivateDecoder()Max Kellermann2015-11-051-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.
* player/Control: initialize seek_time in EnqueueSongLocked()Max Kellermann2015-11-052-6/+3
| | | | Allows removing a few special cases in the player thread.
* player/Thread: remove decoder error check from ActivateDecoder()Max Kellermann2015-10-281-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.
* player/Thread: rename WaitForDecoder() to ActivateDecoder()Max Kellermann2015-10-281-10/+15
| | | | .. and fix its API documentation.
* player/Thread: move code to ForwardDecoderError()Max Kellermann2015-10-271-6/+22
|
* player/Thread: clear pc.next_song earlier in WaitForDecoder()Max Kellermann2015-10-271-4/+3
|
* player/Control: use CANCEL to clear next_song in Seek()Max Kellermann2015-10-271-1/+5
| | | | | Assigning nullptr to next_song may disrupt the player thread and render undefined behavior.
* player/Thread: merge the cross_fading flag into enum CrossFadeStateMax Kellermann2015-10-271-22/+25
|
* player/Thread: move ResetCrossFade() calls to where pipes are setMax Kellermann2015-10-271-3/+8
| | | | | Move ResetCrossFade() to where cross-fading would actually break, to make the cross-fading state more reliable.
* player/Thread: add method ResetCrossFade()Max Kellermann2015-10-271-2/+10
|
* player/Thread: more CrossFadeState documentationMax Kellermann2015-10-271-1/+16
|
* player/Thread: automatic CrossFadeState enum valuesMax Kellermann2015-10-271-4/+4
|
* player/Thread: move enum CrossFadeState into the Player classMax Kellermann2015-10-271-7/+5
|
* command/queue: add range parameter to plchanges and plchangesposidMax Kellermann2015-10-278-18/+58
|
* pcm/Order: new library to convert from FLAC to ALSA channel orderMax Kellermann2015-10-2710-8/+269
| | | | | | | | | | | 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
* AudioFormat: define that channel order follows the FLAC conventionMax Kellermann2015-10-271-2/+13
| | | | | Basic definition to solve http://bugs.musicpd.org/view.php?id=3147 and http://bugs.musicpd.org/view.php?id=3255
* {android,win32}/build.py: upgrade Boost to 1.59.0Max Kellermann2015-10-272-4/+4
|
* {android,win32}/build.py: upgrade FFmpeg to 2.8.1Max Kellermann2015-10-272-4/+4
|
* {android,win32}/build.py: upgrade CURL to 7.45.0Max Kellermann2015-10-272-4/+4
|
* android/build.py: switch to LLVM/clang 3.6Max Kellermann2015-10-271-1/+1
|
* Merge tag 'v0.19.11'Max Kellermann2015-10-2710-32/+106
|\