Commit 9af470c9 authored by Max Kellermann's avatar Max Kellermann

Playlist: add method SongStarted()

Empty currently, but code will be added song.
parent ac8c1d0a
...@@ -60,6 +60,12 @@ playlist::QueueSongOrder(PlayerControl &pc, unsigned order) ...@@ -60,6 +60,12 @@ playlist::QueueSongOrder(PlayerControl &pc, unsigned order)
pc.EnqueueSong(new DetachedSong(song)); pc.EnqueueSong(new DetachedSong(song));
} }
void
playlist::SongStarted()
{
assert(current >= 0);
}
inline void inline void
playlist::QueuedSongStarted(PlayerControl &pc) playlist::QueuedSongStarted(PlayerControl &pc)
{ {
...@@ -78,6 +84,8 @@ playlist::QueuedSongStarted(PlayerControl &pc) ...@@ -78,6 +84,8 @@ playlist::QueuedSongStarted(PlayerControl &pc)
DeleteOrder(pc, old_current); DeleteOrder(pc, old_current);
idle_add(IDLE_PLAYER); idle_add(IDLE_PLAYER);
SongStarted();
} }
const DetachedSong * const DetachedSong *
...@@ -152,6 +160,8 @@ playlist::PlayOrder(PlayerControl &pc, int order) ...@@ -152,6 +160,8 @@ playlist::PlayOrder(PlayerControl &pc, int order)
pc.Play(new DetachedSong(song)); pc.Play(new DetachedSong(song));
current = order; current = order;
SongStarted();
} }
void void
......
...@@ -135,6 +135,17 @@ protected: ...@@ -135,6 +135,17 @@ protected:
void OnModified(); void OnModified();
/** /**
* Called when playback of a new song starts. Unlike
* QueuedSongStarted(), this also gets called when the user
* manually switches to another song. It may be used for
* playlist fixups.
*
* The song being started is specified by the #current
* attribute.
*/
void SongStarted();
/**
* Updates the "queued song". Calculates the next song * Updates the "queued song". Calculates the next song
* according to the current one (if MPD isn't playing, it * according to the current one (if MPD isn't playing, it
* takes the first song), and queues this song. Clears the * takes the first song), and queues this song. Clears the
...@@ -152,7 +163,8 @@ protected: ...@@ -152,7 +163,8 @@ protected:
/** /**
* Called when the player thread has started playing the * Called when the player thread has started playing the
* "queued" song. * "queued" song, i.e. it has switched from one song to the
* next automatically.
*/ */
void QueuedSongStarted(PlayerControl &pc); void QueuedSongStarted(PlayerControl &pc);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment