diff options
author | Max Kellermann <max@duempel.org> | 2014-02-07 20:22:26 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-02-07 21:44:50 +0100 |
commit | 297e2747f350aa0fbd941d4fccb0d3e09e3a49a9 (patch) | |
tree | f858e3194276ce0347378c726ac251d0b9b616eb /src/playlist/PlaylistMapper.cxx | |
parent | 77de23311792b6df7fb7b82ea5db3bc6643196fc (diff) | |
download | mpd-297e2747f350aa0fbd941d4fccb0d3e09e3a49a9.tar.gz mpd-297e2747f350aa0fbd941d4fccb0d3e09e3a49a9.tar.xz mpd-297e2747f350aa0fbd941d4fccb0d3e09e3a49a9.zip |
PlaylistMapper: use class Storage instead of Mapper.cxx
Diffstat (limited to 'src/playlist/PlaylistMapper.cxx')
-rw-r--r-- | src/playlist/PlaylistMapper.cxx | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/src/playlist/PlaylistMapper.cxx b/src/playlist/PlaylistMapper.cxx index 141e0563f..bbcbaf1fe 100644 --- a/src/playlist/PlaylistMapper.cxx +++ b/src/playlist/PlaylistMapper.cxx @@ -24,6 +24,7 @@ #include "PlaylistRegistry.hxx" #include "Mapper.hxx" #include "fs/AllocatedPath.hxx" +#include "storage/StorageInterface.hxx" #include "util/UriUtil.hxx" #include <assert.h> @@ -57,21 +58,32 @@ playlist_open_in_playlist_dir(const char *uri, Mutex &mutex, Cond &cond) * Load a playlist from the configured music directory. */ static SongEnumerator * -playlist_open_in_music_dir(const char *uri, Mutex &mutex, Cond &cond) +playlist_open_in_storage(const char *uri, const Storage *storage, + Mutex &mutex, Cond &cond) { assert(uri_safe_local(uri)); - const auto path = map_uri_fs(uri); - if (path.IsNull()) + if (storage == nullptr) return nullptr; - return playlist_open_path(path.c_str(), mutex, cond); + { + const auto path = storage->MapFS(uri); + if (!path.IsNull()) + return playlist_open_path(path.c_str(), mutex, cond); + } + + const auto uri2 = storage->MapUTF8(uri); + return playlist_open_remote(uri, mutex, cond); } #endif SongEnumerator * -playlist_mapper_open(const char *uri, Mutex &mutex, Cond &cond) +playlist_mapper_open(const char *uri, +#ifdef ENABLE_DATABASE + const Storage *storage, +#endif + Mutex &mutex, Cond &cond) { if (spl_valid_name(uri)) { auto playlist = playlist_open_in_playlist_dir(uri, @@ -82,7 +94,8 @@ playlist_mapper_open(const char *uri, Mutex &mutex, Cond &cond) #ifdef ENABLE_DATABASE if (uri_safe_local(uri)) { - auto playlist = playlist_open_in_music_dir(uri, mutex, cond); + auto playlist = playlist_open_in_storage(uri, storage, + mutex, cond); if (playlist != nullptr) return playlist; } |