Ejemplo n.º 1
0
    def disconnect(self):
        """ Live -> Script: Called right before we get disconnected from Live """
        for message in self._scheduled_messages:
            if (message['Parameter'] != None):
                message['Message'](message['Parameter'])
            else:
                message['Message']()

        self._scheduled_messages = None
        self._forwarding_registry = None
        for component in self._components:
            component.disconnect()

        for control in self._controls:
            control.disconnect()

        self._controls = None
        self._components = None
        self._displays = None
        self._timer_callbacks = None
        self._device_component = None
        self._pad_translations = None
        ControlElement.release_class_attributes()
        InputControlElement.release_class_attributes()
        ControlSurfaceComponent.release_class_attributes()
        SessionComponent.release_class_attributes()
        self.song().remove_tracks_listener(self._on_track_list_changed)
        self.song().remove_scenes_listener(self._on_scene_list_changed)
        self.song().view.remove_selected_track_listener(self._on_selected_track_changed)
        self.song().view.remove_selected_scene_listener(self._on_selected_scene_changed)
Ejemplo n.º 2
0
    def disconnect(self):
        """ Live -> Script: Called right before we get disconnected from Live """
        for message in self._scheduled_messages:
            if (message['Parameter'] != None):
                message['Message'](message['Parameter'])
            else:
                message['Message']()

        self._scheduled_messages = None
        self._forwarding_registry = None
        for component in self._components:
            component.disconnect()

        for control in self._controls:
            control.disconnect()

        self._controls = None
        self._components = None
        self._displays = None
        self._timer_callbacks = None
        self._device_component = None
        self._pad_translations = None
        ControlElement.release_class_attributes()
        InputControlElement.release_class_attributes()
        ControlSurfaceComponent.release_class_attributes()
        SessionComponent.release_class_attributes()
        self.song().remove_tracks_listener(self._on_track_list_changed)
        self.song().remove_scenes_listener(self._on_scene_list_changed)
        self.song().view.remove_selected_track_listener(
            self._on_selected_track_changed)
        self.song().view.remove_selected_scene_listener(
            self._on_selected_scene_changed)
Ejemplo n.º 3
0
 def __init__(self, c_instance):
     """ Define and Initialise standard behaviour """
     object.__init__(self)
     self._c_instance = c_instance
     self._midi_map_handle = None
     self._pad_translations = None
     self._suggested_input_port = str('')
     self._suggested_output_port = str('')
     self._modes = []
     self._components = []
     self._displays = []
     self._controls = []
     self._device_component = None
     self._forwarding_registry = {}
     self._timer_callbacks = []
     self._scheduled_messages = []
     self._in_build_midi_map = False
     self._suppress_requests_counter = 0
     self._rebuild_requests_during_suppression = 0
     ControlSurfaceComponent.set_song_and_application(self.song(), self.application())
     ControlElement.set_register_control_callback(self._register_control)
     ControlElement.set_send_midi_callback(self._send_midi)
     InputControlElement.set_mapping_callback(self._install_mapping)
     InputControlElement.set_forwarding_callback(self._install_forwarding)
     InputControlElement.set_translation_callback(self._translate_message)
     ControlSurfaceComponent.set_register_component_callback(self._register_component)
     ControlSurfaceComponent.set_register_timer_notification_callback(self._register_timer_callback)
     ControlSurfaceComponent.set_unregister_timer_notification_callback(self._unregister_timer_callback)
     ControlSurfaceComponent.set_request_rebuild_callback(self.request_rebuild_midi_map)
     SessionComponent.set_highlighting_callback(self._set_session_highlight)
     self.song().add_tracks_listener(self._on_track_list_changed)
     self.song().add_scenes_listener(self._on_scene_list_changed)
     self.song().view.add_selected_track_listener(self._on_selected_track_changed)
     self.song().view.add_selected_scene_listener(self._on_selected_scene_changed)
 def disconnect(self):
     ControlElement.disconnect(self)
     for segment in self._logical_segments:
         segment.disconnect()
     self._logical_segments = None
     self._translation_table = None
     self._message_header = None
     self._message_tail = None
     self._message_part_delimiter = None
     self._message_clear_all = None
     return None
