Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Const for forked-daapd."""
2 
3 from homeassistant.components.media_player import MediaPlayerEntityFeature, MediaType
4 
5 CALLBACK_TIMEOUT = 8 # max time between command and callback from forked-daapd server
6 CAN_PLAY_TYPE = {
7  "audio/mp4",
8  "audio/aac",
9  "audio/mpeg",
10  "audio/flac",
11  "audio/ogg",
12  "audio/x-ms-wma",
13  "audio/aiff",
14  "audio/wav",
15  MediaType.TRACK,
16  MediaType.PLAYLIST,
17  MediaType.ARTIST,
18  MediaType.ALBUM,
19  MediaType.GENRE,
20  MediaType.MUSIC,
21  MediaType.EPISODE,
22  "show", # this is a spotify constant
23 }
24 CONF_LIBRESPOT_JAVA_PORT = "librespot_java_port"
25 CONF_MAX_PLAYLISTS = "max_playlists"
26 CONF_TTS_PAUSE_TIME = "tts_pause_time"
27 CONF_TTS_VOLUME = "tts_volume"
28 DEFAULT_PORT = 3689
29 DEFAULT_SERVER_NAME = "My Server"
30 DEFAULT_TTS_PAUSE_TIME = 1.2
31 DEFAULT_TTS_VOLUME = 0.8
32 DEFAULT_UNMUTE_VOLUME = 0.6
33 DOMAIN = "forked_daapd" # key for hass.data
34 FD_NAME = "OwnTone"
35 HASS_DATA_REMOVE_LISTENERS_KEY = "REMOVE_LISTENERS"
36 HASS_DATA_UPDATER_KEY = "UPDATER"
37 KNOWN_PIPES = {"librespot-java"}
38 PIPE_FUNCTION_MAP = {
39  "librespot-java": {
40  "async_media_play": "player_resume",
41  "async_media_pause": "player_pause",
42  "async_media_stop": "player_pause",
43  "async_media_previous_track": "player_prev",
44  "async_media_next_track": "player_next",
45  }
46 }
47 SIGNAL_ADD_ZONES = "forked-daapd_add_zones {}"
48 SIGNAL_CONFIG_OPTIONS_UPDATE = "forked-daapd_config_options_update {}"
49 SIGNAL_UPDATE_DATABASE = "forked-daapd_update_database {}"
50 SIGNAL_UPDATE_MASTER = "forked-daapd_update_master {}"
51 SIGNAL_UPDATE_OUTPUTS = "forked-daapd_update_outputs {}"
52 SIGNAL_UPDATE_PLAYER = "forked-daapd_update_player {}"
53 SIGNAL_UPDATE_QUEUE = "forked-daapd_update_queue {}"
54 SOURCE_NAME_CLEAR = "Clear queue"
55 SOURCE_NAME_DEFAULT = "Default (no pipe)"
56 STARTUP_DATA = {
57  "player": {
58  "state": "stop",
59  "repeat": "off",
60  "consume": False,
61  "shuffle": False,
62  "volume": 0,
63  "item_id": 0,
64  "item_length_ms": 0,
65  "item_progress_ms": 0,
66  },
67  "queue": {"version": 0, "count": 0, "items": []},
68  "outputs": [],
69 }
70 SUPPORTED_FEATURES = (
71  MediaPlayerEntityFeature.PLAY
72  | MediaPlayerEntityFeature.PAUSE
73  | MediaPlayerEntityFeature.STOP
74  | MediaPlayerEntityFeature.SEEK
75  | MediaPlayerEntityFeature.VOLUME_SET
76  | MediaPlayerEntityFeature.VOLUME_MUTE
77  | MediaPlayerEntityFeature.PREVIOUS_TRACK
78  | MediaPlayerEntityFeature.NEXT_TRACK
79  | MediaPlayerEntityFeature.CLEAR_PLAYLIST
80  | MediaPlayerEntityFeature.SELECT_SOURCE
81  | MediaPlayerEntityFeature.SHUFFLE_SET
82  | MediaPlayerEntityFeature.TURN_ON
83  | MediaPlayerEntityFeature.TURN_OFF
84  | MediaPlayerEntityFeature.PLAY_MEDIA
85  | MediaPlayerEntityFeature.BROWSE_MEDIA
86  | MediaPlayerEntityFeature.MEDIA_ANNOUNCE
87  | MediaPlayerEntityFeature.MEDIA_ENQUEUE
88 )
89 SUPPORTED_FEATURES_ZONE = (
90  MediaPlayerEntityFeature.VOLUME_SET
91  | MediaPlayerEntityFeature.VOLUME_MUTE
92  | MediaPlayerEntityFeature.TURN_ON
93  | MediaPlayerEntityFeature.TURN_OFF
94 )
95 TTS_TIMEOUT = 20 # max time to wait between TTS getting sent and starting to play
96 URI_SCHEMA = "owntone"