def _create_modes(self):
     self._modes = NotifyingModesComponent(is_root=True)
     self._modes.default_behaviour = mixin(SkinableBehaviourMixin, ImmediateBehaviour)()
     self._modes.add_mode('session_mode', [
      self._session,
      self._session_layer_mode], layout_byte=0, behaviour=EnablingReenterBehaviour(self._session_zoom))
     self._modes.add_mode('user_1_mode', [], layout_byte=1)
     self._modes.add_mode('user_2_mode', [], layout_byte=2)
     self._modes.add_mode('volume_mode', [
      self._session,
      self._create_translating_mixer_background(consts.VOLUME_MODE_CHANNEL),
      self._mixer_volume_layer], layout_byte=4, groups=set('mixer'))
     self._modes.add_mode('pan_mode', [
      self._session,
      self._create_translating_mixer_background(consts.PAN_MODE_CHANNEL),
      self._mixer_pan_layer], layout_byte=5, groups=set('mixer'))
     self._modes.add_mode('send_a_mode', [
      self._session,
      self._create_translating_mixer_background(consts.SEND_A_MODE_CHANNEL),
      partial(self._set_send_index, 0),
      self._mixer_sends_layer], layout_byte=6, groups=set('mixer'))
     self._modes.add_mode('send_b_mode', [
      self._session,
      self._create_translating_mixer_background(consts.SEND_B_MODE_CHANNEL),
      partial(self._set_send_index, 1),
      self._mixer_sends_layer], layout_byte=7, groups=set('mixer'))
     self._modes.add_mode('mixer_mode', [
      self._session,
      self._stop_clip_layer_mode,
      self._mixer_home_page_layer], layout_byte=3, groups=set('mixer'))
     self._modes.layer = Layer(session_mode_button=self._session_button, user_1_mode_button=self._user_1_button, user_2_mode_button=self._user_2_button, mixer_mode_button=self._mixer_button, volume_mode_button=self._volume_button, pan_mode_button=self._pan_button, send_a_mode_button=self._send_a_button, send_b_mode_button=self._send_b_button)
     self._modes.selected_mode = 'session_mode'
    def _create_encoder_modes(self):
        self._encoder_modes = DisablingModesComponent()
        self._encoder_modes.default_behaviour = mixin(SkinableBehaviourMixin,
                                                      ImmediateBehaviour)()
        device_mode = LayerMode(
            self._device,
            Layer(parameter_controls=self._encoders,
                  bank_buttons=self._top_pad_row))
        pan_mode = AddLayerMode(self._mixer,
                                Layer(pan_controls=self._encoders))
        sends_mode = AddLayerMode(self._mixer,
                                  Layer(send_controls=self._encoders))
        background_mode = LayerMode(self._background,
                                    Layer(bank_buttons=self._top_pad_row))
        self._encoder_modes.add_mode('device_mode',
                                     device_mode,
                                     is_enabled=True)
        self._encoder_modes.add_mode('pan_mode', [pan_mode, background_mode],
                                     is_enabled=True)
        for index in xrange(6):
            self._encoder_modes.add_mode('send_%d_mode' % (index, ), [
                sends_mode,
                partial(self._set_send_index, index), background_mode
            ],
                                         is_enabled=False)

        self._encoder_modes.selected_mode = 'device_mode'
        self._encoder_modes.set_enabled(True)
 def auto_arm_restore_behaviour(self, *extra_classes, **extra_params):
     if not self._auto_arm_restore_behaviour:
         self._auto_arm_restore_behaviour = mixin(
             AutoArmRestoreBehaviour, *extra_classes)(auto_arm=self,
                                                      **extra_params)
     else:
         raise not extra_params and not extra_classes or AssertionError
     return self._auto_arm_restore_behaviour
 def auto_arm_restore_behaviour(self, *extra_classes, **extra_params):
     if not self._auto_arm_restore_behaviour:
         self._auto_arm_restore_behaviour = mixin(AutoArmRestoreBehaviour, *extra_classes)(
             auto_arm=self, **extra_params
         )
     else:
         raise not extra_params and not extra_classes or AssertionError
     return self._auto_arm_restore_behaviour
