Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 |
| | |||||
* | db/update/InotifySource: remove FifoBuffer | Max Kellermann | 2014-08-06 | 2 | -16/+15 |
| | | | | | Eliminate support for partial reads. The Linux kernel will never return partial results, so this buffering was unnecessary. | ||||
* | *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 |
| | |||||
* | db/Interface: add virtual method Update() | Max Kellermann | 2014-07-29 | 1 | -0/+12 |
| | | | | For database plugins that don't use the UpdateService. | ||||
* | Tag: add class const_iterator and methods begin(), end() | Max Kellermann | 2014-07-12 | 3 | -9/+3 |
| | | | | Enables using range-based "for". | ||||
* | Merge branch 'v0.18.x' | Max Kellermann | 2014-06-23 | 3 | -1/+42 |
|\ | |||||
| * | db/proxy: fall back to recursive walk on old libmpdclient/MPD | Max Kellermann | 2014-06-23 | 1 | -1/+21 |
| | | | | | | | | | | Error message was 'too few arguments for "find"' because the "base" constraint was not supported, and no other constraints remained. | ||||
| * | db/proxy: use mpd_song_get_{start,end}() only with libmpdclient >= 2.3 | Max Kellermann | 2014-06-23 | 1 | -0/+5 |
| | | |||||
* | | 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 | 3 | -4/+3 |
| | | | | | | | | Check for 0 in "device" and "inode" instead. | ||||
* | | db/simple: use class boost::intrusive::list | Max Kellermann | 2014-06-16 | 8 | -144/+151 |
| | | | | | | | | Remove the C list_head library and use type-safe C++ instead. | ||||
* | | db/Count: implement grouping | Max Kellermann | 2014-04-27 | 2 | -7/+82 |
| | | |||||
* | | db/Count: add constructor | Max Kellermann | 2014-04-27 | 1 | -2/+3 |
| | | |||||
* | | DatabasePrint: move PrintSongCount() to Count.cxx | Max Kellermann | 2014-04-26 | 4 | -54/+110 |
| | | |||||
* | | db/Helpers: split library | Max Kellermann | 2014-04-25 | 5 | -47/+98 |
| | | |||||
* | | DatabasePrint: refactor variable/function names | Max Kellermann | 2014-04-25 | 2 | -21/+21 |
| | | |||||
* | | db/Helpers: move code to tag/Set.cxx | Max Kellermann | 2014-04-24 | 1 | -88/+1 |
| | | |||||
* | | db/Helpers: move TagSet to dedicated header | Max Kellermann | 2014-04-24 | 1 | -24/+1 |
| | | |||||
* | | db/Helpers: use set::emplace() | Max Kellermann | 2014-04-24 | 1 | -0/+8 |
| | | |||||
* | | DatabasePrint: eliminate printAllIn(), printInfoForAllIn() | Max Kellermann | 2014-04-24 | 2 | -24/+0 |
| | | |||||
* | | DatabasePrint: merge adjacent client_printf() calls | Max Kellermann | 2014-04-24 | 1 | -2/+4 |
| | | |||||
* | | DatabasePrint: pass const SearchStats reference | Max Kellermann | 2014-04-24 | 1 | -4/+5 |
| | | |||||
* | | DatabasePrint: use unsigned counts | Max Kellermann | 2014-04-24 | 1 | -3/+3 |
| | | |||||
* | | DatabaseCommands: "list" allows grouping | Max Kellermann | 2014-04-24 | 12 | -42/+166 |
| | | |||||
* | | db/Helpers: "list" on album artist falls back to the artist tag | Max Kellermann | 2014-04-24 | 1 | -1/+4 |
| | | |||||
* | | db/Helpers: move code to CheckUniqueTag() | Max Kellermann | 2014-04-24 | 1 | -6/+12 |
| | | |||||
* | | db/Helpers: use reference instead of pointer | Max Kellermann | 2014-04-24 | 1 | -4/+6 |
| | | |||||
* | | DatabaseCommands: fix crash on "list base" | Max Kellermann | 2014-04-24 | 1 | -0/+2 |
| | | | | | | | | | | | | The string "base" is understood by locate_parse_type(), but not by listAllUniqueTags(). The special tag type LOCATE_TAG_BASE_TYPE causes a crash in PrintUniqueTag(). | ||||
* | | DatabasePrint: convert "type" to unsigned | Max Kellermann | 2014-04-24 | 2 | -2/+2 |
| | | |||||
* | | 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. | ||||
* | | fs/StandardDirectory: add GetUserCacheDir() | Max Kellermann | 2014-03-01 | 1 | -15/+4 |
| | | | | | | | | | | | | Move code from CreateConfiguredDatabase() and add XDG support. This implements an automatic Linux fallback for the setting "db_file" if none was specified. | ||||
* | | db/Configured: store database file in cache directory | Max Kellermann | 2014-03-01 | 1 | -1/+25 |
| | | | | | | | | | | Add class Context which wraps the Android/Java Context class and add a JNI wrapper for method Context.getCacheDir(). | ||||
* | | db/update/ExcludeList: make no-op if GLib is disabled | Max Kellermann | 2014-03-01 | 2 | -0/+22 |
| | | | | | | | | Quick hack to allow using the database without GLib (for Android). | ||||
* | | command: add command "listfiles" | Max Kellermann | 2014-03-01 | 2 | -28/+44 |
| | | | | | | | | Lists files and directories. Supports storage plugins. | ||||
* | | DatabasePrint: move code to PrintDirectoryURI() | Max Kellermann | 2014-02-28 | 1 | -2/+8 |
| | | |||||
* | | DatabasePrint: add API documentation | Max Kellermann | 2014-02-28 | 1 | -0/+3 |
| | | |||||
* | | db/simple: mount points | Max Kellermann | 2014-02-27 | 15 | -23/+548 |
| | | | | | | | | | | | | | | | | 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/update/Queue: use std::list instead of std::queue | Max Kellermann | 2014-02-27 | 2 | -5/+4 |
| | | | | | | | | | | | | The problem with std::queue is that it doesn't give us enough control. The method Clear() is a kludge already, but soon, we'll need filtering. | ||||
* | | db/simple: GetRoot() returns reference | Max Kellermann | 2014-02-27 | 2 | -3/+3 |
| | | |||||
* | | db/update/Service: allocate UpdateWalk dynamically | Max Kellermann | 2014-02-27 | 5 | -19/+28 |
| | | |||||
* | | Playlist: use the Error library to return errors | Max Kellermann | 2014-02-27 | 1 | -9/+3 |
| | | |||||
* | | db/update: cancel the update on shutdown | Max Kellermann | 2014-02-27 | 5 | -1/+55 |
| | | |||||
* | | db/UpdateGlue: rename to Service.cxx | Max Kellermann | 2014-02-27 | 2 | -161/+140 |
| | | |||||
* | | 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(). |