Playlist: move playlist_song_started() into the class

This commit is contained in:
Max Kellermann 2014-11-25 19:21:22 +01:00
parent 2e7153d8d6
commit 8aa4a66ba0
2 changed files with 15 additions and 12 deletions

View File

@ -63,24 +63,21 @@ playlist_queue_song_order(playlist &playlist, PlayerControl &pc,
pc.EnqueueSong(new DetachedSong(song));
}
/**
* Called if the player thread has started playing the "queued" song.
*/
static void
playlist_song_started(playlist &playlist, PlayerControl &pc)
inline void
playlist::QueuedSongStarted(PlayerControl &pc)
{
assert(pc.next_song == nullptr);
assert(playlist.queued >= -1);
assert(queued >= -1);
/* queued song has started: copy queued to current,
and notify the clients */
int current = playlist.current;
playlist.current = playlist.queued;
playlist.queued = -1;
const int old_current = current;
current = queued;
queued = -1;
if(playlist.queue.consume)
playlist.DeleteOrder(pc, current);
if (queue.consume)
DeleteOrder(pc, old_current);
idle_add(IDLE_PLAYER);
}
@ -185,7 +182,7 @@ playlist::SyncWithPlayer(PlayerControl &pc)
/* check if the player thread has already started
playing the queued song */
if (pc_next_song == nullptr && queued != -1)
playlist_song_started(*this, pc);
QueuedSongStarted(pc);
pc.Lock();
pc_next_song = pc.next_song;

View File

@ -145,6 +145,12 @@ protected:
*/
void UpdateQueuedSong(PlayerControl &pc, const DetachedSong *prev);
/**
* Called when the player thread has started playing the
* "queued" song.
*/
void QueuedSongStarted(PlayerControl &pc);
public:
void BeginBulk();
void CommitBulk(PlayerControl &pc);