def handle_RenderingControl_event(self, speaker, variables): if 'volume' in variables: volume = variables['volume']['Master'] if volume: if utils.check_max_volume_exceeded(volume, speaker.max_volume): sleep(1) speaker.set_volume(speaker.max_volume, trigger_action=True) else: speaker.volume = int(volume) volume_lf = variables['volume']['LF'] if volume_lf: if int(volume_lf) < 100: speaker.balance = 100 - int(volume_lf) volume_rf = variables['volume']['RF'] if volume_rf: if int(volume_rf) < 100: speaker.balance = int(volume_rf) - 100 if 'mute' in variables: speaker.mute = int(variables['mute']['Master']) if 'bass' in variables: speaker.bass = int(variables['bass']) if 'treble' in variables: speaker.treble = int(variables['treble']) if 'loudness' in variables: speaker.loudness = int(variables['loudness']['Master'])
def set_volume(self, volume, trigger_action=False, group_command=False): volume = int(volume) if trigger_action: if group_command: for speaker in self._zone_members: speaker.set_volume(volume, trigger_action=True, group_command=False) utils.check_volume_range(volume) if utils.check_max_volume_exceeded(volume, self.max_volume): volume = self.max_volume self.soco.volume = volume if self._volume == volume: return self._volume = volume self.dirty_property('volume')
def handle_RenderingControl_event(self, speaker, variables): if 'volume' in variables: volume = variables['volume']['Master'] if volume: if utils.check_max_volume_exceeded(volume, speaker.max_volume): speaker.set_volume(speaker.max_volume, trigger_action=True) else: speaker.volume = int(volume) if 'mute' in variables: speaker.mute = int(variables['mute']['Master']) if 'bass' in variables: speaker.bass = int(variables['bass']) if 'treble' in variables: speaker.treble = int(variables['treble']) if 'loudness' in variables: speaker.loudness = int(variables['loudness']['Master'])
def handle_RenderingControl_event(self, speaker, variables): namespace = '{urn:schemas-upnp-org:metadata-1-0/RCS/}' xml = variables['LastChange'] dom = XML.fromstring(xml) volume_state_element = dom.find(".//%sVolume[@channel='Master']" % namespace) if volume_state_element is not None: volume = volume_state_element.get('val') if volume: if utils.check_max_volume_exceeded(volume, speaker.max_volume): speaker.set_volume(speaker.max_volume, trigger_action=True) else: speaker.volume = int(volume) mute_state_element = dom.find(".//%sMute[@channel='Master']" % namespace) if mute_state_element is not None: mute = mute_state_element.get('val') if mute: speaker.mute = int(mute) bass_state_element = dom.find(".//%sBass" % namespace) if bass_state_element is not None: bass = bass_state_element.get('val') if bass: speaker.bass = int(bass) treble_state_element = dom.find(".//%sTreble" % namespace) if treble_state_element is not None: treble = treble_state_element.get('val') if treble: speaker.treble = int(treble) loudness_state_element = dom.find(".//%sLoudness[@channel='Master']" % namespace) if loudness_state_element is not None: loudness = loudness_state_element.get('val') if loudness is not None: speaker.loudness = int(loudness)