Merged service calling method in universal media player

This commit is contained in:
Ryan Kraus 2016-01-12 01:50:01 -05:00 committed by Paulus Schoutsen
parent d829497c3d
commit 270a998e3c

View File

@ -174,17 +174,17 @@ class UniversalMediaPlayer(MediaPlayerDevice):
active_child = self.active_child_state
return active_child.attributes.get(attr_name) if active_child else None
def _override_or_child_service(self, service_name, service_data):
def _call_service(self, service_name, service_data=None,
allow_override=False):
""" calls either a specified or active child's service """
if service_name in self._cmds:
if allow_override and service_name in self._cmds:
call_from_config(
self.hass, self._cmds[service_name], blocking=True)
return
self._child_service(service_name, service_data)
if service_data is None:
service_data = {}
def _child_service(self, service_name, service_data):
""" calls the active child's specified service """
active_child = self.active_child_state
service_data[ATTR_ENTITY_ID] = active_child.entity_id
@ -367,64 +367,64 @@ class UniversalMediaPlayer(MediaPlayerDevice):
def turn_on(self):
""" turn the media player on. """
self._override_or_child_service(SERVICE_TURN_ON)
self._call_service(SERVICE_TURN_ON, allow_override=True)
def turn_off(self):
""" turn the media player off. """
self._override_or_child_service(SERVICE_TURN_OFF)
self._call_service(SERVICE_TURN_OFF, allow_override=True)
def mute_volume(self, is_volume_muted):
""" mute the volume. """
data = {ATTR_MEDIA_VOLUME_MUTED: is_volume_muted}
self._override_or_child_service(SERVICE_VOLUME_MUTE, data)
self._call_service(SERVICE_VOLUME_MUTE, data, allow_override=True)
def set_volume_level(self, volume_level):
""" set volume level, range 0..1. """
data = {ATTR_MEDIA_VOLUME_LEVEL: volume_level}
self._child_service(SERVICE_VOLUME_SET, data)
self._call_service(SERVICE_VOLUME_SET, data)
def media_play(self):
""" Send play commmand. """
self._child_service(SERVICE_MEDIA_PLAY)
self._call_service(SERVICE_MEDIA_PLAY)
def media_pause(self):
""" Send pause command. """
self._child_service(SERVICE_MEDIA_PAUSE)
self._call_service(SERVICE_MEDIA_PAUSE)
def media_previous_track(self):
""" Send previous track command. """
self._child_service(SERVICE_MEDIA_PREVIOUS_TRACK)
self._call_service(SERVICE_MEDIA_PREVIOUS_TRACK)
def media_next_track(self):
""" Send next track command. """
self._child_service(SERVICE_MEDIA_NEXT_TRACK)
self._call_service(SERVICE_MEDIA_NEXT_TRACK)
def media_seek(self, position):
""" Send seek command. """
data = {ATTR_MEDIA_SEEK_POSITION: position}
self._child_service(SERVICE_MEDIA_SEEK, data)
self._call_service(SERVICE_MEDIA_SEEK, data)
def play_youtube(self, media_id):
""" Plays a YouTube media. """
data = {'media_id': media_id}
self._child_service(SERVICE_YOUTUBE_VIDEO, data)
self._call_service(SERVICE_YOUTUBE_VIDEO, data)
def play_media(self, media_type, media_id):
""" Plays a piece of media. """
data = {'media_type': media_type, 'media_id': media_id}
self._child_service(SERVICE_PLAY_MEDIA, data)
self._call_service(SERVICE_PLAY_MEDIA, data)
def volume_up(self):
""" volume_up media player. """
self._override_or_child_service(SERVICE_VOLUME_UP)
self._call_service(SERVICE_VOLUME_UP, allow_override=True)
def volume_down(self):
""" volume_down media player. """
self._override_or_child_service(SERVICE_VOLUME_DOWN)
self._call_service(SERVICE_VOLUME_DOWN, allow_override=True)
def media_play_pause(self):
""" media_play_pause media player. """
self._child_service(SERVICE_MEDIA_PLAY_PAUSE)
self._call_service(SERVICE_MEDIA_PLAY_PAUSE)
def update_state(self, *_):
""" event to trigger a state update in HA """