From 364c7ca21eae4dd7262c945f1feb10f136c3d064 Mon Sep 17 00:00:00 2001 From: Thomas Karpiniec Date: Thu, 29 May 2025 12:21:07 +1000 Subject: [PATCH] Clear playback properly when cancelling Without this, a subsequent Play() can hang (PTT lock-up!) --- radio/main.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/radio/main.go b/radio/main.go index 85d15b1..5edd54e 100644 --- a/radio/main.go +++ b/radio/main.go @@ -330,16 +330,20 @@ entries: }))) } + aborting := false select { case <-done: log.Println("Audio playback complete") case <-cancel: - log.Println("Disengaging PTT and aborting playlist playback") - ptt.DisengagePTT() - break entries + log.Println("Playlist aborting as requested") + aborting = true } - log.Println("PTT off since audio file has finished") + speaker.Clear() + log.Println("PTT off") ptt.DisengagePTT() + if aborting { + break entries + } } log.Println("Playlist finished", playlist.Name) statusCollector.PlaylistBeginIdle <- true -- 2.39.5