summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-12-15Update CHANGELOG.md for release v0.3.0HEADv0.3.0mainxengineering
2024-12-15Add experimental streaming with PipeWirexengineering
This allows to stream sound from a Linux PC with PipeWire sound system to soundboxes. Currently PipeWire capture nodes are used. They should be connected to the monitor output of the default sound sink manually.
2024-12-15Update to soundbox-go v0.2.1xengineering
This contains important bug fixes. Especially the ability to tear down a PipeWire capture node during runtime which is essentially to integrate this into the GUI.
2024-12-08Update to soundbox-go v0.2.0xengineering
This adds experimental support for PipeWire which should be added to the GUI too.
2024-11-29Update to soundbox-go v0.1.5xengineering
This makes streaming more robust and allows to stream via any / multiple network interfaces.
2024-11-10Update CHANGELOG.md for version 0.2.1v0.2.1xengineering
2024-11-10Update to xengineering.eu/soundbox-go@v0.1.4xengineering
This should fix long term time offset in playback between multiple soundbox instances.
2024-11-08Update CHANGELOG.md for version 0.2.0v0.2.0xengineering
2024-11-08Fix README.mdxengineering
2024-11-08Fix zombie ffmpeg processxengineering
In case of closing the UI window while the player was active the `ffmpeg` process continued while soundbox-app was closed. This is highly unwanted behavior since the user is not able to stop it without advanced tools. Waiting properly for the player context to be done solves the issue.
2024-10-31Fix URLs in README.mdxengineering
2024-10-31Rename Go module to xengineering.eu/soundbox-appxengineering
This follows a similar naming scheme as the repository URL `https://cgit.xengineering.eu/soundbox-app` and is better than `xengineering.eu/soundbox/app` which was used before.
2024-10-08Add config option "enabled"xengineering
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.
2024-10-08Apply go fmtxengineering
2024-10-08Remove unnecessary state member PlayPauseButtonTextxengineering
It was never idiomatic to add this member. Instead the state should only contain a boolean state of playing or not and the text should be selected during rendering based on this variable.
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-07Allow URL configuration in config filexengineering
2024-10-07Remove checksums from go.sum for outdated versionsxengineering
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-10-03Update Go version 1.23.1xengineering
2024-10-03Switch to module name xengineering.eu/soundbox/appxengineering
The old name xengineering.eu/soundbox is now used by the corresponding library.
2024-10-03Add CHANGELOG.md for version 0.1.0 releasev0.1.00.1.0xengineering
2024-10-03Update documentation in README.mdxengineering
2024-09-29Add basic usage instructionsxengineering
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.
2024-09-29Add LICENSE.txtxengineering
2024-09-29Add README.mdxengineering