aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/plugins (follow)
Commit message (Collapse)AuthorAgeFilesLines
* db/upnp/Util: move caturl() to util/UriUtil.cxxMax Kellermann2014-10-101-0/+1
|
* Add MusicBrainz' Release Track Id tagWieland Hoffmann2014-09-271-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 Kellermann2014-09-181-0/+9
| | | | Workaround for assertion failure in PrintUniqueTag().
* db/simple: fix build failure without zlibMax Kellermann2014-08-301-1/+4
|
* db/Stats: use std::chrono::duration for the total durationMax Kellermann2014-08-291-1/+1
| | | | Use milliseconds precision to reduce rounding errors.
* db/upnp: use DatabaseStats::Clear()Max Kellermann2014-08-291-4/+1
|
* Tag: use SignedSongTime for the song durationMax Kellermann2014-08-292-7/+10
|
* db/simple/Song: use std::chrono::duration for start_ms and end_msMax Kellermann2014-08-282-9/+11
|
* db/LightSong: use std::chrono::duration for start_ms and end_msMax Kellermann2014-08-283-7/+7
|
* DetachedSong: use std::chrono::duration for start_ms and end_msMax Kellermann2014-08-281-2/+2
|
* db/simple: check for I/O errors in Load()Max Kellermann2014-08-111-1/+1
|
* db/simple: compress the database file using gzipMax Kellermann2014-08-112-5/+60
|
* fs/io/BufferedReader: new class to replace class TextFileMax Kellermann2014-08-071-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 Kellermann2014-08-073-7/+7
|
* *Save, *State: use the OutputStream API instead of FILE*Max Kellermann2014-07-305-37/+33
|
* db/proxy: implement Update()Max Kellermann2014-07-291-0/+19
|
* Merge branch 'v0.18.x'Max Kellermann2014-06-231-1/+21
|
* db/proxy: use mpd_song_get_{start,end}() only with libmpdclient >= 2.3Max Kellermann2014-06-231-0/+5
|
* db/proxy: initialize LightSong::real_uriMax Kellermann2014-06-211-0/+1
| | | | Fixes potential crash.
* Directory: eliminate attribute "have_stat"Max Kellermann2014-06-162-2/+2
| | | | Check for 0 in "device" and "inode" instead.
* db/simple: use class boost::intrusive::listMax Kellermann2014-06-166-103/+114
| | | | Remove the C list_head library and use type-safe C++ instead.
* db/Helpers: split libraryMax Kellermann2014-04-251-0/+1
|
* DatabaseCommands: "list" allows groupingMax Kellermann2014-04-246-21/+33
|
* db/proxy: check connect error before initializing SocketMonitorMax Kellermann2014-03-061-7/+7
| | | | | Fixes crash bug because mpd_connection_get_async() was called without a connection.
* db/simple: mount pointsMax Kellermann2014-02-278-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 referenceMax Kellermann2014-02-271-2/+2
|
* db/simple/Directory: eliminate method LookupSong()Max Kellermann2014-02-263-30/+19
| | | | Move to SimpleDatabase::GetSong() to give that method more control.
* db/simple/Directory: LookupDirectory() return remaining URIMax Kellermann2014-02-263-41/+62
| | | | Code can now be reused in LookupSong().
* db/simple/Directory: make variables more localMax Kellermann2014-02-261-4/+2
|
* db/Directory: add DEVICE_* documentationMax Kellermann2014-02-261-0/+10
|
* db/simple: create dedicated directoryMax Kellermann2014-02-2612-3/+1334
|
* db/simple: remove unused method LookupDirectory()Max Kellermann2014-02-252-14/+0
|
* db/simple: make internal methods "private"Max Kellermann2014-02-251-1/+1
|
* db/simple: add commentMax Kellermann2014-02-251-0/+1
|
* db/simple: move Create() upMax Kellermann2014-02-251-4/+4
|
* db/upnp: move plugin source to upnp directoryMax Kellermann2014-02-192-2/+2
|
* DatabasePlugin: add FLAG_REQUIRE_STORAGEMax Kellermann2014-02-192-2/+2
| | | | | Ignore the storage configuration if FLAG_REQUIRE_STORAGE is not set in the DatabasePlugin.
* DatabasePlugin: add attribute "flags"Max Kellermann2014-02-193-0/+3
|
* db/Interface: add attribute "plugin"Max Kellermann2014-02-196-5/+13
| | | | The new method IsPlugin() replaces the "is_simple" flag.
* DatabasePlugin: split headerMax Kellermann2014-02-196-2/+13
|
* db/proxy: include cleanupMax Kellermann2014-02-041-1/+0
|
* Instance: add Database attributeMax Kellermann2014-02-041-0/+3
| | | | Move from db/DatabaseGlue.cxx, eliminating global variable.
* db/update/Service: add SimpleDatabase referenceMax Kellermann2014-02-041-0/+4
| | | | Don't use the global variables from the DatabaseSimple library.
* Playlist{Info,Vector}: move to db/Max Kellermann2014-01-271-1/+1
|
* db/upnp: remove sleep(2) callMax Kellermann2014-01-261-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 onceMax Kellermann2014-01-261-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 LibUPnPMax Kellermann2014-01-261-1/+1
|
* db/upnp: move generic code to lib/upnp/Max Kellermann2014-01-2618-1647/+10
|
* db/upnp: rename variablesMax Kellermann2014-01-261-21/+21
|
* DespotifyUtils, Expat: move to lib/Max Kellermann2014-01-242-2/+2
|