Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | | db/upnp/Directory: apply coding style | Max Kellermann | 2014-11-09 | 1 | -23/+23 | |
| | | | ||||||
* | | | db/upnp/Directory: move checkobjok() to class UPnPDirObject | Max Kellermann | 2014-11-08 | 2 | -11/+9 | |
| | | | ||||||
* | | | db/upnp/Object: apply coding style | Max Kellermann | 2014-11-08 | 3 | -21/+28 | |
|/ / | ||||||
* | | db/upnp: fix valgrind warning | Max Kellermann | 2014-11-07 | 1 | -0/+1 | |
| | | ||||||
* | | db/upnp/Util: move caturl() to util/UriUtil.cxx | Max Kellermann | 2014-10-10 | 1 | -0/+1 | |
| | | ||||||
* | | storage/Interface: include cleanup | Max Kellermann | 2014-10-01 | 2 | -0/+3 | |
| | | ||||||
* | | Add MusicBrainz' Release Track Id tag | Wieland Hoffmann | 2014-09-27 | 1 | -0/+4 | |
| | | | | | | | | | | | | | | | | | | | | The Release Track Id uniquely identifies a recording on a release - that is, even if a recording appears twice on a release (meaning that the combination of recording and release id are not enough to figure out which one it is), the release track id will allow differentiating the two. The tag names are taken from https://musicbrainz.org/doc/MusicBrainz_Picard/Tags/Mapping | |||||
* | | db/proxy: support empty values in VisitUniqueTags() | Max Kellermann | 2014-09-18 | 1 | -0/+9 | |
| | | | | | | | | Workaround for assertion failure in PrintUniqueTag(). | |||||
* | | *: add missing Compiler.h includes | Max Kellermann | 2014-08-30 | 5 | -0/+5 | |
| | | | | | | | | Necessary for "final" on gcc 4.6. | |||||
* | | db/simple: fix build failure without zlib | Max Kellermann | 2014-08-30 | 1 | -1/+4 | |
| | | ||||||
* | | db/Stats: use std::chrono::duration for the total duration | Max Kellermann | 2014-08-29 | 3 | -4/+6 | |
| | | | | | | | | Use milliseconds precision to reduce rounding errors. | |||||
* | | db/upnp: use DatabaseStats::Clear() | Max Kellermann | 2014-08-29 | 1 | -4/+1 | |
| | | ||||||
* | | db/Count: use std::chrono::duration for the total time | Max Kellermann | 2014-08-29 | 1 | -6/+9 | |
| | | | | | | | | Use milliseconds precision to reduce rounding errors. | |||||
* | | Tag: use SignedSongTime for the song duration | Max Kellermann | 2014-08-29 | 6 | -19/+27 | |
| | | ||||||
* | | db/simple/Song: use std::chrono::duration for start_ms and end_ms | Max Kellermann | 2014-08-28 | 2 | -9/+11 | |
| | | ||||||
* | | db/LightSong: use std::chrono::duration for start_ms and end_ms | Max Kellermann | 2014-08-28 | 5 | -14/+15 | |
| | | ||||||
* | | DetachedSong: use std::chrono::duration for start_ms and end_ms | Max Kellermann | 2014-08-28 | 1 | -2/+2 | |
| | | ||||||
* | | db/simple: check for I/O errors in Load() | Max Kellermann | 2014-08-11 | 1 | -1/+1 | |
| | | ||||||
* | | db/simple: compress the database file using gzip | Max Kellermann | 2014-08-11 | 2 | -5/+60 | |
| | | ||||||
* | | fs/io/BufferedReader: new class to replace class TextFile | Max Kellermann | 2014-08-07 | 1 | -5/+2 | |
| | | | | | | | | | | | | | | The new class is pluggable, to prepare for gzipped database files. For now, the TextFile class remains, and will be refactored away later. | |||||
* | | fs/output, fs/TextFile: move to fs/io/ | Max Kellermann | 2014-08-07 | 3 | -7/+7 | |
| | | ||||||
* | | db/update/InotifySource: remove FifoBuffer | Max Kellermann | 2014-08-06 | 2 | -16/+15 | |
| | | | | | | | | | | Eliminate support for partial reads. The Linux kernel will never return partial results, so this buffering was unnecessary. | |||||
* | | *Save, *State: use the OutputStream API instead of FILE* | Max Kellermann | 2014-07-30 | 5 | -37/+33 | |
| | | ||||||
* | | db/proxy: implement Update() | Max Kellermann | 2014-07-29 | 1 | -0/+19 | |
| | | ||||||
* | | db/Interface: add virtual method Update() | Max Kellermann | 2014-07-29 | 1 | -0/+12 | |
| | | | | | | | | For database plugins that don't use the UpdateService. | |||||
* | | Tag: add class const_iterator and methods begin(), end() | Max Kellermann | 2014-07-12 | 3 | -9/+3 | |
| | | | | | | | | Enables using range-based "for". | |||||
* | | Merge branch 'v0.18.x' | Max Kellermann | 2014-06-23 | 3 | -1/+42 | |
|\| | ||||||
| * | db/proxy: fall back to recursive walk on old libmpdclient/MPD | Max Kellermann | 2014-06-23 | 1 | -1/+21 | |
| | | | | | | | | | | Error message was 'too few arguments for "find"' because the "base" constraint was not supported, and no other constraints remained. | |||||
| * | db/proxy: use mpd_song_get_{start,end}() only with libmpdclient >= 2.3 | Max Kellermann | 2014-06-23 | 1 | -0/+5 | |
| | | ||||||
* | | db/proxy: use mpd_song_get_{start,end}() only with libmpdclient >= 2.3 | Max Kellermann | 2014-06-23 | 1 | -0/+5 | |
| | | ||||||
* | | db/proxy: initialize LightSong::real_uri | Max Kellermann | 2014-06-21 | 1 | -0/+1 | |
| | | | | | | | | Fixes potential crash. | |||||
* | | Directory: eliminate attribute "have_stat" | Max Kellermann | 2014-06-16 | 3 | -4/+3 | |
| | | | | | | | | Check for 0 in "device" and "inode" instead. | |||||
* | | db/simple: use class boost::intrusive::list | Max Kellermann | 2014-06-16 | 8 | -144/+151 | |
| | | | | | | | | Remove the C list_head library and use type-safe C++ instead. | |||||
* | | db/Count: implement grouping | Max Kellermann | 2014-04-27 | 2 | -7/+82 | |
| | | ||||||
* | | db/Count: add constructor | Max Kellermann | 2014-04-27 | 1 | -2/+3 | |
| | | ||||||
* | | DatabasePrint: move PrintSongCount() to Count.cxx | Max Kellermann | 2014-04-26 | 4 | -54/+110 | |
| | | ||||||
* | | db/Helpers: split library | Max Kellermann | 2014-04-25 | 5 | -47/+98 | |
| | | ||||||
* | | DatabasePrint: refactor variable/function names | Max Kellermann | 2014-04-25 | 2 | -21/+21 | |
| | | ||||||
* | | db/Helpers: move code to tag/Set.cxx | Max Kellermann | 2014-04-24 | 1 | -88/+1 | |
| | | ||||||
* | | db/Helpers: move TagSet to dedicated header | Max Kellermann | 2014-04-24 | 1 | -24/+1 | |
| | | ||||||
* | | db/Helpers: use set::emplace() | Max Kellermann | 2014-04-24 | 1 | -0/+8 | |
| | | ||||||
* | | DatabasePrint: eliminate printAllIn(), printInfoForAllIn() | Max Kellermann | 2014-04-24 | 2 | -24/+0 | |
| | | ||||||
* | | DatabasePrint: merge adjacent client_printf() calls | Max Kellermann | 2014-04-24 | 1 | -2/+4 | |
| | | ||||||
* | | DatabasePrint: pass const SearchStats reference | Max Kellermann | 2014-04-24 | 1 | -4/+5 | |
| | | ||||||
* | | DatabasePrint: use unsigned counts | Max Kellermann | 2014-04-24 | 1 | -3/+3 | |
| | | ||||||
* | | DatabaseCommands: "list" allows grouping | Max Kellermann | 2014-04-24 | 12 | -42/+166 | |
| | | ||||||
* | | db/Helpers: "list" on album artist falls back to the artist tag | Max Kellermann | 2014-04-24 | 1 | -1/+4 | |
| | | ||||||
* | | db/Helpers: move code to CheckUniqueTag() | Max Kellermann | 2014-04-24 | 1 | -6/+12 | |
| | | ||||||
* | | db/Helpers: use reference instead of pointer | Max Kellermann | 2014-04-24 | 1 | -4/+6 | |
| | | ||||||
* | | DatabaseCommands: fix crash on "list base" | Max Kellermann | 2014-04-24 | 1 | -0/+2 | |
| | | | | | | | | | | | | The string "base" is understood by locate_parse_type(), but not by listAllUniqueTags(). The special tag type LOCATE_TAG_BASE_TYPE causes a crash in PrintUniqueTag(). |