Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | *: use nullptr instead of NULL | Max Kellermann | 2013-10-28 | 47 | -249/+250 |
| | |||||
* | decoder/dsf: don't play junk at the end of the "data" chunk | Max Kellermann | 2013-10-28 | 1 | -1/+9 |
| | |||||
* | decoder/dsf: add range check | Max Kellermann | 2013-10-28 | 1 | -0/+3 |
| | |||||
* | decoder/dsdlib: add class DsdUint64 | Max Kellermann | 2013-10-28 | 3 | -25/+26 |
| | | | | Merge lots of duplicate code. | ||||
* | decoder/dsdlib: include cleanup | Max Kellermann | 2013-10-28 | 1 | -1/+1 |
| | |||||
* | decoder/dsdlib: move API documentation to header | Max Kellermann | 2013-10-28 | 2 | -5/+4 |
| | |||||
* | decoder/dsdlib: convert struct dsdlib_id to a class | Max Kellermann | 2013-10-28 | 4 | -34/+35 |
| | |||||
* | PcmFormat: move definitions to struct SampleTraits | Max Kellermann | 2013-10-28 | 1 | -36/+81 |
| | |||||
* | MusicChunk: return WritableBuffer | Max Kellermann | 2013-10-28 | 3 | -16/+15 |
| | |||||
* | MusicChunk: use uint8_t instead of char | Max Kellermann | 2013-10-28 | 1 | -1/+1 |
| | |||||
* | DecoderControl: convert mutex and client_cond to a reference | Max Kellermann | 2013-10-28 | 3 | -24/+29 |
| | | | | | | | | Share the Mutex between the DecoderThread and the PlayerThread. This simplifies synchronization between the two threads and fixes a freeze problem: while the PlayerThread waits for the DeocderThread, it cannot answer requests from the main thread, and the main thread will block until the DecoderThread finishes. | ||||
* | player_control: rename to PlayerControl | Max Kellermann | 2013-10-28 | 21 | -134/+134 |
| | |||||
* | decoder_control: rename to DecoderControl | Max Kellermann | 2013-10-28 | 8 | -47/+47 |
| | |||||
* | output/httpd: accept icy-metadata with and without space | Oddegamra | 2013-10-26 | 1 | -1/+2 |
| | | | | | | | | | | | Some, or most, Win32 audio players will pass "icy-metadata:1" to streaming servers. MPD expects a space between ":" and "1" at this point, and thus does not send any stream metadata. This applies to foobar2k and Winamp, for example. According to forums.radiotoolbox.com/viewtopic.php?t=74 not having a space there is expected behavior, so maybe MPD could accept both forms to determine if metadata should be sent or not. | ||||
* | command: new commands "findin", "searchin" with base URI | Max Kellermann | 2013-10-26 | 3 | -4/+25 |
| | |||||
* | FileCommands: "readcomments" understands APE and ID3v2 tags | Max Kellermann | 2013-10-26 | 1 | -0/+5 |
| | | | | Implements Mantis ticket 3843. | ||||
* | FileCommands: fix wrong control character check in IsValidValue() | Max Kellermann | 2013-10-26 | 1 | -1/+1 |
| | | | | Check was the wrong way around, and made all valid values invisible. | ||||
* | ApeTag: support multiple values per name | Max Kellermann | 2013-10-26 | 1 | -2/+7 |
| | |||||
* | ApeTag: move code to ForEachValue() | Max Kellermann | 2013-10-26 | 1 | -16/+30 |
| | |||||
* | ApeTag: simplify the "recognized" flag | Max Kellermann | 2013-10-26 | 1 | -4/+1 |
| | |||||
* | TagFile: use Path instead of const char * | Max Kellermann | 2013-10-26 | 14 | -29/+47 |
| | |||||
* | PlayerControl: initialize tagged_song in constructor | Max Kellermann | 2013-10-26 | 1 | -0/+1 |
| | |||||
* | DecoderControl: move code/attributes to new class MixRampInfo | Max Kellermann | 2013-10-26 | 9 | -83/+120 |
| | |||||
* | DecoderThread: move code to DecoderControl::CycleMixRamp() | Max Kellermann | 2013-10-26 | 3 | -6/+12 |
| | |||||
* | DecoderControl: add MixRamp getters | Max Kellermann | 2013-10-26 | 2 | -2/+14 |
| | |||||
* | CrossFade: reimplement mixramp_interpolate() without strtok() | Max Kellermann | 2013-10-26 | 2 | -26/+19 |
| | | | | Don't require a writable string, and don't modify it. | ||||
* | CrossFade: apply coding style | Max Kellermann | 2013-10-26 | 2 | -13/+15 |
| | |||||
* | CrossFade: merge "return" statements using "break" | Max Kellermann | 2013-10-26 | 1 | -2/+4 |
| | |||||
* | CrossFade: use nullptr instead of NULL | Max Kellermann | 2013-10-26 | 1 | -7/+7 |
| | |||||
* | util/NumberParser: add ParseFloat() | Max Kellermann | 2013-10-26 | 1 | -0/+6 |
| | |||||
* | util/NumberParser: indent | Max Kellermann | 2013-10-26 | 1 | -10/+10 |
| | |||||
* | command: new command "readcomments" lists arbitrary file tags | Max Kellermann | 2013-10-25 | 3 | -0/+154 |
| | |||||
* | ReplayGainInfo: refactor to a class | Max Kellermann | 2013-10-25 | 10 | -60/+57 |
| | |||||
* | ReplayGainInfo: use CamelCase for struct name | Max Kellermann | 2013-10-25 | 31 | -122/+115 |
| | |||||
* | ReplayGainConfig: add "pure" attributes | Max Kellermann | 2013-10-25 | 1 | -0/+3 |
| | |||||
* | output/httpd: support HEAD requests | Max Kellermann | 2013-10-25 | 2 | -5/+29 |
| | |||||
* | output/httpd: remove bogus assertion | Max Kellermann | 2013-10-25 | 1 | -1/+0 |
| | |||||
* | OtherCommands: re-add the "volume" command | Max Kellermann | 2013-10-25 | 3 | -0/+37 |
| | | | | | | This command was removed by commit 206392ad (MPD 0.16), even though it was been proven useful for some very simple clients. On request, I add it to the protocol again. | ||||
* | MixerAll, Volume: add "pure" attributes | Max Kellermann | 2013-10-25 | 2 | -0/+8 |
| | |||||
* | decoder/opus: support replay gain | Max Kellermann | 2013-10-24 | 3 | -1/+24 |
| | | | | Parse the R128_TRACK_GAIN comment string. | ||||
* | decoder/Opus: implement seeking | Max Kellermann | 2013-10-24 | 3 | -6/+49 |
| | |||||
* | decoder/opus: provide time stamps | Max Kellermann | 2013-10-24 | 1 | -0/+5 |
| | | | | | Call decoder_timestamp(). This is not necessary currently, but will be as soon as we implement seeking. | ||||
* | decoder/opus: show song duration during playback | Max Kellermann | 2013-10-24 | 1 | -1/+57 |
| | | | | | | This requires seeking to the end-of-stream, checking its granulepos, and then seeking back to the previous file position. We do this only for local files. | ||||
* | decoder/opus: call ogg_stream_reset() in OggSeekPageAtOffset() | Max Kellermann | 2013-10-24 | 1 | -0/+4 |
| | |||||
* | decoder/opus: move code to OggSeekPageAtOffset() | Max Kellermann | 2013-10-24 | 1 | -4/+11 |
| | |||||
* | decoder/opus: move SeekFindEOS() to OggFind.cxx | Max Kellermann | 2013-10-24 | 3 | -19/+31 |
| | |||||
* | decoder/opus: make opus_sample_rate constexpr | Max Kellermann | 2013-10-24 | 1 | -1/+1 |
| | |||||
* | decoder/opus: use std::copy_n() instead of memcpy() | Max Kellermann | 2013-10-24 | 1 | -2/+3 |
| | |||||
* | decoder/opus: support all core tag names | Max Kellermann | 2013-10-24 | 1 | -0/+5 |
| | |||||
* | decoder/opus: move code to ParseOpusTagName() | Max Kellermann | 2013-10-24 | 1 | -1/+8 |
| |