diff options
author | xengineering <me@xengineering.eu> | 2024-10-08 20:46:45 +0200 |
---|---|---|
committer | xengineering <me@xengineering.eu> | 2024-10-08 20:46:45 +0200 |
commit | 0dd945ae968e8d15e6adec71c5a598a39acf18dd (patch) | |
tree | 0648ac2981d495c33dd3ae2588c727f59f590b3c | |
parent | 5c1f2517a9ccabddc155b4ffb6eb82d3465d527b (diff) | |
download | soundbox-app-0dd945ae968e8d15e6adec71c5a598a39acf18dd.tar soundbox-app-0dd945ae968e8d15e6adec71c5a598a39acf18dd.tar.zst soundbox-app-0dd945ae968e8d15e6adec71c5a598a39acf18dd.zip |
Add config option "enabled"
This allows to disable soundbox devices inside the configuration file.
Thus the MAC address can be kept inside the config while the device does
not have to be reachable during usage of the app.
Later the GUI should be able to change this during runtime.
-rw-r--r-- | config.go | 17 | ||||
-rw-r--r-- | main.go | 4 |
2 files changed, 13 insertions, 8 deletions
@@ -12,8 +12,9 @@ const configPathRelative = `.config/soundbox/config.json` type Config struct { Soundboxes []struct { - Name string - Mac net.HardwareAddr + Name string + Mac net.HardwareAddr + Enabled bool } URLs []struct { Name string @@ -24,8 +25,9 @@ type Config struct { func (config *Config) UnmarshalJSON(data []byte) error { var buffer struct { Soundboxes []struct { - Name string - Mac string + Name string + Mac string + Enabled bool } URLs []struct { Name string @@ -46,9 +48,10 @@ func (config *Config) UnmarshalJSON(data []byte) error { return err } parsed.Soundboxes = append(parsed.Soundboxes, struct { - Name string - Mac net.HardwareAddr - }{soundbox.Name, hwAddr}) + Name string + Mac net.HardwareAddr + Enabled bool + }{soundbox.Name, hwAddr, soundbox.Enabled}) } for _, url := range buffer.URLs { @@ -109,7 +109,9 @@ func (ui *Ui) HandleInputs(gtx layout.Context) { ui.State.PlayerContext, ui.State.PlayerCancel = context.WithCancel(context.Background()) var targets []net.HardwareAddr for _, entry := range ui.State.Config.Soundboxes { - targets = append(targets, net.HardwareAddr(entry.Mac)) + if entry.Enabled { + targets = append(targets, net.HardwareAddr(entry.Mac)) + } } go play(ui.State.PlayerContext, ui.State.UrlSelector.Value, targets, ui) } |