playlist: move checks out of playlist_sync_with_queue()
Rename the function to playlist_song_started(), which gets only called if the song has actually started.
This commit is contained in:
parent
7f80349494
commit
cff727644d
@ -93,33 +93,33 @@ playlist_queue_song_order(struct playlist *playlist, unsigned order)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the player thread has already started playing the "queued"
|
* Called if the player thread has started playing the "queued" song.
|
||||||
* song.
|
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
playlist_sync_with_queue(struct playlist *playlist)
|
playlist_song_started(struct playlist *playlist)
|
||||||
{
|
{
|
||||||
if (pc.next_song == NULL && playlist->queued != -1) {
|
assert(pc.next_song == NULL);
|
||||||
/* queued song has started: copy queued to current,
|
assert(playlist->queued >= -1);
|
||||||
and notify the clients */
|
|
||||||
|
|
||||||
int current = playlist->current;
|
/* queued song has started: copy queued to current,
|
||||||
playlist->current = playlist->queued;
|
and notify the clients */
|
||||||
playlist->queued = -1;
|
|
||||||
|
|
||||||
/* Set pause and remove the single mode. */
|
int current = playlist->current;
|
||||||
if(playlist->queue.single && !playlist->queue.repeat) {
|
playlist->current = playlist->queued;
|
||||||
playlist->queue.single = false;
|
playlist->queued = -1;
|
||||||
idle_add(IDLE_OPTIONS);
|
|
||||||
|
|
||||||
pc_set_pause(true);
|
/* Set pause and remove the single mode. */
|
||||||
}
|
if(playlist->queue.single && !playlist->queue.repeat) {
|
||||||
|
playlist->queue.single = false;
|
||||||
|
idle_add(IDLE_OPTIONS);
|
||||||
|
|
||||||
if(playlist->queue.consume)
|
pc_set_pause(true);
|
||||||
playlist_delete(playlist, queue_order_to_position(&playlist->queue, current));
|
|
||||||
|
|
||||||
idle_add(IDLE_PLAYER);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(playlist->queue.consume)
|
||||||
|
playlist_delete(playlist, queue_order_to_position(&playlist->queue, current));
|
||||||
|
|
||||||
|
idle_add(IDLE_PLAYER);
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct song *
|
const struct song *
|
||||||
@ -228,7 +228,8 @@ playlist_sync(struct playlist *playlist)
|
|||||||
else {
|
else {
|
||||||
/* check if the player thread has already started
|
/* check if the player thread has already started
|
||||||
playing the queued song */
|
playing the queued song */
|
||||||
playlist_sync_with_queue(playlist);
|
if (pc.next_song == NULL && playlist->queued != -1)
|
||||||
|
playlist_song_started(playlist);
|
||||||
|
|
||||||
/* make sure the queued song is always set (if
|
/* make sure the queued song is always set (if
|
||||||
possible) */
|
possible) */
|
||||||
|
Loading…
Reference in New Issue
Block a user