After this PR, I think we have a decent design for media control commands:
any device that plays media (speaker) should register itself with the audio controller as a player
any device that is a source of media (spotify) should register itself with the audio controller when it starts playing
The audio controller routes the commands when they do not specify which device the command is meant for, based on the conversation the command came from (that is, if you say "pause", it pauses the speaker where you say that).
This allows multiple "satellite" speakers to be connected to the same Genie server.
The Home Assistant media player support is left out of this PR. It will need more work, but I think we at least have a design now.
This PR supersedes #396 and the pause/resume part of https://github.com/stanford-oval/genie-toolkit/pull/622 It depends on https://github.com/stanford-oval/genie-toolkit/pull/792
After this PR, I think we have a decent design for media control commands:
The audio controller routes the commands when they do not specify which device the command is meant for, based on the conversation the command came from (that is, if you say "pause", it pauses the speaker where you say that). This allows multiple "satellite" speakers to be connected to the same Genie server.
The Home Assistant media player support is left out of this PR. It will need more work, but I think we at least have a design now.