Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR removes modes from balenaSound as a user facing setting and replaces them with a mechanism that automatically upgrades the device to "multi-room" when possible; this is how it works:
sound-supervisor
starts it will check if the device is capable of being upgraded into "multi-room" mode. This is basically a check against a device-type blacklist that prevents the upgrade on low end devices.sound-supervisor
will update the audio routes and restartmultiroom-client
so it picks up the multiroom server address.Benefits
As a result of these changes the overall architecture is greatly simplified, most notably:
audio
service no longer depends onsound-supervisor
; audio routing is no longer dependent on which mode the device is on. This means in the event of asound-supervisor
startup failure the device will at least have the "standalone" fallback and will function adequately.sound-supervisor
but the services can startup regardless and won't be crash looping if it doesn't start:multiroom-server
no longer depends onsound-supervisor
multiroom-client
service only relies onsound-supervisor
to get the IP address of the multiroom master server, however it falls-back tolocalhost
if thesound-supervisor
is not available.Removing the service inter-dependency is a huge win in terms of support as currently the vast majority of support threads are related to it. Currently the service dependency chain is:
sound-supervisor
>audio
>multiroom-server
>multiroom-client
. Any one service failing to start will cause the application to fail.To-do
Change-type: major
Signed-off-by: Tomás Migone [email protected]