Пример #1
0
    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'])
Пример #2
0
 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')
Пример #3
0
 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')
Пример #4
0
    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'])
Пример #5
0
    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'])
Пример #6
0
    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)