add settings UI to choose audio device

This commit is contained in:
Drew Weymouth
2023-04-05 18:52:29 -07:00
parent d6a84c78a1
commit 6334598507
2 changed files with 44 additions and 7 deletions
+11 -1
View File
@@ -5,6 +5,7 @@ import (
"log"
"strconv"
"supersonic/backend"
"supersonic/player"
"supersonic/ui/dialogs"
"supersonic/ui/util"
"supersonic/ui/widgets"
@@ -305,13 +306,22 @@ func (c *Controller) ShowAboutDialog() {
}
func (c *Controller) ShowSettingsDialog() {
dlg := dialogs.NewSettingsDialog(c.App.Config)
devs, err := c.App.Player.ListAudioDevices()
if err != nil {
log.Printf("error listing audio devices: %v", err)
devs = []player.AudioDevice{{Name: "auto", Description: "Autoselect device"}}
}
dlg := dialogs.NewSettingsDialog(c.App.Config, devs)
dlg.OnReplayGainSettingsChanged = func() {
c.App.PlaybackManager.SetReplayGainOptions(c.App.Config.ReplayGain)
}
dlg.OnAudioExclusiveSettingChanged = func() {
c.App.Player.SetAudioExclusive(c.App.Config.LocalPlayback.AudioExclusive)
}
dlg.OnAudioDeviceSettingChanged = func() {
c.App.Player.SetAudioDevice(c.App.Config.LocalPlayback.AudioDeviceName)
}
pop := widget.NewModalPopUp(dlg, c.MainWindow.Canvas())
dlg.OnDismiss = func() {
pop.Hide()