From 332c539528ad065de9a9cb74a18c4838ac8755b8 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 10 Aug 2008 05:09:47 +0200 Subject: [PATCH] another fix --- src/ncmpcpp.cpp | 20 +++++++++++++++++++- src/song.cpp | 6 +++--- src/status_checker.cpp | 8 ++++---- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp index cfdbd719..291486ea 100644 --- a/src/ncmpcpp.cpp +++ b/src/ncmpcpp.cpp @@ -1228,6 +1228,15 @@ int main(int argc, char *argv[]) mPlaylist->BoldOption(pos, 1); mPlaylist->BoldOption(pos+1, 0); } + else + { + if (pos-1 == now_playing) + { + now_playing++; + mPlaylist->BoldOption(pos, 0); + mPlaylist->BoldOption(pos+1, 1); + } + } mPlaylist->UpdateOption(pos, DisplaySong(*vPlaylist[pos-1])); mPlaylist->UpdateOption(pos+1, DisplaySong(*vPlaylist[pos])); mpd_playlist_move_pos(conn, pos, pos-1); @@ -1245,8 +1254,17 @@ int main(int argc, char *argv[]) if (pos == now_playing) { now_playing++; - mPlaylist->BoldOption(pos+2, 1); mPlaylist->BoldOption(pos+1, 0); + mPlaylist->BoldOption(pos+2, 1); + } + else + { + if (pos+1 == now_playing) + { + now_playing--; + mPlaylist->BoldOption(pos+1, 1); + mPlaylist->BoldOption(pos+2, 0); + } } mPlaylist->UpdateOption(pos+2, DisplaySong(*vPlaylist[pos+1])); mPlaylist->UpdateOption(pos+1, DisplaySong(*vPlaylist[pos])); diff --git a/src/song.cpp b/src/song.cpp index 5313f70d..262e2bb3 100644 --- a/src/song.cpp +++ b/src/song.cpp @@ -111,9 +111,9 @@ void Song::Clear() //itsPerformer.clear(); //itsDisc.clear(); itsComment.clear(); - itsMinutesLength = 0;; - itsSecondsLength = 0;; - itsPosition = 0;; + itsMinutesLength = 0; + itsSecondsLength = 0; + itsPosition = 0; itsID = 0; } diff --git a/src/status_checker.cpp b/src/status_checker.cpp index deb0525f..dab6c16d 100644 --- a/src/status_checker.cpp +++ b/src/status_checker.cpp @@ -131,7 +131,7 @@ void NcmpcppStatusChanged(MpdObj *conn, ChangedStatusType what) wFooter->Bold(1); wFooter->GetXY(sx, sy); - if (now_playing != mpd_player_get_current_song_pos(conn) && !block_playlist_update) + if (now_playing != mpd_player_get_current_song_pos(conn) && what & MPD_CST_SONGID) { old_playing = now_playing; now_playing = mpd_player_get_current_song_pos(conn); @@ -194,6 +194,7 @@ void NcmpcppStatusChanged(MpdObj *conn, ChangedStatusType what) (*it)->GetEmptyFields(1); if (**it != ss) { + (*it)->GetEmptyFields(0); ss.GetEmptyFields(0); **it = ss; mPlaylist->UpdateOption(i, DisplaySong(ss)); @@ -394,10 +395,9 @@ void NcmpcppStatusChanged(MpdObj *conn, ChangedStatusType what) } if (what & MPD_CST_SONGID) { - int id = mpd_player_get_current_song_pos(conn); - if (!vPlaylist.empty() && id >= 0) + if (!vPlaylist.empty() && now_playing >= 0) { - Song &s = *vPlaylist[id]; + Song &s = *vPlaylist[now_playing]; if (!mPlaylist->Empty()) { if (old_playing >= 0)