aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/plugins (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-12-26db/simple: fix implicit nullptr/bool conversionMax Kellermann1-3/+3
Return false on error, not nullptr.
2014-12-26fs/Traits, ...: work around -Wtautological-pointer-compareMax Kellermann1-1/+4
New in clang 3.6.
2014-12-26db/lazy, input/mms: add "override" keywordsMax Kellermann2-3/+5
Fixes -Winconsistent-missing-override (clang 3.6).
2014-11-07db/upnp: fix valgrind warningMax Kellermann1-0/+1
2014-10-10db/upnp/Util: move caturl() to util/UriUtil.cxxMax Kellermann1-0/+1
2014-09-27Add MusicBrainz' Release Track Id tagWieland Hoffmann1-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
2014-09-18db/proxy: support empty values in VisitUniqueTags()Max Kellermann1-0/+9
Workaround for assertion failure in PrintUniqueTag().
2014-08-30db/simple: fix build failure without zlibMax Kellermann1-1/+4
2014-08-29db/Stats: use std::chrono::duration for the total durationMax Kellermann1-1/+1
Use milliseconds precision to reduce rounding errors.
2014-08-29db/upnp: use DatabaseStats::Clear()Max Kellermann1-4/+1
2014-08-29Tag: use SignedSongTime for the song durationMax Kellermann2-7/+10
2014-08-28db/simple/Song: use std::chrono::duration for start_ms and end_msMax Kellermann2-9/+11
2014-08-28db/LightSong: use std::chrono::duration for start_ms and end_msMax Kellermann3-7/+7
2014-08-28DetachedSong: use std::chrono::duration for start_ms and end_msMax Kellermann1-2/+2
2014-08-11db/simple: check for I/O errors in Load()Max Kellermann1-1/+1
2014-08-11db/simple: compress the database file using gzipMax Kellermann2-5/+60
2014-08-07fs/io/BufferedReader: new class to replace class TextFileMax Kellermann1-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.
2014-08-07fs/output, fs/TextFile: move to fs/io/Max Kellermann3-7/+7
2014-07-30*Save, *State: use the OutputStream API instead of FILE*Max Kellermann5-37/+33
2014-07-29db/proxy: implement Update()Max Kellermann1-0/+19
2014-06-23db/proxy: use mpd_song_get_{start,end}() only with libmpdclient >= 2.3Max Kellermann1-0/+5
2014-06-21db/proxy: initialize LightSong::real_uriMax Kellermann1-0/+1
Fixes potential crash.
2014-06-16Directory: eliminate attribute "have_stat"Max Kellermann2-2/+2
Check for 0 in "device" and "inode" instead.
2014-06-16db/simple: use class boost::intrusive::listMax Kellermann6-103/+114
Remove the C list_head library and use type-safe C++ instead.
2014-04-25db/Helpers: split libraryMax Kellermann1-0/+1
2014-04-24DatabaseCommands: "list" allows groupingMax Kellermann6-21/+33
2014-03-06db/proxy: check connect error before initializing SocketMonitorMax Kellermann1-7/+7
Fixes crash bug because mpd_connection_get_async() was called without a connection.
2014-02-27db/simple: mount pointsMax Kellermann8-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.
2014-02-27db/simple: GetRoot() returns referenceMax Kellermann1-2/+2
2014-02-26db/simple/Directory: eliminate method LookupSong()Max Kellermann3-30/+19
Move to SimpleDatabase::GetSong() to give that method more control.
2014-02-26db/simple/Directory: LookupDirectory() return remaining URIMax Kellermann3-41/+62
Code can now be reused in LookupSong().
2014-02-26db/simple/Directory: make variables more localMax Kellermann1-4/+2
2014-02-26db/Directory: add DEVICE_* documentationMax Kellermann1-0/+10
2014-02-26db/simple: create dedicated directoryMax Kellermann12-3/+1334
2014-02-25db/simple: remove unused method LookupDirectory()Max Kellermann2-14/+0
2014-02-25db/simple: make internal methods "private"Max Kellermann1-1/+1
2014-02-25db/simple: add commentMax Kellermann1-0/+1
2014-02-25db/simple: move Create() upMax Kellermann1-4/+4
2014-02-19db/upnp: move plugin source to upnp directoryMax Kellermann2-2/+2
2014-02-19DatabasePlugin: add FLAG_REQUIRE_STORAGEMax Kellermann2-2/+2
Ignore the storage configuration if FLAG_REQUIRE_STORAGE is not set in the DatabasePlugin.
2014-02-19DatabasePlugin: add attribute "flags"Max Kellermann3-0/+3
2014-02-19db/Interface: add attribute "plugin"Max Kellermann6-5/+13
The new method IsPlugin() replaces the "is_simple" flag.
2014-02-19DatabasePlugin: split headerMax Kellermann6-2/+13
2014-02-04db/proxy: include cleanupMax Kellermann1-1/+0
2014-02-04Instance: add Database attributeMax Kellermann1-0/+3
Move from db/DatabaseGlue.cxx, eliminating global variable.
2014-02-04db/update/Service: add SimpleDatabase referenceMax Kellermann1-0/+4
Don't use the global variables from the DatabaseSimple library.
2014-01-27Playlist{Info,Vector}: move to db/Max Kellermann1-1/+1
2014-01-26db/upnp: remove sleep(2) callMax Kellermann1-3/+0
This call was unnecessary. It is a bad idea anyway to block the MPD process for some arbitrary amount of time.
2014-01-26upnp: initialize the client handle only onceMax Kellermann1-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.
2014-01-26upnp/discovery: use a plain UpnpClient_Handle instead of class LibUPnPMax Kellermann1-1/+1