From fb9d9261f5e6e389a2bb980a7f686952cf037a0e Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Tue, 8 Apr 2025 17:26:11 +0200 Subject: [PATCH] Chore: Fix player register order --- music_assistant/controllers/players.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/music_assistant/controllers/players.py b/music_assistant/controllers/players.py index a26c19fe..2d6885b2 100644 --- a/music_assistant/controllers/players.py +++ b/music_assistant/controllers/players.py @@ -951,9 +951,17 @@ class PlayerController(CoreController): self.mass.config.create_default_player_config( player_id, player.provider, player.name, player.enabled_by_default ) - + # mark player as unavailable during the add process + if not player.available: + # this shouldn't happen, but let's guard it anyways + raise RuntimeError(f"Attempt to register an unavailable player: {player.name}") + player.available = False player.enabled = self.mass.config.get(f"{CONF_PLAYERS}/{player_id}/enabled", True) + # ignore disabled players + if not player.enabled: + return + # register playerqueue for this player self.mass.create_task(self.mass.player_queues.on_player_register(player)) @@ -961,11 +969,6 @@ class PlayerController(CoreController): self._player_throttlers[player_id] = Throttler(1, 0.2) self._players[player_id] = player - - # ignore disabled players - if not player.enabled: - return - # ensure initial player state gets populated with values from config player_config = await self.mass.config.get_player_config(player_id) await self._set_player_state_from_config(player, player_config) @@ -975,7 +978,7 @@ class PlayerController(CoreController): player_id, player.display_name, ) - + player.available = True self.mass.signal_event(EventType.PLAYER_ADDED, object_id=player.player_id, data=player) # always call update to fix special attributes like display name, group volume etc. self.update(player.player_id) -- 2.34.1