From 13ee981d0bf5c858b3d003d53168475582ed3539 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Fri, 17 Jan 2025 23:35:52 +0100 Subject: [PATCH] Fix: sonos active source selection --- music_assistant/providers/sonos/player.py | 8 ++++++-- music_assistant/providers/sonos/provider.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/music_assistant/providers/sonos/player.py b/music_assistant/providers/sonos/player.py index 78794a5c..ee516d59 100644 --- a/music_assistant/providers/sonos/player.py +++ b/music_assistant/providers/sonos/player.py @@ -314,8 +314,12 @@ class SonosPlayer: elif active_service == MusicService.SPOTIFY: self.mass_player.active_source = SOURCE_SPOTIFY elif active_service == MusicService.MUSIC_ASSISTANT: - if object_id := container.get("id", {}).get("objectId"): + if self.client.player.is_coordinator: + self.mass_player.active_source = self.mass_player.player_id + elif object_id := container.get("id", {}).get("objectId"): self.mass_player.active_source = object_id.split(":")[-1] + else: + self.mass_player.active_source = None else: # its playing some service we did not yet map self.mass_player.active_source = active_service @@ -410,7 +414,7 @@ class SonosPlayer: self.mass.players.update(self.player_id) self.reconnect(5) - self._listen_task = asyncio.create_task(_listener()) + self._listen_task = self.mass.create_task(_listener()) await init_ready.wait() async def _disconnect(self) -> None: diff --git a/music_assistant/providers/sonos/provider.py b/music_assistant/providers/sonos/provider.py index ec2f83d8..e446c1d8 100644 --- a/music_assistant/providers/sonos/provider.py +++ b/music_assistant/providers/sonos/provider.py @@ -523,7 +523,7 @@ class SonosPlayerProvider(PlayerProvider): if "positionMillis" not in item: continue mass_player.current_media = PlayerMedia( - uri=item["mediaUrl"], queue_id=sonos_playback_id, queue_item_id=item["id"] + uri=item["mediaUrl"], queue_id=sonos_player_id, queue_item_id=item["id"] ) mass_player.elapsed_time = item["positionMillis"] / 1000 mass_player.elapsed_time_last_updated = time.time() -- 2.34.1