Deinit default audio output

This commit is contained in:
Nonoo 2020-10-30 16:21:26 +01:00
parent eed09e0956
commit e1ef8cd31f

View file

@ -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
}