music-assistant-server

2.7 KBPY
const.py
2.7 KB117 lines • python
1"""Constants for the Bluesound provider."""
2
3from __future__ import annotations
4
5from music_assistant_models.enums import PlaybackState, PlayerFeature
6
7from music_assistant.models.player import PlayerSource
8
9IDLE_POLL_INTERVAL = 30
10PLAYBACK_POLL_INTERVAL = 10
11
12PLAYER_FEATURES_BASE = {
13    PlayerFeature.SET_MEMBERS,
14    PlayerFeature.VOLUME_MUTE,
15    PlayerFeature.PAUSE,
16    PlayerFeature.SELECT_SOURCE,
17    PlayerFeature.NEXT_PREVIOUS,
18    PlayerFeature.SEEK,
19}
20
21PLAYBACK_STATE_MAP = {
22    "play": PlaybackState.PLAYING,
23    "stream": PlaybackState.PLAYING,
24    "stop": PlaybackState.IDLE,
25    "pause": PlaybackState.PAUSED,
26    "connecting": PlaybackState.IDLE,
27}
28
29PLAYBACK_STATE_POLL_MAP = {
30    "play": PlaybackState.PLAYING,
31    "stream": PlaybackState.PLAYING,
32    "stop": PlaybackState.IDLE,
33    "pause": PlaybackState.PAUSED,
34    "connecting": "CONNECTING",
35}
36
37SOURCE_TIDAL = "Tidal"
38SOURCE_AIRPLAY = "AirPlay"
39SOURCE_SPOTIFY = "Spotify"
40SOURCE_RADIOPARADISE = "RadioParadise"
41SOURCE_TUNEIN = "TuneIn"
42SOURCE_HTTP = "http"
43SOURCE_BLUETOOTH = "Bluetooth"
44SOURCE_TV = "HDMI ARC"
45
46PLAYER_SOURCE_MAP = {
47    SOURCE_HTTP: PlayerSource(
48        id=SOURCE_HTTP,
49        name="HTTP Stream",
50        passive=True,
51        can_play_pause=True,
52        can_next_previous=False,
53        can_seek=False,
54    ),
55    SOURCE_BLUETOOTH: PlayerSource(
56        id=SOURCE_BLUETOOTH,
57        name="Bluetooth",
58        passive=True,
59        can_play_pause=True,
60        can_next_previous=False,
61        can_seek=False,
62    ),
63    SOURCE_TV: PlayerSource(
64        id=SOURCE_TV,
65        name="HDMI ARC",
66        passive=True,
67        can_play_pause=False,
68        can_next_previous=False,
69        can_seek=False,
70    ),
71    SOURCE_AIRPLAY: PlayerSource(
72        id=SOURCE_AIRPLAY,
73        name="AirPlay",
74        passive=True,
75        can_play_pause=True,
76        can_next_previous=False,
77        can_seek=False,
78    ),
79    SOURCE_SPOTIFY: PlayerSource(
80        id=SOURCE_SPOTIFY,
81        name="Spotify",
82        passive=True,
83        can_play_pause=True,
84        can_next_previous=True,
85        can_seek=True,
86    ),
87    SOURCE_TIDAL: PlayerSource(
88        id=SOURCE_TIDAL,
89        name="Tidal",
90        passive=True,
91        can_play_pause=True,
92        can_next_previous=True,
93        can_seek=True,
94    ),
95    SOURCE_RADIOPARADISE: PlayerSource(
96        id=SOURCE_RADIOPARADISE,
97        name="Radio Paradise",
98        passive=True,
99        can_play_pause=True,
100        can_next_previous=True,
101        can_seek=False,
102    ),
103    SOURCE_TUNEIN: PlayerSource(
104        id=SOURCE_TUNEIN,
105        name="TuneIn",
106        passive=True,
107        can_play_pause=True,
108        can_next_previous=False,
109        can_seek=False,
110    ),
111}
112
113POLL_STATE_STATIC = "static"
114POLL_STATE_DYNAMIC = "dynamic"
115
116MUSP_MDNS_TYPE = "_musp._tcp.local."
117