/
/
/
1"""
2AirPlay Receiver plugin for Music Assistant.
3
4This plugin allows Music Assistant to receive AirPlay audio streams
5and use them as a source for any player. It uses shairport-sync to
6receive the AirPlay streams and outputs them as PCM audio.
7
8The provider runs as a single instance that advertises one AirPlay receiver
9(one shairport-sync daemon and one AudioSource) per connected Music
10Assistant player.
11"""
12
13from __future__ import annotations
14
15from typing import TYPE_CHECKING
16
17from music_assistant.providers.airplay_receiver.provider import (
18 AirPlayReceiverProvider,
19 airplay_receiver_ports,
20)
21
22if TYPE_CHECKING:
23 from music_assistant_models.config_entries import ProviderConfig
24 from music_assistant_models.provider import ProviderManifest
25
26 from music_assistant.mass import MusicAssistant
27 from music_assistant.models import ProviderInstanceType
28
29__all__ = [
30 "AirPlayReceiverProvider",
31 "airplay_receiver_ports",
32 "setup",
33]
34
35
36async def setup(
37 mass: MusicAssistant, manifest: ProviderManifest, config: ProviderConfig
38) -> ProviderInstanceType:
39 """Initialize provider(instance) with given configuration."""
40 return AirPlayReceiverProvider(mass, manifest, config)
41