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
This commit is contained in:
Eric Wong 2008-01-03 07:22:08 +00:00
parent 00e0224996
commit 7de5f9cef1
1 changed files with 13 additions and 27 deletions

View File

@ -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();