diff options
-rw-r--r-- | src/player/Thread.cxx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/player/Thread.cxx b/src/player/Thread.cxx index 8261923c8..81248c826 100644 --- a/src/player/Thread.cxx +++ b/src/player/Thread.cxx @@ -162,6 +162,14 @@ public: elapsed_time(SongTime::zero()) {} private: + /** + * Reset cross-fading to the initial state. A check to + * re-enable it at an appropriate time will be scheduled. + */ + void ResetCrossFade() { + xfade_state = CrossFadeState::UNKNOWN; + } + void ClearAndDeletePipe() { pipe->Clear(buffer); delete pipe; @@ -591,7 +599,7 @@ Player::SeekDecoder() player_command_finished(pc); - xfade_state = CrossFadeState::UNKNOWN; + ResetCrossFade(); /* re-fill the buffer after seeking */ buffering = true; @@ -897,7 +905,7 @@ Player::PlayNextChunk() inline bool Player::SongBorder() { - xfade_state = CrossFadeState::UNKNOWN; + ResetCrossFade(); FormatDefault(player_domain, "played \"%s\"", song->GetURI()); |