Package _Framework :: Module ChannelTranslationSelector
[hide private]
[frames] | no frames]

Source Code for Module _Framework.ChannelTranslationSelector

 1  #Embedded file name: /Users/versonator/Hudson/live/Projects/AppLive/Resources/MIDI Remote Scripts/_Framework/ChannelTranslationSelector.py 
 2  from ModeSelectorComponent import ModeSelectorComponent 
 3  from InputControlElement import InputControlElement 
 4   
5 -class ChannelTranslationSelector(ModeSelectorComponent):
6 """ Class switches modes by translating the given controls' message channel """ 7
8 - def __init__(self, num_modes = 0):
9 ModeSelectorComponent.__init__(self) 10 self._controls_to_translate = None 11 self._initial_num_modes = num_modes
12
13 - def disconnect(self):
14 ModeSelectorComponent.disconnect(self) 15 self._controls_to_translate = None
16
17 - def set_controls_to_translate(self, controls):
18 raise self._controls_to_translate == None or AssertionError 19 raise controls != None or AssertionError 20 raise isinstance(controls, tuple) or AssertionError 21 for control in controls: 22 raise isinstance(control, InputControlElement) or AssertionError 23 24 self._controls_to_translate = controls
25
26 - def number_of_modes(self):
27 result = self._initial_num_modes 28 if result == 0 and self._modes_buttons != None: 29 result = len(self._modes_buttons) 30 return result
31
32 - def update(self):
33 if self._controls_to_translate != None: 34 for control in self._controls_to_translate: 35 control.use_default_message() 36 if self.is_enabled(): 37 control.set_channel((control.message_channel() + self._mode_index) % 16)
38