1 """Provides the constants needed for component."""
3 from enum
import IntFlag, StrEnum
4 from functools
import partial
7 DeprecatedConstantEnum,
8 all_with_deprecated_constants,
9 check_if_deprecated_constant,
10 dir_with_deprecated_constants,
14 CONTENT_AUTH_EXPIRY_TIME = 3600 * 24
16 ATTR_APP_ID =
"app_id"
17 ATTR_APP_NAME =
"app_name"
18 ATTR_ENTITY_PICTURE_LOCAL =
"entity_picture_local"
19 ATTR_GROUP_MEMBERS =
"group_members"
20 ATTR_INPUT_SOURCE =
"source"
21 ATTR_INPUT_SOURCE_LIST =
"source_list"
22 ATTR_MEDIA_ANNOUNCE =
"announce"
23 ATTR_MEDIA_ALBUM_ARTIST =
"media_album_artist"
24 ATTR_MEDIA_ALBUM_NAME =
"media_album_name"
25 ATTR_MEDIA_ARTIST =
"media_artist"
26 ATTR_MEDIA_CHANNEL =
"media_channel"
27 ATTR_MEDIA_CONTENT_ID =
"media_content_id"
28 ATTR_MEDIA_CONTENT_TYPE =
"media_content_type"
29 ATTR_MEDIA_DURATION =
"media_duration"
30 ATTR_MEDIA_ENQUEUE =
"enqueue"
31 ATTR_MEDIA_EXTRA =
"extra"
32 ATTR_MEDIA_EPISODE =
"media_episode"
33 ATTR_MEDIA_PLAYLIST =
"media_playlist"
34 ATTR_MEDIA_POSITION =
"media_position"
35 ATTR_MEDIA_POSITION_UPDATED_AT =
"media_position_updated_at"
36 ATTR_MEDIA_REPEAT =
"repeat"
37 ATTR_MEDIA_SEASON =
"media_season"
38 ATTR_MEDIA_SEEK_POSITION =
"seek_position"
39 ATTR_MEDIA_SERIES_TITLE =
"media_series_title"
40 ATTR_MEDIA_SHUFFLE =
"shuffle"
41 ATTR_MEDIA_TITLE =
"media_title"
42 ATTR_MEDIA_TRACK =
"media_track"
43 ATTR_MEDIA_VOLUME_LEVEL =
"volume_level"
44 ATTR_MEDIA_VOLUME_MUTED =
"is_volume_muted"
45 ATTR_SOUND_MODE =
"sound_mode"
46 ATTR_SOUND_MODE_LIST =
"sound_mode_list"
48 DOMAIN =
"media_player"
52 """State of media player entities."""
60 BUFFERING =
"buffering"
64 """Media class for media player entities."""
71 CONTRIBUTING_ARTIST =
"contributing_artist"
72 DIRECTORY =
"directory"
95 MediaClass.COMPOSER,
"2025.10"
98 MediaClass.CONTRIBUTING_ARTIST,
"2025.10"
101 MediaClass.DIRECTORY,
"2025.10"
110 MediaClass.PLAYLIST,
"2025.10"
121 """Media type for media player entities."""
128 CHANNELS =
"channels"
129 COMPOSER =
"composer"
130 CONTRIBUTING_ARTIST =
"contributing_artist"
137 PLAYLIST =
"playlist"
156 MediaType.CONTRIBUTING_ARTIST,
"2025.10"
173 SERVICE_CLEAR_PLAYLIST =
"clear_playlist"
174 SERVICE_JOIN =
"join"
175 SERVICE_PLAY_MEDIA =
"play_media"
176 SERVICE_SELECT_SOUND_MODE =
"select_sound_mode"
177 SERVICE_SELECT_SOURCE =
"select_source"
178 SERVICE_UNJOIN =
"unjoin"
182 """Repeat mode for media player entities."""
194 REPEAT_MODES = [cls.value
for cls
in RepeatMode]
198 """Supported features of the media player entity."""
213 CLEAR_PLAYLIST = 8192
216 SELECT_SOUND_MODE = 65536
217 BROWSE_MEDIA = 131072
220 MEDIA_ANNOUNCE = 1048576
221 MEDIA_ENQUEUE = 2097152
227 MediaPlayerEntityFeature.PAUSE,
"2025.10"
230 MediaPlayerEntityFeature.SEEK,
"2025.10"
233 MediaPlayerEntityFeature.VOLUME_SET,
"2025.10"
236 MediaPlayerEntityFeature.VOLUME_MUTE,
"2025.10"
239 MediaPlayerEntityFeature.PREVIOUS_TRACK,
"2025.10"
242 MediaPlayerEntityFeature.NEXT_TRACK,
"2025.10"
245 MediaPlayerEntityFeature.TURN_ON,
"2025.10"
248 MediaPlayerEntityFeature.TURN_OFF,
"2025.10"
251 MediaPlayerEntityFeature.PLAY_MEDIA,
"2025.10"
254 MediaPlayerEntityFeature.VOLUME_STEP,
"2025.10"
257 MediaPlayerEntityFeature.SELECT_SOURCE,
"2025.10"
260 MediaPlayerEntityFeature.STOP,
"2025.10"
263 MediaPlayerEntityFeature.CLEAR_PLAYLIST,
"2025.10"
266 MediaPlayerEntityFeature.PLAY,
"2025.10"
269 MediaPlayerEntityFeature.SHUFFLE_SET,
"2025.10"
272 MediaPlayerEntityFeature.SELECT_SOUND_MODE,
"2025.10"
275 MediaPlayerEntityFeature.BROWSE_MEDIA,
"2025.10"
278 MediaPlayerEntityFeature.REPEAT_SET,
"2025.10"
281 MediaPlayerEntityFeature.GROUPING,
"2025.10"
285 __getattr__ = partial(check_if_deprecated_constant, module_globals=globals())
287 dir_with_deprecated_constants, module_globals_keys=[*globals().keys()]
list[str] all_with_deprecated_constants(dict[str, Any] module_globals)