Beispiel #5
0
    def _create_encoder_modes(self):
        self._encoder_modes = DisablingModesComponent()
        self._encoder_modes.default_behaviour = mixin(SkinableBehaviourMixin, ImmediateBehaviour)()
        device_mode = LayerMode(self._device, Layer(parameter_controls=self._encoders, bank_buttons=self._top_pad_row))
        pan_mode = AddLayerMode(self._mixer, Layer(pan_controls=self._encoders))
        sends_mode = AddLayerMode(self._mixer, Layer(send_controls=self._encoders))
        background_mode = LayerMode(self._background, Layer(bank_buttons=self._top_pad_row))
        self._encoder_modes.add_mode('device_mode', device_mode, is_enabled=True)
        self._encoder_modes.add_mode('pan_mode', [pan_mode, background_mode], is_enabled=True)
        for index in xrange(6):
            self._encoder_modes.add_mode('send_%d_mode' % (index,), [sends_mode, partial(self._set_send_index, index), background_mode], is_enabled=False)

        self._encoder_modes.selected_mode = 'device_mode'
        self._encoder_modes.set_enabled(True)
Beispiel #6
0
 def add_listener(self, addr, property, obj, value, *a):
     """ Dynamically add a subject slot and callback """
     def fn(self):
         self.log_message('listener called: ' + addr + ' ' + property)
         
         args = []
         for arg in a:
             args.append(getattr(self, arg))
         args.append(getattr(self._get_object(obj), value))
         
         self.send(addr, *args)
 
     fn = wraps(fn)(mixin(SubjectSlot, CallableSlotMixin)(event=property, listener=partial(fn,self), function=partial(fn,self)))
     self.register_slot(fn)
     
     self._subject_slots.append('_on_'+property+'_changed')
     
     if not hasattr(self, '_on_'+property+'_changed'):
         setattr(self, '_on_'+property+'_changed', fn)
 def _create_modes(self):
     self._modes = NotifyingModesComponent(is_root=True)
     self._modes.default_behaviour = mixin(SkinableBehaviourMixin, ImmediateBehaviour)()
     self._modes.add_mode('session_mode', [self._session, self._session_layer_mode], layout_byte=0, behaviour=EnablingReenterBehaviour(self._session_zoom))
     self._modes.add_mode('user_1_mode', [], layout_byte=1)
     self._modes.add_mode('user_2_mode', [], layout_byte=2)
     self._modes.add_mode('volume_mode', [self._session, self._create_translating_mixer_background(consts.VOLUME_MODE_CHANNEL), self._mixer_volume_layer], layout_byte=4, groups=set('mixer'))
     self._modes.add_mode('pan_mode', [self._session, self._create_translating_mixer_background(consts.PAN_MODE_CHANNEL), self._mixer_pan_layer], layout_byte=5, groups=set('mixer'))
     self._modes.add_mode('send_a_mode', [self._session,
      self._create_translating_mixer_background(consts.SEND_A_MODE_CHANNEL),
      partial(self._set_send_index, 0),
      self._mixer_sends_layer], layout_byte=6, groups=set('mixer'))
     self._modes.add_mode('send_b_mode', [self._session,
      self._create_translating_mixer_background(consts.SEND_B_MODE_CHANNEL),
      partial(self._set_send_index, 1),
      self._mixer_sends_layer], layout_byte=7, groups=set('mixer'))
     self._modes.add_mode('mixer_mode', [self._session, self._stop_clip_layer_mode, self._mixer_home_page_layer], layout_byte=3, groups=set('mixer'))
     self._modes.layer = Layer(session_mode_button=self._session_button, user_1_mode_button=self._user_1_button, user_2_mode_button=self._user_2_button, mixer_mode_button=self._mixer_button, volume_mode_button=self._volume_button, pan_mode_button=self._pan_button, send_a_mode_button=self._send_a_button, send_b_mode_button=self._send_b_button)
     self._modes.selected_mode = 'session_mode'