| @@ -45,6 +45,13 @@ class CarlaMultiW(QTabWidget): | |||
| def __init__(self, parent, host): | |||
| QTabWidget.__init__(self, parent) | |||
| if False: | |||
| # kdevelop likes this :) | |||
| host = CarlaHostMeta() | |||
| self.host = host | |||
| # ------------------------------------------------------------- | |||
| self.fRack = CarlaRackW(parent, host, False) | |||
| self.fPatchbay = CarlaPatchbayW(parent, host, False, False) | |||
| self.fParent = parent | |||
| @@ -84,36 +91,36 @@ class CarlaMultiW(QTabWidget): | |||
| parent.ui.act_settings_configure.triggered.connect(self.fPatchbay.slot_configureCarla) | |||
| parent.ParameterValueChangedCallback.connect(self.fRack.slot_handleParameterValueChangedCallback) | |||
| parent.ParameterValueChangedCallback.connect(self.fPatchbay.slot_handleParameterValueChangedCallback) | |||
| parent.ParameterDefaultChangedCallback.connect(self.fRack.slot_handleParameterDefaultChangedCallback) | |||
| parent.ParameterMidiChannelChangedCallback.connect(self.fRack.slot_handleParameterMidiChannelChangedCallback) | |||
| parent.ParameterMidiCcChangedCallback.connect(self.fRack.slot_handleParameterMidiCcChangedCallback) | |||
| parent.ProgramChangedCallback.connect(self.fRack.slot_handleProgramChangedCallback) | |||
| parent.MidiProgramChangedCallback.connect(self.fRack.slot_handleMidiProgramChangedCallback) | |||
| parent.OptionChangedCallback.connect(self.fRack.slot_handleOptionChangedCallback) | |||
| parent.UiStateChangedCallback.connect(self.fRack.slot_handleUiStateChangedCallback) | |||
| parent.NoteOnCallback.connect(self.fRack.slot_handleNoteOnCallback) | |||
| parent.NoteOnCallback.connect(self.fPatchbay.slot_handleNoteOnCallback) | |||
| parent.NoteOffCallback.connect(self.fRack.slot_handleNoteOffCallback) | |||
| parent.NoteOffCallback.connect(self.fPatchbay.slot_handleNoteOffCallback) | |||
| parent.UpdateCallback.connect(self.fRack.slot_handleUpdateCallback) | |||
| parent.ReloadInfoCallback.connect(self.fRack.slot_handleReloadInfoCallback) | |||
| parent.ReloadParametersCallback.connect(self.fRack.slot_handleReloadParametersCallback) | |||
| parent.ReloadParametersCallback.connect(self.fPatchbay.slot_handleReloadParametersCallback) | |||
| parent.ReloadProgramsCallback.connect(self.fRack.slot_handleReloadProgramsCallback) | |||
| parent.ReloadAllCallback.connect(self.fRack.slot_handleReloadAllCallback) | |||
| parent.ReloadAllCallback.connect(self.fPatchbay.slot_handleReloadAllCallback) | |||
| parent.PatchbayClientAddedCallback.connect(self.fPatchbay.slot_handlePatchbayClientAddedCallback) | |||
| parent.PatchbayClientRemovedCallback.connect(self.fPatchbay.slot_handlePatchbayClientRemovedCallback) | |||
| parent.PatchbayClientRenamedCallback.connect(self.fPatchbay.slot_handlePatchbayClientRenamedCallback) | |||
| parent.PatchbayClientDataChangedCallback.connect(self.fPatchbay.slot_handlePatchbayClientDataChangedCallback) | |||
| parent.PatchbayPortAddedCallback.connect(self.fPatchbay.slot_handlePatchbayPortAddedCallback) | |||
| parent.PatchbayPortRemovedCallback.connect(self.fPatchbay.slot_handlePatchbayPortRemovedCallback) | |||
| parent.PatchbayPortRenamedCallback.connect(self.fPatchbay.slot_handlePatchbayPortRenamedCallback) | |||
| parent.PatchbayConnectionAddedCallback.connect(self.fPatchbay.slot_handlePatchbayConnectionAddedCallback) | |||
| parent.PatchbayConnectionRemovedCallback.connect(self.fPatchbay.slot_handlePatchbayConnectionRemovedCallback) | |||
| host.ParameterValueChangedCallback.connect(self.fRack.slot_handleParameterValueChangedCallback) | |||
| host.ParameterValueChangedCallback.connect(self.fPatchbay.slot_handleParameterValueChangedCallback) | |||
| host.ParameterDefaultChangedCallback.connect(self.fRack.slot_handleParameterDefaultChangedCallback) | |||
| host.ParameterMidiChannelChangedCallback.connect(self.fRack.slot_handleParameterMidiChannelChangedCallback) | |||
| host.ParameterMidiCcChangedCallback.connect(self.fRack.slot_handleParameterMidiCcChangedCallback) | |||
| host.ProgramChangedCallback.connect(self.fRack.slot_handleProgramChangedCallback) | |||
| host.MidiProgramChangedCallback.connect(self.fRack.slot_handleMidiProgramChangedCallback) | |||
| host.OptionChangedCallback.connect(self.fRack.slot_handleOptionChangedCallback) | |||
| host.UiStateChangedCallback.connect(self.fRack.slot_handleUiStateChangedCallback) | |||
| host.NoteOnCallback.connect(self.fRack.slot_handleNoteOnCallback) | |||
| host.NoteOnCallback.connect(self.fPatchbay.slot_handleNoteOnCallback) | |||
| host.NoteOffCallback.connect(self.fRack.slot_handleNoteOffCallback) | |||
| host.NoteOffCallback.connect(self.fPatchbay.slot_handleNoteOffCallback) | |||
| host.UpdateCallback.connect(self.fRack.slot_handleUpdateCallback) | |||
| host.ReloadInfoCallback.connect(self.fRack.slot_handleReloadInfoCallback) | |||
| host.ReloadParametersCallback.connect(self.fRack.slot_handleReloadParametersCallback) | |||
| host.ReloadParametersCallback.connect(self.fPatchbay.slot_handleReloadParametersCallback) | |||
| host.ReloadProgramsCallback.connect(self.fRack.slot_handleReloadProgramsCallback) | |||
| host.ReloadAllCallback.connect(self.fRack.slot_handleReloadAllCallback) | |||
| host.ReloadAllCallback.connect(self.fPatchbay.slot_handleReloadAllCallback) | |||
| host.PatchbayClientAddedCallback.connect(self.fPatchbay.slot_handlePatchbayClientAddedCallback) | |||
| host.PatchbayClientRemovedCallback.connect(self.fPatchbay.slot_handlePatchbayClientRemovedCallback) | |||
| host.PatchbayClientRenamedCallback.connect(self.fPatchbay.slot_handlePatchbayClientRenamedCallback) | |||
| host.PatchbayClientDataChangedCallback.connect(self.fPatchbay.slot_handlePatchbayClientDataChangedCallback) | |||
| host.PatchbayPortAddedCallback.connect(self.fPatchbay.slot_handlePatchbayPortAddedCallback) | |||
| host.PatchbayPortRemovedCallback.connect(self.fPatchbay.slot_handlePatchbayPortRemovedCallback) | |||
| host.PatchbayPortRenamedCallback.connect(self.fPatchbay.slot_handlePatchbayPortRenamedCallback) | |||
| host.PatchbayConnectionAddedCallback.connect(self.fPatchbay.slot_handlePatchbayConnectionAddedCallback) | |||
| host.PatchbayConnectionRemovedCallback.connect(self.fPatchbay.slot_handlePatchbayConnectionRemovedCallback) | |||
| # ----------------------------------------------------------------- | |||
| @@ -143,18 +150,15 @@ class CarlaMultiW(QTabWidget): | |||
| # ----------------------------------------------------------------- | |||
| def engineStarted(self): | |||
| pass | |||
| #self.fRack.engineStarted() | |||
| #self.fPatchbay.engineStarted() | |||
| self.fParent.engineChanged() | |||
| def engineStopped(self): | |||
| #self.fRack.engineStopped() | |||
| self.fPatchbay.engineStopped() | |||
| self.fParent.engineStopped() | |||
| def engineChanged(self): | |||
| self.fParent.engineChanged() | |||
| # ----------------------------------------------------------------- | |||
| def idleFast(self): | |||
| @@ -257,9 +261,9 @@ class CarlaHostW(HostWindow): | |||
| self.fInfoText = "" | |||
| self.fInfoLabel.setText("Engine stopped") | |||
| def engineChanged(self): | |||
| self.fInfoText = "Engine running | SampleRate: %g | BufferSize: %i" % (gCarla.sampleRate, gCarla.bufferSize) | |||
| self.fInfoLabel.setText("%s | %s" % (self.fInfoText, self.fTextTransport)) | |||
| #def engineChanged(self): | |||
| #self.fInfoText = "Engine running | SampleRate: %g | BufferSize: %i" % (gCarla.sampleRate, gCarla.bufferSize) | |||
| #self.fInfoLabel.setText("%s | %s" % (self.fInfoText, self.fTextTransport)) | |||
| # ----------------------------------------------------------------- | |||
| @@ -16,6 +16,11 @@ | |||
| # | |||
| # For a full copy of the GNU General Public License see the doc/GPL.txt file. | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| # Imports (Config) | |||
| from carla_config import * | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| # Imports (Global) | |||
| @@ -25,6 +30,11 @@ from os import environ | |||
| from platform import architecture | |||
| from sys import platform, maxsize | |||
| if config_UseQt5: | |||
| from PyQt5.QtCore import pyqtSignal, QObject | |||
| else: | |||
| from PyQt4.QtCore import pyqtSignal, QObject | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| # 64bit check | |||
| @@ -1237,9 +1247,50 @@ else: | |||
| # ------------------------------------------------------------------------------------------------------------ | |||
| # Carla Host object (Meta) | |||
| class CarlaHostMeta(object): | |||
| #class CarlaHostMeta(metaclass=ABCMeta): | |||
| class CarlaHostMeta(QObject): | |||
| #class CarlaHostMeta(QObject, metaclass=ABCMeta): | |||
| # signals | |||
| DebugCallback = pyqtSignal(int, int, int, float, str) | |||
| PluginAddedCallback = pyqtSignal(int, str) | |||
| PluginRemovedCallback = pyqtSignal(int) | |||
| PluginRenamedCallback = pyqtSignal(int, str) | |||
| PluginUnavailableCallback = pyqtSignal(int, str) | |||
| ParameterValueChangedCallback = pyqtSignal(int, int, float) | |||
| ParameterDefaultChangedCallback = pyqtSignal(int, int, float) | |||
| ParameterMidiCcChangedCallback = pyqtSignal(int, int, int) | |||
| ParameterMidiChannelChangedCallback = pyqtSignal(int, int, int) | |||
| ProgramChangedCallback = pyqtSignal(int, int) | |||
| MidiProgramChangedCallback = pyqtSignal(int, int) | |||
| OptionChangedCallback = pyqtSignal(int, int, bool) | |||
| UiStateChangedCallback = pyqtSignal(int, int) | |||
| NoteOnCallback = pyqtSignal(int, int, int, int) | |||
| NoteOffCallback = pyqtSignal(int, int, int) | |||
| UpdateCallback = pyqtSignal(int) | |||
| ReloadInfoCallback = pyqtSignal(int) | |||
| ReloadParametersCallback = pyqtSignal(int) | |||
| ReloadProgramsCallback = pyqtSignal(int) | |||
| ReloadAllCallback = pyqtSignal(int) | |||
| PatchbayClientAddedCallback = pyqtSignal(int, int, int, str) | |||
| PatchbayClientRemovedCallback = pyqtSignal(int) | |||
| PatchbayClientRenamedCallback = pyqtSignal(int, str) | |||
| PatchbayClientDataChangedCallback = pyqtSignal(int, int, int) | |||
| PatchbayPortAddedCallback = pyqtSignal(int, int, int, str) | |||
| PatchbayPortRemovedCallback = pyqtSignal(int, int) | |||
| PatchbayPortRenamedCallback = pyqtSignal(int, int, str) | |||
| PatchbayConnectionAddedCallback = pyqtSignal(int, int, int, int, int) | |||
| PatchbayConnectionRemovedCallback = pyqtSignal(int, int, int) | |||
| EngineStartedCallback = pyqtSignal(int, int, str) | |||
| EngineStoppedCallback = pyqtSignal() | |||
| ProcessModeChangedCallback = pyqtSignal(int) | |||
| TransportModeChangedCallback = pyqtSignal(int) | |||
| BufferSizeChangedCallback = pyqtSignal(int) | |||
| SampleRateChangedCallback = pyqtSignal(float) | |||
| InfoCallback = pyqtSignal(str) | |||
| ErrorCallback = pyqtSignal(str) | |||
| QuitCallback = pyqtSignal() | |||
| def __init__(self): | |||
| QObject.__init__(self) | |||
| # info about this host object | |||
| self.isControl = False | |||
| @@ -102,7 +102,8 @@ class CarlaPatchbayW(QFrame, PluginEditParentMeta): | |||
| if False: | |||
| # kdevelop likes this :) | |||
| self.host = host = CarlaHostMeta() | |||
| host = CarlaHostMeta() | |||
| self.host = host | |||
| # ------------------------------------------------------------- | |||
| @@ -230,29 +231,29 @@ class CarlaPatchbayW(QFrame, PluginEditParentMeta): | |||
| parent.ui.act_settings_configure.triggered.connect(self.slot_configureCarla) | |||
| parent.ParameterValueChangedCallback.connect(self.slot_handleParameterValueChangedCallback) | |||
| parent.ParameterDefaultChangedCallback.connect(self.slot_handleParameterDefaultChangedCallback) | |||
| parent.ParameterMidiChannelChangedCallback.connect(self.slot_handleParameterMidiChannelChangedCallback) | |||
| parent.ParameterMidiCcChangedCallback.connect(self.slot_handleParameterMidiCcChangedCallback) | |||
| parent.ProgramChangedCallback.connect(self.slot_handleProgramChangedCallback) | |||
| parent.MidiProgramChangedCallback.connect(self.slot_handleMidiProgramChangedCallback) | |||
| parent.OptionChangedCallback.connect(self.slot_handleOptionChangedCallback) | |||
| parent.NoteOnCallback.connect(self.slot_handleNoteOnCallback) | |||
| parent.NoteOffCallback.connect(self.slot_handleNoteOffCallback) | |||
| parent.UpdateCallback.connect(self.slot_handleUpdateCallback) | |||
| parent.ReloadInfoCallback.connect(self.slot_handleReloadInfoCallback) | |||
| parent.ReloadParametersCallback.connect(self.slot_handleReloadParametersCallback) | |||
| parent.ReloadProgramsCallback.connect(self.slot_handleReloadProgramsCallback) | |||
| parent.ReloadAllCallback.connect(self.slot_handleReloadAllCallback) | |||
| parent.PatchbayClientAddedCallback.connect(self.slot_handlePatchbayClientAddedCallback) | |||
| parent.PatchbayClientRemovedCallback.connect(self.slot_handlePatchbayClientRemovedCallback) | |||
| parent.PatchbayClientRenamedCallback.connect(self.slot_handlePatchbayClientRenamedCallback) | |||
| parent.PatchbayClientDataChangedCallback.connect(self.slot_handlePatchbayClientDataChangedCallback) | |||
| parent.PatchbayPortAddedCallback.connect(self.slot_handlePatchbayPortAddedCallback) | |||
| parent.PatchbayPortRemovedCallback.connect(self.slot_handlePatchbayPortRemovedCallback) | |||
| parent.PatchbayPortRenamedCallback.connect(self.slot_handlePatchbayPortRenamedCallback) | |||
| parent.PatchbayConnectionAddedCallback.connect(self.slot_handlePatchbayConnectionAddedCallback) | |||
| parent.PatchbayConnectionRemovedCallback.connect(self.slot_handlePatchbayConnectionRemovedCallback) | |||
| host.ParameterValueChangedCallback.connect(self.slot_handleParameterValueChangedCallback) | |||
| host.ParameterDefaultChangedCallback.connect(self.slot_handleParameterDefaultChangedCallback) | |||
| host.ParameterMidiChannelChangedCallback.connect(self.slot_handleParameterMidiChannelChangedCallback) | |||
| host.ParameterMidiCcChangedCallback.connect(self.slot_handleParameterMidiCcChangedCallback) | |||
| host.ProgramChangedCallback.connect(self.slot_handleProgramChangedCallback) | |||
| host.MidiProgramChangedCallback.connect(self.slot_handleMidiProgramChangedCallback) | |||
| host.OptionChangedCallback.connect(self.slot_handleOptionChangedCallback) | |||
| host.NoteOnCallback.connect(self.slot_handleNoteOnCallback) | |||
| host.NoteOffCallback.connect(self.slot_handleNoteOffCallback) | |||
| host.UpdateCallback.connect(self.slot_handleUpdateCallback) | |||
| host.ReloadInfoCallback.connect(self.slot_handleReloadInfoCallback) | |||
| host.ReloadParametersCallback.connect(self.slot_handleReloadParametersCallback) | |||
| host.ReloadProgramsCallback.connect(self.slot_handleReloadProgramsCallback) | |||
| host.ReloadAllCallback.connect(self.slot_handleReloadAllCallback) | |||
| host.PatchbayClientAddedCallback.connect(self.slot_handlePatchbayClientAddedCallback) | |||
| host.PatchbayClientRemovedCallback.connect(self.slot_handlePatchbayClientRemovedCallback) | |||
| host.PatchbayClientRenamedCallback.connect(self.slot_handlePatchbayClientRenamedCallback) | |||
| host.PatchbayClientDataChangedCallback.connect(self.slot_handlePatchbayClientDataChangedCallback) | |||
| host.PatchbayPortAddedCallback.connect(self.slot_handlePatchbayPortAddedCallback) | |||
| host.PatchbayPortRemovedCallback.connect(self.slot_handlePatchbayPortRemovedCallback) | |||
| host.PatchbayPortRenamedCallback.connect(self.slot_handlePatchbayPortRenamedCallback) | |||
| host.PatchbayConnectionAddedCallback.connect(self.slot_handlePatchbayConnectionAddedCallback) | |||
| host.PatchbayConnectionRemovedCallback.connect(self.slot_handlePatchbayConnectionRemovedCallback) | |||
| # ----------------------------------------------------------------- | |||
| @@ -337,9 +338,6 @@ class CarlaPatchbayW(QFrame, PluginEditParentMeta): | |||
| def engineStopped(self): | |||
| patchcanvas.clear() | |||
| def engineChanged(self): | |||
| pass | |||
| # ----------------------------------------------------------------- | |||
| def idleFast(self): | |||
| @@ -305,21 +305,21 @@ class CarlaRackW(QFrame): | |||
| parent.ui.act_settings_configure.triggered.connect(self.slot_configureCarla) | |||
| parent.ParameterValueChangedCallback.connect(self.slot_handleParameterValueChangedCallback) | |||
| parent.ParameterDefaultChangedCallback.connect(self.slot_handleParameterDefaultChangedCallback) | |||
| parent.ParameterMidiChannelChangedCallback.connect(self.slot_handleParameterMidiChannelChangedCallback) | |||
| parent.ParameterMidiCcChangedCallback.connect(self.slot_handleParameterMidiCcChangedCallback) | |||
| parent.ProgramChangedCallback.connect(self.slot_handleProgramChangedCallback) | |||
| parent.MidiProgramChangedCallback.connect(self.slot_handleMidiProgramChangedCallback) | |||
| parent.OptionChangedCallback.connect(self.slot_handleOptionChangedCallback) | |||
| parent.UiStateChangedCallback.connect(self.slot_handleUiStateChangedCallback) | |||
| parent.NoteOnCallback.connect(self.slot_handleNoteOnCallback) | |||
| parent.NoteOffCallback.connect(self.slot_handleNoteOffCallback) | |||
| parent.UpdateCallback.connect(self.slot_handleUpdateCallback) | |||
| parent.ReloadInfoCallback.connect(self.slot_handleReloadInfoCallback) | |||
| parent.ReloadParametersCallback.connect(self.slot_handleReloadParametersCallback) | |||
| parent.ReloadProgramsCallback.connect(self.slot_handleReloadProgramsCallback) | |||
| parent.ReloadAllCallback.connect(self.slot_handleReloadAllCallback) | |||
| host.ParameterValueChangedCallback.connect(self.slot_handleParameterValueChangedCallback) | |||
| host.ParameterDefaultChangedCallback.connect(self.slot_handleParameterDefaultChangedCallback) | |||
| host.ParameterMidiChannelChangedCallback.connect(self.slot_handleParameterMidiChannelChangedCallback) | |||
| host.ParameterMidiCcChangedCallback.connect(self.slot_handleParameterMidiCcChangedCallback) | |||
| host.ProgramChangedCallback.connect(self.slot_handleProgramChangedCallback) | |||
| host.MidiProgramChangedCallback.connect(self.slot_handleMidiProgramChangedCallback) | |||
| host.OptionChangedCallback.connect(self.slot_handleOptionChangedCallback) | |||
| host.UiStateChangedCallback.connect(self.slot_handleUiStateChangedCallback) | |||
| host.NoteOnCallback.connect(self.slot_handleNoteOnCallback) | |||
| host.NoteOffCallback.connect(self.slot_handleNoteOffCallback) | |||
| host.UpdateCallback.connect(self.slot_handleUpdateCallback) | |||
| host.ReloadInfoCallback.connect(self.slot_handleReloadInfoCallback) | |||
| host.ReloadParametersCallback.connect(self.slot_handleReloadParametersCallback) | |||
| host.ReloadProgramsCallback.connect(self.slot_handleReloadProgramsCallback) | |||
| host.ReloadAllCallback.connect(self.slot_handleReloadAllCallback) | |||
| # ----------------------------------------------------------------- | |||
| @@ -400,9 +400,6 @@ class CarlaRackW(QFrame): | |||
| def engineStopped(self): | |||
| pass | |||
| def engineChanged(self): | |||
| pass | |||
| # ----------------------------------------------------------------- | |||
| def idleFast(self): | |||
| @@ -26,11 +26,11 @@ from externalui import ExternalUI | |||
| # Host Plugin object | |||
| class PluginHost(CarlaHostPlugin): | |||
| def __init__(self, sampleRate): | |||
| def __init__(self): | |||
| CarlaHostPlugin.__init__(self) | |||
| self.fIsRunning = True | |||
| self.fSampleRate = sampleRate | |||
| self.fSampleRate = float(sys.argv[1]) if len(sys.argv) > 1 else 44100.0 | |||
| # ------------------------------------------------------------------- | |||
| @@ -64,17 +64,27 @@ class PluginHost(CarlaHostPlugin): | |||
| # Main Window | |||
| class CarlaMiniW(ExternalUI, HostWindow): | |||
| def __init__(self): | |||
| def __init__(self, host): | |||
| # need to init this first | |||
| gCarla.gui = self | |||
| # now the regular stuff | |||
| ExternalUI.__init__(self) | |||
| HostWindow.__init__(self, None) | |||
| HostWindow.__init__(self, host) | |||
| self.host = host | |||
| if False: | |||
| # kdevelop likes this :) | |||
| host = CarlaHostPlugin() | |||
| self.host = host | |||
| if sys.argv[0].lower().endswith("/carla-plugin-patchbay"): | |||
| from carla_patchbay import CarlaPatchbayW | |||
| self.fContainer = CarlaPatchbayW(self) | |||
| self.fContainer = CarlaPatchbayW(self, host) | |||
| self.setupContainer(True, self.fContainer.themeData) | |||
| else: | |||
| from carla_rack import CarlaRackW | |||
| self.fContainer = CarlaRackW(self) | |||
| self.fContainer = CarlaRackW(self, host) | |||
| self.setupContainer(False) | |||
| self.setWindowTitle(self.fUiName) | |||
| @@ -122,12 +132,12 @@ class CarlaMiniW(ExternalUI, HostWindow): | |||
| elif msg.startswith("PEAKS_"): | |||
| pluginId = int(msg.replace("PEAKS_", "")) | |||
| in1, in2, out1, out2 = [float(i) for i in self.readlineblock().split(":")] | |||
| gCarla.host._set_peaks(pluginId, in1, in2, out1, out2) | |||
| self.host._set_peaks(pluginId, in1, in2, out1, out2) | |||
| elif msg.startswith("PARAMVAL_"): | |||
| pluginId, paramId = [int(i) for i in msg.replace("PARAMVAL_", "").split(":")] | |||
| paramValue = float(self.readlineblock()) | |||
| gCarla.host._set_parameterValue(pluginId, paramId, paramValue) | |||
| self.host._set_parameterValue(pluginId, paramId, paramValue) | |||
| elif msg.startswith("ENGINE_CALLBACK_"): | |||
| action = int(msg.replace("ENGINE_CALLBACK_", "")) | |||
| @@ -138,28 +148,28 @@ class CarlaMiniW(ExternalUI, HostWindow): | |||
| valueStr = self.readlineblock().replace("\r", "\n") | |||
| if action == ENGINE_CALLBACK_PLUGIN_RENAMED: | |||
| gCarla.host._set_pluginName(pluginId, valueStr) | |||
| self.host._set_pluginName(pluginId, valueStr) | |||
| elif action == ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED: | |||
| if value1 < 0: | |||
| gCarla.host._set_internalValue(pluginId, value1, value3) | |||
| self.host._set_internalValue(pluginId, value1, value3) | |||
| else: | |||
| gCarla.host._set_parameterValue(pluginId, value1, value3) | |||
| self.host._set_parameterValue(pluginId, value1, value3) | |||
| elif action == ENGINE_CALLBACK_PARAMETER_DEFAULT_CHANGED: | |||
| gCarla.host._set_parameterDefault(pluginId, value1, value3) | |||
| self.host._set_parameterDefault(pluginId, value1, value3) | |||
| elif action == ENGINE_CALLBACK_PARAMETER_MIDI_CC_CHANGED: | |||
| gCarla.host._set_parameterMidiCC(pluginId, value1, value2) | |||
| self.host._set_parameterMidiCC(pluginId, value1, value2) | |||
| elif action == ENGINE_CALLBACK_PARAMETER_MIDI_CHANNEL_CHANGED: | |||
| gCarla.host._set_parameterMidiChannel(pluginId, value1, value2) | |||
| self.host._set_parameterMidiChannel(pluginId, value1, value2) | |||
| elif action == ENGINE_CALLBACK_PROGRAM_CHANGED: | |||
| gCarla.host._set_currentProgram(pluginId, value1) | |||
| self.host._set_currentProgram(pluginId, value1) | |||
| elif action == ENGINE_CALLBACK_MIDI_PROGRAM_CHANGED: | |||
| gCarla.host._set_currentMidiProgram(pluginId, value1) | |||
| self.host._set_currentMidiProgram(pluginId, value1) | |||
| engineCallback(None, action, pluginId, value1, value2, value3, valueStr) | |||
| elif msg.startswith("PLUGIN_INFO_"): | |||
| pluginId = int(msg.replace("PLUGIN_INFO_", "")) | |||
| gCarla.host._add(pluginId) | |||
| self.host._add(pluginId) | |||
| type_, category, hints, uniqueId, optsAvail, optsEnabled = [int(i) for i in self.readlineblock().split(":")] | |||
| filename = self.readlineblock().replace("\r", "\n") | |||
| @@ -185,20 +195,20 @@ class CarlaMiniW(ExternalUI, HostWindow): | |||
| 'patchbayClientId': 0, | |||
| 'uniqueId': uniqueId | |||
| } | |||
| gCarla.host._set_pluginInfo(pluginId, pinfo) | |||
| gCarla.host._set_pluginRealName(pluginId, realName) | |||
| self.host._set_pluginInfo(pluginId, pinfo) | |||
| self.host._set_pluginRealName(pluginId, realName) | |||
| elif msg.startswith("AUDIO_COUNT_"): | |||
| pluginId, ins, outs = [int(i) for i in msg.replace("AUDIO_COUNT_", "").split(":")] | |||
| gCarla.host._set_audioCountInfo(pluginId, {'ins': ins, 'outs': outs}) | |||
| self.host._set_audioCountInfo(pluginId, {'ins': ins, 'outs': outs}) | |||
| elif msg.startswith("MIDI_COUNT_"): | |||
| pluginId, ins, outs = [int(i) for i in msg.replace("MIDI_COUNT_", "").split(":")] | |||
| gCarla.host._set_midiCountInfo(pluginId, {'ins': ins, 'outs': outs}) | |||
| self.host._set_midiCountInfo(pluginId, {'ins': ins, 'outs': outs}) | |||
| elif msg.startswith("PARAMETER_COUNT_"): | |||
| pluginId, ins, outs, count = [int(i) for i in msg.replace("PARAMETER_COUNT_", "").split(":")] | |||
| gCarla.host._set_parameterCountInfo(pluginId, count, {'ins': ins, 'outs': outs}) | |||
| self.host._set_parameterCountInfo(pluginId, count, {'ins': ins, 'outs': outs}) | |||
| elif msg.startswith("PARAMETER_DATA_"): | |||
| pluginId, paramId = [int(i) for i in msg.replace("PARAMETER_DATA_", "").split(":")] | |||
| @@ -212,7 +222,7 @@ class CarlaMiniW(ExternalUI, HostWindow): | |||
| 'unit': paramUnit, | |||
| 'scalePointCount': 0, | |||
| } | |||
| gCarla.host._set_parameterInfo(pluginId, paramId, paramInfo) | |||
| self.host._set_parameterInfo(pluginId, paramId, paramInfo) | |||
| paramData = { | |||
| 'type': paramType, | |||
| @@ -222,7 +232,7 @@ class CarlaMiniW(ExternalUI, HostWindow): | |||
| 'midiCC': midiCC, | |||
| 'midiChannel': midiChannel | |||
| } | |||
| gCarla.host._set_parameterData(pluginId, paramId, paramData) | |||
| self.host._set_parameterData(pluginId, paramId, paramData) | |||
| elif msg.startswith("PARAMETER_RANGES_"): | |||
| pluginId, paramId = [int(i) for i in msg.replace("PARAMETER_RANGES_", "").split(":")] | |||
| @@ -236,28 +246,28 @@ class CarlaMiniW(ExternalUI, HostWindow): | |||
| 'stepSmall': stepSmall, | |||
| 'stepLarge': stepLarge | |||
| } | |||
| gCarla.host._set_parameterRanges(pluginId, paramId, paramRanges) | |||
| self.host._set_parameterRanges(pluginId, paramId, paramRanges) | |||
| elif msg.startswith("PROGRAM_COUNT_"): | |||
| pluginId, count, current = [int(i) for i in msg.replace("PROGRAM_COUNT_", "").split(":")] | |||
| gCarla.host._set_programCount(pluginId, count) | |||
| gCarla.host._set_currentProgram(pluginId, current) | |||
| self.host._set_programCount(pluginId, count) | |||
| self.host._set_currentProgram(pluginId, current) | |||
| elif msg.startswith("PROGRAM_NAME_"): | |||
| pluginId, progId = [int(i) for i in msg.replace("PROGRAM_NAME_", "").split(":")] | |||
| progName = self.readlineblock().replace("\r", "\n") | |||
| gCarla.host._set_programName(pluginId, progId, progName) | |||
| self.host._set_programName(pluginId, progId, progName) | |||
| elif msg.startswith("MIDI_PROGRAM_COUNT_"): | |||
| pluginId, count, current = [int(i) for i in msg.replace("MIDI_PROGRAM_COUNT_", "").split(":")] | |||
| gCarla.host._set_midiProgramCount(pluginId, count) | |||
| gCarla.host._set_currentMidiProgram(pluginId, current) | |||
| self.host._set_midiProgramCount(pluginId, count) | |||
| self.host._set_currentMidiProgram(pluginId, current) | |||
| elif msg.startswith("MIDI_PROGRAM_DATA_"): | |||
| pluginId, midiProgId = [int(i) for i in msg.replace("MIDI_PROGRAM_DATA_", "").split(":")] | |||
| bank, program = [int(i) for i in self.readlineblock().split(":")] | |||
| name = self.readlineblock().replace("\r", "\n") | |||
| gCarla.host._set_midiProgramData(pluginId, midiProgId, {'bank': bank, 'program': program, 'name': name}) | |||
| self.host._set_midiProgramData(pluginId, midiProgId, {'bank': bank, 'program': program, 'name': name}) | |||
| elif msg == "error": | |||
| error = self.readlineblock().replace("\r", "\n") | |||
| @@ -297,34 +307,25 @@ if __name__ == '__main__': | |||
| setUpSignals() | |||
| # ------------------------------------------------------------- | |||
| # Init plugin host data | |||
| # Init host backend | |||
| gCarla.isControl = False | |||
| gCarla.isLocal = True | |||
| gCarla.isPlugin = True | |||
| gCarla.processMode = ENGINE_PROCESS_MODE_CONTINUOUS_RACK | |||
| host = initHost("Carla-Plugin", PluginHost, False, True, True) | |||
| host.processMode = ENGINE_PROCESS_MODE_PATCHBAY if sys.argv[0].lower().endswith("/carla-plugin-patchbay") else ENGINE_PROCESS_MODE_CONTINUOUS_RACK | |||
| # ------------------------------------------------------------- | |||
| # Create GUI first | |||
| gCarla.gui = CarlaMiniW() | |||
| # FIXME | |||
| loadHostSettings(host) | |||
| # ------------------------------------------------------------- | |||
| # Init plugin host now | |||
| # Create GUI | |||
| gCarla.host = PluginHost(gCarla.gui.d_getSampleRate()) | |||
| gCarla.gui = CarlaMiniW(host) | |||
| initHost("Carla-Plugin") | |||
| # ------------------------------------------------------------- | |||
| # simulate an engire started callback FIXME | |||
| # simulate an engire started callback | |||
| engineCallback(None, ENGINE_CALLBACK_ENGINE_STARTED, 0, ENGINE_PROCESS_MODE_CONTINUOUS_RACK, ENGINE_TRANSPORT_MODE_PLUGIN, 0.0, "Plugin") | |||
| engineCallback(host, ENGINE_CALLBACK_ENGINE_STARTED, 0, host.processMode, ENGINE_TRANSPORT_MODE_PLUGIN, 0.0, "Plugin") | |||
| # ------------------------------------------------------------- | |||
| # App-Loop | |||
| ret = app.exec_() | |||
| # disable parenting | |||
| gCarla.host.set_engine_option(ENGINE_OPTION_FRONTEND_WIN_ID, 0, "0") | |||
| sys.exit(ret) | |||
| app.exit_exec() | |||