From: Marcel van der Veldt Date: Mon, 28 Oct 2024 11:02:03 +0000 (+0100) Subject: Fix: Group volume up/down not implemented X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=a1eede9b1675a52bb8cc3e03a95a449754e2255b;p=music-assistant-server.git Fix: Group volume up/down not implemented --- diff --git a/music_assistant/server/controllers/players.py b/music_assistant/server/controllers/players.py index 34f35f5c..8bf6e3ce 100644 --- a/music_assistant/server/controllers/players.py +++ b/music_assistant/server/controllers/players.py @@ -455,6 +455,44 @@ class PlayerController(CoreController): coros.append(self.cmd_volume_set(child_player.player_id, new_child_volume)) await asyncio.gather(*coros) + @api_command("players/cmd/group_volume_up") + @handle_player_command + async def cmd_group_volume_up(self, player_id: str) -> None: + """Send VOLUME_UP command to given playergroup. + + - player_id: player_id of the player to handle the command. + """ + group_player = self.get(player_id, True) + assert group_player + cur_volume = group_player.group_volume + if cur_volume < 5 or cur_volume > 95: + step_size = 1 + elif cur_volume < 20 or cur_volume > 80: + step_size = 2 + else: + step_size = 5 + new_volume = min(100, cur_volume + step_size) + await self.cmd_group_volume(player_id, new_volume) + + @api_command("players/cmd/group_volume_down") + @handle_player_command + async def cmd_group_volume_down(self, player_id: str) -> None: + """Send VOLUME_DOWN command to given playergroup. + + - player_id: player_id of the player to handle the command. + """ + group_player = self.get(player_id, True) + assert group_player + cur_volume = group_player.group_volume + if cur_volume < 5 or cur_volume > 95: + step_size = 1 + elif cur_volume < 20 or cur_volume > 80: + step_size = 2 + else: + step_size = 5 + new_volume = max(0, cur_volume - step_size) + await self.cmd_group_volume(player_id, new_volume) + @api_command("players/cmd/volume_mute") @handle_player_command async def cmd_volume_mute(self, player_id: str, muted: bool) -> None: