aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/PlaylistFile.cxx27
-rw-r--r--src/PlaylistFile.hxx5
-rw-r--r--src/command/PlaylistCommands.cxx9
3 files changed, 16 insertions, 25 deletions
diff --git a/src/PlaylistFile.cxx b/src/PlaylistFile.cxx
index 11d5fc302..a729ac8a0 100644
--- a/src/PlaylistFile.cxx
+++ b/src/PlaylistFile.cxx
@@ -22,8 +22,8 @@
#include "PlaylistSave.hxx"
#include "db/PlaylistInfo.hxx"
#include "db/PlaylistVector.hxx"
-#include "db/DatabaseSong.hxx"
#include "DetachedSong.hxx"
+#include "SongLoader.hxx"
#include "Mapper.hxx"
#include "fs/TextFile.hxx"
#include "config/ConfigGlobal.hxx"
@@ -402,24 +402,17 @@ spl_append_song(const char *utf8path, const DetachedSong &song, Error &error)
}
bool
-spl_append_uri(const char *utf8file, const char *url, Error &error)
+spl_append_uri(const char *utf8file,
+ const SongLoader &loader, const char *url,
+ Error &error)
{
- if (uri_has_scheme(url)) {
- return spl_append_song(utf8file, DetachedSong(url),
- error);
- } else {
-#ifdef ENABLE_DATABASE
- DetachedSong *song = DatabaseDetachSong(url, error);
- if (song == nullptr)
- return false;
-
- bool success = spl_append_song(utf8file, *song, error);
- delete song;
- return success;
-#else
+ DetachedSong *song = loader.LoadSong(url, error);
+ if (song == nullptr)
return false;
-#endif
- }
+
+ bool success = spl_append_song(utf8file, *song, error);
+ delete song;
+ return success;
}
static bool
diff --git a/src/PlaylistFile.hxx b/src/PlaylistFile.hxx
index 75aba71d4..7154b1f84 100644
--- a/src/PlaylistFile.hxx
+++ b/src/PlaylistFile.hxx
@@ -24,6 +24,7 @@
#include <string>
class DetachedSong;
+class SongLoader;
class PlaylistVector;
class Error;
@@ -71,7 +72,9 @@ bool
spl_append_song(const char *utf8path, const DetachedSong &song, Error &error);
bool
-spl_append_uri(const char *path_utf8, const char *uri_utf8, Error &error);
+spl_append_uri(const char *path_utf8,
+ const SongLoader &loader, const char *uri_utf8,
+ Error &error);
bool
spl_rename(const char *utf8from, const char *utf8to, Error &error);
diff --git a/src/command/PlaylistCommands.cxx b/src/command/PlaylistCommands.cxx
index f624386a6..10dfff876 100644
--- a/src/command/PlaylistCommands.cxx
+++ b/src/command/PlaylistCommands.cxx
@@ -188,13 +188,8 @@ handle_playlistadd(Client &client, gcc_unused int argc, char *argv[])
bool success;
Error error;
if (uri_has_scheme(uri)) {
- if (!uri_supported_scheme(uri)) {
- command_error(client, ACK_ERROR_NO_EXIST,
- "unsupported URI scheme");
- return CommandResult::ERROR;
- }
-
- success = spl_append_uri(playlist, uri, error);
+ const SongLoader loader(client);
+ success = spl_append_uri(playlist, loader, uri, error);
} else {
#ifdef ENABLE_DATABASE
success = search_add_to_playlist(uri, playlist, nullptr,