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:
40
src/player.c
40
src/player.c
@@ -208,6 +208,15 @@ int playerWait(int fd)
|
|||||||
return 0;
|
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)
|
int playerPlay(int fd, Song * song)
|
||||||
{
|
{
|
||||||
PlayerControl *pc = &(getPlayerData()->playerControl);
|
PlayerControl *pc = &(getPlayerData()->playerControl);
|
||||||
@@ -215,14 +224,7 @@ int playerPlay(int fd, Song * song)
|
|||||||
if (playerStop(fd) < 0)
|
if (playerStop(fd) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (song->tag)
|
set_current_song(song);
|
||||||
pc->fileTime = song->tag->time;
|
|
||||||
else
|
|
||||||
pc->fileTime = 0;
|
|
||||||
|
|
||||||
copyMpdTagToMetadataChunk(song->tag, &(pc->fileMetadataChunk));
|
|
||||||
|
|
||||||
get_song_url(pc->utf8url, song);
|
|
||||||
|
|
||||||
pc->play = 1;
|
pc->play = 1;
|
||||||
if (playerInit() < 0) {
|
if (playerInit() < 0) {
|
||||||
@@ -395,15 +397,7 @@ int queueSong(Song * song)
|
|||||||
PlayerControl *pc = &(getPlayerData()->playerControl);
|
PlayerControl *pc = &(getPlayerData()->playerControl);
|
||||||
|
|
||||||
if (pc->queueState == PLAYER_QUEUE_BLANK) {
|
if (pc->queueState == PLAYER_QUEUE_BLANK) {
|
||||||
get_song_url(pc->utf8url, song);
|
set_current_song(song);
|
||||||
|
|
||||||
if (song->tag)
|
|
||||||
pc->fileTime = song->tag->time;
|
|
||||||
else
|
|
||||||
pc->fileTime = 0;
|
|
||||||
|
|
||||||
copyMpdTagToMetadataChunk(song->tag, &(pc->fileMetadataChunk));
|
|
||||||
|
|
||||||
pc->queueState = PLAYER_QUEUE_FULL;
|
pc->queueState = PLAYER_QUEUE_FULL;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -462,16 +456,8 @@ int playerSeek(int fd, Song * song, float time)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp(pc->utf8url, get_song_url(path_max_tmp, song)) != 0) {
|
if (strcmp(pc->utf8url, get_song_url(path_max_tmp, song)) != 0)
|
||||||
if (song->tag)
|
set_current_song(song);
|
||||||
pc->fileTime = song->tag->time;
|
|
||||||
else
|
|
||||||
pc->fileTime = 0;
|
|
||||||
|
|
||||||
copyMpdTagToMetadataChunk(song->tag, &(pc->fileMetadataChunk));
|
|
||||||
|
|
||||||
strcpy(pc->utf8url, path_max_tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pc->error == PLAYER_ERROR_NOERROR) {
|
if (pc->error == PLAYER_ERROR_NOERROR) {
|
||||||
resetPlayerMetadata();
|
resetPlayerMetadata();
|
||||||
|
Reference in New Issue
Block a user