Source code for coherence.upnp.services.clients.rendering_control_client

# -*- coding: utf-8 -*-

# Licensed under the MIT license
# http://opensource.org/licenses/mit-license.php

# Copyright 2006, Frank Scholz <coherence@beebits.net>


[docs]class RenderingControlClient: def __init__(self, service): self.service = service self.namespace = service.get_type() self.url = service.get_control_url() self.service.subscribe() self.service.client = self # print('RenderingControlClient __init__', self.url) # def __del__(self): # # print('RenderingControlClient deleted') # pass
[docs] def remove(self): self.service.remove() self.service = None self.namespace = None self.url = None del self
[docs] def subscribe_for_variable(self, var_name, callback, signal=False): self.service.subscribe_for_variable(var_name, instance=0, callback=callback, signal=signal)
[docs] def list_presets(self, instance_id=0): action = self.service.get_action('ListPresets') return action.call(InstanceID=instance_id)
[docs] def select_presets(self, instance_id=0, preset_name=''): action = self.service.get_action('SelectPresets') return action.call(InstanceID=instance_id, PresetName=preset_name)
[docs] def get_mute(self, instance_id=0, channel='Master'): action = self.service.get_action('GetMute') return action.call(InstanceID=instance_id, Channel=channel)
[docs] def set_mute(self, instance_id=0, channel='Master', desired_mute=0): action = self.service.get_action('SetMute') return action.call(InstanceID=instance_id, Channel=channel, DesiredMute=desired_mute)
[docs] def get_volume(self, instance_id=0, channel='Master'): action = self.service.get_action('GetVolume') return action.call(InstanceID=instance_id, Channel=channel)
[docs] def set_volume(self, instance_id=0, channel='Master', desired_volume=0): action = self.service.get_action('SetVolume') return action.call(InstanceID=instance_id, Channel=channel, DesiredVolume=desired_volume)
[docs] def get_volume_db(self, instance_id=0, channel='Master'): action = self.service.get_action('GetVolumeDB') return action.call(InstanceID=instance_id, Channel=channel)
[docs] def set_volume_db(self, instance_id=0, channel='Master', desired_volume=0): action = self.service.get_action('SetVolumeDB') return action.call(InstanceID=instance_id, Channel=channel, DesiredVolume=desired_volume)
[docs] def get_volume_db_range(self, instance_id=0, channel='Master'): action = self.service.get_action('GetVolumeDBRange') return action.call(InstanceID=instance_id, Channel=channel)
[docs] def get_loudness(self, instance_id=0, channel='Master'): action = self.service.get_action('GetLoudness') return action.call(InstanceID=instance_id, Channel=channel)
[docs] def set_loudness(self, instance_id=0, channel='Master', desired_loudness=0): action = self.service.get_action('SetLoudness') return action.call(InstanceID=instance_id, Channel=channel, DesiredLoudness=desired_loudness)