From 7de5f9cef1dee812c4b312832635538c78b20d9d Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 3 Jan 2008 07:22:08 +0000 Subject: player.c: introduce set_current_song to avoid needless repetition git-svn-id: https://svn.musicpd.org/mpd/trunk@7126 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/player.c | 40 +++++++++++++--------------------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/src/player.c b/src/player.c index ef66229bc..b01753de2 100644 --- a/src/player.c +++ b/src/player.c @@ -208,6 +208,15 @@ int playerWait(int fd) return 0; } +static void set_current_song(Song *song) +{ + PlayerControl *pc = &(getPlayerData()->playerControl); + + pc->fileTime = song->tag ? song->tag->time : 0; + copyMpdTagToMetadataChunk(song->tag, &(pc->fileMetadataChunk)); + get_song_url(pc->utf8url, song); +} + int playerPlay(int fd, Song * song) { PlayerControl *pc = &(getPlayerData()->playerControl); @@ -215,14 +224,7 @@ int playerPlay(int fd, Song * song) if (playerStop(fd) < 0) return -1; - if (song->tag) - pc->fileTime = song->tag->time; - else - pc->fileTime = 0; - - copyMpdTagToMetadataChunk(song->tag, &(pc->fileMetadataChunk)); - - get_song_url(pc->utf8url, song); + set_current_song(song); pc->play = 1; if (playerInit() < 0) { @@ -395,15 +397,7 @@ int queueSong(Song * song) PlayerControl *pc = &(getPlayerData()->playerControl); if (pc->queueState == PLAYER_QUEUE_BLANK) { - get_song_url(pc->utf8url, song); - - if (song->tag) - pc->fileTime = song->tag->time; - else - pc->fileTime = 0; - - copyMpdTagToMetadataChunk(song->tag, &(pc->fileMetadataChunk)); - + set_current_song(song); pc->queueState = PLAYER_QUEUE_FULL; return 0; } @@ -462,16 +456,8 @@ int playerSeek(int fd, Song * song, float time) return -1; } - if (strcmp(pc->utf8url, get_song_url(path_max_tmp, song)) != 0) { - if (song->tag) - pc->fileTime = song->tag->time; - else - pc->fileTime = 0; - - copyMpdTagToMetadataChunk(song->tag, &(pc->fileMetadataChunk)); - - strcpy(pc->utf8url, path_max_tmp); - } + if (strcmp(pc->utf8url, get_song_url(path_max_tmp, song)) != 0) + set_current_song(song); if (pc->error == PLAYER_ERROR_NOERROR) { resetPlayerMetadata(); -- cgit v1.2.3