Fix child players get stuck on zero volume (#867)
authorOzGav <gavnosp@hotmail.com>
Fri, 27 Oct 2023 13:52:08 +0000 (23:52 +1000)
committerGitHub <noreply@github.com>
Fri, 27 Oct 2023 13:52:08 +0000 (15:52 +0200)
music_assistant/server/controllers/players.py

index 6a8385a859be6dbdd72f0074ee6ff16f92e7d2d0..6e1ecb358693d21430328154bfd3d31737e63da0 100755 (executable)
@@ -460,11 +460,12 @@ class PlayerController(CoreController):
         cur_volume = group_player.group_volume
         new_volume = volume_level
         volume_dif = new_volume - cur_volume
-        volume_dif_percent = 1 + new_volume / 100 if cur_volume == 0 else volume_dif / cur_volume
         coros = []
         for child_player in self._get_child_players(group_player, True):
             cur_child_volume = child_player.volume_level
-            new_child_volume = int(cur_child_volume + (cur_child_volume * volume_dif_percent))
+            new_child_volume = int(cur_child_volume + volume_dif)
+            new_child_volume = max(0, new_child_volume)
+            new_child_volume = min(100, new_child_volume)
             coros.append(self.cmd_volume_set(child_player.player_id, new_child_volume))
         await asyncio.gather(*coros)