add saving and deleting playlist

This commit is contained in:
unknown
2008-08-17 22:39:25 +02:00
parent bdb9adc4c3
commit e98cd9962c
4 changed files with 36 additions and 16 deletions

View File

@@ -469,6 +469,27 @@ void MPDConnection::CommitQueue()
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
{
if (isConnected)

View File

@@ -137,6 +137,9 @@ class MPDConnection
void QueueDeleteSongId(int);
void CommitQueue();
void DeletePlaylist(const string &);
bool SavePlaylist(const string &);
void StartSearch(bool) const;
void AddSearch(mpd_TagItems, const string &) const;
void CommitSearch(SongList &v) const;

View File

@@ -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 (wCurrent == mLibArtists)
{ mLibAlbums->Reset();
{
mLibAlbums->Reset();
mLibSongs->Reset();
}
if (wCurrent == mLibAlbums)
@@ -1217,7 +1218,7 @@ int main(int argc, char *argv[])
block_statusbar_update = 0;
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!");
GetDirectory("/");
}
@@ -1244,12 +1245,11 @@ int main(int argc, char *argv[])
Mpd->Pause();
break;
}
/*case 'S': // save playlist
case 'S': // save playlist
{
string playlist_name;
BLOCK_STATUSBAR_UPDATE;
wFooter->WriteXY(0, Config.statusbar_visibility, "Save playlist as: ", 1);
playlist_name = wFooter->GetString("", TraceMpdStatus);
string playlist_name = wFooter->GetString("", TraceMpdStatus);
UNBLOCK_STATUSBAR_UPDATE;
if (playlist_name.find("/") != string::npos)
{
@@ -1258,20 +1258,15 @@ int main(int argc, char *argv[])
}
if (!playlist_name.empty())
{
switch (mpd_database_save_playlist(conn, (char *) playlist_name.c_str()))
{
case MPD_OK:
ShowMessage("Playlist saved as: " + playlist_name);
break;
case MPD_DATABASE_PLAYLIST_EXIST:
ShowMessage("Playlist already exists!");
break;
}
if (Mpd->SavePlaylist(playlist_name))
ShowMessage("Playlist saved as: " + playlist_name);
else
ShowMessage("Playlist already exists!");
}
if (browsed_dir == "/" && !vBrowser.empty())
GetDirectory(browsed_dir);
break;
}*/
}
case 's': // stop
{
Mpd->Stop();

View File

@@ -451,6 +451,7 @@ void NcmpcppStatusChanged(MPDConnection *Mpd, MPDStatusChanges changed, void *da
wFooter->Refresh();
wFooter->AutoRefresh(1);
wFooter->EnableBB();
wCurrent->Refresh();
if (changed.SongID || changed.PlayerState)
wCurrent->Refresh();
}