aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* util/AllocatedString: add method empty()Max Kellermann2015-06-251-0/+4
|
* SongFilter: add assertion to StringMatch()Max Kellermann2015-06-251-0/+2
|
* SongFilter: return "const char *" instead of std::stringMax Kellermann2015-06-255-15/+18
|
* lib/icu/Collate: fall back to strxfrm()Max Kellermann2015-06-251-2/+16
|
* lib/icu/Collate: fix indentMax Kellermann2015-06-251-3/+3
|
* lib/icu/Collate: fall back to strcoll() instead of strcasecmp()Max Kellermann2015-06-232-1/+2
|
* lib/icu/Collate: use CompareStringEx() on WindowsMax Kellermann2015-06-231-0/+26
|
* fs/NarrowPath: use the WideCharToMultiByte() wrapperMax Kellermann2015-06-231-14/+16
|
* lib/icu/Win32: wrappers for WideCharToMultiByte(), MultiByteToWideChar()Max Kellermann2015-06-234-28/+111
|
* util/AllocatedString: remove bogus code from operator=Max Kellermann2015-06-231-1/+0
|
* util/AllocatedString: new utility classMax Kellermann2015-06-232-0/+101
|
* fs/Path: include cleanupMax Kellermann2015-06-231-1/+0
|
* fs/Path: use base class StringPointerMax Kellermann2015-06-232-12/+10
|
* util/StringPointer: new utility classMax Kellermann2015-06-232-0/+65
|
* fs/Path: use method c_str() internallyMax Kellermann2015-06-231-5/+5
|
* fs/Config: remove charset auto-detection via GLibMax Kellermann2015-06-221-14/+0
| | | | The default is always UTF-8.
* LogBackend: remove character set supportMax Kellermann2015-06-224-57/+1
| | | | Always write UTF-8 to the log file.
* fs/Charset: hard-code Windows to ACPMax Kellermann2015-06-223-15/+5
| | | | | | Don't define HAVE_FS_CHARSET, and make GetFSCharset() return "ACP" instead of "UTF-8". Ignore the configuration setting, which had no effect anyway.
* fs/Glob: use PathMatchSpec() on WindowsMax Kellermann2015-06-222-2/+13
|
* fs/Glob: use fnmatch() if availableMax Kellermann2015-06-222-1/+22
|
* fs/Glob: make constructor "explicit"Max Kellermann2015-06-221-1/+1
|
* db/update/ExcludeList: remove obsolete TODO commentsMax Kellermann2015-06-222-5/+3
|
* test/TestFs: new unit test for libfs.aMax Kellermann2015-06-222-0/+116
|
* db/update/ExcludeList: move class Pattern to fs/Glob.hxxMax Kellermann2015-06-224-31/+70
|
* test/test_translate_song: use PATH_LITERAL()Max Kellermann2015-06-221-1/+1
|
* test/test_pcm_util: call the C++11 random engine instead of random()Max Kellermann2015-06-221-1/+1
| | | | Stupid mistake from commit 7cb803ad
* pcm/Interleave: add stereo optimizationMax Kellermann2015-06-221-0/+19
|
* pcm/Interleave: instantiate a 16 bit optimizationMax Kellermann2015-06-221-0/+15
|
* pcm/Interleave: convert PcmInterleave32() to templateMax Kellermann2015-06-221-4/+13
|
* pcm/Interleave: add optimization for 32 bit samplesMax Kellermann2015-06-223-12/+51
| | | | Move code from the "vorbis" decoder.
* pcm/Interleave: add "restrict" keywordsMax Kellermann2015-06-222-3/+6
|
* test/test_pcm: add PcmInterleave() unit testMax Kellermann2015-06-224-0/+145
|
* decoder/ffmpeg: move code to pcm/Interleave.cxxMax Kellermann2015-06-224-19/+87
|
* decoder/ffmpeg: check for commands earlierMax Kellermann2015-06-221-22/+22
| | | | | Improve initial seek by not reading/decoding the first frame before checking for the seek command.
* decoder/vorbis: check STOP before entering the loopMax Kellermann2015-06-221-2/+2
|
* OutputThread: move code to CloseOutput()Max Kellermann2015-06-222-6/+19
|
* lib/ffmpeg/Buffer: add "malloc" attributeMax Kellermann2015-06-221-0/+1
|
* InputStream: add ReadFull methodThomas Guillem2015-06-222-1/+49
| | | | | | | | Convenient method that behave differently than Read, and that will be used by tag scanners. This method will return in case of error, if the whole data is read or is EOF is reached.
* Merge tag 'v0.19.10'Max Kellermann2015-06-2111-16/+108
|\
| * release v0.19.10Max Kellermann2015-06-211-1/+1
| |
| * PlayerThread: start the decoder on PlayerCommand::QUEUEMax Kellermann2015-06-212-0/+7
| | | | | | | | Fixes missing SongBorder() call, which causes "single" mode breakage.
| * DecoderAPI: discard unused song tag earlyMax Kellermann2015-06-211-2/+5
| | | | | | | | | | If there's a stream tag, don't let the song tag override it in the next update_stream_tag() call.
| * DecoderThread: set Decoder::song_tag only for local filesMax Kellermann2015-06-212-1/+6
| | | | | | | | | | | | | | If the song tag comes from a stream, and MPD playback restarts, MPD would believe the tag should override the newly received tag. This makes the previous tag appear stuck. This change passes the song tag only if it's authoritative - i.e. if it's a song file.
| * DecoderAPI: "move" the Tag objectMax Kellermann2015-06-201-1/+1
| | | | | | | | Reduce runtime overhead.
| * OutputControl: fix fail_timer check right after bootingRomain Rollet2015-06-202-1/+4
| | | | | | | | | | | | Right after booting, the monotonic clock starts with a very small value, and AudioOutput::LockUpdate() may believe that the fail_timer has not recovered yet.
| * system/PeriodClock: make IsDefined() "constexpr"Max Kellermann2015-06-201-1/+1
| |
| * decoder/ffmpeg: skip unwanted samples after seekingMax Kellermann2015-06-202-5/+50
| | | | | | | | | | When seeking to the beginning of a packet, skip the samples that come before the desired time stamp.
| * decoder/ffmpeg: use AVSEEK_FLAG_BACKWARD for seekingMax Kellermann2015-06-201-1/+5
| | | | | | | | | | | | Ask FFmpeg to seek to the next packet boundary *before* the seek position, so we don't miss audio data. Now we get too much, but we'll solve that in the next commit.
| * decoder/ffmpeg: move code to StreamRelativePts()Max Kellermann2015-06-191-6/+20
| |
| * input/curl: trigger the condition variable in RequestDone()Max Kellermann2015-06-192-0/+3
| | | | | | | | Fixes deadlock on small responses.