summaryrefslogtreecommitdiff
path: root/main.go
AgeCommit message (Collapse)Author
2024-10-08Select URL with radio buttons based on configxengineering
This is way more convenient than pasting a URL into an editor.
2024-10-08Display only "soundbox" in window decorationxengineering
The old string "soundbox app" could lead to confusion. The repository structure and the related longer names are not important for the user.
2024-10-08Use only one Config structxengineering
This commit switches from a GlobalConfig struct with named sub-structs to a single struct definition with anonymous sub-structs. The advantage is that there are not so many names the reader has to understand. A custom UnmarshalJSON() function on the Config struct level ensures that the error checking can be embedded into the parsing process and native Go types like net.HardwareAddr can be used in the struct definition while the string-based struct for JSON unmarshaling is an implementation detail of the custom UnmarshalJSON() function. In general the user of this type and its method only has to parse the config with json.Unmarshal(), handle error at this step and can rely on validated configuration data with native Go types from that point on.
2024-10-07Parse config at startupxengineering
2024-10-06Switch from local playback to soundbox streamingxengineering
This commit replaces the local playback of the received audio content by forwarding it to one or multiple soundbox devices. For this purpose the soundbox-go[1] library is used. The target devices cannot be selected via the GUI. Thus all devices are specified in the ~/.config/soundbox/config.json file. The format has to be looked up based on the code. Further documentation will follow. [1]: https://xengineering.eu/git/soundbox-go
2024-09-29Add web radio player app as MVPxengineering
While streaming to soundbox devices is not supported this MVP is a working mpv-based GUI to play sound from web radio URLs on a Linux computer.