Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
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.
|
|
This adds experimental support for PipeWire which should be added to the
GUI too.
|
|
This makes streaming more robust and allows to stream via any / multiple
network interfaces.
|
|
|
|
This should fix long term time offset in playback between multiple
soundbox instances.
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
This is way more convenient than pasting a URL into an editor.
|
|
The old string "soundbox app" could lead to confusion. The repository
structure and the related longer names are not important for the user.
|
|
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.
|
|
|
|
|
|
|
|
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
|
|
|
|
The old name xengineering.eu/soundbox is now used by the corresponding
library.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|