# -*- 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)