Implement remove_player
authorSantiago Soto <santiago@soto.uy>
Wed, 2 Apr 2025 22:10:17 +0000 (19:10 -0300)
committerSantiago Soto <santiago@soto.uy>
Wed, 2 Apr 2025 22:10:17 +0000 (19:10 -0300)
music_assistant/providers/snapcast/__init__.py

index 52393744e5fef91a275a7d84ed18a37adf8e7186..8ffda1f5ae123bf77e241e728e53cb72d3068219 100644 (file)
@@ -291,7 +291,7 @@ class SnapCastProvider(PlayerProvider):
     @property
     def supported_features(self) -> set[ProviderFeature]:
         """Return the features supported by this Provider."""
-        return {ProviderFeature.SYNC_PLAYERS}
+        return {ProviderFeature.SYNC_PLAYERS, ProviderFeature.REMOVE_PLAYER}
 
     async def handle_async_init(self) -> None:
         """Handle async initialization of the provider."""
@@ -444,6 +444,10 @@ class SnapCastProvider(PlayerProvider):
             CONF_ENTRY_OUTPUT_CODEC_HIDDEN,
         )
 
+    async def remove_player(self, player_id: str) -> None:
+        """Remove the client from the snapserver when it is deleted."""
+        self.mass.create_task(self._snapserver.delete_client(self._get_snapclient_id(player_id)))
+
     async def cmd_volume_set(self, player_id: str, volume_level: int) -> None:
         """Send VOLUME_SET command to given player."""
         snap_client_id = self._get_snapclient_id(player_id)