From c63780e6e624985b67ecbdac43ca6d896bfb84b0 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Mon, 23 Aug 2010 17:12:56 +0200 Subject: [PATCH] support adding last.fm streams to playlist --- src/mpdpp.cpp | 9 +++++++++ src/mpdpp.h | 1 + src/ncmpcpp.cpp | 10 +++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/mpdpp.cpp b/src/mpdpp.cpp index b86cb012..7dde3208 100644 --- a/src/mpdpp.cpp +++ b/src/mpdpp.cpp @@ -1027,6 +1027,15 @@ bool MPD::Connection::DeletePlaylist(const std::string &name) } } +bool MPD::Connection::LoadPlaylist(const std::string &name) +{ + if (!itsConnection) + return false; + assert(!isCommandsListEnabled); + GoBusy(); + return mpd_run_load(itsConnection, name.c_str()); +} + int MPD::Connection::SavePlaylist(const std::string &name) { if (!itsConnection) diff --git a/src/mpdpp.h b/src/mpdpp.h index 6804db4b..1377ee17 100644 --- a/src/mpdpp.h +++ b/src/mpdpp.h @@ -184,6 +184,7 @@ namespace MPD bool CommitCommandsList(); bool DeletePlaylist(const std::string &); + bool LoadPlaylist(const std::string &name); int SavePlaylist(const std::string &); void ClearPlaylist(const std::string &); void AddToPlaylist(const std::string &, const Song &); diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp index 84ffc2a7..af0aa3c7 100644 --- a/src/ncmpcpp.cpp +++ b/src/ncmpcpp.cpp @@ -1235,13 +1235,21 @@ int main(int argc, char *argv[]) UnlockStatusbar(); if (!path.empty()) { + Statusbar() << "Adding..."; + wFooter->Refresh(); if (myScreen == myPlaylistEditor) { Mpd.AddToPlaylist(myPlaylistEditor->Playlists->Current(), path); myPlaylistEditor->Content->Clear(); // make it refetch content of playlist } else - Mpd.Add(path); + { + static const char lastfm_url[] = "lastfm://"; + if (path.compare(0, static_strlen(lastfm_url), lastfm_url) == 0) + Mpd.LoadPlaylist(path); + else + Mpd.Add(path); + } UpdateStatusImmediately = 1; } }