add saving and deleting playlist
This commit is contained in:
@@ -469,6 +469,27 @@ void MPDConnection::CommitQueue()
|
|||||||
itsQueue.clear();
|
itsQueue.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MPDConnection::DeletePlaylist(const string &name)
|
||||||
|
{
|
||||||
|
if (isConnected)
|
||||||
|
{
|
||||||
|
mpd_sendRmCommand(itsConnection, name.c_str());
|
||||||
|
mpd_finishCommand(itsConnection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MPDConnection::SavePlaylist(const string &name)
|
||||||
|
{
|
||||||
|
if (isConnected)
|
||||||
|
{
|
||||||
|
mpd_sendSaveCommand(itsConnection, name.c_str());
|
||||||
|
mpd_finishCommand(itsConnection);
|
||||||
|
return !(itsConnection->error == MPD_ERROR_ACK && itsConnection->errorCode == MPD_ACK_ERROR_EXIST);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void MPDConnection::GetArtists(TagList &v) const
|
void MPDConnection::GetArtists(TagList &v) const
|
||||||
{
|
{
|
||||||
if (isConnected)
|
if (isConnected)
|
||||||
|
|||||||
@@ -137,6 +137,9 @@ class MPDConnection
|
|||||||
void QueueDeleteSongId(int);
|
void QueueDeleteSongId(int);
|
||||||
void CommitQueue();
|
void CommitQueue();
|
||||||
|
|
||||||
|
void DeletePlaylist(const string &);
|
||||||
|
bool SavePlaylist(const string &);
|
||||||
|
|
||||||
void StartSearch(bool) const;
|
void StartSearch(bool) const;
|
||||||
void AddSearch(mpd_TagItems, const string &) const;
|
void AddSearch(mpd_TagItems, const string &) const;
|
||||||
void CommitSearch(SongList &v) const;
|
void CommitSearch(SongList &v) const;
|
||||||
|
|||||||
@@ -490,7 +490,8 @@ int main(int argc, char *argv[])
|
|||||||
if (input == KEY_UP || input == KEY_DOWN || input == KEY_PPAGE || input == KEY_NPAGE || input == KEY_HOME || input == KEY_END)
|
if (input == KEY_UP || input == KEY_DOWN || input == KEY_PPAGE || input == KEY_NPAGE || input == KEY_HOME || input == KEY_END)
|
||||||
{
|
{
|
||||||
if (wCurrent == mLibArtists)
|
if (wCurrent == mLibArtists)
|
||||||
{ mLibAlbums->Reset();
|
{
|
||||||
|
mLibAlbums->Reset();
|
||||||
mLibSongs->Reset();
|
mLibSongs->Reset();
|
||||||
}
|
}
|
||||||
if (wCurrent == mLibAlbums)
|
if (wCurrent == mLibAlbums)
|
||||||
@@ -1217,7 +1218,7 @@ int main(int argc, char *argv[])
|
|||||||
block_statusbar_update = 0;
|
block_statusbar_update = 0;
|
||||||
if (in == 'y')
|
if (in == 'y')
|
||||||
{
|
{
|
||||||
//mpd_database_delete_playlist(conn, (char *) vBrowser[id].name.c_str());
|
Mpd->DeletePlaylist(vBrowser[id].name);
|
||||||
ShowMessage("Playlist " + vBrowser[id].name + " deleted!");
|
ShowMessage("Playlist " + vBrowser[id].name + " deleted!");
|
||||||
GetDirectory("/");
|
GetDirectory("/");
|
||||||
}
|
}
|
||||||
@@ -1244,12 +1245,11 @@ int main(int argc, char *argv[])
|
|||||||
Mpd->Pause();
|
Mpd->Pause();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*case 'S': // save playlist
|
case 'S': // save playlist
|
||||||
{
|
{
|
||||||
string playlist_name;
|
|
||||||
BLOCK_STATUSBAR_UPDATE;
|
BLOCK_STATUSBAR_UPDATE;
|
||||||
wFooter->WriteXY(0, Config.statusbar_visibility, "Save playlist as: ", 1);
|
wFooter->WriteXY(0, Config.statusbar_visibility, "Save playlist as: ", 1);
|
||||||
playlist_name = wFooter->GetString("", TraceMpdStatus);
|
string playlist_name = wFooter->GetString("", TraceMpdStatus);
|
||||||
UNBLOCK_STATUSBAR_UPDATE;
|
UNBLOCK_STATUSBAR_UPDATE;
|
||||||
if (playlist_name.find("/") != string::npos)
|
if (playlist_name.find("/") != string::npos)
|
||||||
{
|
{
|
||||||
@@ -1258,20 +1258,15 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
if (!playlist_name.empty())
|
if (!playlist_name.empty())
|
||||||
{
|
{
|
||||||
switch (mpd_database_save_playlist(conn, (char *) playlist_name.c_str()))
|
if (Mpd->SavePlaylist(playlist_name))
|
||||||
{
|
ShowMessage("Playlist saved as: " + playlist_name);
|
||||||
case MPD_OK:
|
else
|
||||||
ShowMessage("Playlist saved as: " + playlist_name);
|
ShowMessage("Playlist already exists!");
|
||||||
break;
|
|
||||||
case MPD_DATABASE_PLAYLIST_EXIST:
|
|
||||||
ShowMessage("Playlist already exists!");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (browsed_dir == "/" && !vBrowser.empty())
|
if (browsed_dir == "/" && !vBrowser.empty())
|
||||||
GetDirectory(browsed_dir);
|
GetDirectory(browsed_dir);
|
||||||
break;
|
break;
|
||||||
}*/
|
}
|
||||||
case 's': // stop
|
case 's': // stop
|
||||||
{
|
{
|
||||||
Mpd->Stop();
|
Mpd->Stop();
|
||||||
|
|||||||
@@ -451,6 +451,7 @@ void NcmpcppStatusChanged(MPDConnection *Mpd, MPDStatusChanges changed, void *da
|
|||||||
wFooter->Refresh();
|
wFooter->Refresh();
|
||||||
wFooter->AutoRefresh(1);
|
wFooter->AutoRefresh(1);
|
||||||
wFooter->EnableBB();
|
wFooter->EnableBB();
|
||||||
wCurrent->Refresh();
|
if (changed.SongID || changed.PlayerState)
|
||||||
|
wCurrent->Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user