Use entity class attributes for aquostv (#52670)

* Use entity class attributes for aquostv

* fix

* fix

* Tweak

* tweak
This commit is contained in:
Robert Hillis 2021-07-13 14:06:41 -04:00 committed by GitHub
parent 026ca4e4e4
commit 2b65501ca7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -124,33 +124,30 @@ def _retry(func):
class SharpAquosTVDevice(MediaPlayerEntity): class SharpAquosTVDevice(MediaPlayerEntity):
"""Representation of a Aquos TV.""" """Representation of a Aquos TV."""
_attr_source_list = list(SOURCES.values())
_attr_supported_features = SUPPORT_SHARPTV
def __init__(self, name, remote, power_on_enabled=False): def __init__(self, name, remote, power_on_enabled=False):
"""Initialize the aquos device.""" """Initialize the aquos device."""
self._supported_features = SUPPORT_SHARPTV
self._power_on_enabled = power_on_enabled self._power_on_enabled = power_on_enabled
if self._power_on_enabled: if power_on_enabled:
self._supported_features |= SUPPORT_TURN_ON self._attr_supported_features |= SUPPORT_TURN_ON
# Save a reference to the imported class # Save a reference to the imported class
self._name = name self._attr_name = name
# Assume that the TV is not muted # Assume that the TV is not muted
self._muted = False
self._state = None
self._remote = remote self._remote = remote
self._volume = 0
self._source = None
self._source_list = list(SOURCES.values())
def set_state(self, state): def set_state(self, state):
"""Set TV state.""" """Set TV state."""
self._state = state self._attr_state = state
@_retry @_retry
def update(self): def update(self):
"""Retrieve the latest data.""" """Retrieve the latest data."""
if self._remote.power() == 1: if self._remote.power() == 1:
self._state = STATE_ON self._attr_state = STATE_ON
else: else:
self._state = STATE_OFF self._attr_state = STATE_OFF
# Set TV to be able to remotely power on # Set TV to be able to remotely power on
if self._power_on_enabled: if self._power_on_enabled:
self._remote.power_on_command_settings(2) self._remote.power_on_command_settings(2)
@ -158,48 +155,13 @@ class SharpAquosTVDevice(MediaPlayerEntity):
self._remote.power_on_command_settings(0) self._remote.power_on_command_settings(0)
# Get mute state # Get mute state
if self._remote.mute() == 2: if self._remote.mute() == 2:
self._muted = False self._attr_is_volume_muted = False
else: else:
self._muted = True self._attr_is_volume_muted = True
# Get source # Get source
self._source = SOURCES.get(self._remote.input()) self._attr_source = SOURCES.get(self._remote.input())
# Get volume # Get volume
self._volume = self._remote.volume() / 60 self._attr_volume_level = self._remote.volume() / 60
@property
def name(self):
"""Return the name of the device."""
return self._name
@property
def state(self):
"""Return the state of the device."""
return self._state
@property
def source(self):
"""Return the current source."""
return self._source
@property
def source_list(self):
"""Return the source list."""
return self._source_list
@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 supported_features(self):
"""Flag media player features that are supported."""
return self._supported_features
@_retry @_retry
def turn_off(self): def turn_off(self):
@ -209,12 +171,12 @@ class SharpAquosTVDevice(MediaPlayerEntity):
@_retry @_retry
def volume_up(self): def volume_up(self):
"""Volume up the media player.""" """Volume up the media player."""
self._remote.volume(int(self._volume * 60) + 2) self._remote.volume(int(self.volume_level * 60) + 2)
@_retry @_retry
def volume_down(self): def volume_down(self):
"""Volume down media player.""" """Volume down media player."""
self._remote.volume(int(self._volume * 60) - 2) self._remote.volume(int(self.volume_level * 60) - 2)
@_retry @_retry
def set_volume_level(self, volume): def set_volume_level(self, volume):