Use _attr_state in gstreamer media player (#82846)

This commit is contained in:
epenet 2022-11-28 09:46:45 +01:00 committed by GitHub
parent b7f1ebe13c
commit 6e37aa425b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,7 +4,7 @@ from __future__ import annotations
import logging
from typing import Any
from gsp import GstreamerPlayer
from gsp import STATE_IDLE, STATE_PAUSED, STATE_PLAYING, GstreamerPlayer
import voluptuous as vol
from homeassistant.components import media_source
@ -33,6 +33,12 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{vol.Optional(CONF_NAME): cv.string, vol.Optional(CONF_PIPELINE): cv.string}
)
GSP_STATE_MAPPING = {
STATE_IDLE: MediaPlayerState.IDLE,
STATE_PAUSED: MediaPlayerState.PAUSED,
STATE_PLAYING: MediaPlayerState.PLAYING,
}
def setup_platform(
hass: HomeAssistant,
@ -67,11 +73,11 @@ class GstreamerDevice(MediaPlayerEntity):
| MediaPlayerEntityFeature.BROWSE_MEDIA
)
def __init__(self, player, name):
def __init__(self, player: GstreamerPlayer, name: str | None) -> None:
"""Initialize the Gstreamer device."""
self._player = player
self._name = name or DOMAIN
self._state = MediaPlayerState.IDLE
self._attr_state = MediaPlayerState.IDLE
self._volume = None
self._duration = None
self._uri = None
@ -81,7 +87,7 @@ class GstreamerDevice(MediaPlayerEntity):
def update(self) -> None:
"""Update properties."""
self._state = self._player.state
self._attr_state = GSP_STATE_MAPPING.get(self._player.state)
self._volume = self._player.volume
self._duration = self._player.duration
self._uri = self._player.uri
@ -139,11 +145,6 @@ class GstreamerDevice(MediaPlayerEntity):
"""Return the volume level."""
return self._volume
@property
def state(self):
"""Return the state of the player."""
return self._state
@property
def media_duration(self):
"""Duration of current playing media in seconds."""