add helper to turn off group player when all childs power off
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 7 Apr 2022 08:31:54 +0000 (10:31 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 7 Apr 2022 08:31:54 +0000 (10:31 +0200)
music_assistant/models/player.py

index 4ea0b08d24523510f9738703c73d12abbb3885da..71fa85f7ebfc1a1da4f305a7dbf0ed6a65ee1d1a 100755 (executable)
@@ -345,12 +345,13 @@ class PlayerGroup(Player):
 
     def on_child_update(self, player_id: str, changed_keys: set) -> None:
         """Call when one of the child players of a playergroup updates."""
-        # convenience helper:
-        # power off group player if last child player turns off
-        powered_childs = set()
-        for child_id in self._attr_group_childs:
-            if player := self.mass.players.get_player(child_id):
-                if player.powered:
-                    powered_childs.add(child_id)
-        if self.powered and len(powered_childs) == 0:
-            self.mass.create_task(self.power(False))
+        if "power" in changed_keys:
+            # convenience helper:
+            # power off group player if last child player turns off
+            powered_childs = set()
+            for child_id in self._attr_group_childs:
+                if player := self.mass.players.get_player(child_id):
+                    if player.powered:
+                        powered_childs.add(child_id)
+            if self.powered and len(powered_childs) == 0:
+                self.mass.create_task(self.power(False))