From 116b48a05c27c79a0fadf9d709872bc8110858d4 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Mon, 3 Nov 2025 19:31:09 +0100 Subject: [PATCH] use select source helper in squeezelite --- .../providers/squeezelite/player.py | 48 +------------------ 1 file changed, 2 insertions(+), 46 deletions(-) diff --git a/music_assistant/providers/squeezelite/player.py b/music_assistant/providers/squeezelite/player.py index fc225ee2..93c2a1ea 100644 --- a/music_assistant/providers/squeezelite/player.py +++ b/music_assistant/providers/squeezelite/player.py @@ -18,8 +18,6 @@ from aioslimproto.models import VisualisationType as SlimVisualisationType from music_assistant_models.config_entries import ConfigEntry, ConfigValueOption, ConfigValueType from music_assistant_models.enums import ( ConfigEntryType, - ContentType, - MediaType, PlaybackState, PlayerFeature, PlayerType, @@ -41,7 +39,6 @@ from music_assistant.constants import ( VERBOSE_LOG_LEVEL, create_sample_rates_config_entry, ) -from music_assistant.helpers.ffmpeg import get_ffmpeg_stream from music_assistant.helpers.util import TaskManager from music_assistant.models.player import DeviceInfo, Player, PlayerMedia @@ -62,8 +59,6 @@ from .multi_client_stream import MultiClientStream if TYPE_CHECKING: from aioslimproto.client import SlimClient - from music_assistant.providers.universal_group import UniversalGroupPlayer - from .provider import SqueezelitePlayerProvider @@ -266,47 +261,8 @@ class SqueezelitePlayer(Player): bit_depth=INTERNAL_PCM_FORMAT.bit_depth, # 32-bit float for processing channels=2, ) - if media.media_type == MediaType.ANNOUNCEMENT: - # special case: stream announcement - audio_source = self.mass.streams.get_announcement_stream( - media.custom_data["announcement_url"], - output_format=master_audio_format, - pre_announce=media.custom_data["pre_announce"], - pre_announce_url=media.custom_data["pre_announce_url"], - ) - elif media.media_type == MediaType.PLUGIN_SOURCE: - # special case: plugin source stream - audio_source = self.mass.streams.get_plugin_source_stream( - plugin_source_id=media.custom_data["source_id"], - output_format=master_audio_format, - # need to pass player_id from the PlayerMedia object - # because this could have been a group - player_id=media.custom_data["player_id"], - ) - elif media.source_id.startswith("ugp_"): - # special case: UGP stream - ugp_player: UniversalGroupPlayer = self.mass.players.get(media.source_id) - ugp_stream = ugp_player.stream - # Filter is later applied in MultiClientStream - audio_source = ugp_stream.get_stream(master_audio_format, filter_params=None) - elif media.source_id and media.queue_item_id: - # regular queue stream request - audio_source = self.mass.streams.get_queue_flow_stream( - queue=self.mass.player_queues.get(media.source_id), - start_queue_item=self.mass.player_queues.get_item( - media.source_id, - media.queue_item_id, - ), - pcm_format=master_audio_format, - ) - else: - # assume url or some other direct path - # NOTE: this will fail if its an uri not playable by ffmpeg - audio_source = get_ffmpeg_stream( - audio_input=media.uri, - input_format=AudioFormat(ContentType.try_parse(media.uri)), - output_format=master_audio_format, - ) + # select audio source + audio_source = self.mass.streams.get_stream(media, master_audio_format) # start the stream task self.multi_client_stream = stream = MultiClientStream( audio_source=audio_source, audio_format=master_audio_format -- 2.34.1