Use shorthand attributes in Songpal (#99849)

pull/100207/head
Joost Lekkerkerker 2023-09-12 15:00:11 +02:00 committed by GitHub
parent 1ca505c228
commit 1cf2f2f8b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 21 deletions

View File

@ -110,14 +110,14 @@ class SongpalEntity(MediaPlayerEntity):
self._model = None
self._state = False
self._available = False
self._attr_available = False
self._initialized = False
self._volume_control = None
self._volume_min = 0
self._volume_max = 1
self._volume = 0
self._is_muted = False
self._attr_is_volume_muted = False
self._active_source = None
self._sources = {}
@ -137,7 +137,7 @@ class SongpalEntity(MediaPlayerEntity):
async def _volume_changed(volume: VolumeChange):
_LOGGER.debug("Volume changed: %s", volume)
self._volume = volume.volume
self._is_muted = volume.mute
self._attr_is_volume_muted = volume.mute
self.async_write_ha_state()
async def _source_changed(content: ContentChange):
@ -161,13 +161,13 @@ class SongpalEntity(MediaPlayerEntity):
self._dev.endpoint,
)
_LOGGER.debug("Disconnected: %s", connect.exception)
self._available = False
self._attr_available = False
self.async_write_ha_state()
# Try to reconnect forever, a successful reconnect will initialize
# the websocket connection again.
delay = INITIAL_RETRY_DELAY
while not self._available:
while not self._attr_available:
_LOGGER.debug("Trying to reconnect in %s seconds", delay)
await asyncio.sleep(delay)
@ -220,11 +220,6 @@ class SongpalEntity(MediaPlayerEntity):
sw_version=self._sysinfo.version,
)
@property
def available(self):
"""Return availability of the device."""
return self._available
async def async_set_sound_setting(self, name, value):
"""Change a setting on the device."""
_LOGGER.debug("Calling set_sound_setting with %s: %s", name, value)
@ -243,7 +238,7 @@ class SongpalEntity(MediaPlayerEntity):
volumes = await self._dev.get_volume_information()
if not volumes:
_LOGGER.error("Got no volume controls, bailing out")
self._available = False
self._attr_available = False
return
if len(volumes) > 1:
@ -256,7 +251,7 @@ class SongpalEntity(MediaPlayerEntity):
self._volume_min = volume.minVolume
self._volume = volume.volume
self._volume_control = volume
self._is_muted = self._volume_control.is_muted
self._attr_is_volume_muted = self._volume_control.is_muted
status = await self._dev.get_power()
self._state = status.status
@ -273,11 +268,11 @@ class SongpalEntity(MediaPlayerEntity):
_LOGGER.debug("Active source: %s", self._active_source)
self._available = True
self._attr_available = True
except SongpalException as ex:
_LOGGER.error("Unable to update: %s", ex)
self._available = False
self._attr_available = False
async def async_select_source(self, source: str) -> None:
"""Select source."""
@ -309,8 +304,7 @@ class SongpalEntity(MediaPlayerEntity):
@property
def volume_level(self):
"""Return volume level."""
volume = self._volume / self._volume_max
return volume
return self._volume / self._volume_max
async def async_set_volume_level(self, volume: float) -> None:
"""Set volume level."""
@ -354,8 +348,3 @@ class SongpalEntity(MediaPlayerEntity):
"""Mute or unmute the device."""
_LOGGER.debug("Set mute: %s", mute)
return await self._volume_control.set_mute(mute)
@property
def is_volume_muted(self):
"""Return whether the device is muted."""
return self._is_muted