diff --git a/homeassistant/components/monoprice/media_player.py b/homeassistant/components/monoprice/media_player.py index 19692b43854..2f4a4a33f49 100644 --- a/homeassistant/components/monoprice/media_player.py +++ b/homeassistant/components/monoprice/media_player.py @@ -7,9 +7,10 @@ from homeassistant import core from homeassistant.components.media_player import ( MediaPlayerEntity, MediaPlayerEntityFeature, + MediaPlayerState, ) from homeassistant.config_entries import ConfigEntry -from homeassistant.const import CONF_PORT, STATE_OFF, STATE_ON +from homeassistant.const import CONF_PORT from homeassistant.core import HomeAssistant from homeassistant.helpers import config_validation as cv, entity_platform, service from homeassistant.helpers.entity import DeviceInfo @@ -155,7 +156,7 @@ class MonopriceZone(MediaPlayerEntity): self._update_success = False return - self._state = STATE_ON if state.power else STATE_OFF + self._state = MediaPlayerState.ON if state.power else MediaPlayerState.OFF self._volume = state.volume self._mute = state.mute idx = state.source diff --git a/homeassistant/components/mpd/media_player.py b/homeassistant/components/mpd/media_player.py index 4680870c3ec..44d94bc649f 100644 --- a/homeassistant/components/mpd/media_player.py +++ b/homeassistant/components/mpd/media_player.py @@ -15,29 +15,15 @@ import voluptuous as vol from homeassistant.components import media_source from homeassistant.components.media_player import ( PLATFORM_SCHEMA, + BrowseMedia, MediaPlayerEntity, MediaPlayerEntityFeature, -) -from homeassistant.components.media_player.browse_media import ( - BrowseMedia, + MediaPlayerState, + MediaType, + RepeatMode, async_process_play_media_url, ) -from homeassistant.components.media_player.const import ( - MEDIA_TYPE_MUSIC, - MEDIA_TYPE_PLAYLIST, - REPEAT_MODE_ALL, - REPEAT_MODE_OFF, - REPEAT_MODE_ONE, -) -from homeassistant.const import ( - CONF_HOST, - CONF_NAME, - CONF_PASSWORD, - CONF_PORT, - STATE_OFF, - STATE_PAUSED, - STATE_PLAYING, -) +from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PASSWORD, CONF_PORT from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity_platform import AddEntitiesCallback @@ -97,6 +83,8 @@ async def async_setup_platform( class MpdDevice(MediaPlayerEntity): """Representation of a MPD server.""" + _attr_media_content_type = MediaType.MUSIC + # pylint: disable=no-member def __init__(self, server, port, password, name): """Initialize the MPD device.""" @@ -185,18 +173,18 @@ class MpdDevice(MediaPlayerEntity): return self._name @property - def state(self): + def state(self) -> MediaPlayerState: """Return the media state.""" if self._status is None: - return STATE_OFF + return MediaPlayerState.OFF if self._status["state"] == "play": - return STATE_PLAYING + return MediaPlayerState.PLAYING if self._status["state"] == "pause": - return STATE_PAUSED + return MediaPlayerState.PAUSED if self._status["state"] == "stop": - return STATE_OFF + return MediaPlayerState.OFF - return STATE_OFF + return MediaPlayerState.OFF @property def is_volume_muted(self): @@ -208,11 +196,6 @@ class MpdDevice(MediaPlayerEntity): """Return the content ID of current playing media.""" return self._currentsong.get("file") - @property - def media_content_type(self): - """Return the content type of current playing media.""" - return MEDIA_TYPE_MUSIC - @property def media_duration(self): """Return the duration of current playing media in seconds.""" @@ -384,7 +367,7 @@ class MpdDevice(MediaPlayerEntity): async def async_select_source(self, source: str) -> None: """Choose a different available playlist and play it.""" - await self.async_play_media(MEDIA_TYPE_PLAYLIST, source) + await self.async_play_media(MediaType.PLAYLIST, source) @Throttle(PLAYLIST_UPDATE_INTERVAL) async def _update_playlists(self, **kwargs: Any) -> None: @@ -456,13 +439,13 @@ class MpdDevice(MediaPlayerEntity): ) -> None: """Send the media player the command for playing a playlist.""" if media_source.is_media_source_id(media_id): - media_type = MEDIA_TYPE_MUSIC + media_type = MediaType.MUSIC play_item = await media_source.async_resolve_media( self.hass, media_id, self.entity_id ) media_id = async_process_play_media_url(self.hass, play_item.url) - if media_type == MEDIA_TYPE_PLAYLIST: + if media_type == MediaType.PLAYLIST: _LOGGER.debug("Playing playlist: %s", media_id) if media_id in self._playlists: self._currentplaylist = media_id @@ -479,22 +462,22 @@ class MpdDevice(MediaPlayerEntity): await self._client.play() @property - def repeat(self): + def repeat(self) -> RepeatMode: """Return current repeat mode.""" if self._status["repeat"] == "1": if self._status["single"] == "1": - return REPEAT_MODE_ONE - return REPEAT_MODE_ALL - return REPEAT_MODE_OFF + return RepeatMode.ONE + return RepeatMode.ALL + return RepeatMode.OFF - async def async_set_repeat(self, repeat: str) -> None: + async def async_set_repeat(self, repeat: RepeatMode) -> None: """Set repeat mode.""" - if repeat == REPEAT_MODE_OFF: + if repeat == RepeatMode.OFF: await self._client.repeat(0) await self._client.single(0) else: await self._client.repeat(1) - if repeat == REPEAT_MODE_ONE: + if repeat == RepeatMode.ONE: await self._client.single(1) else: await self._client.single(0) diff --git a/homeassistant/components/nad/media_player.py b/homeassistant/components/nad/media_player.py index 6304109c325..531dabfde70 100644 --- a/homeassistant/components/nad/media_player.py +++ b/homeassistant/components/nad/media_player.py @@ -8,15 +8,9 @@ from homeassistant.components.media_player import ( PLATFORM_SCHEMA, MediaPlayerEntity, MediaPlayerEntityFeature, + MediaPlayerState, ) -from homeassistant.const import ( - CONF_HOST, - CONF_NAME, - CONF_PORT, - CONF_TYPE, - STATE_OFF, - STATE_ON, -) +from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PORT, CONF_TYPE from homeassistant.core import HomeAssistant import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity_platform import AddEntitiesCallback @@ -186,10 +180,12 @@ class NAD(MediaPlayerEntity): self._state = None return self._state = ( - STATE_ON if self._nad_receiver.main_power("?") == "On" else STATE_OFF + MediaPlayerState.ON + if self._nad_receiver.main_power("?") == "On" + else MediaPlayerState.OFF ) - if self._state == STATE_ON: + if self._state == MediaPlayerState.ON: self._mute = self._nad_receiver.main_mute("?") == "On" volume = self._nad_receiver.main_volume("?") # Some receivers cannot report the volume, e.g. C 356BEE, @@ -312,9 +308,9 @@ class NADtcp(MediaPlayerEntity): # Update on/off state if nad_status["power"]: - self._state = STATE_ON + self._state = MediaPlayerState.ON else: - self._state = STATE_OFF + self._state = MediaPlayerState.OFF # Update current volume self._volume = self.nad_vol_to_internal_vol(nad_status["volume"]) diff --git a/homeassistant/components/onkyo/media_player.py b/homeassistant/components/onkyo/media_player.py index 82f662e1bad..5465bee9ecf 100644 --- a/homeassistant/components/onkyo/media_player.py +++ b/homeassistant/components/onkyo/media_player.py @@ -12,15 +12,10 @@ from homeassistant.components.media_player import ( PLATFORM_SCHEMA, MediaPlayerEntity, MediaPlayerEntityFeature, + MediaPlayerState, ) from homeassistant.components.media_player.const import DOMAIN -from homeassistant.const import ( - ATTR_ENTITY_ID, - CONF_HOST, - CONF_NAME, - STATE_OFF, - STATE_ON, -) +from homeassistant.const import ATTR_ENTITY_ID, CONF_HOST, CONF_NAME from homeassistant.core import HomeAssistant, ServiceCall import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity_platform import AddEntitiesCallback @@ -259,7 +254,7 @@ class OnkyoDevice(MediaPlayerEntity): self._receiver = receiver self._muted = False self._volume = 0 - self._pwstate = STATE_OFF + self._pwstate = MediaPlayerState.OFF if name: # not discovered self._name = name @@ -303,9 +298,9 @@ class OnkyoDevice(MediaPlayerEntity): if not status: return if status[1] == "on": - self._pwstate = STATE_ON + self._pwstate = MediaPlayerState.ON else: - self._pwstate = STATE_OFF + self._pwstate = MediaPlayerState.OFF self._attributes.pop(ATTR_AUDIO_INFORMATION, None) self._attributes.pop(ATTR_VIDEO_INFORMATION, None) self._attributes.pop(ATTR_PRESET, None) @@ -514,9 +509,9 @@ class OnkyoDeviceZone(OnkyoDevice): if not status: return if status[1] == "on": - self._pwstate = STATE_ON + self._pwstate = MediaPlayerState.ON else: - self._pwstate = STATE_OFF + self._pwstate = MediaPlayerState.OFF return volume_raw = self.command(f"zone{self._zone}.volume=query") diff --git a/homeassistant/components/openhome/media_player.py b/homeassistant/components/openhome/media_player.py index d528bb8dad4..f352d7101ac 100644 --- a/homeassistant/components/openhome/media_player.py +++ b/homeassistant/components/openhome/media_player.py @@ -15,15 +15,13 @@ import voluptuous as vol from homeassistant.components import media_source from homeassistant.components.media_player import ( + BrowseMedia, MediaPlayerEntity, MediaPlayerEntityFeature, -) -from homeassistant.components.media_player.browse_media import ( - BrowseMedia, + MediaPlayerState, + MediaType, async_process_play_media_url, ) -from homeassistant.components.media_player.const import MEDIA_TYPE_MUSIC -from homeassistant.const import STATE_IDLE, STATE_OFF, STATE_PAUSED, STATE_PLAYING from homeassistant.core import HomeAssistant from homeassistant.helpers import config_validation as cv, entity_platform from homeassistant.helpers.entity_platform import AddEntitiesCallback @@ -126,7 +124,7 @@ class OpenhomeDevice(MediaPlayerEntity): self._source_index = {} self._source = {} self._name = None - self._state = STATE_PLAYING + self._state = MediaPlayerState.PLAYING self._available = True @property @@ -180,16 +178,16 @@ class OpenhomeDevice(MediaPlayerEntity): ) if self._in_standby: - self._state = STATE_OFF + self._state = MediaPlayerState.OFF elif self._transport_state == "Paused": - self._state = STATE_PAUSED + self._state = MediaPlayerState.PAUSED elif self._transport_state in ("Playing", "Buffering"): - self._state = STATE_PLAYING + self._state = MediaPlayerState.PLAYING elif self._transport_state == "Stopped": - self._state = STATE_IDLE + self._state = MediaPlayerState.IDLE else: # Device is playing an external source with no transport controls - self._state = STATE_PLAYING + self._state = MediaPlayerState.PLAYING self._available = True except (asyncio.TimeoutError, aiohttp.ClientError, UpnpError): @@ -211,17 +209,17 @@ class OpenhomeDevice(MediaPlayerEntity): ) -> None: """Send the play_media command to the media player.""" if media_source.is_media_source_id(media_id): - media_type = MEDIA_TYPE_MUSIC + media_type = MediaType.MUSIC play_item = await media_source.async_resolve_media( self.hass, media_id, self.entity_id ) media_id = play_item.url - if media_type != MEDIA_TYPE_MUSIC: + if media_type != MediaType.MUSIC: _LOGGER.error( "Invalid media type %s. Only %s is supported", media_type, - MEDIA_TYPE_MUSIC, + MediaType.MUSIC, ) return