Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | Main: check if database exists before attempting to close it | Max Kellermann | 2014-02-17 | 1 | -2/+5 | |
| | | | | | | | | Fixes nullptr dereference. | |||||
* | | db/DatabaseSimple: remove obsolete header | Max Kellermann | 2014-02-17 | 2 | -48/+0 | |
| | | ||||||
* | | StorageCommands: add command "unmount" | Max Kellermann | 2014-02-12 | 3 | -0/+33 | |
| | | ||||||
* | | CompositeStorage: fix tree walk in Directory::Unmount() | Max Kellermann | 2014-02-12 | 1 | -1/+4 | |
| | | ||||||
* | | StorageCommands: emit IDLE_MOUNT on successful "mount" | Max Kellermann | 2014-02-12 | 3 | -0/+6 | |
| | | | | | | | | Add the new idle event to Idle.hxx/Idle.cxx. | |||||
* | | StorageCommands: add command "listmounts" | Max Kellermann | 2014-02-12 | 4 | -0/+86 | |
| | | ||||||
* | | util/HugeAllocator: relicense to BSD-2 | Max Kellermann | 2014-02-10 | 2 | -28/+48 | |
| | | ||||||
* | | PlaylistSong: copy the "real" URI | Max Kellermann | 2014-02-10 | 1 | -0/+3 | |
| | | | | | | | | | | Playback with some decoder plugins was broken because the Queue's DetachedSong instances did not have the "real" URI (the mapped path). | |||||
* | | StorageCommands: expose the "mount" command | Max Kellermann | 2014-02-09 | 3 | -0/+97 | |
| | | ||||||
* | | Main: wrap the Storage instance in CompositeStorage | Max Kellermann | 2014-02-09 | 2 | -2/+15 | |
| | | ||||||
* | | CompositeStorage: new Storage implementation | Max Kellermann | 2014-02-09 | 2 | -0/+467 | |
| | | | | | | | | This is the backend for the upcoming "mount" command. | |||||
* | | db/update/Walk: disable FindAncestorLoop() if device/inode==0 | Max Kellermann | 2014-02-09 | 1 | -0/+5 | |
| | | ||||||
* | | db/update/Walk: document FindAncestorLoop() | Max Kellermann | 2014-02-09 | 1 | -0/+6 | |
| | | ||||||
* | | db/update/Walk: rename find_inode_ancestor() to FindAncestorLoop() | Max Kellermann | 2014-02-09 | 1 | -4/+4 | |
| | | ||||||
* | | Main: move code to storage/Configured.cxx | Max Kellermann | 2014-02-09 | 3 | -29/+117 | |
| | | ||||||
* | | Idle: error out when unrecognized idle event was specified | Max Kellermann | 2014-02-09 | 3 | -8/+32 | |
| | | | | | | | | Implements the error checks missing in commit 0bad8406 | |||||
* | | OtherCommands: remove unnecessary nullptr check | Max Kellermann | 2014-02-09 | 1 | -3/+0 | |
| | | ||||||
* | | storage/nfs: new storage plugin | Max Kellermann | 2014-02-08 | 3 | -0/+271 | |
| | | ||||||
* | | input/nfs: move nfs_domain to lib/nfs/Domain.cxx | Max Kellermann | 2014-02-08 | 3 | -3/+52 | |
| | | ||||||
* | | ArchivePlugin: pass Path to open() | Max Kellermann | 2014-02-08 | 7 | -16/+24 | |
| | | ||||||
* | | ArchivePlugin: rename struct archive_plugin to ArchivePlugin | Max Kellermann | 2014-02-08 | 14 | -26/+32 | |
| | | ||||||
* | | Main: support arbitrary storage plugins | Max Kellermann | 2014-02-08 | 1 | -0/+12 | |
| | | ||||||
* | | storage: add struct StoragePlugin and a plugin registry | Max Kellermann | 2014-02-07 | 8 | -6/+175 | |
| | | ||||||
* | | storage/local: remove utf8 path from constructor | Max Kellermann | 2014-02-07 | 3 | -10/+10 | |
| | | | | | | | | Build the UTF-8 version of the path automatically in the constructor. | |||||
* | | Main: move storage initialization to InitStorage() | Max Kellermann | 2014-02-07 | 1 | -20/+27 | |
| | | ||||||
* | | Mapper: obtain music directory from Storage | Max Kellermann | 2014-02-07 | 3 | -31/+19 | |
| | | | | | | | | Eliminate duplicate variable. | |||||
* | | Main: check the music directory | Max Kellermann | 2014-02-07 | 2 | -3/+4 | |
| | | | | | | | | Move call from Mapper.cxx. | |||||
* | | Mapper: move check_directory() to the filesystem library | Max Kellermann | 2014-02-07 | 3 | -44/+99 | |
| | | ||||||
* | | Main: chop separators from music directory | Max Kellermann | 2014-02-07 | 2 | -1/+3 | |
| | | | | | | | | Move call from Mapper.cxx. | |||||
* | | Mapper: remove unused functions | Max Kellermann | 2014-02-07 | 2 | -65/+1 | |
| | | ||||||
* | | OtherCommands: use Storage::MapUTF8() instead of Mapper.cxx | Max Kellermann | 2014-02-07 | 1 | -4/+6 | |
| | | ||||||
* | | Main: create Storage instance in glue_mapper_init() | Max Kellermann | 2014-02-07 | 1 | -5/+12 | |
| | | | | | | | | Don't use the obsolete Mapper library to create it. | |||||
* | | Main: allow playlist directory without music directory | Max Kellermann | 2014-02-07 | 1 | -4/+1 | |
| | | ||||||
* | | InotifyUpdate: use class Storage instead of Mapper.cxx | Max Kellermann | 2014-02-07 | 3 | -5/+11 | |
| | | ||||||
* | | InotifyUpdate: use the root name instead of mapper_get_music_directory_fs() | Max Kellermann | 2014-02-07 | 1 | -1/+1 | |
| | | | | | | | | | | The root WatchDirectory instance already contains the music directory, and we don't need to fetch it again. | |||||
* | | InotifyUpdate: move functions into the WatchDirectory class | Max Kellermann | 2014-02-07 | 1 | -13/+18 | |
| | | ||||||
* | | InotifyUpdate: remove unnecessary #ifdefs | Max Kellermann | 2014-02-07 | 1 | -18/+0 | |
| | | ||||||
* | | PlaylistMapper: use class Storage instead of Mapper.cxx | Max Kellermann | 2014-02-07 | 7 | -12/+64 | |
| | | ||||||
* | | Playlist{Any,Registry,Mapper}: move functions to PlaylistStream.cxx | Max Kellermann | 2014-02-07 | 6 | -86/+144 | |
| | | ||||||
* | | PlaylistSong: include cleanup | Max Kellermann | 2014-02-07 | 1 | -2/+0 | |
| | | ||||||
* | | playlist/CloseSongEnumerator: new wrapper class | Max Kellermann | 2014-02-07 | 10 | -62/+109 | |
| | | | | | | | | | | Simplifies a lot of code, because we don't need to return both the SongEnumerator and the InputStream. | |||||
* | | StoragePlugin: add method MapToRelativeUTF8() | Max Kellermann | 2014-02-07 | 8 | -39/+51 | |
| | | | | | | | | Replaces map_to_relative_path() from Mapper.cxx. | |||||
* | | fs/Traits: add function Relative() | Max Kellermann | 2014-02-07 | 4 | -23/+61 | |
| | | | | | | | | Move code from Path::RelativeFS() and make it generic. | |||||
* | | DecoderPlugin: pass Path instance to file_decode() and scan_file() | Max Kellermann | 2014-02-07 | 15 | -75/+94 | |
| | | ||||||
* | | Mapper: remove unused function map_song_fs() | Max Kellermann | 2014-02-07 | 2 | -86/+0 | |
| | | ||||||
* | | DecoderThread: use only DetachedSong::GetRealURI() | Max Kellermann | 2014-02-07 | 1 | -4/+2 | |
| | | | | | | | | | | Don't use the mapper - all DetachedSong instances we get have already been mapped. | |||||
* | | DecoderThread: pass Path object around for local song files | Max Kellermann | 2014-02-07 | 1 | -21/+27 | |
| | | ||||||
* | | SongUpdate: pass Storage to UpdateFileInArchive() | Max Kellermann | 2014-02-07 | 2 | -5/+6 | |
| | | ||||||
* | | PlaylistSave: use DetachedSong::GetRealURI() in playlist_print_song() | Max Kellermann | 2014-02-07 | 1 | -12/+7 | |
| | | | | | | | | | | The DetachedSong instance already knows its own absolute path, and there is no need to ask the mapper again. | |||||
* | | FileCommands: support remove database files | Max Kellermann | 2014-02-07 | 1 | -6/+13 | |
| | |