Ejemplo n.º 5
0
    def disconnect(self):
        ControlElement.disconnect(self)
        for segment in self._logical_segments:
            segment.disconnect()

        self._logical_segments = None
        self._translation_table = None
        self._message_header = None
        self._message_tail = None
        self._message_part_delimiter = None
        self._message_clear_all = None
Ejemplo n.º 6
0
 def __init__(self, c_instance, publish_self=True):
     """ Define and Initialise standard behaviour """
     object.__init__(self)
     self.canonical_parent = None
     if publish_self:
         if isinstance(__builtins__, dict):
             if CS_LIST_KEY not in __builtins__.keys():
                 __builtins__[CS_LIST_KEY] = []
             __builtins__[CS_LIST_KEY].append(self)
         else:
             if not hasattr(__builtins__, CS_LIST_KEY):
                 setattr(__builtins__, CS_LIST_KEY, [])
             cs_list = getattr(__builtins__, CS_LIST_KEY)
             cs_list.append(self)
             setattr(__builtins__, CS_LIST_KEY, cs_list)
     self._c_instance = c_instance
     self._midi_map_handle = None
     self._pad_translations = None
     self._suggested_input_port = str('')
     self._suggested_output_port = str('')
     self._modes = []
     self.components = []
     self._displays = []
     self.controls = []
     self._device_component = None
     self._device_selection_follows_track_selection = False
     self._forwarding_registry = {}
     self._timer_callbacks = []
     self._scheduled_messages = []
     self._in_build_midi_map = False
     self._suppress_requests_counter = 0
     self._rebuild_requests_during_suppression = 0
     self._enabled = True
     self._components_to_leave_disabled = None
     ControlSurfaceComponent.set_song_and_application(self.song(), self.application())
     ControlElement.set_register_control_callback(self._register_control)
     ControlElement.set_send_midi_callback(self._send_midi)
     InputControlElement.set_mapping_callback(self._install_mapping)
     InputControlElement.set_forwarding_callback(self._install_forwarding)
     InputControlElement.set_translation_callback(self._translate_message)
     ControlSurfaceComponent.set_register_component_callback(self._register_component)
     ControlSurfaceComponent.set_request_rebuild_callback(self.request_rebuild_midi_map)
     ControlSurfaceComponent.set_show_message_callback(self.show_message)
     ControlSurfaceComponent.set_register_timer_notification_callback(self._register_timer_callback)
     ControlSurfaceComponent.set_unregister_timer_notification_callback(self._unregister_timer_callback)
     SessionComponent.set_highlighting_callback(self._set_session_highlight)
     self.song().add_visible_tracks_listener(self._on_track_list_changed)
     self.song().add_scenes_listener(self._on_scene_list_changed)
     self.song().view.add_selected_track_listener(self._on_selected_track_changed)
     self.song().view.add_selected_scene_listener(self._on_selected_scene_changed)
     return None
 def __init__(self, width_in_chars, num_segments):
     assert (width_in_chars != None)
     assert (num_segments != None)
     assert isinstance(width_in_chars, int)
     assert isinstance(num_segments, int)
     ControlElement.__init__(self)
     self._width = width_in_chars
     self._logical_segments = []
     self._translation_table = PhysicalDisplayElement._ascii_translations
     width_without_delimiters = self._width - num_segments + 1
     width_per_segment = int(width_without_delimiters / num_segments)
     for index in range(num_segments):
         new_segment = LogicalDisplaySegment(width_per_segment, self.update)
         self._logical_segments.append(new_segment)
     self._message_header = None
     self._message_tail = None
     self._message_part_delimiter = None
     self._message_clear_all = None
     self._block_messages = False
     return None
Ejemplo n.º 8
0
    def __init__(self, width_in_chars, num_segments):
        assert (width_in_chars != None)
        assert (num_segments != None)
        assert isinstance(width_in_chars, int)
        assert isinstance(num_segments, int)
        ControlElement.__init__(self)
        self._width = width_in_chars
        self._logical_segments = []
        self._translation_table = PhysicalDisplayElement._ascii_translations
        width_without_delimiters = ((self._width - num_segments) + 1)
        width_per_segment = int((width_without_delimiters / num_segments))
        for index in range(num_segments):
            new_segment = LogicalDisplaySegment(width_per_segment, self.update)
            self._logical_segments.append(new_segment)

        self._message_header = None
        self._message_tail = None
        self._message_part_delimiter = None
        self._message_clear_all = None
        self._block_messages = False
