@@ -221,7 +221,7 @@ class CarlaHostW(HostWindow): | |||
self.fInfoLabel.setText("Engine stopped") | |||
def engineChanged(self): | |||
self.fInfoText = "Engine running | SampleRate: %g | BufferSize: %i" % (Carla.sampleRate, Carla.bufferSize) | |||
self.fInfoText = "Engine running | SampleRate: %g | BufferSize: %i" % (gCarla.sampleRate, gCarla.bufferSize) | |||
self.fInfoLabel.setText("%s | %s" % (self.fInfoText, self.fTextTransport)) | |||
# ----------------------------------------------------------------- | |||
@@ -320,30 +320,30 @@ if __name__ == '__main__': | |||
# ------------------------------------------------------------- | |||
# Init host backend | |||
Carla.isControl = False | |||
Carla.isLocal = True | |||
Carla.isPlugin = False | |||
gCarla.isControl = False | |||
gCarla.isLocal = True | |||
gCarla.isPlugin = False | |||
initHost(appName, libPrefix) | |||
# ------------------------------------------------------------- | |||
# Create GUI | |||
Carla.gui = CarlaHostW() | |||
gCarla.gui = CarlaHostW() | |||
# set our gui as parent for all plugins UIs | |||
Carla.host.set_engine_option(ENGINE_OPTION_FRONTEND_WIN_ID, 0, str(Carla.gui.winId())) | |||
gCarla.host.set_engine_option(ENGINE_OPTION_FRONTEND_WIN_ID, 0, str(gCarla.gui.winId())) | |||
# ------------------------------------------------------------- | |||
# Load project file if set | |||
if projectFilename is not None: | |||
Carla.gui.loadProjectLater(projectFilename) | |||
gCarla.gui.loadProjectLater(projectFilename) | |||
# ------------------------------------------------------------- | |||
# Show GUI | |||
Carla.gui.show() | |||
gCarla.gui.show() | |||
# ------------------------------------------------------------- | |||
# App-Loop | |||
@@ -75,31 +75,31 @@ if __name__ == '__main__': | |||
# ------------------------------------------------------------- | |||
# Init host backend | |||
Carla.isControl = False | |||
Carla.isLocal = True | |||
Carla.isPlugin = False | |||
Carla.processMode = ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS | |||
gCarla.isControl = False | |||
gCarla.isLocal = True | |||
gCarla.isPlugin = False | |||
gCarla.processMode = ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS | |||
initHost(appName, libPrefix) | |||
# ------------------------------------------------------------- | |||
# Create GUI | |||
Carla.gui = CarlaHostW() | |||
gCarla.gui = CarlaHostW() | |||
# set our gui as parent for all plugins UIs | |||
Carla.host.set_engine_option(ENGINE_OPTION_FRONTEND_WIN_ID, 0, str(Carla.gui.winId())) | |||
gCarla.host.set_engine_option(ENGINE_OPTION_FRONTEND_WIN_ID, 0, str(gCarla.gui.winId())) | |||
# ------------------------------------------------------------- | |||
# Load project file if set | |||
if projectFilename is not None: | |||
Carla.gui.loadProjectLater(projectFilename) | |||
gCarla.gui.loadProjectLater(projectFilename) | |||
# ------------------------------------------------------------- | |||
# Show GUI | |||
Carla.gui.show() | |||
gCarla.gui.show() | |||
# ------------------------------------------------------------- | |||
# App-Loop | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# Carla plugin host (plugin UI) | |||
# Copyright (C) 2013 Filipe Coelho <falktx@falktx.com> | |||
# Copyright (C) 2013-2014 Filipe Coelho <falktx@falktx.com> | |||
# | |||
# This program is free software; you can redistribute it and/or | |||
# modify it under the terms of the GNU General Public License as | |||
@@ -221,11 +221,11 @@ class PluginHost(object): | |||
return True | |||
def engine_idle(self): | |||
if Carla.gui.idleExternalUI(): | |||
if gCarla.gui.idleExternalUI(): | |||
return | |||
self.fIsRunning = False | |||
Carla.gui.d_uiQuit() | |||
gCarla.gui.d_uiQuit() | |||
def is_engine_running(self): | |||
return self.fIsRunning | |||
@@ -237,7 +237,7 @@ class PluginHost(object): | |||
pass | |||
def set_engine_option(self, option, value, valueStr): | |||
Carla.gui.send(["set_engine_option", option, value, valueStr]) | |||
gCarla.gui.send(["set_engine_option", option, value, valueStr]) | |||
# ------------------------------------------------------------------- | |||
@@ -245,41 +245,41 @@ class PluginHost(object): | |||
pass | |||
def load_file(self, filename): | |||
Carla.gui.send(["load_file", filename]) | |||
gCarla.gui.send(["load_file", filename]) | |||
return True | |||
def load_project(self, filename): | |||
Carla.gui.send(["load_project", filename]) | |||
gCarla.gui.send(["load_project", filename]) | |||
return True | |||
def save_project(self, filename): | |||
Carla.gui.send(["save_project", filename]) | |||
gCarla.gui.send(["save_project", filename]) | |||
return True | |||
# ------------------------------------------------------------------- | |||
def patchbay_connect(self, portIdA, portIdB): | |||
Carla.gui.send(["patchbay_connect", portIdA, portIdB]) | |||
gCarla.gui.send(["patchbay_connect", portIdA, portIdB]) | |||
return True | |||
def patchbay_disconnect(self, connectionId): | |||
Carla.gui.send(["patchbay_disconnect", connectionId]) | |||
gCarla.gui.send(["patchbay_disconnect", connectionId]) | |||
return True | |||
def patchbay_refresh(self): | |||
Carla.gui.send(["patchbay_refresh"]) | |||
gCarla.gui.send(["patchbay_refresh"]) | |||
return True | |||
# ------------------------------------------------------------------- | |||
def transport_play(self): | |||
Carla.gui.send(["transport_play"]) | |||
gCarla.gui.send(["transport_play"]) | |||
def transport_pause(self): | |||
Carla.gui.send(["transport_pause"]) | |||
gCarla.gui.send(["transport_pause"]) | |||
def transport_relocate(self, frame): | |||
Carla.gui.send(["transport_relocate"]) | |||
gCarla.gui.send(["transport_relocate"]) | |||
def get_current_transport_frame(self): | |||
return 0 | |||
@@ -290,41 +290,41 @@ class PluginHost(object): | |||
# ------------------------------------------------------------------- | |||
def add_plugin(self, btype, ptype, filename, name, label, extraPtr): | |||
Carla.gui.send(["add_plugin", btype, ptype, filename, name, label]) | |||
gCarla.gui.send(["add_plugin", btype, ptype, filename, name, label]) | |||
return True | |||
def remove_plugin(self, pluginId): | |||
Carla.gui.send(["remove_plugin", pluginId]) | |||
gCarla.gui.send(["remove_plugin", pluginId]) | |||
return True | |||
def remove_all_plugins(self): | |||
Carla.gui.send(["remove_all_plugins"]) | |||
gCarla.gui.send(["remove_all_plugins"]) | |||
return True | |||
def rename_plugin(self, pluginId, newName): | |||
Carla.gui.send(["rename_plugin", pluginId, newName]) | |||
gCarla.gui.send(["rename_plugin", pluginId, newName]) | |||
return newName | |||
def clone_plugin(self, pluginId): | |||
Carla.gui.send(["clone_plugin", pluginId]) | |||
gCarla.gui.send(["clone_plugin", pluginId]) | |||
return True | |||
def replace_plugin(self, pluginId): | |||
Carla.gui.send(["replace_plugin", pluginId]) | |||
gCarla.gui.send(["replace_plugin", pluginId]) | |||
return True | |||
def switch_plugins(self, pluginIdA, pluginIdB): | |||
Carla.gui.send(["switch_plugins", pluginIdA, pluginIdB]) | |||
gCarla.gui.send(["switch_plugins", pluginIdA, pluginIdB]) | |||
return True | |||
# ------------------------------------------------------------------- | |||
def load_plugin_state(self, pluginId, filename): | |||
Carla.gui.send(["load_plugin_state", pluginId, filename]) | |||
gCarla.gui.send(["load_plugin_state", pluginId, filename]) | |||
return True | |||
def save_plugin_state(self, pluginId, filename): | |||
Carla.gui.send(["save_plugin_state", pluginId, filename]) | |||
gCarla.gui.send(["save_plugin_state", pluginId, filename]) | |||
return True | |||
# ------------------------------------------------------------------- | |||
@@ -415,62 +415,62 @@ class PluginHost(object): | |||
# ------------------------------------------------------------------- | |||
def set_option(self, pluginId, option, yesNo): | |||
Carla.gui.send(["set_option", pluginId, option, yesNo]) | |||
gCarla.gui.send(["set_option", pluginId, option, yesNo]) | |||
def set_active(self, pluginId, onOff): | |||
Carla.gui.send(["set_active", pluginId, onOff]) | |||
gCarla.gui.send(["set_active", pluginId, onOff]) | |||
def set_drywet(self, pluginId, value): | |||
Carla.gui.send(["set_drywet", pluginId, value]) | |||
gCarla.gui.send(["set_drywet", pluginId, value]) | |||
def set_volume(self, pluginId, value): | |||
Carla.gui.send(["set_volume", pluginId, value]) | |||
gCarla.gui.send(["set_volume", pluginId, value]) | |||
def set_balance_left(self, pluginId, value): | |||
Carla.gui.send(["set_balance_left", pluginId, value]) | |||
gCarla.gui.send(["set_balance_left", pluginId, value]) | |||
def set_balance_right(self, pluginId, value): | |||
Carla.gui.send(["set_balance_right", pluginId, value]) | |||
gCarla.gui.send(["set_balance_right", pluginId, value]) | |||
def set_panning(self, pluginId, value): | |||
Carla.gui.send(["set_panning", pluginId, value]) | |||
gCarla.gui.send(["set_panning", pluginId, value]) | |||
def set_ctrl_channel(self, pluginId, channel): | |||
Carla.gui.send(["set_ctrl_channel", pluginId, channel]) | |||
gCarla.gui.send(["set_ctrl_channel", pluginId, channel]) | |||
# ------------------------------------------------------------------- | |||
def set_parameter_value(self, pluginId, parameterId, value): | |||
Carla.gui.send(["set_parameter_value", pluginId, parameterId, value]) | |||
gCarla.gui.send(["set_parameter_value", pluginId, parameterId, value]) | |||
def set_parameter_midi_channel(self, pluginId, parameterId, channel): | |||
Carla.gui.send(["set_parameter_midi_channel", pluginId, parameterId, channel]) | |||
gCarla.gui.send(["set_parameter_midi_channel", pluginId, parameterId, channel]) | |||
def set_parameter_midi_cc(self, pluginId, parameterId, cc): | |||
Carla.gui.send(["set_parameter_midi_cc", pluginId, parameterId, cc]) | |||
gCarla.gui.send(["set_parameter_midi_cc", pluginId, parameterId, cc]) | |||
def set_program(self, pluginId, programId): | |||
Carla.gui.send(["set_program", pluginId, programId]) | |||
gCarla.gui.send(["set_program", pluginId, programId]) | |||
def set_midi_program(self, pluginId, midiProgramId): | |||
Carla.gui.send(["set_midi_program", pluginId, midiProgramId]) | |||
gCarla.gui.send(["set_midi_program", pluginId, midiProgramId]) | |||
def set_custom_data(self, pluginId, type_, key, value): | |||
Carla.gui.send(["set_custom_data", pluginId, type_, key, value]) | |||
gCarla.gui.send(["set_custom_data", pluginId, type_, key, value]) | |||
def set_chunk_data(self, pluginId, chunkData): | |||
Carla.gui.send(["set_chunk_data", pluginId, chunkData]) | |||
gCarla.gui.send(["set_chunk_data", pluginId, chunkData]) | |||
# ------------------------------------------------------------------- | |||
def prepare_for_save(self, pluginId): | |||
Carla.gui.send(["prepare_for_save", pluginId]) | |||
gCarla.gui.send(["prepare_for_save", pluginId]) | |||
def send_midi_note(self, pluginId, channel, note, velocity): | |||
Carla.gui.send(["send_midi_note", pluginId, channel, note, velocity]) | |||
gCarla.gui.send(["send_midi_note", pluginId, channel, note, velocity]) | |||
def show_custom_ui(self, pluginId, yesNo): | |||
Carla.gui.send(["show_custom_ui", pluginId, yesNo]) | |||
gCarla.gui.send(["show_custom_ui", pluginId, yesNo]) | |||
# ------------------------------------------------------------------- | |||
@@ -551,12 +551,12 @@ class CarlaMiniW(HostWindow, ExternalUI): | |||
elif msg.startswith("PEAKS_"): | |||
pluginId = int(msg.replace("PEAKS_", "")) | |||
in1, in2, out1, out2 = [float(i) for i in self.fPipeRecv.readline().strip().split(":")] | |||
Carla.host._set_peaks(pluginId, in1, in2, out1, out2) | |||
gCarla.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.fPipeRecv.readline().strip()) | |||
Carla.host._set_parameterValueS(pluginId, paramId, paramValue) | |||
gCarla.host._set_parameterValueS(pluginId, paramId, paramValue) | |||
elif msg.startswith("ENGINE_CALLBACK_"): | |||
action = int(msg.replace("ENGINE_CALLBACK_", "")) | |||
@@ -567,25 +567,25 @@ class CarlaMiniW(HostWindow, ExternalUI): | |||
valueStr = self.fPipeRecv.readline().strip().replace("\r", "\n") | |||
if action == ENGINE_CALLBACK_PLUGIN_RENAMED: | |||
Carla.host._set_pluginName(pluginId, valueStr) | |||
gCarla.host._set_pluginName(pluginId, valueStr) | |||
elif action == ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED: | |||
Carla.host._set_parameterValueS(pluginId, value1, value3) | |||
gCarla.host._set_parameterValueS(pluginId, value1, value3) | |||
elif action == ENGINE_CALLBACK_PARAMETER_DEFAULT_CHANGED: | |||
Carla.host._set_parameterDefault(pluginId, value1, value3) | |||
gCarla.host._set_parameterDefault(pluginId, value1, value3) | |||
elif action == ENGINE_CALLBACK_PARAMETER_MIDI_CC_CHANGED: | |||
Carla.host._set_parameterMidiCC(pluginId, value1, value2) | |||
gCarla.host._set_parameterMidiCC(pluginId, value1, value2) | |||
elif action == ENGINE_CALLBACK_PARAMETER_MIDI_CHANNEL_CHANGED: | |||
Carla.host._set_parameterMidiChannel(pluginId, value1, value2) | |||
gCarla.host._set_parameterMidiChannel(pluginId, value1, value2) | |||
elif action == ENGINE_CALLBACK_PROGRAM_CHANGED: | |||
Carla.host._set_currentProgram(pluginId, value1) | |||
gCarla.host._set_currentProgram(pluginId, value1) | |||
elif action == ENGINE_CALLBACK_MIDI_PROGRAM_CHANGED: | |||
Carla.host._set_currentMidiProgram(pluginId, value1) | |||
gCarla.host._set_currentMidiProgram(pluginId, value1) | |||
engineCallback(None, action, pluginId, value1, value2, value3, valueStr) | |||
elif msg.startswith("PLUGIN_INFO_"): | |||
pluginId = int(msg.replace("PLUGIN_INFO_", "")) | |||
Carla.host._add(pluginId) | |||
gCarla.host._add(pluginId) | |||
type_, category, hints, uniqueId, optsAvail, optsEnabled = [int(i) for i in self.fPipeRecv.readline().strip().split(":")] | |||
filename = self.fPipeRecv.readline().strip().replace("\r", "\n") | |||
@@ -611,20 +611,20 @@ class CarlaMiniW(HostWindow, ExternalUI): | |||
'patchbayClientId': 0, | |||
'uniqueId': uniqueId | |||
} | |||
Carla.host._set_pluginInfo(pluginId, pinfo) | |||
Carla.host._set_pluginRealName(pluginId, realName) | |||
gCarla.host._set_pluginInfo(pluginId, pinfo) | |||
gCarla.host._set_pluginRealName(pluginId, realName) | |||
elif msg.startswith("AUDIO_COUNT_"): | |||
pluginId, ins, outs = [int(i) for i in msg.replace("AUDIO_COUNT_", "").split(":")] | |||
Carla.host._set_audioCountInfo(pluginId, {'ins': ins, 'outs': outs}) | |||
gCarla.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(":")] | |||
Carla.host._set_midiCountInfo(pluginId, {'ins': ins, 'outs': outs}) | |||
gCarla.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(":")] | |||
Carla.host._set_parameterCountInfo(pluginId, count, {'ins': ins, 'outs': outs}) | |||
gCarla.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(":")] | |||
@@ -638,7 +638,7 @@ class CarlaMiniW(HostWindow, ExternalUI): | |||
'unit': paramUnit, | |||
'scalePointCount': 0, | |||
} | |||
Carla.host._set_parameterInfoS(pluginId, paramId, paramInfo) | |||
gCarla.host._set_parameterInfoS(pluginId, paramId, paramInfo) | |||
paramData = { | |||
'type': paramType, | |||
@@ -648,7 +648,7 @@ class CarlaMiniW(HostWindow, ExternalUI): | |||
'midiCC': midiCC, | |||
'midiChannel': midiChannel | |||
} | |||
Carla.host._set_parameterDataS(pluginId, paramId, paramData) | |||
gCarla.host._set_parameterDataS(pluginId, paramId, paramData) | |||
elif msg.startswith("PARAMETER_RANGES_"): | |||
pluginId, paramId = [int(i) for i in msg.replace("PARAMETER_RANGES_", "").split(":")] | |||
@@ -662,28 +662,28 @@ class CarlaMiniW(HostWindow, ExternalUI): | |||
'stepSmall': stepSmall, | |||
'stepLarge': stepLarge | |||
} | |||
Carla.host._set_parameterRangeS(pluginId, paramId, paramRanges) | |||
gCarla.host._set_parameterRangeS(pluginId, paramId, paramRanges) | |||
elif msg.startswith("PROGRAM_COUNT_"): | |||
pluginId, count, current = [int(i) for i in msg.replace("PROGRAM_COUNT_", "").split(":")] | |||
Carla.host._set_programCount(pluginId, count) | |||
Carla.host._set_currentProgram(pluginId, current) | |||
gCarla.host._set_programCount(pluginId, count) | |||
gCarla.host._set_currentProgram(pluginId, current) | |||
elif msg.startswith("PROGRAM_NAME_"): | |||
pluginId, progId = [int(i) for i in msg.replace("PROGRAM_NAME_", "").split(":")] | |||
progName = self.fPipeRecv.readline().strip().replace("\r", "\n") | |||
Carla.host._set_programNameS(pluginId, progId, progName) | |||
gCarla.host._set_programNameS(pluginId, progId, progName) | |||
elif msg.startswith("MIDI_PROGRAM_COUNT_"): | |||
pluginId, count, current = [int(i) for i in msg.replace("MIDI_PROGRAM_COUNT_", "").split(":")] | |||
Carla.host._set_midiProgramCount(pluginId, count) | |||
Carla.host._set_currentMidiProgram(pluginId, current) | |||
gCarla.host._set_midiProgramCount(pluginId, count) | |||
gCarla.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.fPipeRecv.readline().strip().split(":")] | |||
name = self.fPipeRecv.readline().strip().replace("\r", "\n") | |||
Carla.host._set_midiProgramDataS(pluginId, midiProgId, {'bank': bank, 'program': program, 'name': name}) | |||
gCarla.host._set_midiProgramDataS(pluginId, midiProgId, {'bank': bank, 'program': program, 'name': name}) | |||
elif msg == "error": | |||
error = self.fPipeRecv.readline().strip().replace("\r", "\n") | |||
@@ -725,24 +725,24 @@ if __name__ == '__main__': | |||
# ------------------------------------------------------------- | |||
# Init plugin host data | |||
Carla.isControl = False | |||
Carla.isLocal = True | |||
Carla.isPlugin = True | |||
gCarla.isControl = False | |||
gCarla.isLocal = True | |||
gCarla.isPlugin = True | |||
# ------------------------------------------------------------- | |||
# Create GUI first | |||
Carla.gui = CarlaMiniW() | |||
gCarla.gui = CarlaMiniW() | |||
# ------------------------------------------------------------- | |||
# Init plugin host now | |||
Carla.host = PluginHost(Carla.gui.d_getSampleRate()) | |||
gCarla.host = PluginHost(gCarla.gui.d_getSampleRate()) | |||
initHost("Carla-Plugin") | |||
# set our gui as parent for all plugins UIs | |||
Carla.host.set_engine_option(ENGINE_OPTION_FRONTEND_WIN_ID, 0, str(Carla.gui.winId())) | |||
gCarla.host.set_engine_option(ENGINE_OPTION_FRONTEND_WIN_ID, 0, str(gCarla.gui.winId())) | |||
# simulate an engire started callback | |||
engineCallback(None, ENGINE_CALLBACK_ENGINE_STARTED, 0, ENGINE_PROCESS_MODE_CONTINUOUS_RACK, ENGINE_TRANSPORT_MODE_PLUGIN, 0.0, "Plugin") | |||
@@ -753,6 +753,6 @@ if __name__ == '__main__': | |||
ret = app.exec_() | |||
# disable parenting | |||
Carla.host.set_engine_option(ENGINE_OPTION_FRONTEND_WIN_ID, 0, "0") | |||
gCarla.host.set_engine_option(ENGINE_OPTION_FRONTEND_WIN_ID, 0, "0") | |||
sys.exit(ret) |
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# Carla plugin host | |||
# Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com> | |||
# Copyright (C) 2011-2014 Filipe Coelho <falktx@falktx.com> | |||
# | |||
# This program is free software; you can redistribute it and/or | |||
# modify it under the terms of the GNU General Public License as | |||
@@ -75,31 +75,31 @@ if __name__ == '__main__': | |||
# ------------------------------------------------------------- | |||
# Init host backend | |||
Carla.isControl = False | |||
Carla.isLocal = True | |||
Carla.isPlugin = False | |||
Carla.processMode = ENGINE_PROCESS_MODE_CONTINUOUS_RACK | |||
gCarla.isControl = False | |||
gCarla.isLocal = True | |||
gCarla.isPlugin = False | |||
gCarla.processMode = ENGINE_PROCESS_MODE_CONTINUOUS_RACK | |||
initHost(appName, libPrefix) | |||
# ------------------------------------------------------------- | |||
# Create GUI | |||
Carla.gui = CarlaHostW() | |||
gCarla.gui = CarlaHostW() | |||
# set our gui as parent for all plugins UIs | |||
Carla.host.set_engine_option(ENGINE_OPTION_FRONTEND_WIN_ID, 0, str(Carla.gui.winId())) | |||
gCarla.host.set_engine_option(ENGINE_OPTION_FRONTEND_WIN_ID, 0, str(gCarla.gui.winId())) | |||
# ------------------------------------------------------------- | |||
# Load project file if set | |||
if projectFilename is not None: | |||
Carla.gui.loadProjectLater(projectFilename) | |||
gCarla.gui.loadProjectLater(projectFilename) | |||
# ------------------------------------------------------------- | |||
# Show GUI | |||
Carla.gui.show() | |||
gCarla.gui.show() | |||
# ------------------------------------------------------------- | |||
# App-Loop | |||
@@ -633,7 +633,7 @@ class CarlaControlW(QMainWindow): | |||
self.fPluginCount = 0 | |||
self.fPluginList = [] | |||
Carla.host.fPluginsInfo = [] | |||
gCarla.host.fPluginsInfo = [] | |||
self.fIdleTimerFast = self.startTimer(60) | |||
self.fIdleTimerSlow = self.startTimer(60*2) | |||
@@ -676,7 +676,7 @@ class CarlaControlW(QMainWindow): | |||
@pyqtSlot(int, str) | |||
def slot_handleAddPluginStart(self, pluginId, pluginName): | |||
self.fLastPluginName = pluginName | |||
Carla.host._add(pluginId) | |||
gCarla.host._add(pluginId) | |||
@pyqtSlot(int) | |||
def slot_handleAddPluginEnd(self, pluginId): | |||
@@ -712,7 +712,7 @@ class CarlaControlW(QMainWindow): | |||
for i in range(pluginId, self.fPluginCount): | |||
self.fPluginList[i].setId(i) | |||
Carla.host.fPluginsInfo.pop(pluginId) | |||
gCarla.host.fPluginsInfo.pop(pluginId) | |||
@pyqtSlot(int, int, int, int, str, str, str, str, int) | |||
def slot_handleSetPluginData(self, pluginId, type_, category, hints, realName, label, maker, copyright, uniqueId): | |||
@@ -725,8 +725,8 @@ class CarlaControlW(QMainWindow): | |||
info['maker'] = maker | |||
info['copyright'] = copyright | |||
info['uniqueId'] = uniqueId | |||
Carla.host._set_pluginInfo(pluginId, info) | |||
Carla.host._set_pluginRealName(pluginId, realName) | |||
gCarla.host._set_pluginInfo(pluginId, info) | |||
gCarla.host._set_pluginRealName(pluginId, realName) | |||
@pyqtSlot(int, int, int, int, int, int, int, int) | |||
def slot_handleSetPluginPorts(self, pluginId, audioIns, audioOuts, midiIns, midiOuts, cIns, cOuts, cTotals): | |||
@@ -746,9 +746,9 @@ class CarlaControlW(QMainWindow): | |||
paramInfo['outs'] = cOuts | |||
paramInfo['total'] = cTotals | |||
Carla.host._set_audioCountInfo(pluginId, audioInfo) | |||
Carla.host._set_midiCountInfo(pluginId, midiInfo) | |||
Carla.host._set_parameterCountInfo(pluginId, paramInfo) | |||
gCarla.host._set_audioCountInfo(pluginId, audioInfo) | |||
gCarla.host._set_midiCountInfo(pluginId, midiInfo) | |||
gCarla.host._set_parameterCountInfo(pluginId, paramInfo) | |||
@pyqtSlot(int, int, int, int, str, str, float) | |||
def slot_handleSetParameterData(self, pluginId, index, type_, hints, name, label, current): | |||
@@ -765,9 +765,9 @@ class CarlaControlW(QMainWindow): | |||
info['name'] = name | |||
info['label'] = label | |||
Carla.host._set_parameterDataS(pluginId, index, data) | |||
Carla.host._set_parameterInfoS(pluginId, index, info) | |||
Carla.host._set_parameterValueS(pluginId, index, current) | |||
gCarla.host._set_parameterDataS(pluginId, index, data) | |||
gCarla.host._set_parameterInfoS(pluginId, index, info) | |||
gCarla.host._set_parameterValueS(pluginId, index, current) | |||
@pyqtSlot(int, int, float, float, float, float, float, float) | |||
def slot_handleSetParameterRanges(self, pluginId, index, min_, max_, def_, step, stepSmall, stepLarge): | |||
@@ -779,12 +779,12 @@ class CarlaControlW(QMainWindow): | |||
ranges['stepSmall'] = stepSmall | |||
ranges['stepLarge'] = stepLarge | |||
Carla.host._set_parameterRangeS(pluginId, index, ranges) | |||
gCarla.host._set_parameterRangeS(pluginId, index, ranges) | |||
@pyqtSlot(int, int, float) | |||
def slot_handleSetParameterValue(self, pluginId, parameterId, value): | |||
if parameterId >= 0: | |||
Carla.host._set_parameterValueS(pluginId, parameterId, value) | |||
gCarla.host._set_parameterValueS(pluginId, parameterId, value) | |||
if pluginId >= self.fPluginCount: | |||
return | |||
@@ -797,7 +797,7 @@ class CarlaControlW(QMainWindow): | |||
@pyqtSlot(int, int, float) | |||
def slot_handleSetDefaultValue(self, pluginId, parameterId, value): | |||
Carla.host._set_parameterDefaultValue(pluginId, parameterId, value) | |||
gCarla.host._set_parameterDefaultValue(pluginId, parameterId, value) | |||
if pluginId >= self.fPluginCount: | |||
return | |||
@@ -810,7 +810,7 @@ class CarlaControlW(QMainWindow): | |||
@pyqtSlot(int, int, int) | |||
def slot_handleSetParameterMidiCC(self, pluginId, index, cc): | |||
Carla.host._set_parameterMidiCC(pluginId, index, cc) | |||
gCarla.host._set_parameterMidiCC(pluginId, index, cc) | |||
if pluginId >= self.fPluginCount: | |||
return | |||
@@ -823,7 +823,7 @@ class CarlaControlW(QMainWindow): | |||
@pyqtSlot(int, int, int) | |||
def slot_handleSetParameterMidiChannel(self, pluginId, index, channel): | |||
Carla.host._set_parameterMidiChannel(pluginId, index, channel) | |||
gCarla.host._set_parameterMidiChannel(pluginId, index, channel) | |||
if pluginId >= self.fPluginCount: | |||
return | |||
@@ -836,7 +836,7 @@ class CarlaControlW(QMainWindow): | |||
@pyqtSlot(int, int) | |||
def slot_handleSetProgram(self, pluginId, index): | |||
Carla.host._set_currentProgram(pluginId, index) | |||
gCarla.host._set_currentProgram(pluginId, index) | |||
if pluginId >= self.fPluginCount: | |||
return | |||
@@ -849,15 +849,15 @@ class CarlaControlW(QMainWindow): | |||
@pyqtSlot(int, int) | |||
def slot_handleSetProgramCount(self, pluginId, count): | |||
Carla.host._set_programCount(pluginId, count) | |||
gCarla.host._set_programCount(pluginId, count) | |||
@pyqtSlot(int, int, str) | |||
def slot_handleSetProgramName(self, pluginId, index, name): | |||
Carla.host._set_programNameS(pluginId, index, name) | |||
gCarla.host._set_programNameS(pluginId, index, name) | |||
@pyqtSlot(int, int) | |||
def slot_handleSetMidiProgram(self, pluginId, index): | |||
Carla.host._set_currentMidiProgram(pluginId, index) | |||
gCarla.host._set_currentMidiProgram(pluginId, index) | |||
if pluginId >= self.fPluginCount: | |||
return | |||
@@ -870,7 +870,7 @@ class CarlaControlW(QMainWindow): | |||
@pyqtSlot(int, int) | |||
def slot_handleSetMidiProgramCount(self, pluginId, count): | |||
Carla.host._set_midiProgramCount(pluginId, count) | |||
gCarla.host._set_midiProgramCount(pluginId, count) | |||
@pyqtSlot(int, int, int, int, str) | |||
def slot_handleSetMidiProgramData(self, pluginId, index, bank, program, name): | |||
@@ -878,15 +878,15 @@ class CarlaControlW(QMainWindow): | |||
data['bank'] = bank | |||
data['program'] = program | |||
data['label'] = name | |||
Carla.host._set_midiProgramDataS(pluginId, index, data) | |||
gCarla.host._set_midiProgramDataS(pluginId, index, data) | |||
@pyqtSlot(int, int, float) | |||
def slot_handleSetInputPeakValue(self, pluginId, portId, value): | |||
Carla.host._set_inPeak(pluginId, portId-1, value) | |||
gCarla.host._set_inPeak(pluginId, portId-1, value) | |||
@pyqtSlot(int, int, float) | |||
def slot_handleSetOutputPeakValue(self, pluginId, portId, value): | |||
Carla.host._set_outPeak(pluginId, portId-1, value) | |||
gCarla.host._set_outPeak(pluginId, portId-1, value) | |||
@pyqtSlot(int, int, int, int) | |||
def slot_handleNoteOn(self, pluginId, channel, note, velo): | |||
@@ -912,7 +912,7 @@ class CarlaControlW(QMainWindow): | |||
@pyqtSlot(int, float, float, float, float) | |||
def slot_handleSetPeaks(self, pluginId, in1, in2, out1, out2): | |||
Carla.host._set_peaks(pluginId, in1, in2, out1, out2) | |||
gCarla.host._set_peaks(pluginId, in1, in2, out1, out2) | |||
@pyqtSlot() | |||
def slot_handleExit(self): | |||
@@ -997,16 +997,16 @@ if __name__ == '__main__': | |||
libName = carla_library_filename | |||
# Init backend (OSC bridge version) | |||
Carla.host = Host() | |||
gCarla.host = Host() | |||
# Create GUI | |||
Carla.gui = CarlaControlW(oscAddr) | |||
gCarla.gui = CarlaControlW(oscAddr) | |||
# Set-up custom signal handling | |||
setUpSignals() | |||
# Show GUI | |||
Carla.gui.show() | |||
gCarla.gui.show() | |||
# App-Loop | |||
sys.exit(app.exec_()) |
@@ -354,7 +354,7 @@ class SearchPluginsThread(QThread): | |||
self.fCheckSF2 = False | |||
self.fCheckSFZ = False | |||
self.fToolNative = Carla.discovery_native | |||
self.fToolNative = gCarla.discovery_native | |||
self.fCurCount = 0 | |||
self.fCurPercentValue = 0 | |||
@@ -369,7 +369,7 @@ class SearchPluginsThread(QThread): | |||
self.fCsdFiles = [] | |||
self.fKitPlugins = [] | |||
print(Carla.discovery_native) | |||
print(gCarla.discovery_native) | |||
# ------------------------------------------------------------- | |||
@@ -472,25 +472,25 @@ class SearchPluginsThread(QThread): | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix32: | |||
self._checkLADSPA(OS, Carla.discovery_posix32) | |||
self._checkLADSPA(OS, gCarla.discovery_posix32) | |||
settingsDB.setValue("Plugins/LADSPA_posix32", self.fLadspaPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix64: | |||
self._checkLADSPA(OS, Carla.discovery_posix64) | |||
self._checkLADSPA(OS, gCarla.discovery_posix64) | |||
settingsDB.setValue("Plugins/LADSPA_posix64", self.fLadspaPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin32: | |||
self._checkLADSPA("WINDOWS", Carla.discovery_win32, not WINDOWS) | |||
self._checkLADSPA("WINDOWS", gCarla.discovery_win32, not WINDOWS) | |||
settingsDB.setValue("Plugins/LADSPA_win32", self.fLadspaPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin64: | |||
self._checkLADSPA("WINDOWS", Carla.discovery_win64, not WINDOWS) | |||
self._checkLADSPA("WINDOWS", gCarla.discovery_win64, not WINDOWS) | |||
settingsDB.setValue("Plugins/LADSPA_win64", self.fLadspaPlugins) | |||
settingsDB.sync() | |||
@@ -518,25 +518,25 @@ class SearchPluginsThread(QThread): | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix32: | |||
self._checkDSSI(OS, Carla.discovery_posix32) | |||
self._checkDSSI(OS, gCarla.discovery_posix32) | |||
settingsDB.setValue("Plugins/DSSI_posix32", self.fDssiPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix64: | |||
self._checkDSSI(OS, Carla.discovery_posix64) | |||
self._checkDSSI(OS, gCarla.discovery_posix64) | |||
settingsDB.setValue("Plugins/DSSI_posix64", self.fDssiPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin32: | |||
self._checkDSSI("WINDOWS", Carla.discovery_win32, not WINDOWS) | |||
self._checkDSSI("WINDOWS", gCarla.discovery_win32, not WINDOWS) | |||
settingsDB.setValue("Plugins/DSSI_win32", self.fDssiPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin64: | |||
self._checkDSSI("WINDOWS", Carla.discovery_win64, not WINDOWS) | |||
self._checkDSSI("WINDOWS", gCarla.discovery_win64, not WINDOWS) | |||
settingsDB.setValue("Plugins/DSSI_win64", self.fDssiPlugins) | |||
settingsDB.sync() | |||
@@ -551,25 +551,25 @@ class SearchPluginsThread(QThread): | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix32: | |||
self._checkLV2(Carla.discovery_posix32) | |||
self._checkLV2(gCarla.discovery_posix32) | |||
settingsDB.setValue("Plugins/LV2_posix32", self.fLv2Plugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix64: | |||
self._checkLV2(Carla.discovery_posix64) | |||
self._checkLV2(gCarla.discovery_posix64) | |||
settingsDB.setValue("Plugins/LV2_posix64", self.fLv2Plugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin32: | |||
self._checkLV2(Carla.discovery_win32, not WINDOWS) | |||
self._checkLV2(gCarla.discovery_win32, not WINDOWS) | |||
settingsDB.setValue("Plugins/LV2_win32", self.fLv2Plugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin64: | |||
self._checkLV2(Carla.discovery_win64, not WINDOWS) | |||
self._checkLV2(gCarla.discovery_win64, not WINDOWS) | |||
settingsDB.setValue("Plugins/LV2_win64", self.fLv2Plugins) | |||
settingsDB.sync() | |||
@@ -584,25 +584,25 @@ class SearchPluginsThread(QThread): | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix32: | |||
self._checkVST(OS, Carla.discovery_posix32) | |||
self._checkVST(OS, gCarla.discovery_posix32) | |||
settingsDB.setValue("Plugins/VST_posix32", self.fVstPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix64: | |||
self._checkVST(OS, Carla.discovery_posix64) | |||
self._checkVST(OS, gCarla.discovery_posix64) | |||
settingsDB.setValue("Plugins/VST_posix64", self.fVstPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin32: | |||
self._checkVST("WINDOWS", Carla.discovery_win32, not WINDOWS) | |||
self._checkVST("WINDOWS", gCarla.discovery_win32, not WINDOWS) | |||
settingsDB.setValue("Plugins/VST_win32", self.fVstPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckWin64: | |||
self._checkVST("WINDOWS", Carla.discovery_win64, not WINDOWS) | |||
self._checkVST("WINDOWS", gCarla.discovery_win64, not WINDOWS) | |||
settingsDB.setValue("Plugins/VST_win64", self.fVstPlugins) | |||
settingsDB.sync() | |||
@@ -617,13 +617,13 @@ class SearchPluginsThread(QThread): | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix32: | |||
self._checkAU(Carla.discovery_posix32) | |||
self._checkAU(gCarla.discovery_posix32) | |||
settingsDB.setValue("Plugins/AU_posix32", self.fAuPlugins) | |||
if not self.fContinueChecking: return | |||
if self.fCheckPosix64: | |||
self._checkAU(Carla.discovery_posix64) | |||
self._checkAU(gCarla.discovery_posix64) | |||
settingsDB.setValue("Plugins/AU_posix64", self.fAuPlugins) | |||
settingsDB.sync() | |||
@@ -638,7 +638,7 @@ class SearchPluginsThread(QThread): | |||
if self.fCheckGIG: | |||
settings = QSettings() | |||
GIG_PATH = toList(settings.value("Paths/GIG", Carla.DEFAULT_GIG_PATH)) | |||
GIG_PATH = toList(settings.value("Paths/GIG", gCarla.DEFAULT_GIG_PATH)) | |||
del settings | |||
self._checkKIT(GIG_PATH, "gig") | |||
@@ -648,7 +648,7 @@ class SearchPluginsThread(QThread): | |||
if self.fCheckSF2: | |||
settings = QSettings() | |||
SF2_PATH = toList(settings.value("Paths/SF2", Carla.DEFAULT_SF2_PATH)) | |||
SF2_PATH = toList(settings.value("Paths/SF2", gCarla.DEFAULT_SF2_PATH)) | |||
del settings | |||
self._checkKIT(SF2_PATH, "sf2") | |||
@@ -658,7 +658,7 @@ class SearchPluginsThread(QThread): | |||
if self.fCheckSFZ: | |||
settings = QSettings() | |||
SFZ_PATH = toList(settings.value("Paths/SFZ", Carla.DEFAULT_SFZ_PATH)) | |||
SFZ_PATH = toList(settings.value("Paths/SFZ", gCarla.DEFAULT_SFZ_PATH)) | |||
del settings | |||
self._checkKIT(SFZ_PATH, "sfz") | |||
@@ -673,7 +673,7 @@ class SearchPluginsThread(QThread): | |||
self._pluginLook(self.fLastCheckValue, "LADSPA plugins...") | |||
settings = QSettings() | |||
LADSPA_PATH = toList(settings.value("Paths/LADSPA", Carla.DEFAULT_LADSPA_PATH)) | |||
LADSPA_PATH = toList(settings.value("Paths/LADSPA", gCarla.DEFAULT_LADSPA_PATH)) | |||
for iPATH in LADSPA_PATH: | |||
binaries = findBinaries(iPATH, OS) | |||
@@ -706,7 +706,7 @@ class SearchPluginsThread(QThread): | |||
self._pluginLook(self.fLastCheckValue, "DSSI plugins...") | |||
settings = QSettings() | |||
DSSI_PATH = toList(settings.value("Paths/DSSI", Carla.DEFAULT_DSSI_PATH)) | |||
DSSI_PATH = toList(settings.value("Paths/DSSI", gCarla.DEFAULT_DSSI_PATH)) | |||
for iPATH in DSSI_PATH: | |||
binaries = findBinaries(iPATH, OS) | |||
@@ -739,7 +739,7 @@ class SearchPluginsThread(QThread): | |||
self._pluginLook(self.fLastCheckValue, "LV2 bundles...") | |||
settings = QSettings() | |||
LV2_PATH = toList(settings.value("Paths/LV2", Carla.DEFAULT_LV2_PATH)) | |||
LV2_PATH = toList(settings.value("Paths/LV2", gCarla.DEFAULT_LV2_PATH)) | |||
for iPATH in LV2_PATH: | |||
bundles = findLV2Bundles(iPATH) | |||
@@ -775,7 +775,7 @@ class SearchPluginsThread(QThread): | |||
self._pluginLook(self.fLastCheckValue, "VST plugins...") | |||
settings = QSettings() | |||
VST_PATH = toList(settings.value("Paths/VST", Carla.DEFAULT_VST_PATH)) | |||
VST_PATH = toList(settings.value("Paths/VST", gCarla.DEFAULT_VST_PATH)) | |||
for iPATH in VST_PATH: | |||
if MACOS and not isWine: | |||
@@ -812,7 +812,7 @@ class SearchPluginsThread(QThread): | |||
self._pluginLook(self.fLastCheckValue, "AU plugins...") | |||
settings = QSettings() | |||
AU_PATH = toList(settings.value("Paths/AU", Carla.DEFAULT_AU_PATH)) | |||
AU_PATH = toList(settings.value("Paths/AU", gCarla.DEFAULT_AU_PATH)) | |||
for iPATH in AU_PATH: | |||
binaries = findBinaries(iPATH, "MACOS") | |||
@@ -843,7 +843,7 @@ class SearchPluginsThread(QThread): | |||
self.fCsdFiles = [] | |||
settings = QSettings() | |||
CSOUND_PATH = toList(settings.value("Paths/CSOUND", Carla.DEFAULT_CSOUND_PATH)) | |||
CSOUND_PATH = toList(settings.value("Paths/CSOUND", gCarla.DEFAULT_CSOUND_PATH)) | |||
for iPATH in CSOUND_PATH: | |||
files = findFilenames(iPATH, "csd") | |||
@@ -945,28 +945,28 @@ class PluginRefreshW(QDialog): | |||
self.ui.ch_posix32.setText("MacOS 32bit") | |||
self.ui.ch_posix64.setText("MacOS 64bit") | |||
if Carla.discovery_posix32 and not WINDOWS: | |||
if gCarla.discovery_posix32 and not WINDOWS: | |||
self.ui.ico_posix32.setPixmap(self.fIconYes) | |||
else: | |||
self.ui.ico_posix32.setPixmap(self.fIconNo) | |||
self.ui.ch_posix32.setChecked(False) | |||
self.ui.ch_posix32.setEnabled(False) | |||
if Carla.discovery_posix64 and not WINDOWS: | |||
if gCarla.discovery_posix64 and not WINDOWS: | |||
self.ui.ico_posix64.setPixmap(self.fIconYes) | |||
else: | |||
self.ui.ico_posix64.setPixmap(self.fIconNo) | |||
self.ui.ch_posix64.setChecked(False) | |||
self.ui.ch_posix64.setEnabled(False) | |||
if Carla.discovery_win32: | |||
if gCarla.discovery_win32: | |||
self.ui.ico_win32.setPixmap(self.fIconYes) | |||
else: | |||
self.ui.ico_win32.setPixmap(self.fIconNo) | |||
self.ui.ch_win32.setChecked(False) | |||
self.ui.ch_win32.setEnabled(False) | |||
if Carla.discovery_win64: | |||
if gCarla.discovery_win64: | |||
self.ui.ico_win64.setPixmap(self.fIconYes) | |||
else: | |||
self.ui.ico_win64.setPixmap(self.fIconNo) | |||
@@ -978,35 +978,35 @@ class PluginRefreshW(QDialog): | |||
else: | |||
self.ui.ico_rdflib.setPixmap(self.fIconNo) | |||
hasNative = bool(Carla.discovery_native) | |||
hasNative = bool(gCarla.discovery_native) | |||
hasNonNative = False | |||
if WINDOWS: | |||
if kIs64bit: | |||
hasNative = bool(Carla.discovery_win64) | |||
hasNonNative = bool(Carla.discovery_win32) | |||
self.fThread.setSearchToolNative(Carla.discovery_win64) | |||
hasNative = bool(gCarla.discovery_win64) | |||
hasNonNative = bool(gCarla.discovery_win32) | |||
self.fThread.setSearchToolNative(gCarla.discovery_win64) | |||
self.ui.ch_win64.setChecked(False) | |||
self.ui.ch_win64.setVisible(False) | |||
self.ui.ico_win64.setVisible(False) | |||
self.ui.label_win64.setVisible(False) | |||
else: | |||
hasNative = bool(Carla.discovery_win32) | |||
hasNonNative = bool(Carla.discovery_win64) | |||
self.fThread.setSearchToolNative(Carla.discovery_win32) | |||
hasNative = bool(gCarla.discovery_win32) | |||
hasNonNative = bool(gCarla.discovery_win64) | |||
self.fThread.setSearchToolNative(gCarla.discovery_win32) | |||
self.ui.ch_win32.setChecked(False) | |||
self.ui.ch_win32.setVisible(False) | |||
self.ui.ico_win32.setVisible(False) | |||
self.ui.label_win32.setVisible(False) | |||
elif LINUX or MACOS: | |||
if kIs64bit: | |||
hasNonNative = bool(Carla.discovery_posix32 or Carla.discovery_win32 or Carla.discovery_win64) | |||
hasNonNative = bool(gCarla.discovery_posix32 or gCarla.discovery_win32 or gCarla.discovery_win64) | |||
self.ui.ch_posix64.setChecked(False) | |||
self.ui.ch_posix64.setVisible(False) | |||
self.ui.ico_posix64.setVisible(False) | |||
self.ui.label_posix64.setVisible(False) | |||
else: | |||
hasNonNative = bool(Carla.discovery_posix64 or Carla.discovery_win32 or Carla.discovery_win64) | |||
hasNonNative = bool(gCarla.discovery_posix64 or gCarla.discovery_win32 or gCarla.discovery_win64) | |||
self.ui.ch_posix32.setChecked(False) | |||
self.ui.ch_posix32.setVisible(False) | |||
self.ui.ico_posix32.setVisible(False) | |||
@@ -1445,14 +1445,14 @@ class PluginDatabaseW(QDialog): | |||
for plugins in internalPlugins: | |||
internalCount += len(plugins) | |||
canRefreshInternals = not (Carla.isControl or Carla.isPlugin or Carla.host is None) | |||
canRefreshInternals = not (gCarla.isControl or gCarla.isPlugin or gCarla.host is None) | |||
if canRefreshInternals and internalCount != Carla.host.get_internal_plugin_count(): | |||
internalCount = Carla.host.get_internal_plugin_count() | |||
if canRefreshInternals and internalCount != gCarla.host.get_internal_plugin_count(): | |||
internalCount = gCarla.host.get_internal_plugin_count() | |||
internalPlugins = [] | |||
for i in range(Carla.host.get_internal_plugin_count()): | |||
descInfo = Carla.host.get_internal_plugin_info(i) | |||
for i in range(gCarla.host.get_internal_plugin_count()): | |||
descInfo = gCarla.host.get_internal_plugin_info(i) | |||
plugins = checkPluginInternal(descInfo) | |||
if plugins: | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# Carla host code | |||
# Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com> | |||
# Copyright (C) 2011-2014 Filipe Coelho <falktx@falktx.com> | |||
# | |||
# This program is free software; you can redistribute it and/or | |||
# modify it under the terms of the GNU General Public License as | |||
@@ -154,16 +154,16 @@ class HostWindow(QMainWindow): | |||
self.ui.setupUi(self) | |||
if False: | |||
Carla.gui = self | |||
gCarla.gui = self | |||
self.fContainer = CarlaDummyW(self) | |||
# ------------------------------------------------------------- | |||
# Set callback, TODO put somewhere else | |||
if Carla.host is not None: | |||
Carla.host.set_engine_callback(engineCallback) | |||
if gCarla.host is not None: | |||
gCarla.host.set_engine_callback(engineCallback) | |||
Carla.host.set_file_callback(fileCallback) | |||
gCarla.host.set_file_callback(fileCallback) | |||
# ------------------------------------------------------------- | |||
# Internal stuff | |||
@@ -207,7 +207,7 @@ class HostWindow(QMainWindow): | |||
# ------------------------------------------------------------- | |||
# Set up GUI (engine stopped) | |||
if Carla.isPlugin: | |||
if gCarla.isPlugin: | |||
self.ui.act_file_new.setEnabled(False) | |||
self.ui.act_file_open.setEnabled(False) | |||
self.ui.act_engine_start.setEnabled(False) | |||
@@ -231,8 +231,8 @@ class HostWindow(QMainWindow): | |||
self.fDirModel = QFileSystemModel(self) | |||
self.fDirModel.setRootPath(HOME) | |||
if Carla.host is not None: | |||
self.fDirModel.setNameFilters(Carla.host.get_supported_file_extensions().split(";")) | |||
if gCarla.host is not None: | |||
self.fDirModel.setNameFilters(gCarla.host.get_supported_file_extensions().split(";")) | |||
self.ui.fileTreeView.setModel(self.fDirModel) | |||
self.ui.fileTreeView.setRootIndex(self.fDirModel.index(HOME)) | |||
@@ -309,8 +309,8 @@ class HostWindow(QMainWindow): | |||
#@pyqtSlot() | |||
#def slot_test(self): | |||
#print("test started") | |||
#if not Carla.host.add_plugin(BINARY_NATIVE, PLUGIN_JACK, "/usr/bin/zita-rev1", "name of client", "label of client", None): | |||
#print(Carla.host.get_last_error()) | |||
#if not gCarla.host.add_plugin(BINARY_NATIVE, PLUGIN_JACK, "/usr/bin/zita-rev1", "name of client", "label of client", None): | |||
#print(gCarla.host.get_last_error()) | |||
#print("test ended") | |||
# ----------------------------------------------------------------- | |||
@@ -343,7 +343,7 @@ class HostWindow(QMainWindow): | |||
return qCritical("ERROR: loading project without filename set") | |||
self.fIsProjectLoading = True | |||
Carla.host.load_project(self.fProjectFilename) | |||
gCarla.host.load_project(self.fProjectFilename) | |||
self.fIsProjectLoading = False | |||
self.fContainer.projectLoaded() | |||
@@ -361,13 +361,13 @@ class HostWindow(QMainWindow): | |||
if not self.fProjectFilename: | |||
return qCritical("ERROR: saving project without filename set") | |||
Carla.host.save_project(self.fProjectFilename) | |||
gCarla.host.save_project(self.fProjectFilename) | |||
# ----------------------------------------------------------------- | |||
# Internal stuff (engine) | |||
def setEngineSettings(self, settings = None): | |||
if Carla.isPlugin: | |||
if gCarla.isPlugin: | |||
return "Plugin" | |||
if settings is None: settings = QSettings() | |||
@@ -460,26 +460,26 @@ class HostWindow(QMainWindow): | |||
# ------------------------------------------------------------- | |||
# apply to engine | |||
Carla.host.set_engine_option(ENGINE_OPTION_FORCE_STEREO, forceStereo, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_UIS_ALWAYS_ON_TOP, uisAlwaysOnTop, "") | |||
gCarla.host.set_engine_option(ENGINE_OPTION_FORCE_STEREO, forceStereo, "") | |||
gCarla.host.set_engine_option(ENGINE_OPTION_UIS_ALWAYS_ON_TOP, uisAlwaysOnTop, "") | |||
if not Carla.isPlugin: | |||
Carla.host.set_engine_option(ENGINE_OPTION_PREFER_PLUGIN_BRIDGES, preferPluginBridges, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_PREFER_UI_BRIDGES, preferUiBridges, "") | |||
if not gCarla.isPlugin: | |||
gCarla.host.set_engine_option(ENGINE_OPTION_PREFER_PLUGIN_BRIDGES, preferPluginBridges, "") | |||
gCarla.host.set_engine_option(ENGINE_OPTION_PREFER_UI_BRIDGES, preferUiBridges, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_MAX_PARAMETERS, maxParameters, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_UI_BRIDGES_TIMEOUT, uiBridgesTimeout, "") | |||
gCarla.host.set_engine_option(ENGINE_OPTION_MAX_PARAMETERS, maxParameters, "") | |||
gCarla.host.set_engine_option(ENGINE_OPTION_UI_BRIDGES_TIMEOUT, uiBridgesTimeout, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_PROCESS_MODE, processMode, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_TRANSPORT_MODE, transportMode, "") | |||
gCarla.host.set_engine_option(ENGINE_OPTION_PROCESS_MODE, processMode, "") | |||
gCarla.host.set_engine_option(ENGINE_OPTION_TRANSPORT_MODE, transportMode, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_AUDIO_NUM_PERIODS, audioNumPeriods, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_AUDIO_BUFFER_SIZE, audioBufferSize, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_AUDIO_SAMPLE_RATE, audioSampleRate, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_AUDIO_DEVICE, 0, audioDevice) | |||
gCarla.host.set_engine_option(ENGINE_OPTION_AUDIO_NUM_PERIODS, audioNumPeriods, "") | |||
gCarla.host.set_engine_option(ENGINE_OPTION_AUDIO_BUFFER_SIZE, audioBufferSize, "") | |||
gCarla.host.set_engine_option(ENGINE_OPTION_AUDIO_SAMPLE_RATE, audioSampleRate, "") | |||
gCarla.host.set_engine_option(ENGINE_OPTION_AUDIO_DEVICE, 0, audioDevice) | |||
# save this for later | |||
Carla.maxParameters = maxParameters | |||
gCarla.maxParameters = maxParameters | |||
# return selected driver name | |||
return audioDriver | |||
@@ -487,12 +487,12 @@ class HostWindow(QMainWindow): | |||
def startEngine(self): | |||
audioDriver = self.setEngineSettings() | |||
if not Carla.host.engine_init(audioDriver, self.fClientName): | |||
if not gCarla.host.engine_init(audioDriver, self.fClientName): | |||
if self.fFirstEngineInit: | |||
self.fFirstEngineInit = False | |||
return | |||
audioError = Carla.host.get_last_error() | |||
audioError = gCarla.host.get_last_error() | |||
if audioError: | |||
QMessageBox.critical(self, self.tr("Error"), self.tr("Could not connect to Audio backend '%s', possible reasons:\n%s" % (audioDriver, audioError))) | |||
@@ -513,8 +513,8 @@ class HostWindow(QMainWindow): | |||
self.ui.act_plugin_remove_all.setEnabled(False) | |||
self.fContainer.removeAllPlugins() | |||
if Carla.host.is_engine_running() and not Carla.host.engine_close(): | |||
print(Carla.host.get_last_error()) | |||
if gCarla.host.is_engine_running() and not gCarla.host.engine_close(): | |||
print(gCarla.host.get_last_error()) | |||
# ----------------------------------------------------------------- | |||
# Internal stuff (plugins) | |||
@@ -567,10 +567,10 @@ class HostWindow(QMainWindow): | |||
# Internal stuff (transport) | |||
def refreshTransport(self, forced = False): | |||
if Carla.sampleRate == 0.0 or not Carla.host.is_engine_running(): | |||
if gCarla.sampleRate == 0.0 or not gCarla.host.is_engine_running(): | |||
return | |||
timeInfo = Carla.host.get_transport_info() | |||
timeInfo = gCarla.host.get_transport_info() | |||
playing = bool(timeInfo['playing']) | |||
frame = int(timeInfo['frame']) | |||
@@ -589,7 +589,7 @@ class HostWindow(QMainWindow): | |||
self.fLastTransportState = playing | |||
if frame != self.fLastTransportFrame or forced: | |||
time = frame / Carla.sampleRate | |||
time = frame / gCarla.sampleRate | |||
secs = time % 60 | |||
mins = (time / 60) % 60 | |||
hrs = (time / 3600) % 60 | |||
@@ -645,20 +645,20 @@ class HostWindow(QMainWindow): | |||
# --------------------------------------------- | |||
if not Carla.isPlugin: | |||
if not gCarla.isPlugin: | |||
# engine | |||
self.setEngineSettings(settings) | |||
# plugin paths | |||
LADSPA_PATH = toList(settings.value("Paths/LADSPA", Carla.DEFAULT_LADSPA_PATH)) | |||
DSSI_PATH = toList(settings.value("Paths/DSSI", Carla.DEFAULT_DSSI_PATH)) | |||
LV2_PATH = toList(settings.value("Paths/LV2", Carla.DEFAULT_LV2_PATH)) | |||
VST_PATH = toList(settings.value("Paths/VST", Carla.DEFAULT_VST_PATH)) | |||
AU_PATH = toList(settings.value("Paths/AU", Carla.DEFAULT_AU_PATH)) | |||
CSOUND_PATH = toList(settings.value("Paths/CSOUND", Carla.DEFAULT_CSOUND_PATH)) | |||
GIG_PATH = toList(settings.value("Paths/GIG", Carla.DEFAULT_GIG_PATH)) | |||
SF2_PATH = toList(settings.value("Paths/SF2", Carla.DEFAULT_SF2_PATH)) | |||
SFZ_PATH = toList(settings.value("Paths/SFZ", Carla.DEFAULT_SFZ_PATH)) | |||
LADSPA_PATH = toList(settings.value("Paths/LADSPA", gCarla.DEFAULT_LADSPA_PATH)) | |||
DSSI_PATH = toList(settings.value("Paths/DSSI", gCarla.DEFAULT_DSSI_PATH)) | |||
LV2_PATH = toList(settings.value("Paths/LV2", gCarla.DEFAULT_LV2_PATH)) | |||
VST_PATH = toList(settings.value("Paths/VST", gCarla.DEFAULT_VST_PATH)) | |||
AU_PATH = toList(settings.value("Paths/AU", gCarla.DEFAULT_AU_PATH)) | |||
CSOUND_PATH = toList(settings.value("Paths/CSOUND", gCarla.DEFAULT_CSOUND_PATH)) | |||
GIG_PATH = toList(settings.value("Paths/GIG", gCarla.DEFAULT_GIG_PATH)) | |||
SF2_PATH = toList(settings.value("Paths/SF2", gCarla.DEFAULT_SF2_PATH)) | |||
SFZ_PATH = toList(settings.value("Paths/SFZ", gCarla.DEFAULT_SFZ_PATH)) | |||
os.environ["LADSPA_PATH"] = splitter.join(LADSPA_PATH) | |||
os.environ["DSSI_PATH"] = splitter.join(DSSI_PATH) | |||
@@ -803,11 +803,11 @@ class HostWindow(QMainWindow): | |||
def slot_engineStart(self, doStart = True): | |||
if doStart: self.startEngine() | |||
check = Carla.host.is_engine_running() | |||
check = gCarla.host.is_engine_running() | |||
self.ui.menu_PluginMacros.setEnabled(check) | |||
self.ui.menu_Canvas.setEnabled(check) | |||
if not Carla.isPlugin: | |||
if not gCarla.isPlugin: | |||
self.ui.act_file_save.setEnabled(check) | |||
self.ui.act_engine_start.setEnabled(not check) | |||
self.ui.act_engine_stop.setEnabled(check) | |||
@@ -819,7 +819,7 @@ class HostWindow(QMainWindow): | |||
self.setTransportMenuEnabled(check) | |||
if check: | |||
if not Carla.isPlugin: | |||
if not gCarla.isPlugin: | |||
self.refreshTransport(True) | |||
self.fContainer.engineStarted() | |||
@@ -833,11 +833,11 @@ class HostWindow(QMainWindow): | |||
self.ui.act_plugin_remove_all.setEnabled(False) | |||
self.fContainer.removeAllPlugins() | |||
check = Carla.host.is_engine_running() | |||
check = gCarla.host.is_engine_running() | |||
self.ui.menu_PluginMacros.setEnabled(check) | |||
self.ui.menu_Canvas.setEnabled(check) | |||
if not Carla.isPlugin: | |||
if not gCarla.isPlugin: | |||
self.ui.act_file_save.setEnabled(check) | |||
self.ui.act_engine_start.setEnabled(not check) | |||
self.ui.act_engine_stop.setEnabled(check) | |||
@@ -861,7 +861,7 @@ class HostWindow(QMainWindow): | |||
if not dialog.exec_(): | |||
return | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
QMessageBox.warning(self, self.tr("Warning"), self.tr("Cannot add new plugins while engine is stopped")) | |||
return | |||
@@ -872,59 +872,59 @@ class HostWindow(QMainWindow): | |||
uniqueId = dialog.fRetPlugin['uniqueId'] | |||
extraPtr = self.getExtraPtr(dialog.fRetPlugin) | |||
if not Carla.host.add_plugin(btype, ptype, filename, None, label, uniqueId, extraPtr): | |||
CustomMessageBox(self, QMessageBox.Critical, self.tr("Error"), self.tr("Failed to load plugin"), charPtrToString(Carla.host.get_last_error()), QMessageBox.Ok, QMessageBox.Ok) | |||
if not gCarla.host.add_plugin(btype, ptype, filename, None, label, uniqueId, extraPtr): | |||
CustomMessageBox(self, QMessageBox.Critical, self.tr("Error"), self.tr("Failed to load plugin"), charPtrToString(gCarla.host.get_last_error()), QMessageBox.Ok, QMessageBox.Ok) | |||
return | |||
@pyqtSlot() | |||
def slot_pluginRemoveAll(self): | |||
self.ui.act_plugin_remove_all.setEnabled(False) | |||
self.fContainer.removeAllPlugins() | |||
Carla.host.remove_all_plugins() | |||
gCarla.host.remove_all_plugins() | |||
# ----------------------------------------------------------------- | |||
@pyqtSlot(bool) | |||
def slot_transportPlayPause(self, toggled): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
if toggled: | |||
Carla.host.transport_play() | |||
gCarla.host.transport_play() | |||
else: | |||
Carla.host.transport_pause() | |||
gCarla.host.transport_pause() | |||
self.refreshTransport() | |||
@pyqtSlot() | |||
def slot_transportStop(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
Carla.host.transport_pause() | |||
Carla.host.transport_relocate(0) | |||
gCarla.host.transport_pause() | |||
gCarla.host.transport_relocate(0) | |||
self.refreshTransport() | |||
@pyqtSlot() | |||
def slot_transportBackwards(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
newFrame = Carla.host.get_current_transport_frame() - 100000 | |||
newFrame = gCarla.host.get_current_transport_frame() - 100000 | |||
if newFrame < 0: | |||
newFrame = 0 | |||
Carla.host.transport_relocate(newFrame) | |||
gCarla.host.transport_relocate(newFrame) | |||
@pyqtSlot() | |||
def slot_transportForwards(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
newFrame = Carla.host.get_current_transport_frame() + 100000 | |||
Carla.host.transport_relocate(newFrame) | |||
newFrame = gCarla.host.get_current_transport_frame() + 100000 | |||
gCarla.host.transport_relocate(newFrame) | |||
# ----------------------------------------------------------------- | |||
@@ -979,10 +979,10 @@ class HostWindow(QMainWindow): | |||
def slot_fileTreeDoubleClicked(self, modelIndex): | |||
filename = self.fDirModel.filePath(modelIndex) | |||
if not Carla.host.load_file(filename): | |||
if not gCarla.host.load_file(filename): | |||
CustomMessageBox(self, QMessageBox.Critical, self.tr("Error"), | |||
self.tr("Failed to load file"), | |||
Carla.host.get_last_error(), QMessageBox.Ok, QMessageBox.Ok) | |||
gCarla.host.get_last_error(), QMessageBox.Ok, QMessageBox.Ok) | |||
# ----------------------------------------------------------------- | |||
@@ -1019,10 +1019,10 @@ class HostWindow(QMainWindow): | |||
@pyqtSlot(str) | |||
def slot_handleEngineStartedCallback(self, processMode, transportMode, driverName): | |||
Carla.processMode = processMode | |||
Carla.transportMode = transportMode | |||
Carla.bufferSize = Carla.host.get_buffer_size() | |||
Carla.sampleRate = Carla.host.get_sample_rate() | |||
gCarla.processMode = processMode | |||
gCarla.transportMode = transportMode | |||
gCarla.bufferSize = gCarla.host.get_buffer_size() | |||
gCarla.sampleRate = gCarla.host.get_sample_rate() | |||
self.slot_engineStart(False) | |||
@@ -1036,8 +1036,8 @@ class HostWindow(QMainWindow): | |||
self.killTimers() | |||
self.slot_engineStop(False) | |||
Carla.bufferSize = 0 | |||
Carla.sampleRate = 0.0 | |||
gCarla.bufferSize = 0 | |||
gCarla.sampleRate = 0.0 | |||
# ----------------------------------------------------------------- | |||
@@ -1089,8 +1089,8 @@ class HostWindow(QMainWindow): | |||
def timerEvent(self, event): | |||
if event.timerId() == self.fIdleTimerFast: | |||
#if not Carla.isPlugin: | |||
Carla.host.engine_idle() | |||
#if not gCarla.isPlugin: | |||
gCarla.host.engine_idle() | |||
self.refreshTransport() | |||
self.fContainer.idleFast() | |||
@@ -1108,8 +1108,8 @@ class HostWindow(QMainWindow): | |||
self.killTimers() | |||
self.saveSettings() | |||
if Carla.host.is_engine_running(): | |||
Carla.host.set_engine_about_to_close() | |||
if gCarla.host.is_engine_running(): | |||
gCarla.host.set_engine_about_to_close() | |||
self.ui.act_plugin_remove_all.setEnabled(False) | |||
self.fContainer.removeAllPlugins() | |||
self.stopEngine() | |||
@@ -1121,108 +1121,108 @@ class HostWindow(QMainWindow): | |||
def engineCallback(ptr, action, pluginId, value1, value2, value3, valueStr): | |||
if action == ENGINE_CALLBACK_PROCESS_MODE_CHANGED: | |||
Carla.processMode = value1 | |||
if Carla.gui is not None: | |||
Carla.gui.ProcessModeChangedCallback.emit(value1) | |||
gCarla.processMode = value1 | |||
if gCarla.gui is not None: | |||
gCarla.gui.ProcessModeChangedCallback.emit(value1) | |||
return | |||
if action == ENGINE_CALLBACK_TRANSPORT_MODE_CHANGED: | |||
Carla.transportMode = value1 | |||
if Carla.gui is not None: | |||
Carla.gui.TransportModeChangedCallback.emit(value1) | |||
gCarla.transportMode = value1 | |||
if gCarla.gui is not None: | |||
gCarla.gui.TransportModeChangedCallback.emit(value1) | |||
return | |||
if action == ENGINE_CALLBACK_BUFFER_SIZE_CHANGED: | |||
Carla.bufferSize = value1 | |||
if Carla.gui is not None: | |||
Carla.gui.BufferSizeChangedCallback.emit(value1) | |||
gCarla.bufferSize = value1 | |||
if gCarla.gui is not None: | |||
gCarla.gui.BufferSizeChangedCallback.emit(value1) | |||
return | |||
if action == ENGINE_CALLBACK_SAMPLE_RATE_CHANGED: | |||
Carla.sampleRate = value1 | |||
if Carla.gui is not None: | |||
Carla.gui.SampleRateChangedCallback.emit(value3) | |||
gCarla.sampleRate = value1 | |||
if gCarla.gui is not None: | |||
gCarla.gui.SampleRateChangedCallback.emit(value3) | |||
return | |||
if Carla.gui is None: | |||
if gCarla.gui is None: | |||
print("WARNING: Got engine callback but UI is not ready : ", pluginId, value1, value2, value3, valueStr) | |||
return | |||
valueStr = charPtrToString(valueStr) | |||
if action == ENGINE_CALLBACK_DEBUG: | |||
Carla.gui.DebugCallback.emit(pluginId, value1, value2, value3, valueStr) | |||
gCarla.gui.DebugCallback.emit(pluginId, value1, value2, value3, valueStr) | |||
elif action == ENGINE_CALLBACK_PLUGIN_ADDED: | |||
Carla.gui.PluginAddedCallback.emit(pluginId, valueStr) | |||
gCarla.gui.PluginAddedCallback.emit(pluginId, valueStr) | |||
elif action == ENGINE_CALLBACK_PLUGIN_REMOVED: | |||
Carla.gui.PluginRemovedCallback.emit(pluginId) | |||
gCarla.gui.PluginRemovedCallback.emit(pluginId) | |||
elif action == ENGINE_CALLBACK_PLUGIN_RENAMED: | |||
Carla.gui.PluginRenamedCallback.emit(pluginId, valueStr) | |||
gCarla.gui.PluginRenamedCallback.emit(pluginId, valueStr) | |||
elif action == ENGINE_CALLBACK_PLUGIN_UNAVAILABLE: | |||
Carla.gui.PluginUnavailableCallback.emit(pluginId, valueStr) | |||
gCarla.gui.PluginUnavailableCallback.emit(pluginId, valueStr) | |||
elif action == ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED: | |||
Carla.gui.ParameterValueChangedCallback.emit(pluginId, value1, value3) | |||
gCarla.gui.ParameterValueChangedCallback.emit(pluginId, value1, value3) | |||
elif action == ENGINE_CALLBACK_PARAMETER_DEFAULT_CHANGED: | |||
Carla.gui.ParameterDefaultChangedCallback.emit(pluginId, value1, value3) | |||
gCarla.gui.ParameterDefaultChangedCallback.emit(pluginId, value1, value3) | |||
elif action == ENGINE_CALLBACK_PARAMETER_MIDI_CC_CHANGED: | |||
Carla.gui.ParameterMidiCcChangedCallback.emit(pluginId, value1, value2) | |||
gCarla.gui.ParameterMidiCcChangedCallback.emit(pluginId, value1, value2) | |||
elif action == ENGINE_CALLBACK_PARAMETER_MIDI_CHANNEL_CHANGED: | |||
Carla.gui.ParameterMidiChannelChangedCallback.emit(pluginId, value1, value2) | |||
gCarla.gui.ParameterMidiChannelChangedCallback.emit(pluginId, value1, value2) | |||
elif action == ENGINE_CALLBACK_PROGRAM_CHANGED: | |||
Carla.gui.ProgramChangedCallback.emit(pluginId, value1) | |||
gCarla.gui.ProgramChangedCallback.emit(pluginId, value1) | |||
elif action == ENGINE_CALLBACK_MIDI_PROGRAM_CHANGED: | |||
Carla.gui.MidiProgramChangedCallback.emit(pluginId, value1) | |||
gCarla.gui.MidiProgramChangedCallback.emit(pluginId, value1) | |||
elif action == ENGINE_CALLBACK_UI_STATE_CHANGED: | |||
Carla.gui.UiStateChangedCallback.emit(pluginId, value1) | |||
gCarla.gui.UiStateChangedCallback.emit(pluginId, value1) | |||
elif action == ENGINE_CALLBACK_NOTE_ON: | |||
Carla.gui.NoteOnCallback.emit(pluginId, value1, value2, int(value3)) | |||
gCarla.gui.NoteOnCallback.emit(pluginId, value1, value2, int(value3)) | |||
elif action == ENGINE_CALLBACK_NOTE_OFF: | |||
Carla.gui.NoteOffCallback.emit(pluginId, value1, value2) | |||
gCarla.gui.NoteOffCallback.emit(pluginId, value1, value2) | |||
elif action == ENGINE_CALLBACK_UPDATE: | |||
Carla.gui.UpdateCallback.emit(pluginId) | |||
gCarla.gui.UpdateCallback.emit(pluginId) | |||
elif action == ENGINE_CALLBACK_RELOAD_INFO: | |||
Carla.gui.ReloadInfoCallback.emit(pluginId) | |||
gCarla.gui.ReloadInfoCallback.emit(pluginId) | |||
elif action == ENGINE_CALLBACK_RELOAD_PARAMETERS: | |||
Carla.gui.ReloadParametersCallback.emit(pluginId) | |||
gCarla.gui.ReloadParametersCallback.emit(pluginId) | |||
elif action == ENGINE_CALLBACK_RELOAD_PROGRAMS: | |||
Carla.gui.ReloadProgramsCallback.emit(pluginId) | |||
gCarla.gui.ReloadProgramsCallback.emit(pluginId) | |||
elif action == ENGINE_CALLBACK_RELOAD_ALL: | |||
Carla.gui.ReloadAllCallback.emit(pluginId) | |||
gCarla.gui.ReloadAllCallback.emit(pluginId) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED: | |||
Carla.gui.PatchbayClientAddedCallback.emit(pluginId, value1, value2, valueStr) | |||
gCarla.gui.PatchbayClientAddedCallback.emit(pluginId, value1, value2, valueStr) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_CLIENT_REMOVED: | |||
Carla.gui.PatchbayClientRemovedCallback.emit(pluginId) | |||
gCarla.gui.PatchbayClientRemovedCallback.emit(pluginId) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_CLIENT_RENAMED: | |||
Carla.gui.PatchbayClientRenamedCallback.emit(pluginId, valueStr) | |||
gCarla.gui.PatchbayClientRenamedCallback.emit(pluginId, valueStr) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_CLIENT_DATA_CHANGED: | |||
Carla.gui.PatchbayClientDataChangedCallback.emit(pluginId, value1, value2) | |||
gCarla.gui.PatchbayClientDataChangedCallback.emit(pluginId, value1, value2) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_PORT_ADDED: | |||
Carla.gui.PatchbayPortAddedCallback.emit(pluginId, value1, value2, valueStr) | |||
gCarla.gui.PatchbayPortAddedCallback.emit(pluginId, value1, value2, valueStr) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_PORT_REMOVED: | |||
Carla.gui.PatchbayPortRemovedCallback.emit(pluginId, value1) | |||
gCarla.gui.PatchbayPortRemovedCallback.emit(pluginId, value1) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_PORT_RENAMED: | |||
Carla.gui.PatchbayPortRenamedCallback.emit(pluginId, value1, valueStr) | |||
gCarla.gui.PatchbayPortRenamedCallback.emit(pluginId, value1, valueStr) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_CONNECTION_ADDED: | |||
Carla.gui.PatchbayConnectionAddedCallback.emit(pluginId, value1, value2) | |||
gCarla.gui.PatchbayConnectionAddedCallback.emit(pluginId, value1, value2) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_CONNECTION_REMOVED: | |||
Carla.gui.PatchbayConnectionRemovedCallback.emit(pluginId, value1, value2) | |||
gCarla.gui.PatchbayConnectionRemovedCallback.emit(pluginId, value1, value2) | |||
elif action == ENGINE_CALLBACK_ENGINE_STARTED: | |||
Carla.gui.EngineStartedCallback.emit(value1, value2, valueStr) | |||
gCarla.gui.EngineStartedCallback.emit(value1, value2, valueStr) | |||
elif action == ENGINE_CALLBACK_ENGINE_STOPPED: | |||
Carla.gui.killTimers() | |||
Carla.gui.EngineStoppedCallback.emit() | |||
gCarla.gui.killTimers() | |||
gCarla.gui.EngineStoppedCallback.emit() | |||
elif action == ENGINE_CALLBACK_INFO: | |||
Carla.gui.InfoCallback.emit(valueStr) | |||
gCarla.gui.InfoCallback.emit(valueStr) | |||
elif action == ENGINE_CALLBACK_ERROR: | |||
Carla.gui.ErrorCallback.emit(valueStr) | |||
gCarla.gui.ErrorCallback.emit(valueStr) | |||
elif action == ENGINE_CALLBACK_QUIT: | |||
Carla.gui.QuitCallback.emit() | |||
gCarla.gui.QuitCallback.emit() | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# File callback | |||
def fileCallback(ptr, action, isDir, title, filter): | |||
if Carla.gui is None: | |||
if gCarla.gui is None: | |||
return None | |||
ret = "" | |||
@@ -1230,13 +1230,13 @@ def fileCallback(ptr, action, isDir, title, filter): | |||
if action == FILE_CALLBACK_DEBUG: | |||
pass | |||
elif action == FILE_CALLBACK_OPEN: | |||
ret = QFileDialog.getOpenFileName(Carla.gui, charPtrToString(title), "", charPtrToString(filter) ) #, QFileDialog.ShowDirsOnly if isDir else 0x0) | |||
ret = QFileDialog.getOpenFileName(gCarla.gui, charPtrToString(title), "", charPtrToString(filter) ) #, QFileDialog.ShowDirsOnly if isDir else 0x0) | |||
elif action == FILE_CALLBACK_SAVE: | |||
ret = QFileDialog.getSaveFileName(Carla.gui, charPtrToString(title), "", charPtrToString(filter), QFileDialog.ShowDirsOnly if isDir else 0x0) | |||
ret = QFileDialog.getSaveFileName(gCarla.gui, charPtrToString(title), "", charPtrToString(filter), QFileDialog.ShowDirsOnly if isDir else 0x0) | |||
if not ret: | |||
return None | |||
Carla.gui._fileRet = c_char_p(ret.encode("utf-8")) | |||
retval = cast(byref(Carla.gui._fileRet), POINTER(c_uintptr)) | |||
gCarla.gui._fileRet = c_char_p(ret.encode("utf-8")) | |||
retval = cast(byref(gCarla.gui._fileRet), POINTER(c_uintptr)) | |||
return retval.contents.value |
@@ -214,7 +214,7 @@ class CarlaPatchbayW(QFrame): | |||
self.fPluginCount += 1 | |||
if not isProjectLoading: | |||
Carla.host.set_active(pluginId, True) | |||
gCarla.host.set_active(pluginId, True) | |||
def removePlugin(self, pluginId): | |||
if not self.fIsOnlyPatchbay: | |||
@@ -287,11 +287,11 @@ class CarlaPatchbayW(QFrame): | |||
for pluginId in self.fSelectedPlugins: | |||
self.fPeaksCleared = False | |||
if self.fPeaksIn.isVisible(): | |||
self.fPeaksIn.displayMeter(1, Carla.host.get_input_peak_value(pluginId, True)) | |||
self.fPeaksIn.displayMeter(2, Carla.host.get_input_peak_value(pluginId, False)) | |||
self.fPeaksIn.displayMeter(1, gCarla.host.get_input_peak_value(pluginId, True)) | |||
self.fPeaksIn.displayMeter(2, gCarla.host.get_input_peak_value(pluginId, False)) | |||
if self.fPeaksOut.isVisible(): | |||
self.fPeaksOut.displayMeter(1, Carla.host.get_output_peak_value(pluginId, True)) | |||
self.fPeaksOut.displayMeter(2, Carla.host.get_output_peak_value(pluginId, False)) | |||
self.fPeaksOut.displayMeter(1, gCarla.host.get_output_peak_value(pluginId, True)) | |||
self.fPeaksOut.displayMeter(2, gCarla.host.get_output_peak_value(pluginId, False)) | |||
return | |||
if self.fPeaksCleared: | |||
return | |||
@@ -464,34 +464,34 @@ class CarlaPatchbayW(QFrame): | |||
@pyqtSlot(int) | |||
def slot_noteOn(self, note): | |||
for pluginId in self.fSelectedPlugins: | |||
Carla.host.send_midi_note(pluginId, 0, note, 100) | |||
gCarla.host.send_midi_note(pluginId, 0, note, 100) | |||
@pyqtSlot(int) | |||
def slot_noteOff(self, note): | |||
for pluginId in self.fSelectedPlugins: | |||
Carla.host.send_midi_note(pluginId, 0, note, 0) | |||
gCarla.host.send_midi_note(pluginId, 0, note, 0) | |||
# ----------------------------------------------------------------- | |||
@pyqtSlot() | |||
def slot_pluginsEnable(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
Carla.host.set_active(i, True) | |||
gCarla.host.set_active(i, True) | |||
@pyqtSlot() | |||
def slot_pluginsDisable(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
Carla.host.set_active(i, False) | |||
gCarla.host.set_active(i, False) | |||
@pyqtSlot() | |||
def slot_pluginsVolume100(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -501,11 +501,11 @@ class CarlaPatchbayW(QFrame): | |||
if pitem.getHints() & PLUGIN_CAN_VOLUME: | |||
pitem.setParameterValue(PARAMETER_VOLUME, 1.0) | |||
Carla.host.set_volume(i, 1.0) | |||
gCarla.host.set_volume(i, 1.0) | |||
@pyqtSlot() | |||
def slot_pluginsMute(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -515,11 +515,11 @@ class CarlaPatchbayW(QFrame): | |||
if pitem.getHints() & PLUGIN_CAN_VOLUME: | |||
pitem.setParameterValue(PARAMETER_VOLUME, 0.0) | |||
Carla.host.set_volume(i, 0.0) | |||
gCarla.host.set_volume(i, 0.0) | |||
@pyqtSlot() | |||
def slot_pluginsWet100(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -529,11 +529,11 @@ class CarlaPatchbayW(QFrame): | |||
if pitem.getHints() & PLUGIN_CAN_DRYWET: | |||
pitem.setParameterValue(PARAMETER_DRYWET, 1.0) | |||
Carla.host.set_drywet(i, 1.0) | |||
gCarla.host.set_drywet(i, 1.0) | |||
@pyqtSlot() | |||
def slot_pluginsBypass(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -543,11 +543,11 @@ class CarlaPatchbayW(QFrame): | |||
if pitem.getHints() & PLUGIN_CAN_DRYWET: | |||
pitem.setParameterValue(PARAMETER_DRYWET, 0.0) | |||
Carla.host.set_drywet(i, 0.0) | |||
gCarla.host.set_drywet(i, 0.0) | |||
@pyqtSlot() | |||
def slot_pluginsCenter(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -558,12 +558,12 @@ class CarlaPatchbayW(QFrame): | |||
if pitem.getHints() & PLUGIN_CAN_BALANCE: | |||
pitem.setParameterValue(PARAMETER_BALANCE_LEFT, -1.0) | |||
pitem.setParameterValue(PARAMETER_BALANCE_RIGHT, 1.0) | |||
Carla.host.set_balance_left(i, -1.0) | |||
Carla.host.set_balance_right(i, 1.0) | |||
gCarla.host.set_balance_left(i, -1.0) | |||
gCarla.host.set_balance_right(i, 1.0) | |||
if pitem.getHints() & PLUGIN_CAN_PANNING: | |||
pitem.setParameterValue(PARAMETER_PANNING, 0.0) | |||
Carla.host.set_panning(i, 0.0) | |||
gCarla.host.set_panning(i, 0.0) | |||
# ----------------------------------------------------------------- | |||
@@ -580,8 +580,8 @@ class CarlaPatchbayW(QFrame): | |||
self.fParent.updateContainer(self.themeData) | |||
self.slot_miniCanvasCheckAll() | |||
if Carla.host.is_engine_running(): | |||
Carla.host.patchbay_refresh() | |||
if gCarla.host.is_engine_running(): | |||
gCarla.host.patchbay_refresh() | |||
# ----------------------------------------------------------------- | |||
@@ -772,7 +772,7 @@ class CarlaPatchbayW(QFrame): | |||
print("sorry, can't map this plugin to canvas client", pluginId, self.fPluginCount) | |||
return | |||
patchcanvas.setGroupAsPlugin(clientId, pluginId, bool(Carla.host.get_plugin_info(pluginId)['hints'] & PLUGIN_HAS_CUSTOM_UI)) | |||
patchcanvas.setGroupAsPlugin(clientId, pluginId, bool(gCarla.host.get_plugin_info(pluginId)['hints'] & PLUGIN_HAS_CUSTOM_UI)) | |||
@pyqtSlot(int) | |||
def slot_handlePatchbayClientRemovedCallback(self, clientId): | |||
@@ -809,7 +809,7 @@ class CarlaPatchbayW(QFrame): | |||
print("sorry, can't map this plugin to canvas client", pluginId, self.getPluginCount()) | |||
return | |||
patchcanvas.setGroupAsPlugin(clientId, pluginId, bool(Carla.host.get_plugin_info(pluginId)['hints'] & PLUGIN_HAS_CUSTOM_UI)) | |||
patchcanvas.setGroupAsPlugin(clientId, pluginId, bool(gCarla.host.get_plugin_info(pluginId)['hints'] & PLUGIN_HAS_CUSTOM_UI)) | |||
@pyqtSlot(int, int, int, str) | |||
def slot_handlePatchbayPortAddedCallback(self, clientId, portId, portFlags, portName): | |||
@@ -861,8 +861,8 @@ class CarlaPatchbayW(QFrame): | |||
@pyqtSlot() | |||
def slot_canvasRefresh(self): | |||
patchcanvas.clear() | |||
if Carla.host.is_engine_running(): | |||
Carla.host.patchbay_refresh() | |||
if gCarla.host.is_engine_running(): | |||
gCarla.host.patchbay_refresh() | |||
QTimer.singleShot(1000 if self.fParent.fSavedSettings[CARLA_KEY_CANVAS_EYE_CANDY] else 0, self.fMiniCanvasPreview.update) | |||
@pyqtSlot() | |||
@@ -939,12 +939,12 @@ def canvasCallback(action, value1, value2, valueStr): | |||
elif action == patchcanvas.ACTION_GROUP_SPLIT: | |||
groupId = value1 | |||
patchcanvas.splitGroup(groupId) | |||
Carla.gui.ui.miniCanvasPreview.update() | |||
gCarla.gui.ui.miniCanvasPreview.update() | |||
elif action == patchcanvas.ACTION_GROUP_JOIN: | |||
groupId = value1 | |||
patchcanvas.joinGroup(groupId) | |||
Carla.gui.ui.miniCanvasPreview.update() | |||
gCarla.gui.ui.miniCanvasPreview.update() | |||
elif action == patchcanvas.ACTION_PORT_INFO: | |||
pass | |||
@@ -956,37 +956,37 @@ def canvasCallback(action, value1, value2, valueStr): | |||
portIdA = value1 | |||
portIdB = value2 | |||
if not Carla.host.patchbay_connect(portIdA, portIdB): | |||
print("Connection failed:", Carla.host.get_last_error()) | |||
if not gCarla.host.patchbay_connect(portIdA, portIdB): | |||
print("Connection failed:", gCarla.host.get_last_error()) | |||
elif action == patchcanvas.ACTION_PORTS_DISCONNECT: | |||
connectionId = value1 | |||
if not Carla.host.patchbay_disconnect(connectionId): | |||
print("Disconnect failed:", Carla.host.get_last_error()) | |||
if not gCarla.host.patchbay_disconnect(connectionId): | |||
print("Disconnect failed:", gCarla.host.get_last_error()) | |||
elif action == patchcanvas.ACTION_PLUGIN_CLONE: | |||
pluginId = value1 | |||
Carla.host.clone_plugin(pluginId) | |||
gCarla.host.clone_plugin(pluginId) | |||
elif action == patchcanvas.ACTION_PLUGIN_EDIT: | |||
pluginId = value1 | |||
Carla.gui.fContainer.showEditDialog(pluginId) | |||
gCarla.gui.fContainer.showEditDialog(pluginId) | |||
elif action == patchcanvas.ACTION_PLUGIN_RENAME: | |||
pluginId = value1 | |||
newName = valueStr | |||
Carla.host.rename_plugin(pluginId, newName) | |||
gCarla.host.rename_plugin(pluginId, newName) | |||
elif action == patchcanvas.ACTION_PLUGIN_REMOVE: | |||
pluginId = value1 | |||
Carla.host.remove_plugin(pluginId) | |||
gCarla.host.remove_plugin(pluginId) | |||
elif action == patchcanvas.ACTION_PLUGIN_SHOW_UI: | |||
pluginId = value1 | |||
Carla.host.show_custom_ui(pluginId, True) | |||
gCarla.host.show_custom_ui(pluginId, True) |
@@ -327,7 +327,7 @@ class CarlaRackW(QFrame): | |||
@pyqtSlot() | |||
def slot_pluginsEnable(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -339,7 +339,7 @@ class CarlaRackW(QFrame): | |||
@pyqtSlot() | |||
def slot_pluginsDisable(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -351,7 +351,7 @@ class CarlaRackW(QFrame): | |||
@pyqtSlot() | |||
def slot_pluginsVolume100(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -363,7 +363,7 @@ class CarlaRackW(QFrame): | |||
@pyqtSlot() | |||
def slot_pluginsMute(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -375,7 +375,7 @@ class CarlaRackW(QFrame): | |||
@pyqtSlot() | |||
def slot_pluginsWet100(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -387,7 +387,7 @@ class CarlaRackW(QFrame): | |||
@pyqtSlot() | |||
def slot_pluginsBypass(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -399,7 +399,7 @@ class CarlaRackW(QFrame): | |||
@pyqtSlot() | |||
def slot_pluginsCenter(self): | |||
if not Carla.host.is_engine_running(): | |||
if not gCarla.host.is_engine_running(): | |||
return | |||
for i in range(self.fPluginCount): | |||
@@ -19,7 +19,7 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
from PyQt4.QtCore import pyqtSlot, QByteArray, QSettings | |||
from PyQt4.QtCore import pyqtSlot, QByteArray, QDir, QSettings | |||
from PyQt4.QtGui import QColor, QCursor, QFontMetrics, QPainter, QPainterPath | |||
from PyQt4.QtGui import QDialog, QDialogButtonBox, QFrame, QInputDialog, QLineEdit, QMenu, QVBoxLayout, QWidget | |||
@@ -42,7 +42,7 @@ CANVAS_EYECANDY_SMALL = 1 | |||
# Carla defaults | |||
# Main | |||
CARLA_DEFAULT_MAIN_PROJECT_FOLDER = HOME | |||
CARLA_DEFAULT_MAIN_PROJECT_FOLDER = QDir.homePath() | |||
CARLA_DEFAULT_MAIN_USE_PRO_THEME = True | |||
CARLA_DEFAULT_MAIN_PRO_THEME_COLOR = "Black" | |||
CARLA_DEFAULT_MAIN_REFRESH_INTERVAL = 20 | |||
@@ -105,7 +105,7 @@ class DriverSettingsW(QDialog): | |||
self.fDriverIndex = driverIndex | |||
self.fDriverName = driverName | |||
self.fDeviceNames = Carla.host.get_engine_driver_device_names(driverIndex) if Carla.host is not None else [] | |||
self.fDeviceNames = gCarla.host.get_engine_driver_device_names(driverIndex) if gCarla.host is not None else [] | |||
self.fBufferSizes = BUFFER_SIZE_LIST | |||
self.fSampleRates = SAMPLE_RATE_LIST | |||
@@ -180,8 +180,8 @@ class DriverSettingsW(QDialog): | |||
self.ui.cb_buffersize.clear() | |||
self.ui.cb_samplerate.clear() | |||
if deviceName and Carla.host is not None: | |||
driverDeviceInfo = Carla.host.get_engine_driver_device_info(self.fDriverIndex, deviceName) | |||
if deviceName and gCarla.host is not None: | |||
driverDeviceInfo = gCarla.host.get_engine_driver_device_info(self.fDriverIndex, deviceName) | |||
self.fBufferSizes = numPtrToList(driverDeviceInfo['bufferSizes']) | |||
self.fSampleRates = numPtrToList(driverDeviceInfo['sampleRates']) | |||
@@ -234,9 +234,9 @@ class CarlaSettingsW(QDialog): | |||
# ------------------------------------------------------------- | |||
# Set-up GUI | |||
if Carla.host is not None: | |||
for i in range(Carla.host.get_engine_driver_count()): | |||
self.ui.cb_engine_audio_driver.addItem(Carla.host.get_engine_driver_name(i)) | |||
if gCarla.host is not None: | |||
for i in range(gCarla.host.get_engine_driver_count()): | |||
self.ui.cb_engine_audio_driver.addItem(gCarla.host.get_engine_driver_name(i)) | |||
else: | |||
self.ui.tb_engine_driver_config.setEnabled(False) | |||
@@ -262,7 +262,7 @@ class CarlaSettingsW(QDialog): | |||
if not MACOS: | |||
self.ui.cb_paths.removeItem(self.ui.cb_paths.findText("AU")) | |||
if Carla.isPlugin: | |||
if gCarla.isPlugin: | |||
self.ui.lw_page.hideRow(self.TAB_INDEX_ENGINE) | |||
self.ui.lw_page.hideRow(self.TAB_INDEX_PATHS) | |||
@@ -361,15 +361,15 @@ class CarlaSettingsW(QDialog): | |||
# -------------------------------------------- | |||
# Paths | |||
ladspas = toList(settings.value(CARLA_KEY_PATHS_LADSPA, Carla.DEFAULT_LADSPA_PATH)) | |||
dssis = toList(settings.value(CARLA_KEY_PATHS_DSSI, Carla.DEFAULT_DSSI_PATH)) | |||
lv2s = toList(settings.value(CARLA_KEY_PATHS_LV2, Carla.DEFAULT_LV2_PATH)) | |||
vsts = toList(settings.value(CARLA_KEY_PATHS_VST, Carla.DEFAULT_VST_PATH)) | |||
aus = toList(settings.value(CARLA_KEY_PATHS_AU, Carla.DEFAULT_AU_PATH)) | |||
csds = toList(settings.value(CARLA_KEY_PATHS_CSD, Carla.DEFAULT_CSOUND_PATH)) | |||
gigs = toList(settings.value(CARLA_KEY_PATHS_GIG, Carla.DEFAULT_GIG_PATH)) | |||
sf2s = toList(settings.value(CARLA_KEY_PATHS_SF2, Carla.DEFAULT_SF2_PATH)) | |||
sfzs = toList(settings.value(CARLA_KEY_PATHS_SFZ, Carla.DEFAULT_SFZ_PATH)) | |||
ladspas = toList(settings.value(CARLA_KEY_PATHS_LADSPA, gCarla.DEFAULT_LADSPA_PATH)) | |||
dssis = toList(settings.value(CARLA_KEY_PATHS_DSSI, gCarla.DEFAULT_DSSI_PATH)) | |||
lv2s = toList(settings.value(CARLA_KEY_PATHS_LV2, gCarla.DEFAULT_LV2_PATH)) | |||
vsts = toList(settings.value(CARLA_KEY_PATHS_VST, gCarla.DEFAULT_VST_PATH)) | |||
aus = toList(settings.value(CARLA_KEY_PATHS_AU, gCarla.DEFAULT_AU_PATH)) | |||
csds = toList(settings.value(CARLA_KEY_PATHS_CSD, gCarla.DEFAULT_CSOUND_PATH)) | |||
gigs = toList(settings.value(CARLA_KEY_PATHS_GIG, gCarla.DEFAULT_GIG_PATH)) | |||
sf2s = toList(settings.value(CARLA_KEY_PATHS_SF2, gCarla.DEFAULT_SF2_PATH)) | |||
sfzs = toList(settings.value(CARLA_KEY_PATHS_SFZ, gCarla.DEFAULT_SFZ_PATH)) | |||
ladspas.sort() | |||
dssis.sort() | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# Common Carla code | |||
# Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com> | |||
# Copyright (C) 2011-2014 Filipe Coelho <falktx@falktx.com> | |||
# | |||
# This program is free software; you can redistribute it and/or | |||
# modify it under the terms of the GNU General Public License as | |||
@@ -22,7 +22,7 @@ | |||
import os | |||
import sys | |||
from PyQt4.QtCore import qFatal, qWarning | |||
from PyQt4.QtCore import qFatal, qWarning, QDir | |||
from PyQt4.QtGui import QIcon | |||
from PyQt4.QtGui import QFileDialog, QMessageBox | |||
@@ -59,51 +59,56 @@ VERSION = "1.9.0" | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Set TMP | |||
TMP = os.getenv("TMP") | |||
envTMP = os.getenv("TMP") | |||
if TMP is None: | |||
if envTMP is None: | |||
if WINDOWS: | |||
qWarning("TMP variable not set") | |||
TMP = os.path.join(WINDIR, "temp") | |||
else: | |||
TMP = "/tmp" | |||
TMP = QDir.tempPath() | |||
else: | |||
TMP = envTMP | |||
elif not os.path.exists(TMP): | |||
if not os.path.exists(TMP): | |||
qWarning("TMP does not exist") | |||
TMP = "/tmp" | |||
TMP = "/" | |||
del envTMP | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Set HOME | |||
HOME = os.getenv("HOME") | |||
if HOME is None: | |||
HOME = os.path.expanduser("~") | |||
envHOME = os.getenv("HOME") | |||
if envHOME is None: | |||
if LINUX or MACOS: | |||
qWarning("HOME variable not set") | |||
HOME = QDir.homePath() | |||
else: | |||
HOME = envHOME | |||
if not os.path.exists(HOME): | |||
qWarning("HOME does not exist") | |||
HOME = TMP | |||
del envHOME | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Set PATH | |||
PATH = os.getenv("PATH") | |||
envPATH = os.getenv("PATH") | |||
if PATH is None: | |||
if envPATH is None: | |||
qWarning("PATH variable not set") | |||
if MACOS: | |||
PATH = ("/opt/local/bin", "/usr/local/bin", "/usr/bin", "/bin") | |||
elif WINDOWS: | |||
PATH = (os.path.join(WINDIR, "system32"), WINDIR) | |||
else: | |||
PATH = ("/usr/local/bin", "/usr/bin", "/bin") | |||
else: | |||
PATH = PATH.split(os.pathsep) | |||
PATH = envPATH.split(os.pathsep) | |||
del envPATH | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Static MIDI CC list | |||
@@ -159,141 +164,7 @@ MIDI_CC_LIST = ( | |||
"0x5D FX 3 Depth [Chorus]", | |||
"0x5E FX 4 Depth [Detune]", | |||
"0x5F FX 5 Depth [Phaser]" | |||
) | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Default Plugin Folders (get) | |||
if WINDOWS: | |||
splitter = ";" | |||
APPDATA = os.getenv("APPDATA") | |||
PROGRAMFILES = os.getenv("PROGRAMFILES") | |||
PROGRAMFILESx86 = os.getenv("PROGRAMFILES(x86)") | |||
COMMONPROGRAMFILES = os.getenv("COMMONPROGRAMFILES") | |||
# Small integrity tests | |||
if not APPDATA: | |||
qFatal("APPDATA variable not set, cannot continue") | |||
sys.exit(1) | |||
if not PROGRAMFILES: | |||
qFatal("PROGRAMFILES variable not set, cannot continue") | |||
sys.exit(1) | |||
if not COMMONPROGRAMFILES: | |||
qFatal("COMMONPROGRAMFILES variable not set, cannot continue") | |||
sys.exit(1) | |||
DEFAULT_LADSPA_PATH = ";".join((os.path.join(APPDATA, "LADSPA"), | |||
os.path.join(PROGRAMFILES, "LADSPA"))) | |||
DEFAULT_DSSI_PATH = ";".join((os.path.join(APPDATA, "DSSI"), | |||
os.path.join(PROGRAMFILES, "DSSI"))) | |||
DEFAULT_LV2_PATH = ";".join((os.path.join(APPDATA, "LV2"), | |||
os.path.join(COMMONPROGRAMFILES, "LV2"))) | |||
DEFAULT_VST_PATH = ";".join((os.path.join(PROGRAMFILES, "VstPlugins"), | |||
os.path.join(PROGRAMFILES, "Steinberg", "VstPlugins"))) | |||
DEFAULT_AU_PATH = "" | |||
# TODO | |||
DEFAULT_CSOUND_PATH = "" | |||
DEFAULT_GIG_PATH = ";".join((os.path.join(APPDATA, "GIG"),)) | |||
DEFAULT_SF2_PATH = ";".join((os.path.join(APPDATA, "SF2"),)) | |||
DEFAULT_SFZ_PATH = ";".join((os.path.join(APPDATA, "SFZ"),)) | |||
if PROGRAMFILESx86: | |||
DEFAULT_LADSPA_PATH += ";"+os.path.join(PROGRAMFILESx86, "LADSPA") | |||
DEFAULT_DSSI_PATH += ";"+os.path.join(PROGRAMFILESx86, "DSSI") | |||
DEFAULT_VST_PATH += ";"+os.path.join(PROGRAMFILESx86, "VstPlugins") | |||
DEFAULT_VST_PATH += ";"+os.path.join(PROGRAMFILESx86, "Steinberg", "VstPlugins") | |||
elif HAIKU: | |||
splitter = ":" | |||
DEFAULT_LADSPA_PATH = ":".join((os.path.join(HOME, ".ladspa"), | |||
os.path.join("/", "boot", "common", "add-ons", "ladspa"))) | |||
DEFAULT_DSSI_PATH = ":".join((os.path.join(HOME, ".dssi"), | |||
os.path.join("/", "boot", "common", "add-ons", "dssi"))) | |||
DEFAULT_LV2_PATH = ":".join((os.path.join(HOME, ".lv2"), | |||
os.path.join("/", "boot", "common", "add-ons", "lv2"))) | |||
DEFAULT_VST_PATH = ":".join((os.path.join(HOME, ".vst"), | |||
os.path.join("/", "boot", "common", "add-ons", "vst"))) | |||
DEFAULT_AU_PATH = "" | |||
# TODO | |||
DEFAULT_CSOUND_PATH = "" | |||
# TODO | |||
DEFAULT_GIG_PATH = "" | |||
DEFAULT_SF2_PATH = "" | |||
DEFAULT_SFZ_PATH = "" | |||
elif MACOS: | |||
splitter = ":" | |||
DEFAULT_LADSPA_PATH = ":".join((os.path.join(HOME, "Library", "Audio", "Plug-Ins", "LADSPA"), | |||
os.path.join("/", "Library", "Audio", "Plug-Ins", "LADSPA"))) | |||
DEFAULT_DSSI_PATH = ":".join((os.path.join(HOME, "Library", "Audio", "Plug-Ins", "DSSI"), | |||
os.path.join("/", "Library", "Audio", "Plug-Ins", "DSSI"))) | |||
DEFAULT_LV2_PATH = ":".join((os.path.join(HOME, "Library", "Audio", "Plug-Ins", "LV2"), | |||
os.path.join("/", "Library", "Audio", "Plug-Ins", "LV2"))) | |||
DEFAULT_VST_PATH = ":".join((os.path.join(HOME, "Library", "Audio", "Plug-Ins", "VST"), | |||
os.path.join("/", "Library", "Audio", "Plug-Ins", "VST"))) | |||
DEFAULT_AU_PATH = ":".join((os.path.join(HOME, "Library", "Audio", "Plug-Ins", "Components"), | |||
os.path.join("/", "Library", "Audio", "Plug-Ins", "Components"))) | |||
# TODO | |||
DEFAULT_CSOUND_PATH = "" | |||
# TODO | |||
DEFAULT_GIG_PATH = "" | |||
DEFAULT_SF2_PATH = "" | |||
DEFAULT_SFZ_PATH = "" | |||
else: | |||
splitter = ":" | |||
DEFAULT_LADSPA_PATH = ":".join((os.path.join(HOME, ".ladspa"), | |||
os.path.join("/", "usr", "lib", "ladspa"), | |||
os.path.join("/", "usr", "local", "lib", "ladspa"))) | |||
DEFAULT_DSSI_PATH = ":".join((os.path.join(HOME, ".dssi"), | |||
os.path.join("/", "usr", "lib", "dssi"), | |||
os.path.join("/", "usr", "local", "lib", "dssi"))) | |||
DEFAULT_LV2_PATH = ":".join((os.path.join(HOME, ".lv2"), | |||
os.path.join("/", "usr", "lib", "lv2"), | |||
os.path.join("/", "usr", "local", "lib", "lv2"))) | |||
DEFAULT_VST_PATH = ":".join((os.path.join(HOME, ".vst"), | |||
os.path.join("/", "usr", "lib", "vst"), | |||
os.path.join("/", "usr", "local", "lib", "vst"))) | |||
DEFAULT_AU_PATH = "" | |||
# TODO | |||
DEFAULT_CSOUND_PATH = "" | |||
DEFAULT_GIG_PATH = ":".join((os.path.join(HOME, ".sounds", "gig"), | |||
os.path.join("/", "usr", "share", "sounds", "gig"))) | |||
DEFAULT_SF2_PATH = ":".join((os.path.join(HOME, ".sounds", "sf2"), | |||
os.path.join("/", "usr", "share", "sounds", "sf2"))) | |||
DEFAULT_SFZ_PATH = ":".join((os.path.join(HOME, ".sounds", "sfz"), | |||
os.path.join("/", "usr", "share", "sounds", "sfz"))) | |||
) | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Carla Settings keys | |||
@@ -328,6 +199,7 @@ CARLA_KEY_PATHS_LADSPA = "Paths/LADSPA" | |||
CARLA_KEY_PATHS_DSSI = "Paths/DSSI" | |||
CARLA_KEY_PATHS_LV2 = "Paths/LV2" | |||
CARLA_KEY_PATHS_VST = "Paths/VST" | |||
CARLA_KEY_PATHS_VST3 = "Paths/VST3" | |||
CARLA_KEY_PATHS_AU = "Paths/AU" | |||
CARLA_KEY_PATHS_CSD = "Paths/CSD" | |||
CARLA_KEY_PATHS_GIG = "Paths/GIG" | |||
@@ -370,6 +242,7 @@ class CarlaObject(object): | |||
'DEFAULT_DSSI_PATH', | |||
'DEFAULT_LV2_PATH', | |||
'DEFAULT_VST_PATH', | |||
'DEFAULT_VST3_PATH', | |||
'DEFAULT_AU_PATH', | |||
'DEFAULT_CSOUND_PATH', | |||
'DEFAULT_GIG_PATH', | |||
@@ -377,22 +250,149 @@ class CarlaObject(object): | |||
'DEFAULT_SFZ_PATH' | |||
] | |||
Carla = CarlaObject() | |||
Carla.host = None | |||
Carla.gui = None | |||
Carla.isControl = False | |||
Carla.isLocal = True | |||
Carla.isPlugin = False | |||
Carla.bufferSize = 0 | |||
Carla.sampleRate = 0.0 | |||
Carla.processMode = ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS if LINUX else ENGINE_PROCESS_MODE_CONTINUOUS_RACK | |||
Carla.transportMode = ENGINE_TRANSPORT_MODE_JACK if LINUX else ENGINE_TRANSPORT_MODE_INTERNAL | |||
Carla.maxParameters = MAX_DEFAULT_PARAMETERS | |||
Carla.discovery_native = "" | |||
Carla.discovery_posix32 = "" | |||
Carla.discovery_posix64 = "" | |||
Carla.discovery_win32 = "" | |||
Carla.discovery_win64 = "" | |||
gCarla = CarlaObject() | |||
gCarla.host = None | |||
gCarla.gui = None | |||
gCarla.isControl = False | |||
gCarla.isLocal = True | |||
gCarla.isPlugin = False | |||
gCarla.bufferSize = 0 | |||
gCarla.sampleRate = 0.0 | |||
gCarla.processMode = ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS if LINUX else ENGINE_PROCESS_MODE_CONTINUOUS_RACK | |||
gCarla.transportMode = ENGINE_TRANSPORT_MODE_JACK if LINUX else ENGINE_TRANSPORT_MODE_INTERNAL | |||
gCarla.maxParameters = MAX_DEFAULT_PARAMETERS | |||
gCarla.discovery_native = "" | |||
gCarla.discovery_posix32 = "" | |||
gCarla.discovery_posix64 = "" | |||
gCarla.discovery_win32 = "" | |||
gCarla.discovery_win64 = "" | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Default Plugin Folders (get) | |||
DEFAULT_LADSPA_PATH = "" | |||
DEFAULT_DSSI_PATH = "" | |||
DEFAULT_LV2_PATH = "" | |||
DEFAULT_VST_PATH = "" | |||
DEFAULT_VST3_PATH = "" | |||
DEFAULT_AU_PATH = "" | |||
DEFAULT_CSOUND_PATH = "" | |||
DEFAULT_GIG_PATH = "" | |||
DEFAULT_SF2_PATH = "" | |||
DEFAULT_SFZ_PATH = "" | |||
if WINDOWS: | |||
splitter = ";" | |||
APPDATA = os.getenv("APPDATA") | |||
PROGRAMFILES = os.getenv("PROGRAMFILES") | |||
PROGRAMFILESx86 = os.getenv("PROGRAMFILES(x86)") | |||
COMMONPROGRAMFILES = os.getenv("COMMONPROGRAMFILES") | |||
# Small integrity tests | |||
if not APPDATA: | |||
qFatal("APPDATA variable not set, cannot continue") | |||
sys.exit(1) | |||
if not PROGRAMFILES: | |||
qFatal("PROGRAMFILES variable not set, cannot continue") | |||
sys.exit(1) | |||
if not COMMONPROGRAMFILES: | |||
qFatal("COMMONPROGRAMFILES variable not set, cannot continue") | |||
sys.exit(1) | |||
DEFAULT_LADSPA_PATH = APPDATA + "\\LADSPA" | |||
DEFAULT_LADSPA_PATH += ";" + PROGRAMFILES + "\\LADSPA" | |||
DEFAULT_DSSI_PATH = APPDATA + "\\DSSI" | |||
DEFAULT_DSSI_PATH += ";" + PROGRAMFILES + "\\DSSI" | |||
DEFAULT_LV2_PATH = APPDATA + "\\LV2" | |||
DEFAULT_LV2_PATH += ";" + COMMONPROGRAMFILES + "\\LV2" | |||
DEFAULT_VST_PATH = PROGRAMFILES + "\\VstPlugins" | |||
DEFAULT_VST_PATH += ";" + PROGRAMFILES + "\\Steinberg\\VstPlugins" | |||
DEFAULT_VST3_PATH = PROGRAMFILES + "\\Vst3" | |||
DEFAULT_GIG_PATH = APPDATA + "\\GIG" | |||
DEFAULT_SF2_PATH = APPDATA + "\\SF2" | |||
DEFAULT_SFZ_PATH = APPDATA + "\\SFZ" | |||
if PROGRAMFILESx86: | |||
DEFAULT_LADSPA_PATH += ";" + PROGRAMFILESx86 + "\\LADSPA" | |||
DEFAULT_DSSI_PATH += ";" + PROGRAMFILESx86 + "\\DSSI" | |||
DEFAULT_VST_PATH += ";" + PROGRAMFILESx86 + "\\VstPlugins" | |||
DEFAULT_VST_PATH += ";" + PROGRAMFILESx86 + "\\Steinberg\\VstPlugins" | |||
elif HAIKU: | |||
splitter = ":" | |||
DEFAULT_LADSPA_PATH = HOME + "/.ladspa" | |||
DEFAULT_LADSPA_PATH += ":/boot/common/add-ons/ladspa" | |||
DEFAULT_DSSI_PATH = HOME + "/.dssi" | |||
DEFAULT_DSSI_PATH += ":/boot/common/add-ons/dssi" | |||
DEFAULT_LV2_PATH = HOME + "/.lv2" | |||
DEFAULT_LV2_PATH += ":/boot/common/add-ons/lv2" | |||
DEFAULT_VST_PATH = HOME + "/.vst" | |||
DEFAULT_VST_PATH += ":/boot/common/add-ons/vst" | |||
DEFAULT_VST3_PATH = HOME + "/.vst3" | |||
DEFAULT_VST3_PATH += ":/boot/common/add-ons/vst3" | |||
elif MACOS: | |||
splitter = ":" | |||
DEFAULT_LADSPA_PATH = HOME + "/Library/Audio/Plug-Ins/LADSPA" | |||
DEFAULT_LADSPA_PATH += ":/Library/Audio/Plug-Ins/LADSPA" | |||
DEFAULT_DSSI_PATH = HOME + "/Library/Audio/Plug-Ins/DSSI" | |||
DEFAULT_DSSI_PATH += ":/Library/Audio/Plug-Ins/DSSI" | |||
DEFAULT_LV2_PATH = HOME + "/Library/Audio/Plug-Ins/LV2" | |||
DEFAULT_LV2_PATH += ":/Library/Audio/Plug-Ins/LV2" | |||
DEFAULT_VST_PATH = HOME + "/Library/Audio/Plug-Ins/VST" | |||
DEFAULT_VST_PATH += ":/Library/Audio/Plug-Ins/VST" | |||
DEFAULT_VST3_PATH = HOME + "/Library/Audio/Plug-Ins/VST3" | |||
DEFAULT_VST3_PATH += ":/Library/Audio/Plug-Ins/VST3" | |||
DEFAULT_AU_PATH = HOME + "/Library/Audio/Plug-Ins/Components" | |||
DEFAULT_AU_PATH += ":/Library/Audio/Plug-Ins/Components" | |||
else: | |||
splitter = ":" | |||
DEFAULT_LADSPA_PATH = HOME + "/.ladspa" | |||
DEFAULT_LADSPA_PATH += ":/usr/lib/ladspa" | |||
DEFAULT_LADSPA_PATH += ":/usr/local/lib/ladspa" | |||
DEFAULT_DSSI_PATH = HOME + "/.dssi" | |||
DEFAULT_DSSI_PATH += ":/usr/lib/dssi" | |||
DEFAULT_DSSI_PATH += ":/usr/local/lib/dssi" | |||
DEFAULT_LV2_PATH = HOME + "/.lv2" | |||
DEFAULT_LV2_PATH += ":/usr/lib/lv2" | |||
DEFAULT_LV2_PATH += ":/usr/local/lib/lv2" | |||
DEFAULT_VST_PATH = HOME + "/.vst" | |||
DEFAULT_VST_PATH += ":/usr/lib/vst" | |||
DEFAULT_VST_PATH += ":/usr/local/lib/vst" | |||
DEFAULT_VST3_PATH = HOME + "/.vst3" | |||
DEFAULT_VST3_PATH += ":/usr/lib/vst3" | |||
DEFAULT_VST3_PATH += ":/usr/local/lib/vst3" | |||
DEFAULT_GIG_PATH = HOME + "/.sounds/gig" | |||
DEFAULT_GIG_PATH += ":/usr/share/sounds/gig" | |||
DEFAULT_SF2_PATH = HOME + "/.sounds/sf2" | |||
DEFAULT_SF2_PATH += ":/usr/share/sounds/sf2" | |||
DEFAULT_SFZ_PATH = HOME + "/.sounds/sfz" | |||
DEFAULT_SFZ_PATH += ":/usr/share/sounds/sfz" | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Default Plugin Folders (set) | |||
@@ -415,26 +415,28 @@ if WINDOWS: | |||
del reg | |||
if readEnvVars: | |||
Carla.DEFAULT_LADSPA_PATH = os.getenv("LADSPA_PATH", DEFAULT_LADSPA_PATH).split(splitter) | |||
Carla.DEFAULT_DSSI_PATH = os.getenv("DSSI_PATH", DEFAULT_DSSI_PATH).split(splitter) | |||
Carla.DEFAULT_LV2_PATH = os.getenv("LV2_PATH", DEFAULT_LV2_PATH).split(splitter) | |||
Carla.DEFAULT_VST_PATH = os.getenv("VST_PATH", DEFAULT_VST_PATH).split(splitter) | |||
Carla.DEFAULT_AU_PATH = os.getenv("AU_PATH", DEFAULT_AU_PATH).split(splitter) | |||
Carla.DEFAULT_CSOUND_PATH = os.getenv("CSOUND_PATH", DEFAULT_CSOUND_PATH).split(splitter) | |||
Carla.DEFAULT_GIG_PATH = os.getenv("GIG_PATH", DEFAULT_GIG_PATH).split(splitter) | |||
Carla.DEFAULT_SF2_PATH = os.getenv("SF2_PATH", DEFAULT_SF2_PATH).split(splitter) | |||
Carla.DEFAULT_SFZ_PATH = os.getenv("SFZ_PATH", DEFAULT_SFZ_PATH).split(splitter) | |||
gCarla.DEFAULT_LADSPA_PATH = os.getenv("LADSPA_PATH", DEFAULT_LADSPA_PATH).split(splitter) | |||
gCarla.DEFAULT_DSSI_PATH = os.getenv("DSSI_PATH", DEFAULT_DSSI_PATH).split(splitter) | |||
gCarla.DEFAULT_LV2_PATH = os.getenv("LV2_PATH", DEFAULT_LV2_PATH).split(splitter) | |||
gCarla.DEFAULT_VST_PATH = os.getenv("VST_PATH", DEFAULT_VST_PATH).split(splitter) | |||
gCarla.DEFAULT_VST3_PATH = os.getenv("VST3_PATH", DEFAULT_VST3_PATH).split(splitter) | |||
gCarla.DEFAULT_AU_PATH = os.getenv("AU_PATH", DEFAULT_AU_PATH).split(splitter) | |||
gCarla.DEFAULT_CSOUND_PATH = os.getenv("CSOUND_PATH", DEFAULT_CSOUND_PATH).split(splitter) | |||
gCarla.DEFAULT_GIG_PATH = os.getenv("GIG_PATH", DEFAULT_GIG_PATH).split(splitter) | |||
gCarla.DEFAULT_SF2_PATH = os.getenv("SF2_PATH", DEFAULT_SF2_PATH).split(splitter) | |||
gCarla.DEFAULT_SFZ_PATH = os.getenv("SFZ_PATH", DEFAULT_SFZ_PATH).split(splitter) | |||
else: | |||
Carla.DEFAULT_LADSPA_PATH = DEFAULT_LADSPA_PATH.split(splitter) | |||
Carla.DEFAULT_DSSI_PATH = DEFAULT_DSSI_PATH.split(splitter) | |||
Carla.DEFAULT_LV2_PATH = DEFAULT_LV2_PATH.split(splitter) | |||
Carla.DEFAULT_VST_PATH = DEFAULT_VST_PATH.split(splitter) | |||
Carla.DEFAULT_AU_PATH = DEFAULT_AU_PATH.split(splitter) | |||
Carla.DEFAULT_CSOUND_PATH = DEFAULT_CSOUND_PATH.split(splitter) | |||
Carla.DEFAULT_GIG_PATH = DEFAULT_GIG_PATH.split(splitter) | |||
Carla.DEFAULT_SF2_PATH = DEFAULT_SF2_PATH.split(splitter) | |||
Carla.DEFAULT_SFZ_PATH = DEFAULT_SFZ_PATH.split(splitter) | |||
gCarla.DEFAULT_LADSPA_PATH = DEFAULT_LADSPA_PATH.split(splitter) | |||
gCarla.DEFAULT_DSSI_PATH = DEFAULT_DSSI_PATH.split(splitter) | |||
gCarla.DEFAULT_LV2_PATH = DEFAULT_LV2_PATH.split(splitter) | |||
gCarla.DEFAULT_VST_PATH = DEFAULT_VST_PATH.split(splitter) | |||
gCarla.DEFAULT_VST3_PATH = DEFAULT_VST3_PATH.split(splitter) | |||
gCarla.DEFAULT_AU_PATH = DEFAULT_AU_PATH.split(splitter) | |||
gCarla.DEFAULT_CSOUND_PATH = DEFAULT_CSOUND_PATH.split(splitter) | |||
gCarla.DEFAULT_GIG_PATH = DEFAULT_GIG_PATH.split(splitter) | |||
gCarla.DEFAULT_SF2_PATH = DEFAULT_SF2_PATH.split(splitter) | |||
gCarla.DEFAULT_SFZ_PATH = DEFAULT_SFZ_PATH.split(splitter) | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Search for Carla tools | |||
@@ -469,7 +471,7 @@ def initHost(appName, libPrefix = None, failError = True): | |||
libname = "libcarla_" | |||
if Carla.isControl: | |||
if gCarla.isControl: | |||
libname += "control2" | |||
else: | |||
libname += "standalone2" | |||
@@ -514,20 +516,20 @@ def initHost(appName, libPrefix = None, failError = True): | |||
# ------------------------------------------------------------- | |||
# find windows tools | |||
Carla.discovery_win32 = findTool("discovery", "carla-discovery-win32.exe") | |||
Carla.discovery_win64 = findTool("discovery", "carla-discovery-win64.exe") | |||
gCarla.discovery_win32 = findTool("discovery", "carla-discovery-win32.exe") | |||
gCarla.discovery_win64 = findTool("discovery", "carla-discovery-win64.exe") | |||
# ------------------------------------------------------------- | |||
# find native and posix tools | |||
if not WINDOWS: | |||
Carla.discovery_native = findTool("discovery", "carla-discovery-native") | |||
Carla.discovery_posix32 = findTool("discovery", "carla-discovery-posix32") | |||
Carla.discovery_posix64 = findTool("discovery", "carla-discovery-posix64") | |||
gCarla.discovery_native = findTool("discovery", "carla-discovery-native") | |||
gCarla.discovery_posix32 = findTool("discovery", "carla-discovery-posix32") | |||
gCarla.discovery_posix64 = findTool("discovery", "carla-discovery-posix64") | |||
# ------------------------------------------------------------- | |||
if not (libfilename or Carla.isPlugin): | |||
if not (libfilename or gCarla.isPlugin): | |||
if failError: | |||
QMessageBox.critical(None, "Error", "Failed to find the carla library, cannot continue") | |||
sys.exit(1) | |||
@@ -536,8 +538,8 @@ def initHost(appName, libPrefix = None, failError = True): | |||
# ------------------------------------------------------------- | |||
# Init host | |||
if Carla.host is None: | |||
Carla.host = Host(libfilename) | |||
if gCarla.host is None: | |||
gCarla.host = Host(libfilename) | |||
# ------------------------------------------------------------- | |||
# Set binary path | |||
@@ -547,11 +549,11 @@ def initHost(appName, libPrefix = None, failError = True): | |||
systemBinaries = os.path.join(libfolder, "bridges") | |||
if os.path.exists(libfolder): | |||
Carla.host.set_engine_option(ENGINE_OPTION_PATH_BINARIES, 0, libfolder) | |||
gCarla.host.set_engine_option(ENGINE_OPTION_PATH_BINARIES, 0, libfolder) | |||
elif os.path.exists(localBinaries): | |||
Carla.host.set_engine_option(ENGINE_OPTION_PATH_BINARIES, 0, localBinaries) | |||
gCarla.host.set_engine_option(ENGINE_OPTION_PATH_BINARIES, 0, localBinaries) | |||
elif os.path.exists(systemBinaries): | |||
Carla.host.set_engine_option(ENGINE_OPTION_PATH_BINARIES, 0, systemBinaries) | |||
gCarla.host.set_engine_option(ENGINE_OPTION_PATH_BINARIES, 0, systemBinaries) | |||
# ------------------------------------------------------------- | |||
# Set resource path | |||
@@ -560,9 +562,9 @@ def initHost(appName, libPrefix = None, failError = True): | |||
systemResources = os.path.join(libfolder, "resources") | |||
if os.path.exists(localResources): | |||
Carla.host.set_engine_option(ENGINE_OPTION_PATH_RESOURCES, 0, localResources) | |||
gCarla.host.set_engine_option(ENGINE_OPTION_PATH_RESOURCES, 0, localResources) | |||
elif os.path.exists(systemResources): | |||
Carla.host.set_engine_option(ENGINE_OPTION_PATH_RESOURCES, 0, systemResources) | |||
gCarla.host.set_engine_option(ENGINE_OPTION_PATH_RESOURCES, 0, systemResources) | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Check if a value is a number (float support) | |||
@@ -595,13 +597,13 @@ def getIcon(icon, size=16): | |||
# Signal handler | |||
def signalHandler(sig, frame): | |||
if Carla.gui is None: | |||
if gCarla.gui is None: | |||
return | |||
if sig in (SIGINT, SIGTERM): | |||
Carla.gui.SIGTERM.emit() | |||
gCarla.gui.SIGTERM.emit() | |||
elif haveSIGUSR1 and sig == SIGUSR1: | |||
Carla.gui.SIGUSR1.emit() | |||
gCarla.gui.SIGUSR1.emit() | |||
def setUpSignals(): | |||
signal(SIGINT, signalHandler) | |||
@@ -615,8 +617,8 @@ def setUpSignals(): | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# QLineEdit and QPushButton combo | |||
def getAndSetPath(self_, currentPath, lineEdit): | |||
newPath = QFileDialog.getExistingDirectory(self_, self_.tr("Set Path"), currentPath, QFileDialog.ShowDirsOnly) | |||
def getAndSetPath(parent, currentPath, lineEdit): | |||
newPath = QFileDialog.getExistingDirectory(parent, parent.tr("Set Path"), currentPath, QFileDialog.ShowDirsOnly) | |||
if newPath: | |||
lineEdit.setText(newPath) | |||
return newPath | |||
@@ -656,8 +658,8 @@ def getPluginTypeAsString(ptype): | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Custom MessageBox | |||
def CustomMessageBox(self_, icon, title, text, extraText="", buttons=QMessageBox.Yes|QMessageBox.No, defButton=QMessageBox.No): | |||
msgBox = QMessageBox(self_) | |||
def CustomMessageBox(parent, icon, title, text, extraText="", buttons=QMessageBox.Yes|QMessageBox.No, defButton=QMessageBox.No): | |||
msgBox = QMessageBox(parent) | |||
msgBox.setIcon(icon) | |||
msgBox.setWindowTitle(title) | |||
msgBox.setText(text) | |||
@@ -45,7 +45,7 @@ class AbstractPluginSlot(QFrame): | |||
# Get plugin info | |||
self.fPluginId = pluginId | |||
self.fPluginInfo = Carla.host.get_plugin_info(self.fPluginId) if Carla.host is not None else gFakePluginInfo | |||
self.fPluginInfo = gCarla.host.get_plugin_info(self.fPluginId) if gCarla.host is not None else gFakePluginInfo | |||
self.fPluginInfo['filename'] = charPtrToString(self.fPluginInfo['filename']) | |||
self.fPluginInfo['name'] = charPtrToString(self.fPluginInfo['name']) | |||
@@ -54,7 +54,7 @@ class AbstractPluginSlot(QFrame): | |||
self.fPluginInfo['copyright'] = charPtrToString(self.fPluginInfo['copyright']) | |||
self.fPluginInfo['iconName'] = charPtrToString(self.fPluginInfo['iconName']) | |||
if not Carla.isLocal: | |||
if not gCarla.isLocal: | |||
self.fPluginInfo['hints'] &= ~PLUGIN_HAS_CUSTOM_UI | |||
# ------------------------------------------------------------- | |||
@@ -69,11 +69,11 @@ class AbstractPluginSlot(QFrame): | |||
self.fParameterIconTimer = ICON_STATE_NULL | |||
self.fParameterList = [] # index, widget | |||
if Carla.processMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK or Carla.host is None: | |||
if gCarla.processMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK or gCarla.host is None: | |||
self.fPeaksInputCount = 2 | |||
self.fPeaksOutputCount = 2 | |||
else: | |||
audioCountInfo = Carla.host.get_audio_port_count_info(self.fPluginId) | |||
audioCountInfo = gCarla.host.get_audio_port_count_info(self.fPluginId) | |||
self.fPeaksInputCount = int(audioCountInfo['ins']) | |||
self.fPeaksOutputCount = int(audioCountInfo['outs']) | |||
@@ -167,8 +167,8 @@ class AbstractPluginSlot(QFrame): | |||
for paramIndex, paramWidget in self.fParameterList: | |||
paramWidget.valueChanged.connect(self.slot_parameterValueChanged) | |||
if paramIndex >= 0 and Carla.host is not None: | |||
paramWidget.setValue(Carla.host.get_current_parameter_value(self.fPluginId, paramIndex) * 1000) | |||
if paramIndex >= 0 and gCarla.host is not None: | |||
paramWidget.setValue(gCarla.host.get_current_parameter_value(self.fPluginId, paramIndex) * 1000) | |||
#------------------------------------------------------------------ | |||
@@ -209,7 +209,7 @@ class AbstractPluginSlot(QFrame): | |||
self.fIsActive = active | |||
if sendGui: self.activeChanged(active) | |||
if sendCallback: Carla.host.set_active(self.fPluginId, active) | |||
if sendCallback: gCarla.host.set_active(self.fPluginId, active) | |||
if active: | |||
self.fEditDialog.clearNotes() | |||
@@ -225,26 +225,26 @@ class AbstractPluginSlot(QFrame): | |||
elif parameterId == PARAMETER_DRYWET: | |||
if (self.fPluginInfo['hints'] & PLUGIN_CAN_DRYWET) == 0: return | |||
Carla.host.set_drywet(self.fPluginId, value) | |||
gCarla.host.set_drywet(self.fPluginId, value) | |||
elif parameterId == PARAMETER_VOLUME: | |||
if (self.fPluginInfo['hints'] & PLUGIN_CAN_VOLUME) == 0: return | |||
Carla.host.set_volume(self.fPluginId, value) | |||
gCarla.host.set_volume(self.fPluginId, value) | |||
elif parameterId == PARAMETER_BALANCE_LEFT: | |||
if (self.fPluginInfo['hints'] & PLUGIN_CAN_BALANCE) == 0: return | |||
Carla.host.set_balance_left(self.fPluginId, value) | |||
gCarla.host.set_balance_left(self.fPluginId, value) | |||
elif parameterId == PARAMETER_BALANCE_RIGHT: | |||
if (self.fPluginInfo['hints'] & PLUGIN_CAN_BALANCE) == 0: return | |||
Carla.host.set_balance_right(self.fPluginId, value) | |||
gCarla.host.set_balance_right(self.fPluginId, value) | |||
elif parameterId == PARAMETER_PANNING: | |||
if (self.fPluginInfo['hints'] & PLUGIN_CAN_PANNING) == 0: return | |||
Carla.host.set_panning(self.fPluginId, value) | |||
gCarla.host.set_panning(self.fPluginId, value) | |||
elif parameterId == PARAMETER_CTRL_CHANNEL: | |||
Carla.host.set_ctrl_channel(self.fPluginId, value) | |||
gCarla.host.set_ctrl_channel(self.fPluginId, value) | |||
self.fEditDialog.setParameterValue(parameterId, value) | |||
@@ -382,8 +382,8 @@ class AbstractPluginSlot(QFrame): | |||
# Input peaks | |||
if self.fPeaksInputCount > 0: | |||
if self.fPeaksInputCount > 1: | |||
peak1 = Carla.host.get_input_peak_value(self.fPluginId, True) | |||
peak2 = Carla.host.get_input_peak_value(self.fPluginId, False) | |||
peak1 = gCarla.host.get_input_peak_value(self.fPluginId, True) | |||
peak2 = gCarla.host.get_input_peak_value(self.fPluginId, False) | |||
ledState = bool(peak1 != 0.0 or peak2 != 0.0) | |||
if self.peak_in is not None: | |||
@@ -391,7 +391,7 @@ class AbstractPluginSlot(QFrame): | |||
self.peak_in.displayMeter(2, peak2) | |||
else: | |||
peak = Carla.host.get_input_peak_value(self.fPluginId, True) | |||
peak = gCarla.host.get_input_peak_value(self.fPluginId, True) | |||
ledState = bool(peak != 0.0) | |||
if self.peak_in is not None: | |||
@@ -404,8 +404,8 @@ class AbstractPluginSlot(QFrame): | |||
# Output peaks | |||
if self.fPeaksOutputCount > 0: | |||
if self.fPeaksOutputCount > 1: | |||
peak1 = Carla.host.get_output_peak_value(self.fPluginId, True) | |||
peak2 = Carla.host.get_output_peak_value(self.fPluginId, False) | |||
peak1 = gCarla.host.get_output_peak_value(self.fPluginId, True) | |||
peak2 = gCarla.host.get_output_peak_value(self.fPluginId, False) | |||
ledState = bool(peak1 != 0.0 or peak2 != 0.0) | |||
if self.peak_out is not None: | |||
@@ -413,7 +413,7 @@ class AbstractPluginSlot(QFrame): | |||
self.peak_out.displayMeter(2, peak2) | |||
else: | |||
peak = Carla.host.get_output_peak_value(self.fPluginId, True) | |||
peak = gCarla.host.get_output_peak_value(self.fPluginId, True) | |||
ledState = bool(peak != 0.0) | |||
if self.peak_out is not None: | |||
@@ -487,9 +487,9 @@ class AbstractPluginSlot(QFrame): | |||
elif actSel == actEdit: | |||
bEdit.click() | |||
elif actSel == actClone: | |||
if Carla.host is not None and not Carla.host.clone_plugin(self.fPluginId): | |||
if gCarla.host is not None and not gCarla.host.clone_plugin(self.fPluginId): | |||
CustomMessageBox(self, QMessageBox.Warning, self.tr("Error"), self.tr("Operation failed"), | |||
Carla.host.get_last_error(), QMessageBox.Ok, QMessageBox.Ok) | |||
gCarla.host.get_last_error(), QMessageBox.Ok, QMessageBox.Ok) | |||
elif actSel == actRename: | |||
oldName = self.fPluginInfo['name'] | |||
@@ -500,16 +500,16 @@ class AbstractPluginSlot(QFrame): | |||
newName = newNameTry[0] | |||
if Carla.host is None or Carla.host.rename_plugin(self.fPluginId, newName): | |||
if gCarla.host is None or gCarla.host.rename_plugin(self.fPluginId, newName): | |||
self.setName(newName) | |||
else: | |||
CustomMessageBox(self, QMessageBox.Warning, self.tr("Error"), self.tr("Operation failed"), | |||
Carla.host.get_last_error(), QMessageBox.Ok, QMessageBox.Ok) | |||
gCarla.host.get_last_error(), QMessageBox.Ok, QMessageBox.Ok) | |||
elif actSel == actRemove: | |||
if Carla.host is not None and not Carla.host.remove_plugin(self.fPluginId): | |||
if gCarla.host is not None and not gCarla.host.remove_plugin(self.fPluginId): | |||
CustomMessageBox(self, QMessageBox.Warning, self.tr("Error"), self.tr("Operation failed"), | |||
Carla.host.get_last_error(), QMessageBox.Ok, QMessageBox.Ok) | |||
gCarla.host.get_last_error(), QMessageBox.Ok, QMessageBox.Ok) | |||
#------------------------------------------------------------------ | |||
@@ -525,7 +525,7 @@ class AbstractPluginSlot(QFrame): | |||
@pyqtSlot(bool) | |||
def slot_showCustomUi(self, show): | |||
Carla.host.show_custom_ui(self.fPluginId, show) | |||
gCarla.host.show_custom_ui(self.fPluginId, show) | |||
@pyqtSlot(bool) | |||
def slot_showEditDialog(self, show): | |||
@@ -533,7 +533,7 @@ class AbstractPluginSlot(QFrame): | |||
@pyqtSlot() | |||
def slot_removePlugin(self): | |||
Carla.host.remove_plugin(self.fPluginId) | |||
gCarla.host.remove_plugin(self.fPluginId) | |||
#------------------------------------------------------------------ | |||
@@ -545,17 +545,17 @@ class AbstractPluginSlot(QFrame): | |||
if index < 0: | |||
self.setInternalParameter(index, value) | |||
else: | |||
Carla.host.set_parameter_value(self.fPluginId, index, value) | |||
gCarla.host.set_parameter_value(self.fPluginId, index, value) | |||
self.setParameterValue(index, value, False) | |||
@pyqtSlot(int) | |||
def slot_programChanged(self, index): | |||
Carla.host.set_program(self.fPluginId, index) | |||
gCarla.host.set_program(self.fPluginId, index) | |||
self.setProgram(index, False) | |||
@pyqtSlot(int) | |||
def slot_midiProgramChanged(self, index): | |||
Carla.host.set_midi_program(self.fPluginId, index) | |||
gCarla.host.set_midi_program(self.fPluginId, index) | |||
self.setMidiProgram(index, False) | |||
#------------------------------------------------------------------ | |||
@@ -757,13 +757,13 @@ class PluginSlot_BasicFX(AbstractPluginSlot): | |||
# ------------------------------------------------------------- | |||
# Set-up parameters | |||
parameterCount = Carla.host.get_parameter_count(self.fPluginId) if Carla.host is not None else 0 | |||
parameterCount = gCarla.host.get_parameter_count(self.fPluginId) if gCarla.host is not None else 0 | |||
index = 0 | |||
for i in range(min(parameterCount, 8)): | |||
paramInfo = Carla.host.get_parameter_info(self.fPluginId, i) | |||
paramData = Carla.host.get_parameter_data(self.fPluginId, i) | |||
paramRanges = Carla.host.get_parameter_ranges(self.fPluginId, i) | |||
paramInfo = gCarla.host.get_parameter_info(self.fPluginId, i) | |||
paramData = gCarla.host.get_parameter_data(self.fPluginId, i) | |||
paramRanges = gCarla.host.get_parameter_ranges(self.fPluginId, i) | |||
if paramData['type'] != PARAMETER_INPUT: | |||
continue | |||
@@ -926,8 +926,8 @@ class PluginSlot_Calf(AbstractPluginSlot): | |||
labelFont.setPointSize(labelFont.pointSize()+3) | |||
self.ui.label_name.setFont(labelFont) | |||
audioCount = Carla.host.get_audio_port_count_info(self.fPluginId) if Carla.host is not None else {'ins': 2, 'outs': 2 } | |||
midiCount = Carla.host.get_midi_port_count_info(self.fPluginId) if Carla.host is not None else {'ins': 1, 'outs': 0 } | |||
audioCount = gCarla.host.get_audio_port_count_info(self.fPluginId) if gCarla.host is not None else {'ins': 2, 'outs': 2 } | |||
midiCount = gCarla.host.get_midi_port_count_info(self.fPluginId) if gCarla.host is not None else {'ins': 1, 'outs': 0 } | |||
if audioCount['ins'] == 0: | |||
self.ui.label_audio_in.hide() | |||
@@ -988,7 +988,7 @@ class PluginSlot_ZitaRev(AbstractPluginSlot): | |||
# ------------------------------------------------------------- | |||
# Internal stuff | |||
audioCount = Carla.host.get_audio_port_count_info(self.fPluginId) if Carla.host is not None else {'ins': 2, 'outs': 2 } | |||
audioCount = gCarla.host.get_audio_port_count_info(self.fPluginId) if gCarla.host is not None else {'ins': 2, 'outs': 2 } | |||
# ------------------------------------------------------------- | |||
# Set-up GUI | |||
@@ -1146,13 +1146,13 @@ class PluginSlot_ZynFX(AbstractPluginSlot): | |||
# ------------------------------------------------------------- | |||
# Set-up parameters | |||
parameterCount = Carla.host.get_parameter_count(self.fPluginId) if Carla.host is not None else 0 | |||
parameterCount = gCarla.host.get_parameter_count(self.fPluginId) if gCarla.host is not None else 0 | |||
index = 0 | |||
for i in range(parameterCount): | |||
paramInfo = Carla.host.get_parameter_info(self.fPluginId, i) | |||
paramData = Carla.host.get_parameter_data(self.fPluginId, i) | |||
paramRanges = Carla.host.get_parameter_ranges(self.fPluginId, i) | |||
paramInfo = gCarla.host.get_parameter_info(self.fPluginId, i) | |||
paramData = gCarla.host.get_parameter_data(self.fPluginId, i) | |||
paramRanges = gCarla.host.get_parameter_ranges(self.fPluginId, i) | |||
if paramData['type'] != PARAMETER_INPUT: | |||
continue | |||
@@ -1252,19 +1252,19 @@ class PluginSlot_ZynFX(AbstractPluginSlot): | |||
# ------------------------------------------------------------- | |||
# Set-up MIDI programs | |||
midiProgramCount = Carla.host.get_midi_program_count(self.fPluginId) if Carla.host is not None else 0 | |||
midiProgramCount = gCarla.host.get_midi_program_count(self.fPluginId) if gCarla.host is not None else 0 | |||
if midiProgramCount > 0: | |||
self.ui.cb_presets.setEnabled(True) | |||
self.ui.label_presets.setEnabled(True) | |||
for i in range(midiProgramCount): | |||
mpData = Carla.host.get_midi_program_data(self.fPluginId, i) | |||
mpData = gCarla.host.get_midi_program_data(self.fPluginId, i) | |||
mpName = charPtrToString(mpData['name']) | |||
self.ui.cb_presets.addItem(mpName) | |||
self.fCurrentMidiProgram = Carla.host.get_current_midi_program_index(self.fPluginId) | |||
self.fCurrentMidiProgram = gCarla.host.get_current_midi_program_index(self.fPluginId) | |||
self.ui.cb_presets.setCurrentIndex(self.fCurrentMidiProgram) | |||
else: | |||
@@ -1302,8 +1302,8 @@ class PluginSlot_ZynFX(AbstractPluginSlot): | |||
# ------------------------------------------------------------------------------------------------------------ | |||
def createPluginSlot(parent, pluginId): | |||
pluginInfo = Carla.host.get_plugin_info(pluginId) | |||
pluginName = Carla.host.get_real_plugin_name(pluginId) | |||
pluginInfo = gCarla.host.get_plugin_info(pluginId) | |||
pluginName = gCarla.host.get_real_plugin_name(pluginId) | |||
pluginLabel = charPtrToString(pluginInfo['label']) | |||
uniqueId = int(pluginInfo['uniqueId']) | |||
@@ -2,7 +2,7 @@ | |||
# -*- coding: utf-8 -*- | |||
# Carla style | |||
# Copyright (C) 2013 Filipe Coelho <falktx@falktx.com> | |||
# Copyright (C) 2013-2014 Filipe Coelho <falktx@falktx.com> | |||
# | |||
# This program is free software you can redistribute it and/or modify | |||
# it under the terms of the GNU General Public License as published by | |||
@@ -93,9 +93,9 @@ class CarlaAboutW(QDialog): | |||
self.ui = ui_carla_about.Ui_CarlaAboutW() | |||
self.ui.setupUi(self) | |||
if Carla.isControl: | |||
if gCarla.isControl: | |||
extraInfo = " - <b>%s</b>" % self.tr("OSC Bridge Version") | |||
elif Carla.isPlugin: | |||
elif gCarla.isPlugin: | |||
extraInfo = " - <b>%s</b>" % self.tr("Plugin Version") | |||
else: | |||
extraInfo = "" | |||
@@ -106,18 +106,18 @@ class CarlaAboutW(QDialog): | |||
"<br>Copyright (C) 2011-2013 falkTX<br>" | |||
"" % (VERSION, extraInfo))) | |||
if Carla.isControl or Carla.isPlugin or Carla.host is None: | |||
if gCarla.isControl or gCarla.isPlugin or gCarla.host is None: | |||
self.ui.l_extended.hide() | |||
self.ui.tabWidget.removeTab(1) | |||
self.ui.tabWidget.removeTab(1) | |||
self.adjustSize() | |||
else: | |||
self.ui.l_extended.setText(Carla.host.get_complete_license_text()) | |||
self.ui.l_extended.setText(gCarla.host.get_complete_license_text()) | |||
if Carla.host.is_engine_running(): | |||
self.ui.le_osc_url_tcp.setText(Carla.host.get_host_osc_url_tcp()) | |||
self.ui.le_osc_url_udp.setText(Carla.host.get_host_osc_url_udp()) | |||
if gCarla.host.is_engine_running(): | |||
self.ui.le_osc_url_tcp.setText(gCarla.host.get_host_osc_url_tcp()) | |||
self.ui.le_osc_url_udp.setText(gCarla.host.get_host_osc_url_udp()) | |||
else: | |||
self.ui.le_osc_url_tcp.setText(self.tr("(Engine not running)")) | |||
self.ui.le_osc_url_udp.setText(self.tr("(Engine not running)")) | |||
@@ -363,7 +363,7 @@ class PluginParameter(QWidget): | |||
self.valueChanged.emit(self.fParameterId, value) | |||
def _textCallBack(self): | |||
return Carla.host.get_parameter_text(self.fPluginId, self.fParameterId) | |||
return gCarla.host.get_parameter_text(self.fPluginId, self.fParameterId) | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Plugin Editor (Built-in) | |||
@@ -372,7 +372,7 @@ class PluginEdit(QDialog): | |||
kParamsPerPage = 8 | |||
def __init__(self, parent, pluginId): | |||
QDialog.__init__(self, Carla.gui) | |||
QDialog.__init__(self, gCarla.gui) | |||
self.ui = ui_carla_edit.Ui_PluginEdit() | |||
self.ui.setupUi(self) | |||
@@ -471,7 +471,7 @@ class PluginEdit(QDialog): | |||
self.ui.cb_programs.currentIndexChanged.connect(self.slot_programIndexChanged) | |||
self.ui.cb_midi_programs.currentIndexChanged.connect(self.slot_midiProgramIndexChanged) | |||
if Carla.isLocal: | |||
if gCarla.isLocal: | |||
self.ui.b_save_state.clicked.connect(self.slot_stateSave) | |||
self.ui.b_load_state.clicked.connect(self.slot_stateLoad) | |||
else: | |||
@@ -484,14 +484,14 @@ class PluginEdit(QDialog): | |||
# Update current program text | |||
if self.ui.cb_programs.count() > 0: | |||
pIndex = self.ui.cb_programs.currentIndex() | |||
pName = charPtrToString(Carla.host.get_program_name(self.fPluginId, pIndex)) | |||
pName = charPtrToString(gCarla.host.get_program_name(self.fPluginId, pIndex)) | |||
#pName = pName[:40] + (pName[40:] and "...") | |||
self.ui.cb_programs.setItemText(pIndex, pName) | |||
# Update current midi program text | |||
if self.ui.cb_midi_programs.count() > 0: | |||
mpIndex = self.ui.cb_midi_programs.currentIndex() | |||
mpData = Carla.host.get_midi_program_data(self.fPluginId, mpIndex) | |||
mpData = gCarla.host.get_midi_program_data(self.fPluginId, mpIndex) | |||
mpBank = int(mpData['bank']) | |||
mpProg = int(mpData['program']) | |||
mpName = charPtrToString(mpData['name']) | |||
@@ -500,7 +500,7 @@ class PluginEdit(QDialog): | |||
# Update all parameter values | |||
for paramType, paramId, paramWidget in self.fParameterList: | |||
paramWidget.setValue(Carla.host.get_current_parameter_value(self.fPluginId, paramId), False) | |||
paramWidget.setValue(gCarla.host.get_current_parameter_value(self.fPluginId, paramId), False) | |||
paramWidget.update() | |||
self.fParametersToUpdate = [] | |||
@@ -508,8 +508,8 @@ class PluginEdit(QDialog): | |||
#------------------------------------------------------------------ | |||
def reloadAll(self): | |||
if Carla.host is not None: | |||
self.fPluginInfo = Carla.host.get_plugin_info(self.fPluginId) | |||
if gCarla.host is not None: | |||
self.fPluginInfo = gCarla.host.get_plugin_info(self.fPluginId) | |||
self.fPluginInfo['filename'] = charPtrToString(self.fPluginInfo['filename']) | |||
self.fPluginInfo['name'] = charPtrToString(self.fPluginInfo['name']) | |||
self.fPluginInfo['label'] = charPtrToString(self.fPluginInfo['label']) | |||
@@ -517,7 +517,7 @@ class PluginEdit(QDialog): | |||
self.fPluginInfo['copyright'] = charPtrToString(self.fPluginInfo['copyright']) | |||
self.fPluginInfo['iconName'] = charPtrToString(self.fPluginInfo['iconName']) | |||
if not Carla.isLocal: | |||
if not gCarla.isLocal: | |||
self.fPluginInfo['hints'] &= ~PLUGIN_HAS_CUSTOM_UI | |||
else: | |||
@@ -538,11 +538,11 @@ class PluginEdit(QDialog): | |||
#------------------------------------------------------------------ | |||
def reloadInfo(self): | |||
if Carla.host is not None: | |||
pluginName = Carla.host.get_real_plugin_name(self.fPluginId) | |||
audioCountInfo = Carla.host.get_audio_port_count_info(self.fPluginId) | |||
midiCountInfo = Carla.host.get_midi_port_count_info(self.fPluginId) | |||
paramCountInfo = Carla.host.get_parameter_count_info(self.fPluginId) | |||
if gCarla.host is not None: | |||
pluginName = gCarla.host.get_real_plugin_name(self.fPluginId) | |||
audioCountInfo = gCarla.host.get_audio_port_count_info(self.fPluginId) | |||
midiCountInfo = gCarla.host.get_midi_port_count_info(self.fPluginId) | |||
paramCountInfo = gCarla.host.get_parameter_count_info(self.fPluginId) | |||
else: | |||
pluginName = "" | |||
audioCountInfo = gFakePortCountInfo | |||
@@ -661,7 +661,7 @@ class PluginEdit(QDialog): | |||
self.ui.tabWidget.widget(1).deleteLater() | |||
self.ui.tabWidget.removeTab(1) | |||
if Carla.host is None: | |||
if gCarla.host is None: | |||
paramFakeListFull = [] | |||
paramFakeList = [] | |||
paramFakeWidth = QFontMetrics(self.font()).width(gFakeParamInfo['name']) | |||
@@ -672,12 +672,12 @@ class PluginEdit(QDialog): | |||
self._createParameterWidgets(PARAMETER_INPUT, paramFakeListFull, self.tr("Parameters")) | |||
return | |||
parameterCount = Carla.host.get_parameter_count(self.fPluginId) | |||
parameterCount = gCarla.host.get_parameter_count(self.fPluginId) | |||
if parameterCount <= 0: | |||
pass | |||
elif parameterCount <= Carla.maxParameters: | |||
elif parameterCount <= gCarla.maxParameters: | |||
paramInputListFull = [] | |||
paramOutputListFull = [] | |||
@@ -687,10 +687,10 @@ class PluginEdit(QDialog): | |||
paramOutputWidth = 0 | |||
for i in range(parameterCount): | |||
paramInfo = Carla.host.get_parameter_info(self.fPluginId, i) | |||
paramData = Carla.host.get_parameter_data(self.fPluginId, i) | |||
paramRanges = Carla.host.get_parameter_ranges(self.fPluginId, i) | |||
paramValue = Carla.host.get_current_parameter_value(self.fPluginId, i) | |||
paramInfo = gCarla.host.get_parameter_info(self.fPluginId, i) | |||
paramData = gCarla.host.get_parameter_data(self.fPluginId, i) | |||
paramRanges = gCarla.host.get_parameter_ranges(self.fPluginId, i) | |||
paramValue = gCarla.host.get_current_parameter_value(self.fPluginId, i) | |||
if paramData['type'] not in (PARAMETER_INPUT, PARAMETER_OUTPUT): | |||
continue | |||
@@ -718,7 +718,7 @@ class PluginEdit(QDialog): | |||
} | |||
for j in range(paramInfo['scalePointCount']): | |||
scalePointInfo = Carla.host.get_parameter_scalepoint_info(self.fPluginId, i, j) | |||
scalePointInfo = gCarla.host.get_parameter_scalepoint_info(self.fPluginId, i, j) | |||
parameter['scalePoints'].append({ | |||
'value': scalePointInfo['value'], | |||
@@ -771,7 +771,7 @@ class PluginEdit(QDialog): | |||
self._createParameterWidgets(PARAMETER_INPUT, paramInputListFull, self.tr("Parameters")) | |||
self._createParameterWidgets(PARAMETER_OUTPUT, paramOutputListFull, self.tr("Outputs")) | |||
else: # > Carla.maxParameters | |||
else: # > gCarla.maxParameters | |||
fakeName = self.tr("This plugin has too many parameters to display here!") | |||
paramFakeListFull = [] | |||
@@ -808,18 +808,18 @@ class PluginEdit(QDialog): | |||
self.ui.cb_programs.blockSignals(True) | |||
self.ui.cb_programs.clear() | |||
programCount = Carla.host.get_program_count(self.fPluginId) if Carla.host is not None else 0 | |||
programCount = gCarla.host.get_program_count(self.fPluginId) if gCarla.host is not None else 0 | |||
if programCount > 0: | |||
self.ui.cb_programs.setEnabled(True) | |||
self.ui.label_programs.setEnabled(True) | |||
for i in range(programCount): | |||
pName = charPtrToString(Carla.host.get_program_name(self.fPluginId, i)) | |||
pName = charPtrToString(gCarla.host.get_program_name(self.fPluginId, i)) | |||
#pName = pName[:40] + (pName[40:] and "...") | |||
self.ui.cb_programs.addItem(pName) | |||
self.fCurrentProgram = Carla.host.get_current_program_index(self.fPluginId) | |||
self.fCurrentProgram = gCarla.host.get_current_program_index(self.fPluginId) | |||
self.ui.cb_programs.setCurrentIndex(self.fCurrentProgram) | |||
else: | |||
@@ -833,14 +833,14 @@ class PluginEdit(QDialog): | |||
self.ui.cb_midi_programs.blockSignals(True) | |||
self.ui.cb_midi_programs.clear() | |||
midiProgramCount = Carla.host.get_midi_program_count(self.fPluginId) if Carla.host is not None else 0 | |||
midiProgramCount = gCarla.host.get_midi_program_count(self.fPluginId) if gCarla.host is not None else 0 | |||
if midiProgramCount > 0: | |||
self.ui.cb_midi_programs.setEnabled(True) | |||
self.ui.label_midi_programs.setEnabled(True) | |||
for i in range(midiProgramCount): | |||
mpData = Carla.host.get_midi_program_data(self.fPluginId, i) | |||
mpData = gCarla.host.get_midi_program_data(self.fPluginId, i) | |||
mpBank = int(mpData['bank']) | |||
mpProg = int(mpData['program']) | |||
mpName = charPtrToString(mpData['name']) | |||
@@ -848,7 +848,7 @@ class PluginEdit(QDialog): | |||
self.ui.cb_midi_programs.addItem("%03i:%03i - %s" % (mpBank+1, mpProg+1, mpName)) | |||
self.fCurrentMidiProgram = Carla.host.get_current_midi_program_index(self.fPluginId) | |||
self.fCurrentMidiProgram = gCarla.host.get_current_midi_program_index(self.fPluginId) | |||
self.ui.cb_midi_programs.setCurrentIndex(self.fCurrentMidiProgram) | |||
else: | |||
@@ -1026,7 +1026,7 @@ class PluginEdit(QDialog): | |||
# Update parameter outputs | |||
for paramType, paramId, paramWidget in self.fParameterList: | |||
if paramType == PARAMETER_OUTPUT: | |||
value = Carla.host.get_current_parameter_value(self.fPluginId, paramId) | |||
value = gCarla.host.get_current_parameter_value(self.fPluginId, paramId) | |||
paramWidget.setValue(value, False) | |||
#------------------------------------------------------------------ | |||
@@ -1041,7 +1041,7 @@ class PluginEdit(QDialog): | |||
askTry = QMessageBox.question(self, self.tr("Overwrite?"), self.tr("Overwrite previously created file?"), QMessageBox.Ok|QMessageBox.Cancel) | |||
if askTry == QMessageBox.Ok: | |||
Carla.host.save_plugin_state(self.fPluginId, self.fCurrentStateFilename) | |||
gCarla.host.save_plugin_state(self.fPluginId, self.fCurrentStateFilename) | |||
return | |||
self.fCurrentStateFilename = None | |||
@@ -1054,22 +1054,22 @@ class PluginEdit(QDialog): | |||
filenameTry += ".carxs" | |||
self.fCurrentStateFilename = filenameTry | |||
Carla.host.save_plugin_state(self.fPluginId, self.fCurrentStateFilename) | |||
gCarla.host.save_plugin_state(self.fPluginId, self.fCurrentStateFilename) | |||
@pyqtSlot() | |||
def slot_stateLoad(self): | |||
if self.fPluginInfo['type'] == PLUGIN_LV2: | |||
presetList = [] | |||
for i in range(Carla.host.get_program_count(self.fPluginId)): | |||
presetList.append("%03i - %s" % (i+1, charPtrToString(Carla.host.get_program_name(self.fPluginId, i)))) | |||
for i in range(gCarla.host.get_program_count(self.fPluginId)): | |||
presetList.append("%03i - %s" % (i+1, charPtrToString(gCarla.host.get_program_name(self.fPluginId, i)))) | |||
ret = QInputDialog.getItem(self, self.tr("Open LV2 Preset"), self.tr("Select an LV2 Preset:"), presetList, 0, False) | |||
if ret[1]: | |||
index = int(ret[0].split(" - ", 1)[0])-1 | |||
Carla.host.set_midi_program(self.fPluginId, -1) | |||
Carla.host.set_program(self.fPluginId, index) | |||
gCarla.host.set_midi_program(self.fPluginId, -1) | |||
gCarla.host.set_program(self.fPluginId, index) | |||
self.setMidiProgram(-1) | |||
return | |||
@@ -1079,13 +1079,13 @@ class PluginEdit(QDialog): | |||
if filenameTry: | |||
self.fCurrentStateFilename = filenameTry | |||
Carla.host.load_plugin_state(self.fPluginId, self.fCurrentStateFilename) | |||
gCarla.host.load_plugin_state(self.fPluginId, self.fCurrentStateFilename) | |||
#------------------------------------------------------------------ | |||
@pyqtSlot(bool) | |||
def slot_optionChanged(self, clicked): | |||
if Carla.host is None: | |||
if gCarla.host is None: | |||
return | |||
sender = self.sender() | |||
@@ -1111,41 +1111,41 @@ class PluginEdit(QDialog): | |||
else: | |||
return | |||
Carla.host.set_option(self.fPluginId, option, clicked) | |||
gCarla.host.set_option(self.fPluginId, option, clicked) | |||
#------------------------------------------------------------------ | |||
@pyqtSlot(int) | |||
def slot_dryWetChanged(self, value): | |||
if Carla.host is not None: | |||
Carla.host.set_drywet(self.fPluginId, float(value)/1000) | |||
if gCarla.host is not None: | |||
gCarla.host.set_drywet(self.fPluginId, float(value)/1000) | |||
@pyqtSlot(int) | |||
def slot_volumeChanged(self, value): | |||
if Carla.host is not None: | |||
Carla.host.set_volume(self.fPluginId, float(value)/1000) | |||
if gCarla.host is not None: | |||
gCarla.host.set_volume(self.fPluginId, float(value)/1000) | |||
@pyqtSlot(int) | |||
def slot_balanceLeftChanged(self, value): | |||
if Carla.host is not None: | |||
Carla.host.set_balance_left(self.fPluginId, float(value)/1000) | |||
if gCarla.host is not None: | |||
gCarla.host.set_balance_left(self.fPluginId, float(value)/1000) | |||
@pyqtSlot(int) | |||
def slot_balanceRightChanged(self, value): | |||
if Carla.host is not None: | |||
Carla.host.set_balance_right(self.fPluginId, float(value)/1000) | |||
if gCarla.host is not None: | |||
gCarla.host.set_balance_right(self.fPluginId, float(value)/1000) | |||
@pyqtSlot(int) | |||
def slot_panningChanged(self, value): | |||
if Carla.host is not None: | |||
Carla.host.set_panning(self.fPluginId, float(value)/1000) | |||
if gCarla.host is not None: | |||
gCarla.host.set_panning(self.fPluginId, float(value)/1000) | |||
@pyqtSlot(int) | |||
def slot_ctrlChannelChanged(self, value): | |||
self.fControlChannel = value-1 | |||
if Carla.host is not None: | |||
Carla.host.set_ctrl_channel(self.fPluginId, self.fControlChannel) | |||
if gCarla.host is not None: | |||
gCarla.host.set_ctrl_channel(self.fPluginId, self.fControlChannel) | |||
self.ui.keyboard.allNotesOff() | |||
self._updateCtrlMidiProgram() | |||
@@ -1154,20 +1154,20 @@ class PluginEdit(QDialog): | |||
@pyqtSlot(int, float) | |||
def slot_parameterValueChanged(self, parameterId, value): | |||
if Carla.host is not None: | |||
Carla.host.set_parameter_value(self.fPluginId, parameterId, value) | |||
if gCarla.host is not None: | |||
gCarla.host.set_parameter_value(self.fPluginId, parameterId, value) | |||
if self.fRealParent is not None: | |||
self.fRealParent.parameterValueChanged(parameterId, value) | |||
@pyqtSlot(int, int) | |||
def slot_parameterMidiControlChanged(self, parameterId, control): | |||
if Carla.host is not None: | |||
Carla.host.set_parameter_midi_cc(self.fPluginId, parameterId, control) | |||
if gCarla.host is not None: | |||
gCarla.host.set_parameter_midi_cc(self.fPluginId, parameterId, control) | |||
@pyqtSlot(int, int) | |||
def slot_parameterMidiChannelChanged(self, parameterId, channel): | |||
if Carla.host is not None: | |||
Carla.host.set_parameter_midi_channel(self.fPluginId, parameterId, channel-1) | |||
if gCarla.host is not None: | |||
gCarla.host.set_parameter_midi_channel(self.fPluginId, parameterId, channel-1) | |||
#------------------------------------------------------------------ | |||
@@ -1175,8 +1175,8 @@ class PluginEdit(QDialog): | |||
def slot_programIndexChanged(self, index): | |||
self.fCurrentProgram = index | |||
if Carla.host is not None: | |||
Carla.host.set_program(self.fPluginId, index) | |||
if gCarla.host is not None: | |||
gCarla.host.set_program(self.fPluginId, index) | |||
if self.fRealParent is not None: | |||
self.fRealParent.programChanged(index) | |||
@@ -1184,8 +1184,8 @@ class PluginEdit(QDialog): | |||
def slot_midiProgramIndexChanged(self, index): | |||
self.fCurrentMidiProgram = index | |||
if Carla.host is not None: | |||
Carla.host.set_midi_program(self.fPluginId, index) | |||
if gCarla.host is not None: | |||
gCarla.host.set_midi_program(self.fPluginId, index) | |||
if self.fRealParent is not None: | |||
self.fRealParent.midiProgramChanged(index) | |||
@@ -1193,15 +1193,15 @@ class PluginEdit(QDialog): | |||
@pyqtSlot(int) | |||
def slot_noteOn(self, note): | |||
if self.fControlChannel >= 0 and Carla.host is not None: | |||
Carla.host.send_midi_note(self.fPluginId, self.fControlChannel, note, 100) | |||
if self.fControlChannel >= 0 and gCarla.host is not None: | |||
gCarla.host.send_midi_note(self.fPluginId, self.fControlChannel, note, 100) | |||
if self.fRealParent is not None: | |||
self.fRealParent.notePressed(note) | |||
@pyqtSlot(int) | |||
def slot_noteOff(self, note): | |||
if self.fControlChannel >= 0 and Carla.host is not None: | |||
Carla.host.send_midi_note(self.fPluginId, self.fControlChannel, note, 0) | |||
if self.fControlChannel >= 0 and gCarla.host is not None: | |||
gCarla.host.send_midi_note(self.fPluginId, self.fControlChannel, note, 0) | |||
if self.fRealParent is not None: | |||
self.fRealParent.noteReleased(note) | |||
@@ -1370,7 +1370,7 @@ class PluginEdit(QDialog): | |||
self.ui.cb_midi_programs.setEnabled(True) | |||
mpIndex = Carla.host.get_current_midi_program_index(self.fPluginId) | |||
mpIndex = gCarla.host.get_current_midi_program_index(self.fPluginId) | |||
if self.ui.cb_midi_programs.currentIndex() != mpIndex: | |||
self.setMidiProgram(mpIndex) | |||