SyncGroupPlayer: Inherit MULTI_DEVICE_DSP feature from group members (#2999)
authorMischa Siekmann <45062894+gnumpi@users.noreply.github.com>
Thu, 22 Jan 2026 08:31:21 +0000 (09:31 +0100)
committerGitHub <noreply@github.com>
Thu, 22 Jan 2026 08:31:21 +0000 (09:31 +0100)
* SyncGroupPlayer: Inherit MULTI_DEVICE_DSP feature from group members

* SyncGroupPlayer: use reference_player as variable name for the player to inherit the supported features from

music_assistant/controllers/players/sync_groups.py

index 7bc1904616c01c28d23276fee8acbe5aa9a17a84..d5540e33513652daff36cf8195a009daa071c21a 100644 (file)
@@ -65,6 +65,7 @@ OPTIONAL_FEATURES = {
     PlayerFeature.SEEK,
     PlayerFeature.SELECT_SOURCE,
     PlayerFeature.VOLUME_MUTE,
+    PlayerFeature.MULTI_DEVICE_DSP,
 }
 
 
@@ -111,11 +112,15 @@ class SyncGroupPlayer(GroupPlayer):
     @property
     def supported_features(self) -> set[PlayerFeature]:
         """Return the supported features of the player."""
-        if self.sync_leader:
+        members = self.group_members
+        reference_player: Player | None = self.sync_leader or (
+            self.mass.players.get(members[0]) if members else None
+        )
+        if reference_player:
             base_features = self._attr_supported_features.copy()
             # add features supported by the sync leader
             for feature in OPTIONAL_FEATURES:
-                if feature in self.sync_leader.supported_features:
+                if feature in reference_player.supported_features:
                     base_features.add(feature)
             return base_features
         return self._attr_supported_features