@@ -1854,7 +1854,7 @@ private: | |||
if (thisPortId == -1) | |||
continue; | |||
if (const char** connections = jackbridge_port_get_connections(jackPort)) | |||
if (const char** connections = jackbridge_port_get_all_connections(jackPort)) | |||
{ | |||
for (int j=0; connections[j] != nullptr; ++j) | |||
{ | |||
@@ -1869,7 +1869,7 @@ private: | |||
jackbridge_free(connections); | |||
} | |||
else | |||
carla_stderr("jack_port_get_connections failed for port %s", fullPortName); | |||
carla_stderr("jack_port_get_all_connections failed for port %s", fullPortName); | |||
} | |||
jackbridge_free(ports); | |||
@@ -663,6 +663,10 @@ void carla_set_engine_option(EngineOption option, int value, const char* valueSt | |||
case CB::ENGINE_OPTION_AUDIO_DEVICE: | |||
CARLA_SAFE_ASSERT_RETURN(valueStr != nullptr && valueStr[0] != '\0',); | |||
if (gStandalone.engineOptions.audioDevice != nullptr) | |||
delete[] gStandalone.engineOptions.audioDevice; | |||
gStandalone.engineOptions.audioDevice = valueStr; | |||
break; | |||
@@ -75,7 +75,7 @@ if __name__ == '__main__': | |||
Carla.isControl = False | |||
Carla.isLocal = True | |||
Carla.isPlugin = False | |||
Carla.processMode = PROCESS_MODE_MULTIPLE_CLIENTS | |||
Carla.processMode = ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS | |||
initHost(appName, libPrefix) | |||
@@ -75,7 +75,7 @@ if __name__ == '__main__': | |||
Carla.isControl = False | |||
Carla.isLocal = True | |||
Carla.isPlugin = False | |||
Carla.processMode = PROCESS_MODE_CONTINUOUS_RACK | |||
Carla.processMode = ENGINE_PROCESS_MODE_CONTINUOUS_RACK | |||
initHost(appName, libPrefix) | |||
@@ -24,7 +24,7 @@ | |||
#from PyQt5.QtGui import QPalette | |||
#from PyQt5.QtWidgets import QApplication, QFileSystemModel, QMainWindow | |||
#except: | |||
from PyQt4.QtCore import QModelIndex, QTimer | |||
from PyQt4.QtCore import qCritical, QModelIndex, QTimer | |||
from PyQt4.QtGui import QApplication, QFileSystemModel, QMainWindow, QPalette | |||
# ------------------------------------------------------------------------------------------------------------ | |||
@@ -220,7 +220,7 @@ class HostWindow(QMainWindow): | |||
# Set up GUI (right panel) | |||
self.fDirModel = QFileSystemModel(self) | |||
self.fDirModel.setNameFilters(cString(Carla.host.get_supported_file_types()).split(";")) | |||
self.fDirModel.setNameFilters(charPtrToString(Carla.host.get_supported_file_extensions()).split(";")) | |||
self.fDirModel.setRootPath(HOME) | |||
self.ui.fileTreeView.setModel(self.fDirModel) | |||
@@ -357,33 +357,33 @@ class HostWindow(QMainWindow): | |||
if audioDriver == "JACK": | |||
#transportMode = settings.value("Engine/TransportMode", TRANSPORT_MODE_JACK, type=int) | |||
transportMode = TRANSPORT_MODE_JACK | |||
transportMode = ENGINE_TRANSPORT_MODE_JACK | |||
else: | |||
transportMode = TRANSPORT_MODE_INTERNAL | |||
transportMode = ENGINE_TRANSPORT_MODE_INTERNAL | |||
audioNumPeriods = settings.value("Engine/AudioBufferSize", CARLA_DEFAULT_AUDIO_NUM_PERIODS, type=int) | |||
audioBufferSize = settings.value("Engine/AudioBufferSize", CARLA_DEFAULT_AUDIO_BUFFER_SIZE, type=int) | |||
audioSampleRate = settings.value("Engine/AudioSampleRate", CARLA_DEFAULT_AUDIO_SAMPLE_RATE, type=int) | |||
audioDevice = settings.value("Engine/AudioDevice", "", type=str) | |||
Carla.host.set_engine_option(OPTION_AUDIO_NUM_PERIODS, audioNumPeriods, "") | |||
Carla.host.set_engine_option(OPTION_AUDIO_BUFFER_SIZE, audioBufferSize, "") | |||
Carla.host.set_engine_option(OPTION_AUDIO_SAMPLE_RATE, audioSampleRate, "") | |||
Carla.host.set_engine_option(OPTION_AUDIO_DEVICE, 0, audioDevice) | |||
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) | |||
if Carla.processMode == PROCESS_MODE_CONTINUOUS_RACK: | |||
if Carla.processMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK: | |||
forceStereo = True | |||
elif Carla.processMode == PROCESS_MODE_MULTIPLE_CLIENTS and LADISH_APP_NAME: | |||
elif Carla.processMode == ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS and LADISH_APP_NAME: | |||
print("LADISH detected but using multiple clients (not allowed), forcing single client now") | |||
Carla.processMode = PROCESS_MODE_SINGLE_CLIENT | |||
Carla.processMode = ENGINE_PROCESS_MODE_SINGLE_CLIENT | |||
Carla.host.set_engine_option(OPTION_FORCE_STEREO, forceStereo, "") | |||
Carla.host.set_engine_option(OPTION_PREFER_PLUGIN_BRIDGES, preferPluginBridges, "") | |||
Carla.host.set_engine_option(OPTION_PREFER_UI_BRIDGES, preferUiBridges, "") | |||
Carla.host.set_engine_option(OPTION_UIS_ALWAYS_ON_TOP, uisAlwaysOnTop, "") | |||
Carla.host.set_engine_option(OPTION_UI_BRIDGES_TIMEOUT, uiBridgesTimeout, "") | |||
Carla.host.set_engine_option(OPTION_PROCESS_MODE, Carla.processMode, "") | |||
Carla.host.set_engine_option(OPTION_MAX_PARAMETERS, Carla.maxParameters, "") | |||
Carla.host.set_engine_option(OPTION_TRANSPORT_MODE, transportMode, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_FORCE_STEREO, forceStereo, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_PREFER_PLUGIN_BRIDGES, preferPluginBridges, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_PREFER_UI_BRIDGES, preferUiBridges, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_UIS_ALWAYS_ON_TOP, uisAlwaysOnTop, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_UI_BRIDGES_TIMEOUT, uiBridgesTimeout, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_PROCESS_MODE, Carla.processMode, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_MAX_PARAMETERS, Carla.maxParameters, "") | |||
Carla.host.set_engine_option(ENGINE_OPTION_TRANSPORT_MODE, transportMode, "") | |||
return audioDriver | |||
@@ -395,7 +395,7 @@ class HostWindow(QMainWindow): | |||
#self.fFirstEngineInit = False | |||
#return | |||
audioError = cString(Carla.host.get_last_error()) | |||
audioError = Carla.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))) | |||
@@ -425,7 +425,7 @@ class HostWindow(QMainWindow): | |||
self.fContainer.removeAllPlugins() | |||
if Carla.host.is_engine_running() and not Carla.host.engine_close(): | |||
print(cString(Carla.host.get_last_error())) | |||
print(Carla.host.get_last_error()) | |||
self.fBufferSize = 0 | |||
self.fSampleRate = 0.0 | |||
@@ -441,7 +441,7 @@ class HostWindow(QMainWindow): | |||
# ----------------------------------------------------------------- | |||
# Internal stuff (plugins) | |||
def getExtraStuff(self, plugin): | |||
def getExtraPtr(self, plugin): | |||
ptype = plugin['type'] | |||
if ptype == PLUGIN_LADSPA: | |||
@@ -461,7 +461,7 @@ class HostWindow(QMainWindow): | |||
addr = addressof(int1) | |||
return cast(addr, INTPOINTER) | |||
return c_nullptr | |||
return None | |||
def maybeLoadRDFs(self): | |||
if not self.fLadspaRdfNeedsUpdate: | |||
@@ -783,10 +783,10 @@ class HostWindow(QMainWindow): | |||
ptype = dialog.fRetPlugin['type'] | |||
filename = dialog.fRetPlugin['binary'] | |||
label = dialog.fRetPlugin['label'] | |||
extraStuff = self.getExtraStuff(dialog.fRetPlugin) | |||
extraPtr = self.getExtraPtr(dialog.fRetPlugin) | |||
if not Carla.host.add_plugin(btype, ptype, filename, None, label, c_nullptr): | |||
CustomMessageBox(self, QMessageBox.Critical, self.tr("Error"), self.tr("Failed to load plugin"), cString(Carla.host.get_last_error()), QMessageBox.Ok, QMessageBox.Ok) | |||
if not Carla.host.add_plugin(btype, ptype, filename, None, label, extraPtr): | |||
CustomMessageBox(self, QMessageBox.Critical, self.tr("Error"), self.tr("Failed to load plugin"), charPtrToString(Carla.host.get_last_error()), QMessageBox.Ok, QMessageBox.Ok) | |||
return | |||
@pyqtSlot() | |||
@@ -895,7 +895,7 @@ class HostWindow(QMainWindow): | |||
if not Carla.host.load_filename(filename): | |||
CustomMessageBox(self, QMessageBox.Critical, self.tr("Error"), | |||
self.tr("Failed to load file"), | |||
cString(Carla.host.get_last_error()), QMessageBox.Ok, QMessageBox.Ok) | |||
Carla.host.get_last_error(), QMessageBox.Ok, QMessageBox.Ok) | |||
# ----------------------------------------------------------------- | |||
@@ -1018,77 +1018,77 @@ def EngineCallback(ptr, action, pluginId, value1, value2, value3, valueStr): | |||
if pluginId < 0 or not Carla.gui: | |||
return | |||
if action == CALLBACK_DEBUG: | |||
Carla.gui.DebugCallback.emit(pluginId, value1, value2, value3, cString(valueStr)) | |||
elif action == CALLBACK_PLUGIN_ADDED: | |||
if action == ENGINE_CALLBACK_DEBUG: | |||
Carla.gui.DebugCallback.emit(pluginId, value1, value2, value3, charPtrToString(valueStr)) | |||
elif action == ENGINE_CALLBACK_PLUGIN_ADDED: | |||
Carla.gui.PluginAddedCallback.emit(pluginId) | |||
elif action == CALLBACK_PLUGIN_REMOVED: | |||
elif action == ENGINE_CALLBACK_PLUGIN_REMOVED: | |||
Carla.gui.PluginRemovedCallback.emit(pluginId) | |||
elif action == CALLBACK_PLUGIN_RENAMED: | |||
elif action == ENGINE_CALLBACK_PLUGIN_RENAMED: | |||
Carla.gui.PluginRenamedCallback.emit(pluginId, valueStr) | |||
elif action == CALLBACK_PARAMETER_VALUE_CHANGED: | |||
elif action == ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED: | |||
Carla.gui.ParameterValueChangedCallback.emit(pluginId, value1, value3) | |||
elif action == CALLBACK_PARAMETER_DEFAULT_CHANGED: | |||
elif action == ENGINE_CALLBACK_PARAMETER_DEFAULT_CHANGED: | |||
Carla.gui.ParameterDefaultChangedCallback.emit(pluginId, value1, value3) | |||
elif action == CALLBACK_PARAMETER_MIDI_CHANNEL_CHANGED: | |||
elif action == ENGINE_CALLBACK_PARAMETER_MIDI_CHANNEL_CHANGED: | |||
Carla.gui.ParameterMidiChannelChangedCallback.emit(pluginId, value1, value2) | |||
elif action == CALLBACK_PARAMETER_MIDI_CC_CHANGED: | |||
elif action == ENGINE_CALLBACK_PARAMETER_MIDI_CC_CHANGED: | |||
Carla.gui.ParameterMidiCcChangedCallback.emit(pluginId, value1, value2) | |||
elif action == CALLBACK_PROGRAM_CHANGED: | |||
elif action == ENGINE_CALLBACK_PROGRAM_CHANGED: | |||
Carla.gui.ProgramChangedCallback.emit(pluginId, value1) | |||
elif action == CALLBACK_MIDI_PROGRAM_CHANGED: | |||
elif action == ENGINE_CALLBACK_MIDI_PROGRAM_CHANGED: | |||
Carla.gui.MidiProgramChangedCallback.emit(pluginId, value1) | |||
elif action == CALLBACK_NOTE_ON: | |||
elif action == ENGINE_CALLBACK_NOTE_ON: | |||
Carla.gui.NoteOnCallback.emit(pluginId, value1, value2, value3) | |||
elif action == CALLBACK_NOTE_OFF: | |||
elif action == ENGINE_CALLBACK_NOTE_OFF: | |||
Carla.gui.NoteOffCallback.emit(pluginId, value1, value2) | |||
elif action == CALLBACK_SHOW_GUI: | |||
elif action == ENGINE_CALLBACK_UI_STATE_CHANGED: | |||
Carla.gui.ShowGuiCallback.emit(pluginId, value1) | |||
elif action == CALLBACK_UPDATE: | |||
elif action == ENGINE_CALLBACK_UPDATE: | |||
Carla.gui.UpdateCallback.emit(pluginId) | |||
elif action == CALLBACK_RELOAD_INFO: | |||
elif action == ENGINE_CALLBACK_RELOAD_INFO: | |||
Carla.gui.ReloadInfoCallback.emit(pluginId) | |||
elif action == CALLBACK_RELOAD_PARAMETERS: | |||
elif action == ENGINE_CALLBACK_RELOAD_PARAMETERS: | |||
Carla.gui.ReloadParametersCallback.emit(pluginId) | |||
elif action == CALLBACK_RELOAD_PROGRAMS: | |||
elif action == ENGINE_CALLBACK_RELOAD_PROGRAMS: | |||
Carla.gui.ReloadProgramsCallback.emit(pluginId) | |||
elif action == CALLBACK_RELOAD_ALL: | |||
elif action == ENGINE_CALLBACK_RELOAD_ALL: | |||
Carla.gui.ReloadAllCallback.emit(pluginId) | |||
elif action == CALLBACK_PATCHBAY_CLIENT_ADDED: | |||
Carla.gui.PatchbayClientAddedCallback.emit(value1, cString(valueStr)) | |||
elif action == CALLBACK_PATCHBAY_CLIENT_REMOVED: | |||
Carla.gui.PatchbayClientRemovedCallback.emit(value1, cString(valueStr)) | |||
elif action == CALLBACK_PATCHBAY_CLIENT_RENAMED: | |||
Carla.gui.PatchbayClientRenamedCallback.emit(value1, cString(valueStr)) | |||
elif action == CALLBACK_PATCHBAY_PORT_ADDED: | |||
Carla.gui.PatchbayPortAddedCallback.emit(value1, value2, int(value3), cString(valueStr)) | |||
elif action == CALLBACK_PATCHBAY_PORT_REMOVED: | |||
Carla.gui.PatchbayPortRemovedCallback.emit(value1, value2, cString(valueStr)) | |||
elif action == CALLBACK_PATCHBAY_PORT_RENAMED: | |||
Carla.gui.PatchbayPortRenamedCallback.emit(value1, value2, cString(valueStr)) | |||
elif action == CALLBACK_PATCHBAY_CONNECTION_ADDED: | |||
elif action == ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED: | |||
Carla.gui.PatchbayClientAddedCallback.emit(value1, charPtrToString(valueStr)) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_CLIENT_REMOVED: | |||
Carla.gui.PatchbayClientRemovedCallback.emit(value1, charPtrToString(valueStr)) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_CLIENT_RENAMED: | |||
Carla.gui.PatchbayClientRenamedCallback.emit(value1, charPtrToString(valueStr)) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_PORT_ADDED: | |||
Carla.gui.PatchbayPortAddedCallback.emit(value1, value2, int(value3), charPtrToString(valueStr)) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_PORT_REMOVED: | |||
Carla.gui.PatchbayPortRemovedCallback.emit(value1, value2, charPtrToString(valueStr)) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_PORT_RENAMED: | |||
Carla.gui.PatchbayPortRenamedCallback.emit(value1, value2, charPtrToString(valueStr)) | |||
elif action == ENGINE_CALLBACK_PATCHBAY_CONNECTION_ADDED: | |||
Carla.gui.PatchbayConnectionAddedCallback.emit(value1, value2, value3) | |||
elif action == CALLBACK_PATCHBAY_CONNECTION_REMOVED: | |||
elif action == ENGINE_CALLBACK_PATCHBAY_CONNECTION_REMOVED: | |||
Carla.gui.PatchbayConnectionRemovedCallback.emit(value1) | |||
elif action == CALLBACK_PATCHBAY_ICON_CHANGED: | |||
Carla.gui.PatchbayIconChangedCallback.emit(value1, cString(valueStr)) | |||
elif action == CALLBACK_BUFFER_SIZE_CHANGED: | |||
#elif action == ENGINE_CALLBACK_PATCHBAY_ICON_CHANGED: | |||
#Carla.gui.PatchbayIconChangedCallback.emit(value1, charPtrToString(valueStr)) | |||
elif action == ENGINE_CALLBACK_BUFFER_SIZE_CHANGED: | |||
Carla.gui.BufferSizeChangedCallback.emit(value1) | |||
elif action == CALLBACK_SAMPLE_RATE_CHANGED: | |||
elif action == ENGINE_CALLBACK_SAMPLE_RATE_CHANGED: | |||
Carla.gui.SampleRateChangedCallback.emit(value3) | |||
elif action == CALLBACK_PROCESS_MODE_CHANGED: | |||
elif action == ENGINE_CALLBACK_PROCESS_MODE_CHANGED: | |||
Carla.gui.ProcessModeChangedCallback.emit(value1) | |||
elif action == CALLBACK_ENGINE_STARTED: | |||
Carla.gui.EngineStartedCallback.emit(cString(valueStr)) | |||
elif action == CALLBACK_ENGINE_STOPPED: | |||
elif action == ENGINE_CALLBACK_ENGINE_STARTED: | |||
Carla.gui.EngineStartedCallback.emit(charPtrToString(valueStr)) | |||
elif action == ENGINE_CALLBACK_ENGINE_STOPPED: | |||
Carla.gui.EngineStoppedChangedCallback.emit() | |||
elif action == CALLBACK_NSM_ANNOUNCE: | |||
Carla.gui.NSM_AnnounceCallback.emit(cString(valueStr)) | |||
elif action == CALLBACK_NSM_OPEN: | |||
Carla.gui.NSM_OpenCallback.emit(cString(valueStr)) | |||
elif action == CALLBACK_NSM_SAVE: | |||
Carla.gui.NSM_SaveCallback.emit() | |||
elif action == CALLBACK_ERROR: | |||
Carla.gui.ErrorCallback.emit(cString(valueStr)) | |||
elif action == CALLBACK_QUIT: | |||
#elif action == CALLBACK_NSM_ANNOUNCE: | |||
#Carla.gui.NSM_AnnounceCallback.emit(charPtrToString(valueStr)) | |||
#elif action == CALLBACK_NSM_OPEN: | |||
#Carla.gui.NSM_OpenCallback.emit(charPtrToString(valueStr)) | |||
#elif action == CALLBACK_NSM_SAVE: | |||
#Carla.gui.NSM_SaveCallback.emit() | |||
elif action == ENGINE_CALLBACK_ERROR: | |||
Carla.gui.ErrorCallback.emit(charPtrToString(valueStr)) | |||
elif action == ENGINE_CALLBACK_QUIT: | |||
Carla.gui.QuitCallback.emit() |
@@ -38,10 +38,10 @@ from carla_widgets import * | |||
# Try Import OpenGL | |||
try: | |||
try: | |||
from PyQt5.QtOpenGL import QGLWidget | |||
except: | |||
from PyQt4.QtOpenGL import QGLWidget | |||
#try: | |||
#from PyQt5.QtOpenGL import QGLWidget | |||
#except: | |||
from PyQt4.QtOpenGL import QGLWidget | |||
hasGL = True | |||
except: | |||
hasGL = False | |||
@@ -84,11 +84,11 @@ else: | |||
CARLA_DEFAULT_AUDIO_DRIVER = "JACK" | |||
if LINUX: | |||
CARLA_DEFAULT_PROCESS_MODE = PROCESS_MODE_MULTIPLE_CLIENTS | |||
CARLA_DEFAULT_TRANSPORT_MODE = TRANSPORT_MODE_JACK | |||
CARLA_DEFAULT_PROCESS_MODE = ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS | |||
CARLA_DEFAULT_TRANSPORT_MODE = ENGINE_TRANSPORT_MODE_JACK | |||
else: | |||
CARLA_DEFAULT_PROCESS_MODE = PROCESS_MODE_CONTINUOUS_RACK | |||
CARLA_DEFAULT_TRANSPORT_MODE = TRANSPORT_MODE_INTERNAL | |||
CARLA_DEFAULT_PROCESS_MODE = ENGINE_PROCESS_MODE_CONTINUOUS_RACK | |||
CARLA_DEFAULT_TRANSPORT_MODE = ENGINE_TRANSPORT_MODE_INTERNAL | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# ... | |||
@@ -105,10 +105,6 @@ class DriverSettingsW(QDialog): | |||
self.ui = ui_carla_settings_driver.Ui_DriverSettingsW() | |||
self.ui.setupUi(self) | |||
if driverName == "JACK": | |||
print("This dialog is not compatible with JACK") | |||
return | |||
# ------------------------------------------------------------- | |||
# Internal stuff | |||
@@ -218,7 +214,7 @@ class CarlaSettingsW(QDialog): | |||
if Carla.host is not None: | |||
for i in range(Carla.host.get_engine_driver_count()): | |||
self.ui.cb_engine_audio_driver.addItem(cString(Carla.host.get_engine_driver_name(i))) | |||
self.ui.cb_engine_audio_driver.addItem(Carla.host.get_engine_driver_name(i)) | |||
else: | |||
self.ui.tb_engine_driver_config.setEnabled(False) | |||
@@ -324,11 +320,11 @@ class CarlaSettingsW(QDialog): | |||
self.ui.cb_engine_audio_driver.setCurrentIndex(-1) | |||
if audioDriver == "JACK": | |||
processModeIndex = settings.value(CARLA_KEY_ENGINE_PROCESS_MODE, PROCESS_MODE_MULTIPLE_CLIENTS, type=int) | |||
processModeIndex = settings.value(CARLA_KEY_ENGINE_PROCESS_MODE, ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS, type=int) | |||
self.ui.cb_engine_process_mode_jack.setCurrentIndex(processModeIndex) | |||
self.ui.sw_engine_process_mode.setCurrentIndex(0) | |||
else: | |||
processModeIndex = settings.value(CARLA_KEY_ENGINE_PROCESS_MODE, PROCESS_MODE_CONTINUOUS_RACK, type=int) | |||
processModeIndex = settings.value(CARLA_KEY_ENGINE_PROCESS_MODE, ENGINE_PROCESS_MODE_CONTINUOUS_RACK, type=int) | |||
processModeIndex -= self.PROCESS_MODE_NON_JACK_PADDING | |||
self.ui.cb_engine_process_mode_other.setCurrentIndex(processModeIndex) | |||
self.ui.sw_engine_process_mode.setCurrentIndex(1) | |||
@@ -517,10 +513,10 @@ class CarlaSettingsW(QDialog): | |||
self.ui.ch_engine_prefer_plugin_bridges.setChecked(CARLA_DEFAULT_PREFER_PLUGIN_BRIDGES) | |||
if self.ui.cb_engine_audio_driver.currentText() == "JACK": | |||
self.ui.cb_engine_process_mode_jack.setCurrentIndex(PROCESS_MODE_MULTIPLE_CLIENTS) | |||
self.ui.cb_engine_process_mode_jack.setCurrentIndex(ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS) | |||
self.ui.sw_engine_process_mode.setCurrentIndex(0) # show all modes | |||
else: | |||
self.ui.cb_engine_process_mode_other.setCurrentIndex(PROCESS_MODE_CONTINUOUS_RACK-self.PROCESS_MODE_NON_JACK_PADDING) | |||
self.ui.cb_engine_process_mode_other.setCurrentIndex(ENGINE_PROCESS_MODE_CONTINUOUS_RACK-self.PROCESS_MODE_NON_JACK_PADDING) | |||
self.ui.sw_engine_process_mode.setCurrentIndex(1) # hide single+multi client modes | |||
elif self.ui.lw_page.currentRow() == self.TAB_INDEX_PATHS: | |||
@@ -1055,6 +1055,9 @@ class PluginEdit(QDialog): | |||
@pyqtSlot(bool) | |||
def slot_optionChanged(self, clicked): | |||
if Carla.host is None: | |||
return | |||
sender = self.sender() | |||
if sender == self.ui.ch_fixed_buffer: | |||
@@ -1082,52 +1085,67 @@ class PluginEdit(QDialog): | |||
@pyqtSlot(int) | |||
def slot_dryWetChanged(self, value): | |||
Carla.host.set_drywet(self.fPluginId, float(value)/1000) | |||
if Carla.host is not None: | |||
Carla.host.set_drywet(self.fPluginId, float(value)/1000) | |||
@pyqtSlot(int) | |||
def slot_volumeChanged(self, value): | |||
Carla.host.set_volume(self.fPluginId, float(value)/1000) | |||
if Carla.host is not None: | |||
Carla.host.set_volume(self.fPluginId, float(value)/1000) | |||
@pyqtSlot(int) | |||
def slot_balanceLeftChanged(self, value): | |||
Carla.host.set_balance_left(self.fPluginId, float(value)/1000) | |||
if Carla.host is not None: | |||
Carla.host.set_balance_left(self.fPluginId, float(value)/1000) | |||
@pyqtSlot(int) | |||
def slot_balanceRightChanged(self, value): | |||
Carla.host.set_balance_right(self.fPluginId, float(value)/1000) | |||
if Carla.host is not None: | |||
Carla.host.set_balance_right(self.fPluginId, float(value)/1000) | |||
@pyqtSlot(int) | |||
def slot_panningChanged(self, value): | |||
Carla.host.set_panning(self.fPluginId, float(value)/1000) | |||
if Carla.host is not None: | |||
Carla.host.set_panning(self.fPluginId, float(value)/1000) | |||
@pyqtSlot(int) | |||
def slot_ctrlChannelChanged(self, value): | |||
self.fControlChannel = value-1 | |||
Carla.host.set_ctrl_channel(self.fPluginId, self.fControlChannel) | |||
if Carla.host is not None: | |||
Carla.host.set_ctrl_channel(self.fPluginId, self.fControlChannel) | |||
self.ui.keyboard.allNotesOff() | |||
self._updateCtrlMidiProgram() | |||
@pyqtSlot(int, float) | |||
def slot_parameterValueChanged(self, parameterId, value): | |||
Carla.host.set_parameter_value(self.fPluginId, parameterId, value) | |||
if Carla.host is not None: | |||
Carla.host.set_parameter_value(self.fPluginId, parameterId, value) | |||
@pyqtSlot(int, int) | |||
def slot_parameterMidiControlChanged(self, parameterId, control): | |||
Carla.host.set_parameter_midi_cc(self.fPluginId, parameterId, control) | |||
if Carla.host is not None: | |||
Carla.host.set_parameter_midi_cc(self.fPluginId, parameterId, control) | |||
@pyqtSlot(int, int) | |||
def slot_parameterMidiChannelChanged(self, parameterId, channel): | |||
Carla.host.set_parameter_midi_channel(self.fPluginId, parameterId, channel-1) | |||
if Carla.host is not None: | |||
Carla.host.set_parameter_midi_channel(self.fPluginId, parameterId, channel-1) | |||
@pyqtSlot(int) | |||
def slot_programIndexChanged(self, index): | |||
self.fCurrentProgram = index | |||
Carla.host.set_program(self.fPluginId, index) | |||
if Carla.host is not None: | |||
Carla.host.set_program(self.fPluginId, index) | |||
@pyqtSlot(int) | |||
def slot_midiProgramIndexChanged(self, index): | |||
self.fCurrentMidiProgram = index | |||
Carla.host.set_midi_program(self.fPluginId, index) | |||
if Carla.host is not None: | |||
Carla.host.set_midi_program(self.fPluginId, index) | |||
@pyqtSlot(int) | |||
def slot_noteOn(self, note): | |||
@@ -17,24 +17,24 @@ | |||
# For a full copy of the GNU General Public License see the GPL.txt file | |||
# Imports (Global) | |||
try: | |||
from PyQt5.QtCore import pyqtSignal, pyqtSlot, qDebug, qCritical, qFatal, qWarning, Qt, QObject | |||
from PyQt5.QtCore import QAbstractAnimation, QLineF, QPointF, QRectF, QSizeF, QSettings, QTimer | |||
from PyQt5.QtGui import QColor, QLinearGradient, QPen, QPolygonF, QPainter, QPainterPath | |||
from PyQt5.QtGui import QCursor, QFont, QFontMetrics | |||
from PyQt5.QtSvg import QGraphicsSvgItem, QSvgRenderer | |||
from PyQt5.QtWidgets import QGraphicsScene, QGraphicsItem, QGraphicsLineItem, QGraphicsPathItem | |||
from PyQt5.QtWidgets import QGraphicsColorizeEffect, QGraphicsDropShadowEffect | |||
from PyQt5.QtWidgets import QInputDialog, QLineEdit, QMenu | |||
except: | |||
from PyQt4.QtCore import pyqtSignal, pyqtSlot, qDebug, qCritical, qFatal, qWarning, Qt, QObject | |||
from PyQt4.QtCore import QAbstractAnimation, QLineF, QPointF, QRectF, QSizeF, QSettings, QTimer | |||
from PyQt4.QtGui import QColor, QLinearGradient, QPen, QPolygonF, QPainter, QPainterPath | |||
from PyQt4.QtGui import QCursor, QFont, QFontMetrics | |||
from PyQt4.QtGui import QGraphicsScene, QGraphicsItem, QGraphicsLineItem, QGraphicsPathItem | |||
from PyQt4.QtGui import QGraphicsColorizeEffect, QGraphicsDropShadowEffect | |||
from PyQt4.QtGui import QInputDialog, QLineEdit, QMenu | |||
from PyQt4.QtSvg import QGraphicsSvgItem, QSvgRenderer | |||
#try: | |||
#from PyQt5.QtCore import pyqtSignal, pyqtSlot, qDebug, qCritical, qFatal, qWarning, Qt, QObject | |||
#from PyQt5.QtCore import QAbstractAnimation, QLineF, QPointF, QRectF, QSizeF, QSettings, QTimer | |||
#from PyQt5.QtGui import QColor, QLinearGradient, QPen, QPolygonF, QPainter, QPainterPath | |||
#from PyQt5.QtGui import QCursor, QFont, QFontMetrics | |||
#from PyQt5.QtSvg import QGraphicsSvgItem, QSvgRenderer | |||
#from PyQt5.QtWidgets import QGraphicsScene, QGraphicsItem, QGraphicsLineItem, QGraphicsPathItem | |||
#from PyQt5.QtWidgets import QGraphicsColorizeEffect, QGraphicsDropShadowEffect | |||
#from PyQt5.QtWidgets import QInputDialog, QLineEdit, QMenu | |||
#except: | |||
from PyQt4.QtCore import pyqtSignal, pyqtSlot, qDebug, qCritical, qFatal, qWarning, Qt, QObject | |||
from PyQt4.QtCore import QAbstractAnimation, QLineF, QPointF, QRectF, QSizeF, QSettings, QTimer | |||
from PyQt4.QtGui import QColor, QLinearGradient, QPen, QPolygonF, QPainter, QPainterPath | |||
from PyQt4.QtGui import QCursor, QFont, QFontMetrics | |||
from PyQt4.QtGui import QGraphicsScene, QGraphicsItem, QGraphicsLineItem, QGraphicsPathItem | |||
from PyQt4.QtGui import QGraphicsColorizeEffect, QGraphicsDropShadowEffect | |||
from PyQt4.QtGui import QInputDialog, QLineEdit, QMenu | |||
from PyQt4.QtSvg import QGraphicsSvgItem, QSvgRenderer | |||
# Imports (Theme) | |||
from patchcanvas_theme import * | |||
@@ -19,12 +19,12 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
try: | |||
from PyQt5.QtCore import Qt | |||
from PyQt5.QtGui import QColor, QFont, QPen, QPixmap | |||
except: | |||
from PyQt4.QtCore import Qt | |||
from PyQt4.QtGui import QColor, QFont, QPen, QPixmap | |||
#try: | |||
#from PyQt5.QtCore import Qt | |||
#from PyQt5.QtGui import QColor, QFont, QPen, QPixmap | |||
#except: | |||
from PyQt4.QtCore import Qt | |||
from PyQt4.QtGui import QColor, QFont, QPen, QPixmap | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# patchcanvas-theme.cpp | |||
@@ -20,13 +20,13 @@ | |||
# Imports (Global) | |||
# TODO - SIGNAL, SLOT | |||
try: | |||
from PyQt5.QtCore import Qt, QRectF, QTimer | |||
from PyQt5.QtGui import QBrush, QColor, QCursor, QPainter, QPen | |||
from PyQt5.QtWidgets import QFrame | |||
except: | |||
from PyQt4.QtCore import Qt, QRectF, QTimer | |||
from PyQt4.QtGui import QBrush, QColor, QCursor, QFrame, QPainter, QPen | |||
#try: | |||
#from PyQt5.QtCore import Qt, QRectF, QTimer | |||
#from PyQt5.QtGui import QBrush, QColor, QCursor, QPainter, QPen | |||
#from PyQt5.QtWidgets import QFrame | |||
#except: | |||
from PyQt4.QtCore import Qt, QRectF, QTimer | |||
from PyQt4.QtGui import QBrush, QColor, QCursor, QFrame, QPainter, QPen | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Static Variables | |||
@@ -19,13 +19,13 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
try: | |||
from PyQt5.QtCore import qCritical, Qt, QTimer, QSize | |||
from PyQt5.QtGui import QColor, QLinearGradient, QPainter | |||
from PyQt5.QtWidgets import QWidget | |||
except: | |||
from PyQt4.QtCore import qCritical, Qt, QTimer, QSize | |||
from PyQt4.QtGui import QColor, QLinearGradient, QPainter, QWidget | |||
#try: | |||
#from PyQt5.QtCore import qCritical, Qt, QTimer, QSize | |||
#from PyQt5.QtGui import QColor, QLinearGradient, QPainter | |||
#from PyQt5.QtWidgets import QWidget | |||
#except: | |||
from PyQt4.QtCore import qCritical, Qt, QTimer, QSize | |||
from PyQt4.QtGui import QColor, QLinearGradient, QPainter, QWidget | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Widget Class | |||
@@ -19,13 +19,13 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
try: | |||
from PyQt5.QtCore import qCritical, QRectF | |||
from PyQt5.QtGui import QPainter, QPixmap | |||
from PyQt5.QtWidgets import QPushButton | |||
except: | |||
from PyQt4.QtCore import qCritical, QRectF | |||
from PyQt4.QtGui import QPainter, QPixmap, QPushButton | |||
#try: | |||
#from PyQt5.QtCore import qCritical, QRectF | |||
#from PyQt5.QtGui import QPainter, QPixmap | |||
#from PyQt5.QtWidgets import QPushButton | |||
#except: | |||
from PyQt4.QtCore import qCritical, QRectF | |||
from PyQt4.QtGui import QPainter, QPixmap, QPushButton | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Widget Class | |||
@@ -19,13 +19,13 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
try: | |||
from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QTimer | |||
from PyQt5.QtGui import QCursor | |||
from PyQt5.QtWidgets import QAbstractSpinBox, QApplication, QComboBox, QDialog, QMenu, QProgressBar | |||
except: | |||
from PyQt4.QtCore import pyqtSignal, pyqtSlot, Qt, QTimer | |||
from PyQt4.QtGui import QAbstractSpinBox, QApplication, QComboBox, QCursor, QDialog, QMenu, QProgressBar | |||
#try: | |||
#from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QTimer | |||
#from PyQt5.QtGui import QCursor | |||
#from PyQt5.QtWidgets import QAbstractSpinBox, QApplication, QComboBox, QDialog, QMenu, QProgressBar | |||
#except: | |||
from PyQt4.QtCore import pyqtSignal, pyqtSlot, Qt, QTimer | |||
from PyQt4.QtGui import QAbstractSpinBox, QApplication, QComboBox, QCursor, QDialog, QMenu, QProgressBar | |||
from math import isnan | |||
@@ -19,13 +19,13 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
try: | |||
from PyQt5.QtCore import QRectF | |||
from PyQt5.QtGui import QPainter, QPixmap | |||
from PyQt5.QtWidgets import QPushButton | |||
except: | |||
from PyQt4.QtCore import QRectF | |||
from PyQt4.QtGui import QPainter, QPixmap, QPushButton | |||
#try: | |||
#from PyQt5.QtCore import QRectF | |||
#from PyQt5.QtGui import QPainter, QPixmap | |||
#from PyQt5.QtWidgets import QPushButton | |||
#except: | |||
from PyQt4.QtCore import QRectF | |||
from PyQt4.QtGui import QPainter, QPixmap, QPushButton | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Widget Class | |||
@@ -21,15 +21,15 @@ | |||
from math import floor | |||
try: | |||
from PyQt5.QtCore import Qt, QPointF, QRectF, QTimer, QSize | |||
from PyQt5.QtGui import QColor, QConicalGradient, QFont, QFontMetrics | |||
from PyQt5.QtGui import QLinearGradient, QPainter, QPainterPath, QPen, QPixmap | |||
from PyQt5.QtWidgets import QDial | |||
except: | |||
from PyQt4.QtCore import Qt, QPointF, QRectF, QTimer, QSize | |||
from PyQt4.QtGui import QColor, QConicalGradient, QFont, QFontMetrics | |||
from PyQt4.QtGui import QDial, QLinearGradient, QPainter, QPainterPath, QPen, QPixmap | |||
#try: | |||
#from PyQt5.QtCore import Qt, QPointF, QRectF, QTimer, QSize | |||
#from PyQt5.QtGui import QColor, QConicalGradient, QFont, QFontMetrics | |||
#from PyQt5.QtGui import QLinearGradient, QPainter, QPainterPath, QPen, QPixmap | |||
#from PyQt5.QtWidgets import QDial | |||
#except: | |||
from PyQt4.QtCore import Qt, QPointF, QRectF, QTimer, QSize | |||
from PyQt4.QtGui import QColor, QConicalGradient, QFont, QFontMetrics | |||
from PyQt4.QtGui import QDial, QLinearGradient, QPainter, QPainterPath, QPen, QPixmap | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Widget Class | |||
@@ -19,13 +19,13 @@ | |||
# ------------------------------------------------------------------------------------------------------------ | |||
# Imports (Global) | |||
try: | |||
from PyQt5.QtCore import pyqtSignal, qCritical, Qt, QPointF, QRectF, QSize | |||
from PyQt5.QtGui import QFont, QPainter, QPixmap | |||
from PyQt5.QtWidgets import QWidget | |||
except: | |||
from PyQt4.QtCore import pyqtSignal, qCritical, Qt, QPointF, QRectF, QSize | |||
from PyQt4.QtGui import QFont, QPainter, QPixmap, QWidget | |||
#try: | |||
#from PyQt5.QtCore import pyqtSignal, qCritical, Qt, QPointF, QRectF, QSize | |||
#from PyQt5.QtGui import QFont, QPainter, QPixmap | |||
#from PyQt5.QtWidgets import QWidget | |||
#except: | |||
from PyQt4.QtCore import pyqtSignal, qCritical, Qt, QPointF, QRectF, QSize | |||
from PyQt4.QtGui import QFont, QPainter, QPixmap, QWidget | |||
# ------------------------------------------------------------------------------------------------------------ | |||