Ejemplo n.º 9
0
 def __init__(self, c_instance):
     """ Define and Initialise standard behaviour """
     object.__init__(self)
     self._c_instance = c_instance
     self._midi_map_handle = None
     self._pad_translations = None
     self._suggested_input_port = str('')
     self._suggested_output_port = str('')
     self._modes = []
     self._components = []
     self._displays = []
     self._controls = []
     self._device_component = None
     self._forwarding_registry = {}
     self._timer_callbacks = []
     self._scheduled_messages = []
     self._in_build_midi_map = False
     self._suppress_requests_counter = 0
     self._rebuild_requests_during_suppression = 0
     ControlSurfaceComponent.set_song_and_application(
         self.song(), self.application())
     ControlElement.set_register_control_callback(self._register_control)
     ControlElement.set_send_midi_callback(self._send_midi)
     InputControlElement.set_mapping_callback(self._install_mapping)
     InputControlElement.set_forwarding_callback(self._install_forwarding)
     InputControlElement.set_translation_callback(self._translate_message)
     ControlSurfaceComponent.set_register_component_callback(
         self._register_component)
     ControlSurfaceComponent.set_register_timer_notification_callback(
         self._register_timer_callback)
     ControlSurfaceComponent.set_unregister_timer_notification_callback(
         self._unregister_timer_callback)
     ControlSurfaceComponent.set_request_rebuild_callback(
         self.request_rebuild_midi_map)
     SessionComponent.set_highlighting_callback(self._set_session_highlight)
     self.song().add_tracks_listener(self._on_track_list_changed)
     self.song().add_scenes_listener(self._on_scene_list_changed)
     self.song().view.add_selected_track_listener(
         self._on_selected_track_changed)
     self.song().view.add_selected_scene_listener(
         self._on_selected_scene_changed)
Ejemplo n.º 10
0
 def disconnect(self):
     """ Live -> Script: Called right before we get disconnected from Live """        
     for message in self._scheduled_messages:
         if message['Parameter'] != None:
             message['Message'](message['Parameter'])
         else:
             message['Message']()
     self._scheduled_messages = None
     self._forwarding_registry = None
     for component in self.components:
         component.disconnect()
     for control in self.controls:
         control.disconnect()
     self.controls = None
     self.components = None
     self._displays = None
     self._timer_callbacks = None
     self._device_component = None
     self._pad_translations = None
     ControlElement.release_class_attributes()
     InputControlElement.release_class_attributes()
     ControlSurfaceComponent.release_class_attributes()
     SessionComponent.release_class_attributes()
     self.song().remove_visible_tracks_listener(self._on_track_list_changed)
     self.song().remove_scenes_listener(self._on_scene_list_changed)
     self.song().view.remove_selected_track_listener(self._on_selected_track_changed)
     self.song().view.remove_selected_scene_listener(self._on_selected_scene_changed)
     if isinstance(__builtins__, dict):
         if CS_LIST_KEY not in __builtins__.keys():
             __builtins__[CS_LIST_KEY] = []
         if self in __builtins__[CS_LIST_KEY]:
             __builtins__[CS_LIST_KEY].remove(self)
     else:
         if hasattr(__builtins__, CS_LIST_KEY):
             cs_list = getattr(__builtins__, CS_LIST_KEY)
             if self in cs_list:
                 cs_list.remove(self)
                 setattr(__builtins__, CS_LIST_KEY, cs_list)
     return None
 def send_midi(self, midi_bytes):
     if midi_bytes != self._last_sent_message:
         ControlElement.send_midi(self, midi_bytes)
         self._last_sent_message = midi_bytes
 def send_midi(self, midi_bytes):
     if midi_bytes != self._last_sent_message:
         ControlElement.send_midi(self, midi_bytes)
         self._last_sent_message = midi_bytes
 def __init__(self):
     ControlElement.__init__(self)
     self._value_notifications = []
 def disconnect(self):
     ControlElement.disconnect(self)
     self._value_notifications = []
 def __init__(self):
     ControlElement.__init__(self)
     self._value_notifications = []
 def disconnect(self):
     ControlElement.disconnect(self)
     self._value_notifications = []