Sync: Complete project state with all MEGA SPRINT V1-V3 features and Codex stubs
This commit is contained in:
21
_Framework/Component.py
Normal file
21
_Framework/Component.py
Normal file
@@ -0,0 +1,21 @@
|
||||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
|
||||
import Live
|
||||
|
||||
|
||||
class Component(object):
|
||||
"""Minimal compatibility layer for handlers importing `_Framework.Component`."""
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
pass
|
||||
|
||||
@property
|
||||
def song(self):
|
||||
return Live.Application.get_application().get_document()
|
||||
|
||||
@property
|
||||
def application(self):
|
||||
return Live.Application.get_application()
|
||||
|
||||
def disconnect(self):
|
||||
return None
|
||||
115
_Framework/ControlSurface.py
Normal file
115
_Framework/ControlSurface.py
Normal file
@@ -0,0 +1,115 @@
|
||||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
|
||||
import contextlib
|
||||
|
||||
import Live
|
||||
|
||||
|
||||
class ControlSurface(object):
|
||||
"""Minimal legacy `_Framework.ControlSurface` compatibility layer."""
|
||||
|
||||
def __init__(self, c_instance):
|
||||
self._c_instance = c_instance
|
||||
|
||||
def application(self):
|
||||
if hasattr(self._c_instance, "application"):
|
||||
return self._c_instance.application()
|
||||
return Live.Application.get_application()
|
||||
|
||||
def song(self):
|
||||
app = self.application()
|
||||
if hasattr(app, "get_document"):
|
||||
return app.get_document()
|
||||
return None
|
||||
|
||||
def log_message(self, message):
|
||||
if hasattr(self._c_instance, "log_message"):
|
||||
self._c_instance.log_message(message)
|
||||
|
||||
def show_message(self, message):
|
||||
if hasattr(self._c_instance, "show_message"):
|
||||
self._c_instance.show_message(message)
|
||||
|
||||
def schedule_message(self, delay_in_ticks, callback, *args, **kwargs):
|
||||
if args or kwargs:
|
||||
def wrapped():
|
||||
return callback(*args, **kwargs)
|
||||
else:
|
||||
wrapped = callback
|
||||
|
||||
if hasattr(self._c_instance, "schedule_message"):
|
||||
return self._c_instance.schedule_message(delay_in_ticks, wrapped)
|
||||
if int(delay_in_ticks or 0) <= 0:
|
||||
return wrapped()
|
||||
return None
|
||||
|
||||
@contextlib.contextmanager
|
||||
def component_guard(self):
|
||||
yield
|
||||
|
||||
def request_rebuild_midi_map(self):
|
||||
if hasattr(self._c_instance, "request_rebuild_midi_map"):
|
||||
return self._c_instance.request_rebuild_midi_map()
|
||||
return None
|
||||
|
||||
def set_pad_translations(self, *args, **kwargs):
|
||||
if hasattr(self._c_instance, "set_pad_translations"):
|
||||
return self._c_instance.set_pad_translations(*args, **kwargs)
|
||||
return None
|
||||
|
||||
def set_feedback_channels(self, *args, **kwargs):
|
||||
if hasattr(self._c_instance, "set_feedback_channels"):
|
||||
return self._c_instance.set_feedback_channels(*args, **kwargs)
|
||||
return None
|
||||
|
||||
def set_controlled_track(self, *args, **kwargs):
|
||||
if hasattr(self._c_instance, "set_controlled_track"):
|
||||
return self._c_instance.set_controlled_track(*args, **kwargs)
|
||||
return None
|
||||
|
||||
def instance_identifier(self):
|
||||
if hasattr(self._c_instance, "instance_identifier"):
|
||||
return self._c_instance.instance_identifier()
|
||||
return None
|
||||
|
||||
def disconnect(self):
|
||||
return None
|
||||
|
||||
def update_display(self):
|
||||
return None
|
||||
|
||||
def build_midi_map(self, midi_map_handle):
|
||||
return None
|
||||
|
||||
def receive_midi(self, midi_bytes):
|
||||
return None
|
||||
|
||||
def handle_sysex(self, midi_bytes):
|
||||
return None
|
||||
|
||||
def connect_script_instances(self, instantiated_scripts):
|
||||
return None
|
||||
|
||||
def can_lock_to_devices(self):
|
||||
return False
|
||||
|
||||
def lock_to_device(self, device):
|
||||
return None
|
||||
|
||||
def unlock_from_device(self, device):
|
||||
return None
|
||||
|
||||
def refresh_state(self):
|
||||
return None
|
||||
|
||||
def port_settings_changed(self):
|
||||
return None
|
||||
|
||||
def suggest_input_port(self):
|
||||
return ""
|
||||
|
||||
def suggest_output_port(self):
|
||||
return ""
|
||||
|
||||
def suggest_map_mode(self, cc_no, channel):
|
||||
return None
|
||||
9
_Framework/EncoderElement.py
Normal file
9
_Framework/EncoderElement.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
|
||||
|
||||
class EncoderElement(object):
|
||||
"""Minimal placeholder for legacy `_Framework.EncoderElement` imports."""
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.args = args
|
||||
self.kwargs = kwargs
|
||||
3
_Framework/Task.py
Normal file
3
_Framework/Task.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
|
||||
# Minimal placeholder module for legacy `from _Framework import Task` imports.
|
||||
6
_Framework/__init__.py
Normal file
6
_Framework/__init__.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
|
||||
from .ControlSurface import ControlSurface
|
||||
from .Component import Component
|
||||
from .EncoderElement import EncoderElement
|
||||
from . import Task
|
||||
Reference in New Issue
Block a user