From b311fc997659742a5d8bca28894b8a492e05d605 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Sat, 19 Oct 2024 01:43:08 +0200 Subject: [PATCH] some small tweaks and typos fixed --- .../server/providers/player_group/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/music_assistant/server/providers/player_group/__init__.py b/music_assistant/server/providers/player_group/__init__.py index 58ce7f72..8360af36 100644 --- a/music_assistant/server/providers/player_group/__init__.py +++ b/music_assistant/server/providers/player_group/__init__.py @@ -601,6 +601,7 @@ class PlayerGroupProvider(PlayerProvider): await player_provider.cmd_unsync(child_player.player_id) child_player.active_group = None child_player.active_source = None + group_player.group_childs = {x for x in group_player.group_childs if x != player_id} if is_sync_leader and was_playing: # unsyncing the sync leader will stop the group so we need to resume self.mass.call_later(2, self.mass.players.cmd_play, group_player.player_id) @@ -693,6 +694,14 @@ class PlayerGroupProvider(PlayerProvider): ): if child_player.group_childs: return child_player + # Return the (first/only) player + # this is to handle the edge case where players are not + # yet synced or there simply is just one player + for child_player in self.mass.players.iter_group_members( + group_player, only_powered=False, only_playing=False, active_only=False + ): + if not child_player.synced_to: + return child_player return None def _select_sync_leader(self, group_player: Player) -> Player | None: -- 2.34.1