Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Path: move to fs subdirectory | Denis Krjuchkov | 2013-01-22 | 1 | -1/+1 | |
| | ||||||
* | Path: new class "Path" wraps filesystem path strings | Max Kellermann | 2013-01-18 | 2 | -4/+8 | |
| | ||||||
* | decoder_api.h, ...: add "extern C" | Max Kellermann | 2013-01-07 | 2 | -5/+1 | |
| | ||||||
* | TextFile: convert to a class | Max Kellermann | 2013-01-03 | 1 | -7/+4 | |
| | ||||||
* | Directory: rename struct directory to Directory | Max Kellermann | 2013-01-03 | 3 | -12/+11 | |
| | ||||||
* | Directory: turn functions to methods | Max Kellermann | 2013-01-02 | 2 | -16/+14 | |
| | ||||||
* | Directory: make the header C++ only | Max Kellermann | 2013-01-02 | 2 | -4/+2 | |
| | ||||||
* | PlaylistInfo: rename class, use std::string | Max Kellermann | 2013-01-02 | 1 | -7/+3 | |
| | ||||||
* | db_lock: convert to C++ | Max Kellermann | 2013-01-02 | 1 | -2/+2 | |
| | ||||||
* | don't include stdbool.h in C++ sources | Max Kellermann | 2013-01-02 | 1 | -1/+0 | |
| | | | | The "bool" type is built-in. | |||||
* | playlist_vector: convert to C++ | Max Kellermann | 2013-01-02 | 1 | -1/+1 | |
| | ||||||
* | db_save, state_file: convert to C++ | Max Kellermann | 2013-01-02 | 1 | -1/+1 | |
| | ||||||
* | db/SimpleDatabasePlugin: fix memory leak in Visit() | Max Kellermann | 2012-09-05 | 1 | -7/+11 | |
| | | | | | | | When visiting a song, GetSong() was called, but this object was never returned by calling ReturnSong(). This patch locks the database only once in Visit() and passes the original song object to the visitor, avoiding the copy. | |||||
* | db_lock: add C++ helper class ScopeDatabaseLock | Max Kellermann | 2012-09-05 | 1 | -11/+6 | |
| | ||||||
* | SongFilter: convert to a C++ class | Max Kellermann | 2012-08-29 | 1 | -1/+1 | |
| | ||||||
* | DatabaseSelection: add method Match() | Max Kellermann | 2012-08-29 | 1 | -2/+1 | |
| | ||||||
* | locate: rename to SongFilter.cxx | Max Kellermann | 2012-08-29 | 1 | -1/+1 | |
| | ||||||
* | ProxyDatabase: implement GetSong() | Max Kellermann | 2012-08-16 | 1 | -3/+26 | |
| | ||||||
* | ProxyDatabase: clear libmpdclient errors in CheckError() | Max Kellermann | 2012-08-16 | 1 | -1/+2 | |
| | | | | Auto-recover from soft errors. | |||||
* | DatabasePlugin: add method ReturnSong() | Max Kellermann | 2012-08-16 | 3 | -0/+38 | |
| | | | | Allow the plugin to allocate the GetSong() return value. | |||||
* | ProxyDatabase: pass "detached" objects to visitors | Max Kellermann | 2012-08-15 | 1 | -39/+34 | |
| | | | | Fixes wrong object URIs with duplicate base names. | |||||
* | DatabasePlugin: add method GetStats() | Max Kellermann | 2012-08-15 | 3 | -0/+37 | |
| | | | | | Optimize the ProxyDatabase by invoking "stats" on the peer, instead of visiting all songs. | |||||
* | DatabasePlugin: add method VisitUniqueTags() | Max Kellermann | 2012-08-15 | 3 | -0/+68 | |
| | | | | | Optimize the ProxyDatabase by invoking "list" on the peer, instead of visiting all songs. | |||||
* | ProxyDatabase: obey visitor return values | Max Kellermann | 2012-08-15 | 1 | -8/+11 | |
| | ||||||
* | ProxyDatabasePlugin: add OO wrapper for mpd_entity | Max Kellermann | 2012-08-15 | 1 | -11/+32 | |
| | | | | Let the C++ compiler take care for freeing the objects safely. | |||||
* | ProxyDatabasePlugin: move tag table to the global name space | Max Kellermann | 2012-08-15 | 1 | -25/+25 | |
| | ||||||
* | db_visitor: delete obsolete header | Max Kellermann | 2012-08-15 | 2 | -4/+0 | |
| | ||||||
* | ProxyDatabasePlugin: obey the "recursive" flag | Max Kellermann | 2012-08-08 | 1 | -2/+3 | |
| | ||||||
* | ProxyDatabasePlugin: use an artificial "root" directory | Max Kellermann | 2012-08-08 | 1 | -2/+9 | |
| | | | | Fixes assertion failures in the Directory library. | |||||
* | ProxyDatabasePlugin: new database plugin using libmpdclient | Max Kellermann | 2012-08-08 | 2 | -0/+372 | |
| | | | | | Implementation incomplete, but sort-of-works. DumpDatabase works, but MPD is still hard-coded on the "simple" plugin. | |||||
* | DatabaseSelection: add "match" attribute | Max Kellermann | 2012-08-08 | 1 | -2/+5 | |
| | | | | Let the database plugin do the match. | |||||
* | db_selection: rename to DatabaseSelection | Max Kellermann | 2012-08-07 | 2 | -3/+3 | |
| | ||||||
* | Database{Plugin,Visitor}: pass references | Max Kellermann | 2012-08-07 | 2 | -8/+8 | |
| | ||||||
* | DatabasePlugin: make Visit() const | Max Kellermann | 2012-08-02 | 2 | -4/+4 | |
| | ||||||
* | gcc.h: re-add gcc_const and gcc_pure | Max Kellermann | 2012-08-02 | 1 | -5/+4 | |
| | | | | Remove GLib dependency from some headers. | |||||
* | db_plugin: convert to C++ | Max Kellermann | 2012-08-01 | 3 | -184/+184 | |
| | ||||||
* | require GLib 2.16 | Max Kellermann | 2012-07-10 | 1 | -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. | |||||
* | directory: require the caller to lock the db_mutex | Max Kellermann | 2012-02-02 | 1 | -2/+11 | |
| | | | | | Reduce the number of lock/unlock cycles, and make database handling safer. | |||||
* | directory: replace dirvec with doubly linked list | Max Kellermann | 2012-01-24 | 1 | -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. | |||||
* | directory: simplify constructors and clarify API documentation | Max Kellermann | 2012-01-24 | 1 | -2/+2 | |
| | | | | | Pass only the "name" to a directory, instead of the full (relative) path. | |||||
* | db/simple: pass the correct GError pointer | Max Kellermann | 2012-01-12 | 1 | -1/+1 | |
| | ||||||
* | db_plugin: add method visit() | Max Kellermann | 2011-09-13 | 1 | -0/+41 | |
| | ||||||
* | db_plugin: add method get_song() | Max Kellermann | 2011-09-13 | 1 | -0/+17 | |
| | | | | New db_get_song() implementation. | |||||
* | db_plugin: introducing a plugin API for the song database | Max Kellermann | 2011-09-10 | 2 | -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. |