aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-10-28DecoderControl: convert mutex and client_cond to a referenceMax Kellermann3-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.
2013-10-28player_control: rename to PlayerControlMax Kellermann21-134/+134
2013-10-28decoder_control: rename to DecoderControlMax Kellermann8-47/+47
2013-10-26output/httpd: accept icy-metadata with and without spaceOddegamra1-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.
2013-10-26command: new commands "findin", "searchin" with base URIMax Kellermann3-4/+25
2013-10-26FileCommands: "readcomments" understands APE and ID3v2 tagsMax Kellermann1-0/+5
Implements Mantis ticket 3843.
2013-10-26FileCommands: fix wrong control character check in IsValidValue()Max Kellermann1-1/+1
Check was the wrong way around, and made all valid values invisible.
2013-10-26ApeTag: support multiple values per nameMax Kellermann1-2/+7
2013-10-26ApeTag: move code to ForEachValue()Max Kellermann1-16/+30
2013-10-26ApeTag: simplify the "recognized" flagMax Kellermann1-4/+1
2013-10-26TagFile: use Path instead of const char *Max Kellermann14-29/+47
2013-10-26PlayerControl: initialize tagged_song in constructorMax Kellermann1-0/+1
2013-10-26DecoderControl: move code/attributes to new class MixRampInfoMax Kellermann9-83/+120
2013-10-26DecoderThread: move code to DecoderControl::CycleMixRamp()Max Kellermann3-6/+12
2013-10-26DecoderControl: add MixRamp gettersMax Kellermann2-2/+14
2013-10-26CrossFade: reimplement mixramp_interpolate() without strtok()Max Kellermann2-26/+19
Don't require a writable string, and don't modify it.
2013-10-26CrossFade: apply coding styleMax Kellermann2-13/+15
2013-10-26CrossFade: merge "return" statements using "break"Max Kellermann1-2/+4
2013-10-26CrossFade: use nullptr instead of NULLMax Kellermann1-7/+7
2013-10-26util/NumberParser: add ParseFloat()Max Kellermann1-0/+6
2013-10-26util/NumberParser: indentMax Kellermann1-10/+10
2013-10-25command: new command "readcomments" lists arbitrary file tagsMax Kellermann3-0/+154
2013-10-25ReplayGainInfo: refactor to a classMax Kellermann10-60/+57
2013-10-25ReplayGainInfo: use CamelCase for struct nameMax Kellermann31-122/+115
2013-10-25ReplayGainConfig: add "pure" attributesMax Kellermann1-0/+3
2013-10-25output/httpd: support HEAD requestsMax Kellermann2-5/+29
2013-10-25output/httpd: remove bogus assertionMax Kellermann1-1/+0
2013-10-25OtherCommands: re-add the "volume" commandMax Kellermann3-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.
2013-10-25MixerAll, Volume: add "pure" attributesMax Kellermann2-0/+8
2013-10-24decoder/opus: support replay gainMax Kellermann3-1/+24
Parse the R128_TRACK_GAIN comment string.
2013-10-24decoder/Opus: implement seekingMax Kellermann3-6/+49
2013-10-24decoder/opus: provide time stampsMax Kellermann1-0/+5
Call decoder_timestamp(). This is not necessary currently, but will be as soon as we implement seeking.
2013-10-24decoder/opus: show song duration during playbackMax Kellermann1-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.
2013-10-24decoder/opus: call ogg_stream_reset() in OggSeekPageAtOffset()Max Kellermann1-0/+4
2013-10-24decoder/opus: move code to OggSeekPageAtOffset()Max Kellermann1-4/+11
2013-10-24decoder/opus: move SeekFindEOS() to OggFind.cxxMax Kellermann3-19/+31
2013-10-24decoder/opus: make opus_sample_rate constexprMax Kellermann1-1/+1
2013-10-24decoder/opus: use std::copy_n() instead of memcpy()Max Kellermann1-2/+3
2013-10-24decoder/opus: support all core tag namesMax Kellermann1-0/+5
2013-10-24decoder/opus: move code to ParseOpusTagName()Max Kellermann1-1/+8
2013-10-24decoder/opus: use delete[] for the OpusReader::ReadString() resultMax Kellermann1-1/+1
2013-10-24DecoderAPI: add "pure" attributesMax Kellermann1-0/+2
2013-10-23decoder/wavpack: move variable declarationsMax Kellermann1-53/+34
2013-10-23input_stream: rename struct to InputStreamMax Kellermann72-483/+494
2013-10-23InputInternal: remove obsolete libraryMax Kellermann12-83/+0
2013-10-23UriUtil: uri_remove_auth() returns std::stringMax Kellermann4-31/+19
2013-10-23InputStream: add method Rewind()Max Kellermann9-28/+31
2013-10-23DecoderThread: remove unused function deconst_plugin()Max Kellermann1-9/+0
2013-10-22Playlist: refresh new tags after database updateMax Kellermann6-23/+85
Fixes regression from commit e96779d.
2013-10-22decoder/flac: fix tag name comparisonMax Kellermann1-1/+1