aboutsummaryrefslogtreecommitdiffstats
path: root/src/db (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-08-08ProxyDatabasePlugin: obey the "recursive" flagMax Kellermann1-2/+3
2012-08-08ProxyDatabasePlugin: use an artificial "root" directoryMax Kellermann1-2/+9
Fixes assertion failures in the Directory library.
2012-08-08ProxyDatabasePlugin: new database plugin using libmpdclientMax Kellermann2-0/+372
Implementation incomplete, but sort-of-works. DumpDatabase works, but MPD is still hard-coded on the "simple" plugin.
2012-08-08DatabaseSelection: add "match" attributeMax Kellermann1-2/+5
Let the database plugin do the match.
2012-08-07db_selection: rename to DatabaseSelectionMax Kellermann2-3/+3
2012-08-07Database{Plugin,Visitor}: pass referencesMax Kellermann2-8/+8
2012-08-02DatabasePlugin: make Visit() constMax Kellermann2-4/+4
2012-08-02gcc.h: re-add gcc_const and gcc_pureMax Kellermann1-5/+4
Remove GLib dependency from some headers.
2012-08-01db_plugin: convert to C++Max Kellermann3-184/+184
2012-07-10require GLib 2.16Max Kellermann1-1/+0
GLib 2.16 was released more than 4 years ago. Let's remove some cruft from the glib_compat.h header, and avoid new cruft to it.
2012-02-02directory: require the caller to lock the db_mutexMax Kellermann1-2/+11
Reduce the number of lock/unlock cycles, and make database handling safer.
2012-01-24directory: replace dirvec with doubly linked listMax Kellermann1-2/+6
Random access is not needed, and a linked list is easier to manage: we don't need to (re-)allocate the pointer array.
2012-01-24directory: simplify constructors and clarify API documentationMax Kellermann1-2/+2
Pass only the "name" to a directory, instead of the full (relative) path.
2012-01-12db/simple: pass the correct GError pointerMax Kellermann1-1/+1
2011-09-13db_plugin: add method visit()Max Kellermann1-0/+41
2011-09-13db_plugin: add method get_song()Max Kellermann1-0/+17
New db_get_song() implementation.
2011-09-10db_plugin: introducing a plugin API for the song databaseMax Kellermann2-0/+329
First draft, not really pluggable currently - hard-coded to use the "simple" plugin, and calls several of its internal functions. The API is very simple currently, all searches are still performed over the root "directory" object. Future changes to the API will move those search implementations into the plugin, to allow more efficient implementations, or implementations that don't have the whole tree in memory all the time.