aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* command: new command "readcomments" lists arbitrary file tagsMax Kellermann2013-10-256-0/+182
|
* ReplayGainInfo: refactor to a classMax Kellermann2013-10-2513-67/+64
|
* ReplayGainInfo: use CamelCase for struct nameMax Kellermann2013-10-2535-135/+125
|
* ReplayGainConfig: add "pure" attributesMax Kellermann2013-10-251-0/+3
|
* output/httpd: support HEAD requestsMax Kellermann2013-10-253-5/+30
|
* output/httpd: remove bogus assertionMax Kellermann2013-10-251-1/+0
|
* OtherCommands: re-add the "volume" commandMax Kellermann2013-10-255-0/+57
| | | | | | 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" attributesMax Kellermann2013-10-252-0/+8
|
* decoder/opus: support replay gainMax Kellermann2013-10-243-1/+24
| | | | Parse the R128_TRACK_GAIN comment string.
* decoder/Opus: implement seekingMax Kellermann2013-10-243-6/+49
|
* decoder/opus: provide time stampsMax Kellermann2013-10-241-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 playbackMax Kellermann2013-10-241-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 Kellermann2013-10-241-0/+4
|
* test/run_decoder: print the song durationMax Kellermann2013-10-241-3/+4
|
* decoder/opus: move code to OggSeekPageAtOffset()Max Kellermann2013-10-241-4/+11
|
* decoder/opus: move SeekFindEOS() to OggFind.cxxMax Kellermann2013-10-243-19/+31
|
* decoder/opus: make opus_sample_rate constexprMax Kellermann2013-10-241-1/+1
|
* decoder/opus: use std::copy_n() instead of memcpy()Max Kellermann2013-10-241-2/+3
|
* decoder/opus: support all core tag namesMax Kellermann2013-10-241-0/+5
|
* decoder/opus: move code to ParseOpusTagName()Max Kellermann2013-10-241-1/+8
|
* decoder/opus: use delete[] for the OpusReader::ReadString() resultMax Kellermann2013-10-241-1/+1
|
* DecoderAPI: add "pure" attributesMax Kellermann2013-10-241-0/+2
|
* decoder/wavpack: move variable declarationsMax Kellermann2013-10-231-53/+34
|
* input_stream: rename struct to InputStreamMax Kellermann2013-10-2377-522/+530
|
* InputInternal: remove obsolete libraryMax Kellermann2013-10-2313-84/+0
|
* UriUtil: uri_remove_auth() returns std::stringMax Kellermann2013-10-236-38/+25
|
* test/test_util: unit test for libutil.aMax Kellermann2013-10-232-0/+64
|
* InputStream: add method Rewind()Max Kellermann2013-10-239-28/+31
|
* DecoderThread: remove unused function deconst_plugin()Max Kellermann2013-10-231-9/+0
|
* Playlist: refresh new tags after database updateMax Kellermann2013-10-227-23/+86
| | | | Fixes regression from commit e96779d.
* decoder/flac: fix tag name comparisonMax Kellermann2013-10-221-1/+1
|
* Playlist*, Queue: use GetDatabase() overload without ErrorMax Kellermann2013-10-224-4/+4
| | | | | Don't use IgnoreError() when there's an overload that does not try to give us one.
* Queue: add method ModifyAtPosition()Max Kellermann2013-10-222-1/+12
|
* Queue: ModifyAtOrder() does not increment versionMax Kellermann2013-10-223-3/+3
| | | | | Leave that to the caller, allowing it to modify multiple items at a time.
* Partition: add method DatabaseModified()Max Kellermann2013-10-223-1/+13
|
* UpdateRemove: include cleanupMax Kellermann2013-10-221-2/+0
|
* DecoderList: fix the decoder_plugin_from_mime_type() return valueMax Kellermann2013-10-221-3/+1
|
* PlaylistEdit: compare Song URIs in DeleteSong()Max Kellermann2013-10-221-2/+1
| | | | | Fixes purging deleted songs from the queue after update. Fixes regression from commit e96779d.
* Playlist: copy stream tags from the PlayerThreadMax Kellermann2013-10-228-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).
* Song: add method ReplaceTag()Max Kellermann2013-10-212-0/+10
|
* Partition: add methods TagModified(), SyncWithPlayer()Max Kellermann2013-10-214-3/+47
| | | | Move code from class Instance.
* Song: pass reference to song_equals()Max Kellermann2013-10-215-19/+14
|
* DecoderThread: simplify the decoder lookup loopMax Kellermann2013-10-212-64/+53
| | | | Merge the two loops into one, and eliminate the GSList.
* DecoderList: reimplement _for_each() with function objectMax Kellermann2013-10-214-33/+54
|
* decoder: rename the struct to "Decoder"Max Kellermann2013-10-2143-334/+343
|
* DecoderPlugin: move functions into the structMax Kellermann2013-10-218-119/+90
|
* SongUpdate: use tag_file_scan()Max Kellermann2013-10-211-63/+9
| | | | Eliminate duplicate code.
* TagFile: use IgnoreError()Max Kellermann2013-10-211-4/+2
|
* decoder_plugin: rename struct to DecoderPluginMax Kellermann2013-10-2155-93/+93
|
* decoder/modplug: use WritableBuffer instead of GByteArrayMax Kellermann2013-10-211-31/+30
| | | | Eliminate the temporary buffer, do I/O right into the WritableBuffer.