aboutsummaryrefslogtreecommitdiffstats
path: root/src/playlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/playlist.c')
-rw-r--r--src/playlist.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/playlist.c b/src/playlist.c
index 429bfe903..4d9c0da96 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -735,23 +735,22 @@ int playPlaylist(FILE * fp, int song, int stopOnError) {
}
void syncCurrentPlayerDecodeMetadata() {
- long i = 0;
Song * songPlayer = playerCurrentDecodeSong();
Song * song;
if(!songPlayer) return;
- for(i=0; i<playlist.length; i++) {
- song = playlist.songs[i];
+ if(playlist_state!=PLAYLIST_STATE_PLAY);
- if(song->type == SONG_TYPE_URL &&
- 0 == strcmp(song->utf8url,
- songPlayer->utf8url))
- {
- if(song->tag) freeMpdTag(song->tag);
- song->tag = mpdTagDup(songPlayer->tag);
- incrPlaylistVersion();
- }
+ song = playlist.songs[playlist.order[playlist.current]];
+
+ if(song->type == SONG_TYPE_URL &&
+ 0 == strcmp(song->utf8url, songPlayer->utf8url) &&
+ !mpdTagsAreEqual(song->tag, songPlayer->tag))
+ {
+ if(song->tag) freeMpdTag(song->tag);
+ song->tag = mpdTagDup(songPlayer->tag);
+ incrPlaylistVersion();
}
}