Browse Source

Misc fixes for using canvas in rack mode

tags/1.9.4
falkTX 11 years ago
parent
commit
29abe50118
6 changed files with 33 additions and 12 deletions
  1. +3
    -0
      source/backend/engine/CarlaEngine.cpp
  2. +1
    -1
      source/backend/engine/CarlaEngineJack.cpp
  3. +1
    -1
      source/backend/engine/CarlaEngineJuce.cpp
  4. +1
    -1
      source/backend/engine/CarlaEngineRtAudio.cpp
  5. +1
    -0
      source/carla
  6. +26
    -9
      source/carla_patchbay.py

+ 3
- 0
source/backend/engine/CarlaEngine.cpp View File

@@ -953,6 +953,9 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, cons
{
++pData->curPluginCount;
callback(ENGINE_CALLBACK_PLUGIN_ADDED, id, 0, 0, 0.0f, plugin->getName());

if (pData->curPluginCount == 1 && pData->options.processMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK)
callback(ENGINE_CALLBACK_PATCHBAY_CLIENT_DATA_CHANGED, 0, PATCHBAY_ICON_CARLA, 0, 0.0f, nullptr);
}

return true;


+ 1
- 1
source/backend/engine/CarlaEngineJack.cpp View File

@@ -1800,7 +1800,7 @@ private:
groupNameToId.setData(fLastGroupId++, ourName);
fUsedGroupNames.append(groupNameToId);

callback(ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED, 0 /* our client */, PATCHBAY_ICON_CARLA, 0, 0.0f, ourName);
callback(ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED, 0 /* our client */, PATCHBAY_ICON_CARLA, -1, 0.0f, ourName);
}

if (const char** const ports = jackbridge_get_ports(fClient, nullptr, nullptr, 0))


+ 1
- 1
source/backend/engine/CarlaEngineJuce.cpp View File

@@ -233,7 +233,7 @@ public:

// Main
{
callback(ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED, RACK_PATCHBAY_GROUP_CARLA, PATCHBAY_ICON_CARLA, 0, 0.0f, getName());
callback(ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED, RACK_PATCHBAY_GROUP_CARLA, PATCHBAY_ICON_CARLA, -1, 0.0f, getName());

callback(ENGINE_CALLBACK_PATCHBAY_PORT_ADDED, RACK_PATCHBAY_GROUP_CARLA, RACK_PATCHBAY_PORT_AUDIO_IN1, PATCHBAY_PORT_TYPE_AUDIO|PATCHBAY_PORT_IS_INPUT, 0.0f, "audio-in1");
callback(ENGINE_CALLBACK_PATCHBAY_PORT_ADDED, RACK_PATCHBAY_GROUP_CARLA, RACK_PATCHBAY_PORT_AUDIO_IN2, PATCHBAY_PORT_TYPE_AUDIO|PATCHBAY_PORT_IS_INPUT, 0.0f, "audio-in2");


+ 1
- 1
source/backend/engine/CarlaEngineRtAudio.cpp View File

@@ -432,7 +432,7 @@ public:

// Main
{
callback(ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED, RACK_PATCHBAY_GROUP_CARLA, PATCHBAY_ICON_CARLA, 0, 0.0f, getName());
callback(ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED, RACK_PATCHBAY_GROUP_CARLA, PATCHBAY_ICON_CARLA, -1, 0.0f, getName());

callback(ENGINE_CALLBACK_PATCHBAY_PORT_ADDED, RACK_PATCHBAY_GROUP_CARLA, RACK_PATCHBAY_PORT_AUDIO_IN1, PATCHBAY_PORT_TYPE_AUDIO|PATCHBAY_PORT_IS_INPUT, 0.0f, "audio-in1");
callback(ENGINE_CALLBACK_PATCHBAY_PORT_ADDED, RACK_PATCHBAY_GROUP_CARLA, RACK_PATCHBAY_PORT_AUDIO_IN2, PATCHBAY_PORT_TYPE_AUDIO|PATCHBAY_PORT_IS_INPUT, 0.0f, "audio-in2");


+ 1
- 0
source/carla View File

@@ -116,6 +116,7 @@ class CarlaMultiW(QTabWidget):

def removeAllPlugins(self):
self.fRack.removeAllPlugins()
self.fPatchbay.removeAllPlugins()

# -----------------------------------------------------------------



+ 26
- 9
source/carla_patchbay.py View File

@@ -219,6 +219,9 @@ class CarlaPatchbayW(QFrame):
def removePlugin(self, pluginId):
patchcanvas.handlePluginRemoved(pluginId)

if pluginId in self.fSelectedPlugins:
self.clearSideStuff()

if not self.fIsOnlyPatchbay:
self.fPluginCount -= 1
return
@@ -260,18 +263,17 @@ class CarlaPatchbayW(QFrame):
return

def removeAllPlugins(self):
for i in range(self.fPluginCount):
pitem = self.fPluginList[i]

for pitem in self.fPluginList:
if pitem is None:
break

pitem.close()
del pitem

self.fPluginCount = 0
self.fPluginList = []

self.clearSideStuff()

# -----------------------------------------------------------------

def engineStarted(self):
@@ -286,6 +288,9 @@ class CarlaPatchbayW(QFrame):
# -----------------------------------------------------------------

def idleFast(self):
if self.fPluginCount == 0:
return

for pluginId in self.fSelectedPlugins:
self.fPeaksCleared = False
if self.fPeaksIn.isVisible():
@@ -295,6 +300,7 @@ class CarlaPatchbayW(QFrame):
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

@@ -305,12 +311,9 @@ class CarlaPatchbayW(QFrame):
self.fPeaksOut.displayMeter(2, 0.0, True)

def idleSlow(self):
for i in range(self.fPluginCount):
pitem = self.fPluginList[i]

for pitem in self.fPluginList:
if pitem is None:
break

pitem.idleSlow()

# -----------------------------------------------------------------
@@ -345,6 +348,20 @@ class CarlaPatchbayW(QFrame):

# -----------------------------------------------------------------

def clearSideStuff(self):
self.scene.clearSelection()

self.fSelectedPlugins = []

self.fKeys.keyboard.allNotesOff(False)
self.fKeys.setEnabled(False)

self.fPeaksCleared = True
self.fPeaksIn.displayMeter(1, 0.0, True)
self.fPeaksIn.displayMeter(2, 0.0, True)
self.fPeaksOut.displayMeter(1, 0.0, True)
self.fPeaksOut.displayMeter(2, 0.0, True)

def setupCanvas(self):
pOptions = patchcanvas.options_t()
pOptions.theme_name = self.fParent.fSavedSettings[CARLA_KEY_CANVAS_THEME]
@@ -450,7 +467,7 @@ class CarlaPatchbayW(QFrame):
@pyqtSlot(list)
def slot_canvasPluginSelected(self, pluginList):
self.fKeys.keyboard.allNotesOff(False)
self.fKeys.setEnabled(len(pluginList) != 0)
self.fKeys.setEnabled(len(pluginList) != 0) # and self.fPluginCount > 0
self.fSelectedPlugins = pluginList

@pyqtSlot(float, float)


Loading…
Cancel
Save