Add MEDIA_ANNOUNCE to MediaPlayerEntityFeature (#95906)
This commit is contained in:
parent
7eb087a9d7
commit
87f284c7e9
6 changed files with 17 additions and 1 deletions
|
@ -82,6 +82,7 @@ SUPPORTED_FEATURES = (
|
|||
| MediaPlayerEntityFeature.TURN_OFF
|
||||
| MediaPlayerEntityFeature.PLAY_MEDIA
|
||||
| MediaPlayerEntityFeature.BROWSE_MEDIA
|
||||
| MediaPlayerEntityFeature.MEDIA_ANNOUNCE
|
||||
| MediaPlayerEntityFeature.MEDIA_ENQUEUE
|
||||
)
|
||||
SUPPORTED_FEATURES_ZONE = (
|
||||
|
|
|
@ -50,6 +50,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
|||
from homeassistant.helpers.event import async_track_state_change_event
|
||||
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType, EventType
|
||||
|
||||
KEY_ANNOUNCE = "announce"
|
||||
KEY_CLEAR_PLAYLIST = "clear_playlist"
|
||||
KEY_ENQUEUE = "enqueue"
|
||||
KEY_ON_OFF = "on_off"
|
||||
|
@ -116,6 +117,7 @@ class MediaPlayerGroup(MediaPlayerEntity):
|
|||
|
||||
self._entities = entities
|
||||
self._features: dict[str, set[str]] = {
|
||||
KEY_ANNOUNCE: set(),
|
||||
KEY_CLEAR_PLAYLIST: set(),
|
||||
KEY_ENQUEUE: set(),
|
||||
KEY_ON_OFF: set(),
|
||||
|
@ -194,6 +196,10 @@ class MediaPlayerGroup(MediaPlayerEntity):
|
|||
self._features[KEY_VOLUME].add(entity_id)
|
||||
else:
|
||||
self._features[KEY_VOLUME].discard(entity_id)
|
||||
if new_features & MediaPlayerEntityFeature.MEDIA_ANNOUNCE:
|
||||
self._features[KEY_ANNOUNCE].add(entity_id)
|
||||
else:
|
||||
self._features[KEY_ANNOUNCE].discard(entity_id)
|
||||
if new_features & MediaPlayerEntityFeature.MEDIA_ENQUEUE:
|
||||
self._features[KEY_ENQUEUE].add(entity_id)
|
||||
else:
|
||||
|
@ -440,6 +446,8 @@ class MediaPlayerGroup(MediaPlayerEntity):
|
|||
| MediaPlayerEntityFeature.VOLUME_SET
|
||||
| MediaPlayerEntityFeature.VOLUME_STEP
|
||||
)
|
||||
if self._features[KEY_ANNOUNCE]:
|
||||
supported_features |= MediaPlayerEntityFeature.MEDIA_ANNOUNCE
|
||||
if self._features[KEY_ENQUEUE]:
|
||||
supported_features |= MediaPlayerEntityFeature.MEDIA_ENQUEUE
|
||||
|
||||
|
|
|
@ -199,6 +199,7 @@ class MediaPlayerEntityFeature(IntFlag):
|
|||
BROWSE_MEDIA = 131072
|
||||
REPEAT_SET = 262144
|
||||
GROUPING = 524288
|
||||
MEDIA_ANNOUNCE = 1048576
|
||||
MEDIA_ENQUEUE = 2097152
|
||||
|
||||
|
||||
|
|
|
@ -172,6 +172,9 @@ play_media:
|
|||
announce:
|
||||
name: Announce
|
||||
description: If the media should be played as an announcement.
|
||||
filter:
|
||||
supported_features:
|
||||
- media_player.MediaPlayerEntityFeature.MEDIA_ANNOUNCE
|
||||
required: false
|
||||
example: "true"
|
||||
selector:
|
||||
|
|
|
@ -195,6 +195,7 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity):
|
|||
MediaPlayerEntityFeature.BROWSE_MEDIA
|
||||
| MediaPlayerEntityFeature.CLEAR_PLAYLIST
|
||||
| MediaPlayerEntityFeature.GROUPING
|
||||
| MediaPlayerEntityFeature.MEDIA_ANNOUNCE
|
||||
| MediaPlayerEntityFeature.MEDIA_ENQUEUE
|
||||
| MediaPlayerEntityFeature.NEXT_TRACK
|
||||
| MediaPlayerEntityFeature.PAUSE
|
||||
|
|
|
@ -192,7 +192,9 @@ async def test_supported_features(hass: HomeAssistant) -> None:
|
|||
| MediaPlayerEntityFeature.STOP
|
||||
)
|
||||
play_media = (
|
||||
MediaPlayerEntityFeature.PLAY_MEDIA | MediaPlayerEntityFeature.MEDIA_ENQUEUE
|
||||
MediaPlayerEntityFeature.PLAY_MEDIA
|
||||
| MediaPlayerEntityFeature.MEDIA_ANNOUNCE
|
||||
| MediaPlayerEntityFeature.MEDIA_ENQUEUE
|
||||
)
|
||||
volume = (
|
||||
MediaPlayerEntityFeature.VOLUME_MUTE
|
||||
|
|
Loading…
Add table
Reference in a new issue