From 0cf3c22da0cae140eed50ec17d9ac26d40c55e29 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sat, 14 Jan 2017 06:09:02 +0100 Subject: [PATCH] Bugfix media_player volume_ up and down (#5282) * Bugfix media_player volume_ up and down * fix lint * make a coro --- .../components/media_player/__init__.py | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/media_player/__init__.py b/homeassistant/components/media_player/__init__.py index 1be94976d49..2a1e5e68779 100644 --- a/homeassistant/components/media_player/__init__.py +++ b/homeassistant/components/media_player/__init__.py @@ -748,29 +748,33 @@ class MediaPlayerDevice(Entity): else: return self.async_turn_off() - def volume_up(self): - """Turn volume up for media player.""" - if self.volume_level < 1: - self.set_volume_level(min(1, self.volume_level + .1)) - + @asyncio.coroutine def async_volume_up(self): """Turn volume up for media player. - This method must be run in the event loop and returns a coroutine. + This method is a coroutine. """ - return self.hass.loop.run_in_executor(None, self.volume_up) + if hasattr(self, 'volume_up'): + # pylint: disable=no-member + yield from self.hass.run_in_executor(None, self.volume_up) - def volume_down(self): - """Turn volume down for media player.""" - if self.volume_level > 0: - self.set_volume_level(max(0, self.volume_level - .1)) + if self.volume_level < 1: + yield from self.async_set_volume_level( + min(1, self.volume_level + .1)) + @asyncio.coroutine def async_volume_down(self): """Turn volume down for media player. - This method must be run in the event loop and returns a coroutine. + This method is a coroutine. """ - return self.hass.loop.run_in_executor(None, self.volume_down) + if hasattr(self, 'volume_down'): + # pylint: disable=no-member + yield from self.hass.run_in_executor(None, self.volume_down) + + if self.volume_level > 0: + yield from self.async_set_volume_level( + max(0, self.volume_level - .1)) def media_play_pause(self): """Play or pause the media player."""