aboutsummaryrefslogtreecommitdiffstats
path: root/src/stored_playlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stored_playlist.c')
-rw-r--r--src/stored_playlist.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/stored_playlist.c b/src/stored_playlist.c
index 8b3b5de2c..1a8d64e5c 100644
--- a/src/stored_playlist.c
+++ b/src/stored_playlist.c
@@ -25,6 +25,7 @@
#include "ls.h"
#include "database.h"
#include "idle.h"
+#include "ack.h"
#include "os_compat.h"
static ListNode *
@@ -316,6 +317,27 @@ spl_append_song(const char *utf8path, struct song *song)
return PLAYLIST_RESULT_SUCCESS;
}
+int addToStoredPlaylist(const char *url, const char *utf8file)
+{
+ struct song *song;
+
+ song = db_get_song(url);
+ if (song)
+ return spl_append_song(utf8file, song);
+
+ if (!isValidRemoteUtf8Url(url))
+ return ACK_ERROR_NO_EXIST;
+
+ song = song_remote_new(url);
+ if (song) {
+ int ret = spl_append_song(utf8file, song);
+ song_free(song);
+ return ret;
+ }
+
+ return ACK_ERROR_NO_EXIST;
+}
+
enum playlist_result
spl_rename(const char *utf8from, const char *utf8to)
{