Refactor SnapCastProvider cmd_volume_mute method (#1718)
authorSantiago Soto <santiago@soto.uy>
Fri, 18 Oct 2024 00:13:01 +0000 (21:13 -0300)
committerGitHub <noreply@github.com>
Fri, 18 Oct 2024 00:13:01 +0000 (02:13 +0200)
music_assistant/server/providers/snapcast/__init__.py

index 4a0d6885001ed6742ad89e6c54683ab6f60514bb..eb4371f1ce236ec8d14906195692699b08059183 100644 (file)
@@ -447,8 +447,13 @@ class SnapCastProvider(PlayerProvider):
 
     async def cmd_volume_mute(self, player_id: str, muted: bool) -> None:
         """Send MUTE command to given player."""
+        ma_player = self.mass.players.get(player_id, raise_unavailable=False)
         snap_client_id = self._get_snapclient_id(player_id)
-        await self._snapserver.client(snap_client_id).set_muted(muted)
+        snapclient = self._snapserver.client(snap_client_id)
+        # Using optimistic value because the library does not return the response from the api
+        await snapclient.set_muted(muted)
+        ma_player.volume_muted = snapclient.muted
+        self.mass.players.update(player_id)
 
     async def cmd_sync(self, player_id: str, target_player: str) -> None:
         """Sync Snapcast player."""