Max Kellermann
4b010df99e
Main: create Storage instance in glue_mapper_init()
...
Don't use the obsolete Mapper library to create it.
2014-02-07 22:54:18 +01:00
Max Kellermann
5e4dd4be9c
Main: allow playlist directory without music directory
2014-02-07 22:39:17 +01:00
Max Kellermann
f947274626
InotifyUpdate: use class Storage instead of Mapper.cxx
2014-02-07 22:30:40 +01:00
Max Kellermann
f6939f71a7
InotifyUpdate: use the root name instead of mapper_get_music_directory_fs()
...
The root WatchDirectory instance already contains the music directory,
and we don't need to fetch it again.
2014-02-07 22:30:01 +01:00
Max Kellermann
25aa17ad89
InotifyUpdate: move functions into the WatchDirectory class
2014-02-07 22:24:26 +01:00
Max Kellermann
05ee057db5
InotifyUpdate: remove unnecessary #ifdefs
2014-02-07 22:17:27 +01:00
Max Kellermann
297e2747f3
PlaylistMapper: use class Storage instead of Mapper.cxx
2014-02-07 21:44:50 +01:00
Max Kellermann
77de233117
Playlist{Any,Registry,Mapper}: move functions to PlaylistStream.cxx
2014-02-07 21:30:49 +01:00
Max Kellermann
02b67edaf5
PlaylistSong: include cleanup
2014-02-07 21:30:03 +01:00
Max Kellermann
8549ccfd8c
playlist/CloseSongEnumerator: new wrapper class
...
Simplifies a lot of code, because we don't need to return both the
SongEnumerator and the InputStream.
2014-02-07 20:27:24 +01:00
Max Kellermann
ffd16b55a6
StoragePlugin: add method MapToRelativeUTF8()
...
Replaces map_to_relative_path() from Mapper.cxx.
2014-02-07 19:09:28 +01:00
Max Kellermann
d744c997d8
fs/Traits: add function Relative()
...
Move code from Path::RelativeFS() and make it generic.
2014-02-07 19:08:51 +01:00
Max Kellermann
6b421cc354
DecoderPlugin: pass Path instance to file_decode() and scan_file()
2014-02-07 18:52:19 +01:00
Max Kellermann
37ec29b225
Mapper: remove unused function map_song_fs()
2014-02-07 18:51:19 +01:00
Max Kellermann
ca7f6a26b5
DecoderThread: use only DetachedSong::GetRealURI()
...
Don't use the mapper - all DetachedSong instances we get have already
been mapped.
2014-02-07 18:50:07 +01:00
Max Kellermann
9b69d22d7e
DecoderThread: pass Path object around for local song files
2014-02-07 18:45:11 +01:00
Max Kellermann
4ab4cf8532
SongUpdate: pass Storage to UpdateFileInArchive()
2014-02-07 18:44:47 +01:00
Max Kellermann
3341b282b7
PlaylistSave: use DetachedSong::GetRealURI() in playlist_print_song()
...
The DetachedSong instance already knows its own absolute path, and
there is no need to ask the mapper again.
2014-02-07 18:42:16 +01:00
Max Kellermann
bb3b836dbb
FileCommands: support remove database files
2014-02-07 18:41:42 +01:00
Max Kellermann
1873c67540
FileCommands: use Storage::MapFS() instead of map_uri_fs()
2014-02-07 18:38:10 +01:00
Max Kellermann
8fd8f23a6b
FileCommands: move code to read_file_comments()
2014-02-07 18:33:43 +01:00
geneticdrift
f225051348
fixed possible format_context not closed in ffmpeg_decode
2014-02-07 12:07:43 +01:00
Max Kellermann
b2e3fdef0f
storage/local: hide the class declarations
...
Hide inside CreateLocalStorage().
2014-02-07 01:11:52 +01:00
Max Kellermann
c13810ebaa
Mapper: move map_song_detach() to db/DatabaseSong.cxx
...
Use Storage::MapUTF8() internally, don't use global variables.
2014-02-07 00:42:14 +01:00
Max Kellermann
19a982cf69
Mapper: convert IsInDatabase() check to assertion in map_song_detach()
2014-02-07 00:42:14 +01:00
Max Kellermann
327cbf48f5
pcm/FallbackResampler: add missing ConstBuffer<T>::ToVoid() call
2014-02-06 23:48:01 +01:00
geneticdrift
0f1f509be7
fixed leaked LocalDirectoryReader *const reader in UpdateWalk::UpdateDirectory
2014-02-06 23:08:24 +01:00
Max Kellermann
c8f0c7e9ed
*/smbclient: protect all libsmbclient calls with a mutex
...
libsmbclient is not thread-safe nor reentrant. We must protect all
function calls with a global mutex, unfortunately.
2014-02-06 22:19:59 +01:00
Max Kellermann
a7989077ab
neighbor/smbclient: move smbclient_domain to lib/smbclient/Domain.cxx
2014-02-06 22:12:50 +01:00
Max Kellermann
0a0659d737
mixer/Plugin: pass AudioOutput reference to init()
...
Passing a void pointer is unsafe.
2014-02-06 21:10:12 +01:00
Max Kellermann
b6df4680df
MixerPlugin: convert function pointers to Mixer virtual methods
2014-02-06 20:52:33 +01:00
Max Kellermann
e04090b477
Mixer: delete the implicit copy constructor
2014-02-06 20:52:25 +01:00
Max Kellermann
c9fb6f7bdb
Mixer: make the constructor "explicit"
2014-02-06 20:52:25 +01:00
Max Kellermann
ad6b05ae17
mixer/software: use IgnoreError()
2014-02-06 20:52:25 +01:00
Max Kellermann
29b18d9ab7
SongUpdate: use the Storage interface, support remote files
...
This commit finally allows the database update to scan remote files,
e.g. using the smbclient storage plugin. However, it is not yet
possible to configure that, therefore the feature is not accessible
yet.
2014-02-06 19:06:08 +01:00
Max Kellermann
ad309cdeae
SongUpdate: make variables more local
2014-02-06 18:58:56 +01:00
Max Kellermann
e4322a716c
input/nfs: new plugin using libnfs
2014-02-06 18:37:27 +01:00
Max Kellermann
957beeb0e9
storage/smbclient: Storage implementation using libsmbclient
2014-02-06 07:19:14 +01:00
Max Kellermann
522ad4cca6
Instance: narrow "storage" to class Storage
2014-02-06 07:19:14 +01:00
Max Kellermann
dc76b24e5f
storage/local: OpenDirectory() returns StorageDirectoryReader*
2014-02-05 19:35:41 +01:00
Max Kellermann
e3e3053f32
storage/Interface: explicitly delete copy constructors
2014-02-05 19:30:58 +01:00
Max Kellermann
c8c3f20840
storage/local: move to src/storage/plugins/
2014-02-05 19:26:21 +01:00
Max Kellermann
f6682aae77
db/update: include StorageInterface.hxx instead of LocalStorage.hxx
2014-02-05 19:26:18 +01:00
Max Kellermann
0ba1b73395
storage: add abstract interface
...
Prepare for the plugin interface.
2014-02-05 18:53:51 +01:00
Max Kellermann
4c995eb498
db/UpdateWalk: move LocalStorage to Instance
...
Keep only a reference.
2014-02-05 17:58:13 +01:00
Max Kellermann
144cfe70bf
db/update/Remove: initialize attribute "removed_song"
...
Fixes bogus assertion failure.
2014-02-05 17:58:13 +01:00
Max Kellermann
855f26c43d
Mixer: use reference instead of pointer for MixerPlugin
2014-02-05 17:25:47 +01:00
Max Kellermann
f86e159536
Mixer: rename struct mixer_plugin to MixerPlugin
2014-02-05 17:22:34 +01:00
Max Kellermann
243c4e1e83
Main: remove unused global variable "main_thread"
2014-02-05 17:04:16 +01:00
Max Kellermann
9ae7f186bc
LocalStorage: new API abstracting filesystem walk
...
Prepare to make this a new plugin API, for example to use a SMB share
for the music_directory.
2014-02-05 10:04:03 +01:00