aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* {android,win32}/build.py: move class Project to build/project.pyMax Kellermann2015-11-213-106/+62
|
* {android,win32}/build.py: add tarball_path and src_path to toolchain classMax Kellermann2015-11-202-35/+44
| | | | Reduce dependencies on global variables.
* win32/build.py: restore option "out_of_tree"Max Kellermann2015-11-201-3/+7
| | | | Got lost in the previous commit.
* {android,win32}/build.py: move common code to python/build/Max Kellermann2015-11-205-104/+66
|
* {android,win32}/build.py: fix missing renameMax Kellermann2015-11-202-2/+2
|
* {android,win32}/build.py: add toolchain classesMax Kellermann2015-11-202-181/+195
|
* {android,win32}/build.py: upgrade FFmpeg to 2.8.2Max Kellermann2015-11-172-4/+4
|
* command/other: re-allow "lsinfo /"Max Kellermann2015-11-131-1/+8
| | | | This compatibility hack was accidently broken by commit f072cbbb
* command/queue: use StringIsEqual() instead of memcmp()Max Kellermann2015-11-131-1/+2
| | | | memcmp() can overflow the buffer.
* queue/Save: fix "Malformed playlist line in state file"Max Kellermann2015-11-131-1/+1
| | | | Regression by commit 738583e3
* player/Control: add code commentsMax Kellermann2015-11-131-0/+4
|
* 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
|