From 68b7456b3153ce4f554290caca0efe8aa37efb1f Mon Sep 17 00:00:00 2001 From: Siiiiinth <60766886+Siiiiinth@users.noreply.github.com> Date: Fri, 26 Dec 2025 23:09:44 +0100 Subject: [PATCH] fixed stopAfterCurrent bug --- backend/playbackengine.go | 7 +------ backend/playbackmanager.go | 5 +++++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/playbackengine.go b/backend/playbackengine.go index 988743c..e870c8f 100644 --- a/backend/playbackengine.go +++ b/backend/playbackengine.go @@ -339,11 +339,6 @@ func (p *playbackEngine) Stop() error { func (p *playbackEngine) SetStopAfterCurrent(stopAfterCurrent bool) { p.stopAfterCurrent = stopAfterCurrent - if p.stopAfterCurrent { - p.setNextTrack(-1) // clear next playing track from internal player, if any - } else if p.loopMode != LoopNone || p.nowPlayingIdx < len(p.playQueue)-1 { - p.needToSetNextTrack = true // need to restore next track to internal player queue - } } func (p *playbackEngine) Pause() error { @@ -868,7 +863,7 @@ func (p *playbackEngine) handleTimePosUpdate(seeked bool) { meta = np.Metadata() } isNearEnd := meta.Type != mediaprovider.MediaItemTypeRadioStation && s.TimePos > meta.Duration.Seconds()-10 - if p.needToSetNextTrack && !p.stopAfterCurrent && isNearEnd { + if p.needToSetNextTrack && isNearEnd { p.needToSetNextTrack = false p.setNextTrack(p.nextPlayingIndex()) } diff --git a/backend/playbackmanager.go b/backend/playbackmanager.go index 7da5eea..5055853 100644 --- a/backend/playbackmanager.go +++ b/backend/playbackmanager.go @@ -134,6 +134,11 @@ func (p *PlaybackManager) addOnTrackChangeHook() { log.Println("Play stall detected!") p.cmdQueue.addCommand(playbackCommand{Type: cmdForceRestartPlayback}) } + + if p.engine.stopAfterCurrent { + p.Pause() + p.engine.SetStopAfterCurrent(false) + } }() } })