Use new media player enums in bluesound (#78096)

This commit is contained in:
epenet 2022-09-15 11:00:55 +02:00 committed by GitHub
parent 0a13fe99d2
commit 2cc45cd302
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,12 +19,11 @@ import xmltodict
from homeassistant.components import media_source from homeassistant.components import media_source
from homeassistant.components.media_player import ( from homeassistant.components.media_player import (
PLATFORM_SCHEMA, PLATFORM_SCHEMA,
BrowseMedia,
MediaPlayerEntity, MediaPlayerEntity,
MediaPlayerEntityFeature, MediaPlayerEntityFeature,
MediaPlayerState,
MediaType, MediaType,
)
from homeassistant.components.media_player.browse_media import (
BrowseMedia,
async_process_play_media_url, async_process_play_media_url,
) )
from homeassistant.const import ( from homeassistant.const import (
@ -35,10 +34,6 @@ from homeassistant.const import (
CONF_PORT, CONF_PORT,
EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_START,
EVENT_HOMEASSISTANT_STOP, EVENT_HOMEASSISTANT_STOP,
STATE_IDLE,
STATE_OFF,
STATE_PAUSED,
STATE_PLAYING,
) )
from homeassistant.core import HomeAssistant, ServiceCall, callback from homeassistant.core import HomeAssistant, ServiceCall, callback
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
@ -68,7 +63,6 @@ DEFAULT_PORT = 11000
NODE_OFFLINE_CHECK_TIMEOUT = 180 NODE_OFFLINE_CHECK_TIMEOUT = 180
NODE_RETRY_INITIATION = timedelta(minutes=3) NODE_RETRY_INITIATION = timedelta(minutes=3)
STATE_GROUPED = "grouped"
SYNC_STATUS_INTERVAL = timedelta(minutes=5) SYNC_STATUS_INTERVAL = timedelta(minutes=5)
UPDATE_CAPTURE_INTERVAL = timedelta(minutes=30) UPDATE_CAPTURE_INTERVAL = timedelta(minutes=30)
@ -554,20 +548,20 @@ class BluesoundPlayer(MediaPlayerEntity):
return self._services_items return self._services_items
@property @property
def state(self): def state(self) -> MediaPlayerState:
"""Return the state of the device.""" """Return the state of the device."""
if self._status is None: if self._status is None:
return STATE_OFF return MediaPlayerState.OFF
if self.is_grouped and not self.is_master: if self.is_grouped and not self.is_master:
return STATE_GROUPED return MediaPlayerState.IDLE
status = self._status.get("state") status = self._status.get("state")
if status in ("pause", "stop"): if status in ("pause", "stop"):
return STATE_PAUSED return MediaPlayerState.PAUSED
if status in ("stream", "play"): if status in ("stream", "play"):
return STATE_PLAYING return MediaPlayerState.PLAYING
return STATE_IDLE return MediaPlayerState.IDLE
@property @property
def media_title(self): def media_title(self):
@ -620,14 +614,14 @@ class BluesoundPlayer(MediaPlayerEntity):
return None return None
mediastate = self.state mediastate = self.state
if self._last_status_update is None or mediastate == STATE_IDLE: if self._last_status_update is None or mediastate == MediaPlayerState.IDLE:
return None return None
if (position := self._status.get("secs")) is None: if (position := self._status.get("secs")) is None:
return None return None
position = float(position) position = float(position)
if mediastate == STATE_PLAYING: if mediastate == MediaPlayerState.PLAYING:
position += (dt_util.utcnow() - self._last_status_update).total_seconds() position += (dt_util.utcnow() - self._last_status_update).total_seconds()
return position return position