From e1ef8cd31f823349ad189ca7fdfb326cba430ba4 Mon Sep 17 00:00:00 2001 From: Nonoo Date: Fri, 30 Oct 2020 16:21:26 +0100 Subject: [PATCH] Deinit default audio output --- audio-linux.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/audio-linux.go b/audio-linux.go index 81e275d..6ef6400 100644 --- a/audio-linux.go +++ b/audio-linux.go @@ -43,15 +43,19 @@ type audioStruct struct { var audio audioStruct +func (a *audioStruct) defaultSoundCardStreamDeinit() { + _ = a.defaultSoundCardStream.Drain() + a.defaultSoundCardStream.Free() + a.defaultSoundCardStream = nil +} + func (a *audioStruct) togglePlaybackToDefaultSoundcard() { if a.defaultSoundCardStream == nil { log.Print("turned on audio playback") ss := pulse.SampleSpec{Format: pulse.SAMPLE_S16LE, Rate: 48000, Channels: 1} a.defaultSoundCardStream, _ = pulse.Playback("kappanhang", a.devName, &ss) } else { - _ = a.defaultSoundCardStream.Drain() - a.defaultSoundCardStream.Free() - a.defaultSoundCardStream = nil + a.defaultSoundCardStreamDeinit() log.Print("turned off audio playback") } } @@ -89,6 +93,9 @@ func (a *audioStruct) playLoop(deinitNeededChan, deinitFinishedChan chan bool) { case <-a.togglePlaybackToDefaultSoundcardChan: a.togglePlaybackToDefaultSoundcard() case <-deinitNeededChan: + if a.defaultSoundCardStream != nil { + a.defaultSoundCardStreamDeinit() + } deinitFinishedChan <- true return }