Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | db/upnp/Util: move caturl() to util/UriUtil.cxx | Max Kellermann | 2014-10-10 | 1 | -0/+1 |
| | |||||
* | 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(). | ||||
* | 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 | 1 | -1/+1 |
| | | | | Use milliseconds precision to reduce rounding errors. | ||||
* | db/upnp: use DatabaseStats::Clear() | Max Kellermann | 2014-08-29 | 1 | -4/+1 |
| | |||||
* | Tag: use SignedSongTime for the song duration | Max Kellermann | 2014-08-29 | 2 | -7/+10 |
| | |||||
* | 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 | 3 | -7/+7 |
| | |||||
* | 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 |
| | |||||
* | *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 |
| | |||||
* | Merge branch 'v0.18.x' | Max Kellermann | 2014-06-23 | 1 | -1/+21 |
| | |||||
* | 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 | 2 | -2/+2 |
| | | | | Check for 0 in "device" and "inode" instead. | ||||
* | db/simple: use class boost::intrusive::list | Max Kellermann | 2014-06-16 | 6 | -103/+114 |
| | | | | Remove the C list_head library and use type-safe C++ instead. | ||||
* | db/Helpers: split library | Max Kellermann | 2014-04-25 | 1 | -0/+1 |
| | |||||
* | DatabaseCommands: "list" allows grouping | Max Kellermann | 2014-04-24 | 6 | -21/+33 |
| | |||||
* | db/proxy: check connect error before initializing SocketMonitor | Max Kellermann | 2014-03-06 | 1 | -7/+7 |
| | | | | | Fixes crash bug because mpd_connection_get_async() was called without a connection. | ||||
* | db/simple: mount points | Max Kellermann | 2014-02-27 | 8 | -6/+386 |
| | | | | | | | | A SimpleDatabase instance can now "mount" other Database instances at certain locations. This is used to use a new SimpleDatabase instance for each storage mount (issued with the "mount" protocol command). Each such instance has its own database file, stored in the directory that is specified with the "cache_directory" option. | ||||
* | db/simple: GetRoot() returns reference | Max Kellermann | 2014-02-27 | 1 | -2/+2 |
| | |||||
* | db/simple/Directory: eliminate method LookupSong() | Max Kellermann | 2014-02-26 | 3 | -30/+19 |
| | | | | Move to SimpleDatabase::GetSong() to give that method more control. | ||||
* | db/simple/Directory: LookupDirectory() return remaining URI | Max Kellermann | 2014-02-26 | 3 | -41/+62 |
| | | | | Code can now be reused in LookupSong(). | ||||
* | db/simple/Directory: make variables more local | Max Kellermann | 2014-02-26 | 1 | -4/+2 |
| | |||||
* | db/Directory: add DEVICE_* documentation | Max Kellermann | 2014-02-26 | 1 | -0/+10 |
| | |||||
* | db/simple: create dedicated directory | Max Kellermann | 2014-02-26 | 12 | -3/+1334 |
| | |||||
* | db/simple: remove unused method LookupDirectory() | Max Kellermann | 2014-02-25 | 2 | -14/+0 |
| | |||||
* | db/simple: make internal methods "private" | Max Kellermann | 2014-02-25 | 1 | -1/+1 |
| | |||||
* | db/simple: add comment | Max Kellermann | 2014-02-25 | 1 | -0/+1 |
| | |||||
* | db/simple: move Create() up | Max Kellermann | 2014-02-25 | 1 | -4/+4 |
| | |||||
* | db/upnp: move plugin source to upnp directory | Max Kellermann | 2014-02-19 | 2 | -2/+2 |
| | |||||
* | DatabasePlugin: add FLAG_REQUIRE_STORAGE | Max Kellermann | 2014-02-19 | 2 | -2/+2 |
| | | | | | Ignore the storage configuration if FLAG_REQUIRE_STORAGE is not set in the DatabasePlugin. | ||||
* | DatabasePlugin: add attribute "flags" | Max Kellermann | 2014-02-19 | 3 | -0/+3 |
| | |||||
* | db/Interface: add attribute "plugin" | Max Kellermann | 2014-02-19 | 6 | -5/+13 |
| | | | | The new method IsPlugin() replaces the "is_simple" flag. | ||||
* | DatabasePlugin: split header | Max Kellermann | 2014-02-19 | 6 | -2/+13 |
| | |||||
* | db/proxy: include cleanup | Max Kellermann | 2014-02-04 | 1 | -1/+0 |
| | |||||
* | Instance: add Database attribute | Max Kellermann | 2014-02-04 | 1 | -0/+3 |
| | | | | Move from db/DatabaseGlue.cxx, eliminating global variable. | ||||
* | db/update/Service: add SimpleDatabase reference | Max Kellermann | 2014-02-04 | 1 | -0/+4 |
| | | | | Don't use the global variables from the DatabaseSimple library. | ||||
* | Playlist{Info,Vector}: move to db/ | Max Kellermann | 2014-01-27 | 1 | -1/+1 |
| | |||||
* | db/upnp: remove sleep(2) call | Max Kellermann | 2014-01-26 | 1 | -3/+0 |
| | | | | | This call was unnecessary. It is a bad idea anyway to block the MPD process for some arbitrary amount of time. | ||||
* | upnp: initialize the client handle only once | Max Kellermann | 2014-01-26 | 1 | -16/+10 |
| | | | | | | Eliminate class LibUPnP and move the code to ClientInit.cxx. Its initialization function can be called multiple times, but UpnpRegisterClient() is called at most once. | ||||
* | upnp/discovery: use a plain UpnpClient_Handle instead of class LibUPnP | Max Kellermann | 2014-01-26 | 1 | -1/+1 |
| | |||||
* | db/upnp: move generic code to lib/upnp/ | Max Kellermann | 2014-01-26 | 18 | -1647/+10 |
| | |||||
* | db/upnp: rename variables | Max Kellermann | 2014-01-26 | 1 | -21/+21 |
| | |||||
* | DespotifyUtils, Expat: move to lib/ | Max Kellermann | 2014-01-24 | 2 | -2/+2 |
| |