diff options
author | Max Kellermann <max@duempel.org> | 2014-11-26 08:49:19 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-11-26 08:49:19 +0100 |
commit | 9af470c92dd7dab57740fff266e5fd49f437572d (patch) | |
tree | 210509cd511b9193e278b3a5d27fbbb47be2252e /src/queue | |
parent | ac8c1d0a0145a420e88ee16d9e7584b0dfcfe82d (diff) |
Playlist: add method SongStarted()
Empty currently, but code will be added song.
Diffstat (limited to 'src/queue')
-rw-r--r-- | src/queue/Playlist.cxx | 10 | ||||
-rw-r--r-- | src/queue/Playlist.hxx | 14 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/queue/Playlist.cxx b/src/queue/Playlist.cxx index 0dc36f5e7..4419d6e6e 100644 --- a/src/queue/Playlist.cxx +++ b/src/queue/Playlist.cxx @@ -60,6 +60,12 @@ playlist::QueueSongOrder(PlayerControl &pc, unsigned order) pc.EnqueueSong(new DetachedSong(song)); } +void +playlist::SongStarted() +{ + assert(current >= 0); +} + inline void playlist::QueuedSongStarted(PlayerControl &pc) { @@ -78,6 +84,8 @@ playlist::QueuedSongStarted(PlayerControl &pc) DeleteOrder(pc, old_current); idle_add(IDLE_PLAYER); + + SongStarted(); } const DetachedSong * @@ -152,6 +160,8 @@ playlist::PlayOrder(PlayerControl &pc, int order) pc.Play(new DetachedSong(song)); current = order; + + SongStarted(); } void diff --git a/src/queue/Playlist.hxx b/src/queue/Playlist.hxx index fb75377f0..ab8fbe2d4 100644 --- a/src/queue/Playlist.hxx +++ b/src/queue/Playlist.hxx @@ -135,6 +135,17 @@ protected: 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 * according to the current one (if MPD isn't playing, it * takes the first song), and queues this song. Clears the @@ -152,7 +163,8 @@ protected: /** * 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); |