Skip to content

Commit 25fad55

Browse files
committed
Fix bridge link to universal player
1 parent a1e4034 commit 25fad55

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

music_assistant/controllers/players/protocol_linking.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,15 @@ def _try_link_protocol_to_native(self, protocol_player: Player) -> None:
219219
continue
220220

221221
# For universal players, check if this protocol player is in its stored list
222+
# or if identifiers match (for new protocol players like Sendspin bridges
223+
# that weren't previously known to the Universal Player)
222224
if native_player.provider.domain == "universal_player":
223225
if isinstance(native_player, UniversalPlayer):
224-
if protocol_player.player_id in native_player._protocol_player_ids:
226+
is_known = protocol_player.player_id in native_player._protocol_player_ids
227+
is_match = not is_known and self._identifiers_match(
228+
native_player, protocol_player, protocol_domain
229+
)
230+
if is_known or is_match:
225231
self._add_protocol_link(native_player, protocol_player, protocol_domain)
226232
# Copy identifiers from protocol player to universal player
227233
# This is important for restored universal players which start
@@ -230,6 +236,9 @@ def _try_link_protocol_to_native(self, protocol_player: Player) -> None:
230236
native_player.device_info.add_identifier(conn_type, value)
231237
# Update model/manufacturer if universal player has generic values
232238
self._update_universal_device_info(native_player, protocol_player)
239+
# Register newly matched protocol player with the universal player
240+
if is_match:
241+
native_player.add_protocol_player(protocol_player.player_id)
233242
# Persist updated data to config (async via task)
234243
self._save_universal_player_data(native_player)
235244
protocol_player.update_state()

0 commit comments

Comments
 (0)