aboutsummaryrefslogtreecommitdiffstats
path: root/src/playlist/PlaylistMapper.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-02-07 20:22:26 +0100
committerMax Kellermann <max@duempel.org>2014-02-07 21:44:50 +0100
commit297e2747f350aa0fbd941d4fccb0d3e09e3a49a9 (patch)
treef858e3194276ce0347378c726ac251d0b9b616eb /src/playlist/PlaylistMapper.cxx
parent77de23311792b6df7fb7b82ea5db3bc6643196fc (diff)
downloadmpd-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.cxx25
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;
}