Use attributes in demo media-player (#78461)
* Use attributes in demo media-player * Use _attr_is_volume_muted * Use _attr_shuffle * Use _attr_sound_mode / _attr_sound_mode_list
This commit is contained in:
parent
047c3862d7
commit
be17ba15db
1 changed files with 13 additions and 36 deletions
|
@ -105,6 +105,7 @@ NETFLIX_PLAYER_SUPPORT = (
|
|||
class AbstractDemoPlayer(MediaPlayerEntity):
|
||||
"""A demo media players."""
|
||||
|
||||
_attr_sound_mode_list = SOUND_MODE_LIST
|
||||
_attr_should_poll = False
|
||||
|
||||
# We only implement the methods that we support
|
||||
|
@ -115,38 +116,12 @@ class AbstractDemoPlayer(MediaPlayerEntity):
|
|||
"""Initialize the demo device."""
|
||||
self._attr_name = name
|
||||
self._attr_state = MediaPlayerState.PLAYING
|
||||
self._volume_level = 1.0
|
||||
self._volume_muted = False
|
||||
self._shuffle = False
|
||||
self._sound_mode_list = SOUND_MODE_LIST
|
||||
self._sound_mode = DEFAULT_SOUND_MODE
|
||||
self._attr_volume_level = 1.0
|
||||
self._attr_is_volume_muted = False
|
||||
self._attr_shuffle = False
|
||||
self._attr_sound_mode = DEFAULT_SOUND_MODE
|
||||
self._attr_device_class = device_class
|
||||
|
||||
@property
|
||||
def volume_level(self) -> float:
|
||||
"""Return the volume level of the media player (0..1)."""
|
||||
return self._volume_level
|
||||
|
||||
@property
|
||||
def is_volume_muted(self) -> bool:
|
||||
"""Return boolean if volume is currently muted."""
|
||||
return self._volume_muted
|
||||
|
||||
@property
|
||||
def shuffle(self) -> bool:
|
||||
"""Boolean if shuffling is enabled."""
|
||||
return self._shuffle
|
||||
|
||||
@property
|
||||
def sound_mode(self) -> str:
|
||||
"""Return the current sound mode."""
|
||||
return self._sound_mode
|
||||
|
||||
@property
|
||||
def sound_mode_list(self) -> list[str]:
|
||||
"""Return a list of available sound modes."""
|
||||
return self._sound_mode_list
|
||||
|
||||
def turn_on(self) -> None:
|
||||
"""Turn the media player on."""
|
||||
self._attr_state = MediaPlayerState.PLAYING
|
||||
|
@ -159,22 +134,24 @@ class AbstractDemoPlayer(MediaPlayerEntity):
|
|||
|
||||
def mute_volume(self, mute: bool) -> None:
|
||||
"""Mute the volume."""
|
||||
self._volume_muted = mute
|
||||
self._attr_is_volume_muted = mute
|
||||
self.schedule_update_ha_state()
|
||||
|
||||
def volume_up(self) -> None:
|
||||
"""Increase volume."""
|
||||
self._volume_level = min(1.0, self._volume_level + 0.1)
|
||||
assert self.volume_level is not None
|
||||
self._attr_volume_level = min(1.0, self.volume_level + 0.1)
|
||||
self.schedule_update_ha_state()
|
||||
|
||||
def volume_down(self) -> None:
|
||||
"""Decrease volume."""
|
||||
self._volume_level = max(0.0, self._volume_level - 0.1)
|
||||
assert self.volume_level is not None
|
||||
self._attr_volume_level = max(0.0, self.volume_level - 0.1)
|
||||
self.schedule_update_ha_state()
|
||||
|
||||
def set_volume_level(self, volume: float) -> None:
|
||||
"""Set the volume level, range 0..1."""
|
||||
self._volume_level = volume
|
||||
self._attr_volume_level = volume
|
||||
self.schedule_update_ha_state()
|
||||
|
||||
def media_play(self) -> None:
|
||||
|
@ -194,12 +171,12 @@ class AbstractDemoPlayer(MediaPlayerEntity):
|
|||
|
||||
def set_shuffle(self, shuffle: bool) -> None:
|
||||
"""Enable/disable shuffle mode."""
|
||||
self._shuffle = shuffle
|
||||
self._attr_shuffle = shuffle
|
||||
self.schedule_update_ha_state()
|
||||
|
||||
def select_sound_mode(self, sound_mode: str) -> None:
|
||||
"""Select sound mode."""
|
||||
self._sound_mode = sound_mode
|
||||
self._attr_sound_mode = sound_mode
|
||||
self.schedule_update_ha_state()
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue