aboutsummaryrefslogtreecommitdiffstats
path: root/src/player.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/player.c')
-rw-r--r--src/player.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/player.c b/src/player.c
index cda88fff4..587a5501d 100644
--- a/src/player.c
+++ b/src/player.c
@@ -474,10 +474,12 @@ void playerCycleLogFiles() {
/* this actually creates a dupe of the current metadata */
Song * playerCurrentDecodeSong() {
static Song * song = NULL;
+ static char * prev = NULL;
PlayerControl * pc = &(getPlayerData()->playerControl);
if(pc->metadataState == PLAYER_METADATA_STATE_READ &&
- (!song || strcmp(song->utf8url, pc->currentUrl)))
+ ((!song || strcmp(song->utf8url, pc->currentUrl))
+ || (!prev || strcmp(prev,pc->metadata))))
{
if(song) freeJustSong(song);
song = newNullSong();
@@ -486,6 +488,7 @@ Song * playerCurrentDecodeSong() {
song->utf8url = strdup(pc->currentUrl);
if(pc->title >= 0) {
song->tag->title = strdup(pc->title + pc->metadata);
+ /*printf("player title: %s\n", song->tag->title);*/
}
if(pc->artist >= 0) {
song->tag->artist = strdup(pc->artist + pc->metadata);
@@ -494,11 +497,11 @@ Song * playerCurrentDecodeSong() {
song->tag->album = strdup(pc->album + pc->metadata);
}
validateUtf8Tag(song->tag);
+ if(prev) free(prev);
+ prev = strdup(pc->metadata);
resetPlayerMetadata();
return song;
}
return NULL;
}
-
-/* vim:set shiftwidth=4 tabstop=8 expandtab: */