mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 15:17:35 +00:00
Use attributes in yamaha media player (#82843)
This commit is contained in:
parent
e8a03ea870
commit
49879fd257
@ -193,13 +193,9 @@ class YamahaDevice(MediaPlayerEntity):
|
|||||||
def __init__(self, name, receiver, source_ignore, source_names, zone_names):
|
def __init__(self, name, receiver, source_ignore, source_names, zone_names):
|
||||||
"""Initialize the Yamaha Receiver."""
|
"""Initialize the Yamaha Receiver."""
|
||||||
self.receiver = receiver
|
self.receiver = receiver
|
||||||
self._muted = False
|
self._attr_is_volume_muted = False
|
||||||
self._volume = 0
|
self._attr_volume_level = 0
|
||||||
self._pwstate = MediaPlayerState.OFF
|
self._attr_state = MediaPlayerState.OFF
|
||||||
self._current_source = None
|
|
||||||
self._sound_mode = None
|
|
||||||
self._sound_mode_list = None
|
|
||||||
self._source_list = None
|
|
||||||
self._source_ignore = source_ignore or []
|
self._source_ignore = source_ignore or []
|
||||||
self._source_names = source_names or {}
|
self._source_names = source_names or {}
|
||||||
self._zone_names = zone_names or {}
|
self._zone_names = zone_names or {}
|
||||||
@ -220,33 +216,33 @@ class YamahaDevice(MediaPlayerEntity):
|
|||||||
|
|
||||||
if self.receiver.on:
|
if self.receiver.on:
|
||||||
if self._play_status is None:
|
if self._play_status is None:
|
||||||
self._pwstate = MediaPlayerState.ON
|
self._attr_state = MediaPlayerState.ON
|
||||||
elif self._play_status.playing:
|
elif self._play_status.playing:
|
||||||
self._pwstate = MediaPlayerState.PLAYING
|
self._attr_state = MediaPlayerState.PLAYING
|
||||||
else:
|
else:
|
||||||
self._pwstate = MediaPlayerState.IDLE
|
self._attr_state = MediaPlayerState.IDLE
|
||||||
else:
|
else:
|
||||||
self._pwstate = MediaPlayerState.OFF
|
self._attr_state = MediaPlayerState.OFF
|
||||||
|
|
||||||
self._muted = self.receiver.mute
|
self._attr_is_volume_muted = self.receiver.mute
|
||||||
self._volume = (self.receiver.volume / 100) + 1
|
self._attr_volume_level = (self.receiver.volume / 100) + 1
|
||||||
|
|
||||||
if self.source_list is None:
|
if self.source_list is None:
|
||||||
self.build_source_list()
|
self.build_source_list()
|
||||||
|
|
||||||
current_source = self.receiver.input
|
current_source = self.receiver.input
|
||||||
self._current_source = self._source_names.get(current_source, current_source)
|
self._attr_source = self._source_names.get(current_source, current_source)
|
||||||
self._playback_support = self.receiver.get_playback_support()
|
self._playback_support = self.receiver.get_playback_support()
|
||||||
self._is_playback_supported = self.receiver.is_playback_supported(
|
self._is_playback_supported = self.receiver.is_playback_supported(
|
||||||
self._current_source
|
self._attr_source
|
||||||
)
|
)
|
||||||
surround_programs = self.receiver.surround_programs()
|
surround_programs = self.receiver.surround_programs()
|
||||||
if surround_programs:
|
if surround_programs:
|
||||||
self._sound_mode = self.receiver.surround_program
|
self._attr_sound_mode = self.receiver.surround_program
|
||||||
self._sound_mode_list = surround_programs
|
self._attr_sound_mode_list = surround_programs
|
||||||
else:
|
else:
|
||||||
self._sound_mode = None
|
self._attr_sound_mode = None
|
||||||
self._sound_mode_list = None
|
self._attr_sound_mode_list = None
|
||||||
|
|
||||||
def build_source_list(self):
|
def build_source_list(self):
|
||||||
"""Build the source list."""
|
"""Build the source list."""
|
||||||
@ -254,7 +250,7 @@ class YamahaDevice(MediaPlayerEntity):
|
|||||||
alias: source for source, alias in self._source_names.items()
|
alias: source for source, alias in self._source_names.items()
|
||||||
}
|
}
|
||||||
|
|
||||||
self._source_list = sorted(
|
self._attr_source_list = sorted(
|
||||||
self._source_names.get(source, source)
|
self._source_names.get(source, source)
|
||||||
for source in self.receiver.inputs()
|
for source in self.receiver.inputs()
|
||||||
if source not in self._source_ignore
|
if source not in self._source_ignore
|
||||||
@ -270,41 +266,6 @@ class YamahaDevice(MediaPlayerEntity):
|
|||||||
name += f" {zone_name.replace('_', ' ')}"
|
name += f" {zone_name.replace('_', ' ')}"
|
||||||
return name
|
return name
|
||||||
|
|
||||||
@property
|
|
||||||
def state(self):
|
|
||||||
"""Return the state of the device."""
|
|
||||||
return self._pwstate
|
|
||||||
|
|
||||||
@property
|
|
||||||
def volume_level(self):
|
|
||||||
"""Volume level of the media player (0..1)."""
|
|
||||||
return self._volume
|
|
||||||
|
|
||||||
@property
|
|
||||||
def is_volume_muted(self):
|
|
||||||
"""Boolean if volume is currently muted."""
|
|
||||||
return self._muted
|
|
||||||
|
|
||||||
@property
|
|
||||||
def source(self):
|
|
||||||
"""Return the current input source."""
|
|
||||||
return self._current_source
|
|
||||||
|
|
||||||
@property
|
|
||||||
def sound_mode(self):
|
|
||||||
"""Return the current sound mode."""
|
|
||||||
return self._sound_mode
|
|
||||||
|
|
||||||
@property
|
|
||||||
def sound_mode_list(self):
|
|
||||||
"""Return the current sound mode."""
|
|
||||||
return self._sound_mode_list
|
|
||||||
|
|
||||||
@property
|
|
||||||
def source_list(self):
|
|
||||||
"""List of available input sources."""
|
|
||||||
return self._source_list
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def zone_id(self):
|
def zone_id(self):
|
||||||
"""Return a zone_id to ensure 1 media player per zone."""
|
"""Return a zone_id to ensure 1 media player per zone."""
|
||||||
@ -347,7 +308,7 @@ class YamahaDevice(MediaPlayerEntity):
|
|||||||
def turn_on(self) -> None:
|
def turn_on(self) -> None:
|
||||||
"""Turn the media player on."""
|
"""Turn the media player on."""
|
||||||
self.receiver.on = True
|
self.receiver.on = True
|
||||||
self._volume = (self.receiver.volume / 100) + 1
|
self._attr_volume_level = (self.receiver.volume / 100) + 1
|
||||||
|
|
||||||
def media_play(self) -> None:
|
def media_play(self) -> None:
|
||||||
"""Send play command."""
|
"""Send play command."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user