fix adding songs to empty playlist

This commit is contained in:
unknown
2008-08-10 13:20:47 +02:00
parent 332c539528
commit 90c68b2298

View File

@@ -580,16 +580,17 @@ int main(int argc, char *argv[])
} }
case MPD_DATA_TYPE_SONG: case MPD_DATA_TYPE_SONG:
{ {
char *file = (char *)vNameList[ci].c_str(); string &file = vNameList[ci];
mpd_Song *test = mpd_database_get_fileinfo(conn, file); mpd_Song *test = mpd_database_get_fileinfo(conn, (char *) file.c_str());
if (test) if (test)
{ {
mpd_playlist_add(conn, file); mpd_playlist_add(conn, (char *) file.c_str());
Song &s = *vPlaylist.back(); Song s = test;
mpd_player_play_id(conn, s.GetID()); mpd_player_play_id(conn, s.GetID());
ShowMessage("Added to playlist: " + OmitBBCodes(DisplaySong(s))); ShowMessage("Added to playlist: " + OmitBBCodes(DisplaySong(s)));
mBrowser->Refresh(); mBrowser->Refresh();
} }
mpd_freeSong(test);
break; break;
} }
case MPD_DATA_TYPE_PLAYLIST: case MPD_DATA_TYPE_PLAYLIST:
@@ -898,16 +899,16 @@ int main(int argc, char *argv[])
default: default:
{ {
int ci = mSearcher->GetRealChoice()-1; int ci = mSearcher->GetRealChoice()-1;
char *file = (char *)vSearched[ci-1].GetFile().c_str(); const string &file = vSearched[ci-1].GetFile();
mpd_Song *test = mpd_database_get_fileinfo(conn, file); mpd_Song *test = mpd_database_get_fileinfo(conn, (char *) file.c_str());
if (test) if (test)
{ {
mpd_playlist_add(conn, file); mpd_playlist_add(conn, (char *) file.c_str());
Song &s = *vPlaylist.back(); Song s = test;
mpd_player_play_id(conn, s.GetID()); mpd_player_play_id(conn, s.GetID());
ShowMessage("Added to playlist: " + OmitBBCodes(DisplaySong(s))); ShowMessage("Added to playlist: " + OmitBBCodes(DisplaySong(s)));
mSearcher->Refresh();
} }
mpd_freeSong(test);
break; break;
} }
} }
@@ -1012,10 +1013,15 @@ int main(int argc, char *argv[])
} }
case MPD_DATA_TYPE_SONG: case MPD_DATA_TYPE_SONG:
{ {
mpd_playlist_queue_add(conn, (char *) vNameList[ci].c_str()); mpd_Song *test = mpd_database_get_fileinfo(conn, (char *) vNameList[ci].c_str());
Song &s = *vPlaylist.back(); if (test)
ShowMessage("Added to playlist: " + OmitBBCodes(DisplaySong(s))); {
mpd_playlist_queue_commit(conn); mpd_playlist_queue_add(conn, (char *) vNameList[ci].c_str());
Song s = test;
ShowMessage("Added to playlist: " + OmitBBCodes(DisplaySong(s)));
mpd_playlist_queue_commit(conn);
}
mpd_freeSong(test);
break; break;
} }
case MPD_DATA_TYPE_PLAYLIST: case MPD_DATA_TYPE_PLAYLIST: