music-assistant-server

2.8 KBPY
const.py
2.8 KB118 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.PLAY_MEDIA,
14    PlayerFeature.SET_MEMBERS,
15    PlayerFeature.VOLUME_MUTE,
16    PlayerFeature.PAUSE,
17    PlayerFeature.SELECT_SOURCE,
18    PlayerFeature.NEXT_PREVIOUS,
19    PlayerFeature.SEEK,
20}
21
22PLAYBACK_STATE_MAP = {
23    "play": PlaybackState.PLAYING,
24    "stream": PlaybackState.PLAYING,
25    "stop": PlaybackState.IDLE,
26    "pause": PlaybackState.PAUSED,
27    "connecting": PlaybackState.IDLE,
28}
29
30PLAYBACK_STATE_POLL_MAP = {
31    "play": PlaybackState.PLAYING,
32    "stream": PlaybackState.PLAYING,
33    "stop": PlaybackState.IDLE,
34    "pause": PlaybackState.PAUSED,
35    "connecting": "CONNECTING",
36}
37
38SOURCE_TIDAL = "Tidal"
39SOURCE_AIRPLAY = "AirPlay"
40SOURCE_SPOTIFY = "Spotify"
41SOURCE_RADIOPARADISE = "RadioParadise"
42SOURCE_TUNEIN = "TuneIn"
43SOURCE_HTTP = "http"
44SOURCE_BLUETOOTH = "Bluetooth"
45SOURCE_TV = "HDMI ARC"
46
47PLAYER_SOURCE_MAP = {
48    SOURCE_HTTP: PlayerSource(
49        id=SOURCE_HTTP,
50        name="HTTP Stream",
51        passive=True,
52        can_play_pause=True,
53        can_next_previous=False,
54        can_seek=False,
55    ),
56    SOURCE_BLUETOOTH: PlayerSource(
57        id=SOURCE_BLUETOOTH,
58        name="Bluetooth",
59        passive=True,
60        can_play_pause=True,
61        can_next_previous=False,
62        can_seek=False,
63    ),
64    SOURCE_TV: PlayerSource(
65        id=SOURCE_TV,
66        name="HDMI ARC",
67        passive=True,
68        can_play_pause=False,
69        can_next_previous=False,
70        can_seek=False,
71    ),
72    SOURCE_AIRPLAY: PlayerSource(
73        id=SOURCE_AIRPLAY,
74        name="AirPlay",
75        passive=True,
76        can_play_pause=True,
77        can_next_previous=False,
78        can_seek=False,
79    ),
80    SOURCE_SPOTIFY: PlayerSource(
81        id=SOURCE_SPOTIFY,
82        name="Spotify",
83        passive=True,
84        can_play_pause=True,
85        can_next_previous=True,
86        can_seek=True,
87    ),
88    SOURCE_TIDAL: PlayerSource(
89        id=SOURCE_TIDAL,
90        name="Tidal",
91        passive=True,
92        can_play_pause=True,
93        can_next_previous=True,
94        can_seek=True,
95    ),
96    SOURCE_RADIOPARADISE: PlayerSource(
97        id=SOURCE_RADIOPARADISE,
98        name="Radio Paradise",
99        passive=True,
100        can_play_pause=True,
101        can_next_previous=True,
102        can_seek=False,
103    ),
104    SOURCE_TUNEIN: PlayerSource(
105        id=SOURCE_TUNEIN,
106        name="TuneIn",
107        passive=True,
108        can_play_pause=True,
109        can_next_previous=False,
110        can_seek=False,
111    ),
112}
113
114POLL_STATE_STATIC = "static"
115POLL_STATE_DYNAMIC = "dynamic"
116
117MUSP_MDNS_TYPE = "_musp._tcp.local."
118