Age | Commit message (Collapse) | Author | |
---|---|---|---|
2017-11-14 | playlist/PlaylistRegistry: use LockRewind() instead of Rewind() | Max Kellermann | |
Fixes a deadlock caused by commit 31ab78ae8e10af948ec95496df0d2abf1ea631a4. That commit was not actually bad - just these two calls have always been bad, which went unnoticed for a long time. | |||
2017-05-19 | playlist/m3u: support for mime-type `audio-mpegurl` for M3U playlists | Mario Di Raimondo | |
2017-05-08 | *: add "noexcept" to many, many function prototypes | Max Kellermann | |
This eliminates some overhead, because the compiler doesn't need to consider these functions throwing. | |||
2017-01-20 | playlist/SoundCloud: eliminate unnecessary casted variable | Max Kellermann | |
2017-01-03 | update copyright year | Max Kellermann | |
2017-01-03 | input/curl, ...: use strncmp() instead of memcmp() to avoid crash | Max Kellermann | |
2017-01-03 | thread/Mutex: remove ScopeLock, use std::lock_guard directly | Max Kellermann | |
2016-11-10 | util/Error: remove obsolete class | Max Kellermann | |
2016-10-27 | queue/PlaylistUpdate: include cleanup | Max Kellermann | |
2016-10-27 | LocateUri: migrate from class Error to C++ exceptions | Max Kellermann | |
2016-10-26 | playlist/cue/CueParser: update API documentation | Max Kellermann | |
2016-09-16 | input/InputStream: migrate from class Error to C++ exceptions | Max Kellermann | |
2016-09-09 | input/Plugin: migrate open() from class Error to C++ exceptions | Max Kellermann | |
2016-09-09 | playlist/SoundCloud: use AtScopeExit() | Max Kellermann | |
2016-09-09 | playlist/SoundCloud: use std::string | Max Kellermann | |
2016-09-09 | playlist/SoundCloud: implicit SoundCloudJsonData initialization | Max Kellermann | |
2016-09-09 | playlist/SoundCloud: rename struct parse_data to SoundCloudJsonData | Max Kellermann | |
2016-09-09 | playlist/SoundCloud: make parse_callbacks constexpr | Max Kellermann | |
2016-09-09 | playlist/SoundCloud: use ScopeLock | Max Kellermann | |
2016-06-10 | TagStream, decoder/Thread, ...: ignore MIME type parameters for matching plugins | Max Kellermann | |
2016-06-10 | util/StringUtil: use CamelCase | Max Kellermann | |
2016-04-21 | fs/AllocatedPath: add method FromUTF8Throw() | Max Kellermann | |
2016-04-13 | playlist/Any: fix documentation typo | Max Kellermann | |
2016-04-12 | playlist/Song: catch SongLoader exceptions | Max Kellermann | |
Fixes aborted "load" commands due to SongLoader failure. | |||
2016-03-01 | *: include cleanup (using iwyu) | Max Kellermann | |
2016-02-28 | queue/PlaylistEdit: throw PlaylistError on error | Max Kellermann | |
2016-02-28 | playlist/queue: use std::unique_ptr | Max Kellermann | |
2016-02-26 | update copyright year to 2016 | Max Kellermann | |
2016-02-22 | SongUpdate: move tag_scan_fallback() to tag/Generic.cxx | Max Kellermann | |
2016-02-22 | tag/handler: use CamelCase | Max Kellermann | |
2016-02-22 | playlist/Stream, db/upnp: add missing includes | Max Kellermann | |
2016-02-21 | playlist/Plugin: pass InputStreamPtr&& to open_stream() | Max Kellermann | |
Obsolete class CloseSongEnumerator, which was a kludge. | |||
2016-02-21 | input: wrap InputStream in std::unique_ptr | Max Kellermann | |
2016-02-07 | playlist/PlaylistStream: catch and log C++ exceptions | Max Kellermann | |
2016-02-07 | playlist/SongEnumerator: wrap song in std::unique_ptr | Max Kellermann | |
2016-02-07 | playlist/cue/CueParser: Get() returns std::unique_ptr | Max Kellermann | |
2016-02-07 | playlist/cue/CueParser: use std::unique_ptr | Max Kellermann | |
2016-02-07 | playlist/cue/CueParser: use C++11 initializers | Max Kellermann | |
2015-11-06 | playlist/soundcloud: make key_str "static const" | Max Kellermann | |
2015-11-06 | util/StringUtil: move comparison functions to StringCompare.cxx | Max Kellermann | |
2015-10-26 | playlist/flac: re-add the plugin | Max Kellermann | |
This reverts commit d7d9dbd2c2798b6ff39acb07a3bed38b6f99e283 by reimplementing it with the current MPD API. 3 years ago, I was wrong about the "embcue" plugin being able to replace this one, because "embcue" reads a tag named "CUESHEET", while this plugin reads the "CUESHEET" FLAC metablock. There's an important difference between those two! | |||
2015-09-30 | util/StringView: new utility class | Max Kellermann | |
2015-09-17 | unix/Daemon, playlist/pls, ...: remove unused Domain variables | Max Kellermann | |
2015-09-17 | CueParser.cxx: Append pregap to previous track | Will Tiffany | |
Only ignore indexes after first nonzero, preserving pregaps but appending them to the previous track instead of prepending to the current. The first index of the first track is used for the start time regardless of its number. Unneeded bool last_updated removed. | |||
2015-08-23 | CueParser.cxx: ignore INDEX after first per track | Will Tiffany | |
Use the first INDEX in each TRACK section, instead of the last, for the start time. This preserves the original CD layout (including gaps between tracks), and avoids skipping sections of songs in more exotic cuesheets (eg musical suite tracks). Fixes 0004355 and 0003359 | |||
2015-08-12 | client/Response: new Client wrapper class for writing responses | Max Kellermann | |
2015-08-05 | playlist/embcue: fix last track | xent | |
2015-03-17 | *: doxygen fixups | Max Kellermann | |
2015-03-05 | PlaylistStream: convert suffix to UTF-8 | Max Kellermann | |
2015-03-03 | *: change C-style prototypes, drop "(void)" | Max Kellermann | |