aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
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
2013-10-22Playlist*, Queue: use GetDatabase() overload without ErrorMax Kellermann4-4/+4
Don't use IgnoreError() when there's an overload that does not try to give us one.
2013-10-22Queue: add method ModifyAtPosition()Max Kellermann2-1/+12
2013-10-22Queue: ModifyAtOrder() does not increment versionMax Kellermann3-3/+3
Leave that to the caller, allowing it to modify multiple items at a time.
2013-10-22Partition: add method DatabaseModified()Max Kellermann3-1/+13
2013-10-22UpdateRemove: include cleanupMax Kellermann1-2/+0
2013-10-22DecoderList: fix the decoder_plugin_from_mime_type() return valueMax Kellermann1-3/+1
2013-10-22PlaylistEdit: compare Song URIs in DeleteSong()Max Kellermann1-2/+1
Fixes purging deleted songs from the queue after update. Fixes regression from commit e96779d.
2013-10-22Playlist: copy stream tags from the PlayerThreadMax Kellermann8-11/+95
Finally restores an important feature that has been broken for several months when the PlayerThread started working with Song copies instead of pointers to the Queue's Song instances (commit e96779d).
2013-10-21Song: add method ReplaceTag()Max Kellermann2-0/+10
2013-10-21Partition: add methods TagModified(), SyncWithPlayer()Max Kellermann3-2/+46
Move code from class Instance.
2013-10-21Song: pass reference to song_equals()Max Kellermann5-19/+14
2013-10-21DecoderThread: simplify the decoder lookup loopMax Kellermann2-64/+53
Merge the two loops into one, and eliminate the GSList.
2013-10-21DecoderList: reimplement _for_each() with function objectMax Kellermann4-33/+54
2013-10-21decoder: rename the struct to "Decoder"Max Kellermann40-296/+299
2013-10-21DecoderPlugin: move functions into the structMax Kellermann6-112/+86
2013-10-21SongUpdate: use tag_file_scan()Max Kellermann1-63/+9
Eliminate duplicate code.
2013-10-21TagFile: use IgnoreError()Max Kellermann1-4/+2
2013-10-21decoder_plugin: rename struct to DecoderPluginMax Kellermann53-91/+91
2013-10-21decoder/modplug: use WritableBuffer instead of GByteArrayMax Kellermann1-31/+30
Eliminate the temporary buffer, do I/O right into the WritableBuffer.
2013-10-21decoder/modplug: move code to LoadModPlugFile()Max Kellermann1-21/+17
2013-10-21playlist/EmbeddedCue: use std::string for the "cuesheet" attributeMax Kellermann1-10/+8
2013-10-21GetBaseUTF8Max Kellermann9-46/+97