@@ -419,7 +419,7 @@ async def async_cmd_power_off(self, player_id: str) -> None:
419419 for child_player_id in player .group_childs :
420420 child_player = self .get_player (child_player_id )
421421 if child_player and child_player .powered :
422- await self .async_cmd_power_off (child_player_id )
422+ self .mass . add_job ( self . async_cmd_power_off (child_player_id ) )
423423 else :
424424 # if this was the last powered player in the group, turn off group
425425 for parent_player_id in player .group_parents :
@@ -433,9 +433,8 @@ async def async_cmd_power_off(self, player_id: str) -> None:
433433 child_player = self .get_player (child_player_id )
434434 if child_player and child_player .powered :
435435 has_powered_players = True
436- break
437436 if not has_powered_players :
438- await self .async_cmd_power_off (parent_player_id )
437+ self .mass . add_job ( self . async_cmd_power_off (parent_player_id ) )
439438
440439 async def async_cmd_power_toggle (self , player_id : str ):
441440 """
@@ -561,8 +560,10 @@ async def __async_create_player_state(self, player: Player):
561560 player_state = Player (player .player_id , player .provider_id )
562561 self ._players [player .player_id ] = player_state
563562 setattr (player_state , "_on_update" , self .__player_updated )
564- group_parents = self .__get_player_group_parents (player )
565- active_queue = self .__get_player_active_queue (player , group_parents )
563+ player_state .group_parents = self .__get_player_group_parents (player )
564+ active_queue = self .__get_player_active_queue (
565+ player , player_state .group_parents
566+ )
566567 player_state .name = self .__get_player_name (player )
567568 player_state .powered = self .__get_player_power_state (player )
568569 if active_queue != player .player_id :
0 commit comments