@@ -1699,36 +1699,36 @@ bool CarlaEngine::patchbayConnect(const int portA, const int portB) | |||
case RACK_PATCHBAY_PORT_AUDIO_IN1: | |||
CARLA_SAFE_ASSERT_BREAK(targetPort >= RACK_PATCHBAY_GROUP_AUDIO_IN*1000); | |||
CARLA_SAFE_ASSERT_BREAK(targetPort <= RACK_PATCHBAY_GROUP_AUDIO_IN*1000+999); | |||
rack->connectLock.lock(); | |||
rack->connectedIns[0].append(targetPort - RACK_PATCHBAY_GROUP_AUDIO_IN*1000); | |||
rack->connectLock.unlock(); | |||
rack->connectLock.enter(); | |||
rack->connectedIn1.append(targetPort - RACK_PATCHBAY_GROUP_AUDIO_IN*1000); | |||
rack->connectLock.leave(); | |||
makeConnection = true; | |||
break; | |||
case RACK_PATCHBAY_PORT_AUDIO_IN2: | |||
CARLA_SAFE_ASSERT_BREAK(targetPort >= RACK_PATCHBAY_GROUP_AUDIO_IN*1000); | |||
CARLA_SAFE_ASSERT_BREAK(targetPort <= RACK_PATCHBAY_GROUP_AUDIO_IN*1000+999); | |||
rack->connectLock.lock(); | |||
rack->connectedIns[1].append(targetPort - RACK_PATCHBAY_GROUP_AUDIO_IN*1000); | |||
rack->connectLock.unlock(); | |||
rack->connectLock.enter(); | |||
rack->connectedIn2.append(targetPort - RACK_PATCHBAY_GROUP_AUDIO_IN*1000); | |||
rack->connectLock.leave(); | |||
makeConnection = true; | |||
break; | |||
case RACK_PATCHBAY_PORT_AUDIO_OUT1: | |||
CARLA_SAFE_ASSERT_BREAK(targetPort >= RACK_PATCHBAY_GROUP_AUDIO_OUT*1000); | |||
CARLA_SAFE_ASSERT_BREAK(targetPort <= RACK_PATCHBAY_GROUP_AUDIO_OUT*1000+999); | |||
rack->connectLock.lock(); | |||
rack->connectedOuts[0].append(targetPort - RACK_PATCHBAY_GROUP_AUDIO_OUT*1000); | |||
rack->connectLock.unlock(); | |||
rack->connectLock.enter(); | |||
rack->connectedOut1.append(targetPort - RACK_PATCHBAY_GROUP_AUDIO_OUT*1000); | |||
rack->connectLock.leave(); | |||
makeConnection = true; | |||
break; | |||
case RACK_PATCHBAY_PORT_AUDIO_OUT2: | |||
CARLA_SAFE_ASSERT_BREAK(targetPort >= RACK_PATCHBAY_GROUP_AUDIO_OUT*1000); | |||
CARLA_SAFE_ASSERT_BREAK(targetPort <= RACK_PATCHBAY_GROUP_AUDIO_OUT*1000+999); | |||
rack->connectLock.lock(); | |||
rack->connectedOuts[1].append(targetPort - RACK_PATCHBAY_GROUP_AUDIO_OUT*1000); | |||
rack->connectLock.unlock(); | |||
rack->connectLock.enter(); | |||
rack->connectedOut2.append(targetPort - RACK_PATCHBAY_GROUP_AUDIO_OUT*1000); | |||
rack->connectLock.leave(); | |||
makeConnection = true; | |||
break; | |||
@@ -1810,14 +1810,14 @@ bool CarlaEngine::patchbayDisconnect(const uint connectionId) | |||
const int portId(otherPort-RACK_PATCHBAY_GROUP_AUDIO_OUT*1000); | |||
rack->connectLock.lock(); | |||
rack->connectLock.enter(); | |||
if (carlaPort == RACK_PATCHBAY_PORT_AUDIO_OUT1) | |||
rack->connectedOuts[0].removeAll(portId); | |||
rack->connectedOut1.removeAll(portId); | |||
else | |||
rack->connectedOuts[1].removeAll(portId); | |||
rack->connectedOut2.removeAll(portId); | |||
rack->connectLock.unlock(); | |||
rack->connectLock.leave(); | |||
} | |||
else if (otherPort >= RACK_PATCHBAY_GROUP_AUDIO_IN*1000) | |||
{ | |||
@@ -1825,14 +1825,14 @@ bool CarlaEngine::patchbayDisconnect(const uint connectionId) | |||
const int portId(otherPort-RACK_PATCHBAY_GROUP_AUDIO_IN*1000); | |||
rack->connectLock.lock(); | |||
rack->connectLock.enter(); | |||
if (carlaPort == RACK_PATCHBAY_PORT_AUDIO_IN1) | |||
rack->connectedIns[0].removeAll(portId); | |||
rack->connectedIn1.removeAll(portId); | |||
else | |||
rack->connectedIns[1].removeAll(portId); | |||
rack->connectedIn2.removeAll(portId); | |||
rack->connectLock.unlock(); | |||
rack->connectLock.leave(); | |||
} | |||
else | |||
{ | |||
@@ -323,10 +323,10 @@ void EngineRackBuffers::clear() | |||
out[1] = nullptr; | |||
} | |||
connectedIns[0].clear(); | |||
connectedIns[1].clear(); | |||
connectedOuts[0].clear(); | |||
connectedOuts[1].clear(); | |||
connectedIn1.clear(); | |||
connectedIn2.clear(); | |||
connectedOut1.clear(); | |||
connectedOut2.clear(); | |||
usedConnections.clear(); | |||
} | |||
@@ -864,10 +864,10 @@ void CarlaEngineProtectedData::processRackFull(float** const inBuf, const uint32 | |||
{ | |||
EngineRackBuffers* const rack(bufAudio.rack); | |||
const CarlaMutex::ScopedLocker sl(rack->connectLock); | |||
const CarlaCriticalSection::Scope _cs2(rack->connectLock); | |||
// connect input buffers | |||
if (rack->connectedIns[0].count() == 0) | |||
if (rack->connectedIn1.count() == 0) | |||
{ | |||
FLOAT_CLEAR(rack->in[0], nframes); | |||
} | |||
@@ -875,7 +875,7 @@ void CarlaEngineProtectedData::processRackFull(float** const inBuf, const uint32 | |||
{ | |||
bool first = true; | |||
for (LinkedList<int>::Itenerator it = rack->connectedIns[0].begin(); it.valid(); it.next()) | |||
for (LinkedList<int>::Itenerator it = rack->connectedIn1.begin(); it.valid(); it.next()) | |||
{ | |||
const int& port(it.getValue()); | |||
CARLA_SAFE_ASSERT_CONTINUE(port >= 0 && port < static_cast<int>(inCount)); | |||
@@ -895,7 +895,7 @@ void CarlaEngineProtectedData::processRackFull(float** const inBuf, const uint32 | |||
FLOAT_CLEAR(rack->in[0], nframes); | |||
} | |||
if (rack->connectedIns[1].count() == 0) | |||
if (rack->connectedIn2.count() == 0) | |||
{ | |||
FLOAT_CLEAR(rack->in[1], nframes); | |||
} | |||
@@ -903,7 +903,7 @@ void CarlaEngineProtectedData::processRackFull(float** const inBuf, const uint32 | |||
{ | |||
bool first = true; | |||
for (LinkedList<int>::Itenerator it = rack->connectedIns[1].begin(); it.valid(); it.next()) | |||
for (LinkedList<int>::Itenerator it = rack->connectedIn2.begin(); it.valid(); it.next()) | |||
{ | |||
const int& port(it.getValue()); | |||
CARLA_SAFE_ASSERT_CONTINUE(port >= 0 && port < static_cast<int>(inCount)); | |||
@@ -930,9 +930,9 @@ void CarlaEngineProtectedData::processRackFull(float** const inBuf, const uint32 | |||
processRack(rack->in, rack->out, nframes, isOffline); | |||
// connect output buffers | |||
if (rack->connectedOuts[0].count() != 0) | |||
if (rack->connectedOut1.count() != 0) | |||
{ | |||
for (LinkedList<int>::Itenerator it = rack->connectedOuts[0].begin(); it.valid(); it.next()) | |||
for (LinkedList<int>::Itenerator it = rack->connectedOut1.begin(); it.valid(); it.next()) | |||
{ | |||
const int& port(it.getValue()); | |||
CARLA_SAFE_ASSERT_CONTINUE(port >= 0 && port < static_cast<int>(outCount)); | |||
@@ -941,9 +941,9 @@ void CarlaEngineProtectedData::processRackFull(float** const inBuf, const uint32 | |||
} | |||
} | |||
if (rack->connectedOuts[1].count() != 0) | |||
if (rack->connectedOut2.count() != 0) | |||
{ | |||
for (LinkedList<int>::Itenerator it = rack->connectedOuts[1].begin(); it.valid(); it.next()) | |||
for (LinkedList<int>::Itenerator it = rack->connectedOut2.begin(); it.valid(); it.next()) | |||
{ | |||
const int& port(it.getValue()); | |||
CARLA_SAFE_ASSERT_CONTINUE(port >= 0 && port < static_cast<int>(outCount)); | |||
@@ -94,9 +94,11 @@ struct EngineRackBuffers { | |||
float* out[2]; | |||
// connections stuff | |||
LinkedList<int> connectedIns[2]; | |||
LinkedList<int> connectedOuts[2]; | |||
CarlaMutex connectLock; | |||
LinkedList<int> connectedIn1; | |||
LinkedList<int> connectedIn2; | |||
LinkedList<int> connectedOut1; | |||
LinkedList<int> connectedOut2; | |||
CarlaCriticalSection connectLock; | |||
uint lastConnectionId; | |||
LinkedList<ConnectionToId> usedConnections; | |||
@@ -500,9 +500,9 @@ public: | |||
#endif | |||
// Connections | |||
rack->connectLock.lock(); | |||
rack->connectLock.enter(); | |||
for (LinkedList<int>::Itenerator it = rack->connectedIns[0].begin(); it.valid(); it.next()) | |||
for (LinkedList<int>::Itenerator it = rack->connectedIn1.begin(); it.valid(); it.next()) | |||
{ | |||
const int& port(it.getValue()); | |||
CARLA_SAFE_ASSERT_CONTINUE(port >= 0 && port < static_cast<int>(pData->bufAudio.inCount)); | |||
@@ -518,7 +518,7 @@ public: | |||
rack->lastConnectionId++; | |||
} | |||
for (LinkedList<int>::Itenerator it = rack->connectedIns[1].begin(); it.valid(); it.next()) | |||
for (LinkedList<int>::Itenerator it = rack->connectedIn2.begin(); it.valid(); it.next()) | |||
{ | |||
const int& port(it.getValue()); | |||
CARLA_SAFE_ASSERT_CONTINUE(port >= 0 && port < static_cast<int>(pData->bufAudio.inCount)); | |||
@@ -534,7 +534,7 @@ public: | |||
rack->lastConnectionId++; | |||
} | |||
for (LinkedList<int>::Itenerator it = rack->connectedOuts[0].begin(); it.valid(); it.next()) | |||
for (LinkedList<int>::Itenerator it = rack->connectedOut1.begin(); it.valid(); it.next()) | |||
{ | |||
const int& port(it.getValue()); | |||
CARLA_SAFE_ASSERT_CONTINUE(port >= 0 && port < static_cast<int>(pData->bufAudio.outCount)); | |||
@@ -550,7 +550,7 @@ public: | |||
rack->lastConnectionId++; | |||
} | |||
for (LinkedList<int>::Itenerator it = rack->connectedOuts[1].begin(); it.valid(); it.next()) | |||
for (LinkedList<int>::Itenerator it = rack->connectedOut2.begin(); it.valid(); it.next()) | |||
{ | |||
const int& port(it.getValue()); | |||
CARLA_SAFE_ASSERT_CONTINUE(port >= 0 && port < static_cast<int>(pData->bufAudio.outCount)); | |||
@@ -566,7 +566,7 @@ public: | |||
rack->lastConnectionId++; | |||
} | |||
pData->bufAudio.rack->connectLock.unlock(); | |||
pData->bufAudio.rack->connectLock.leave(); | |||
for (LinkedList<MidiPort>::Itenerator it=fMidiIns.begin(); it.valid(); it.next()) | |||
{ | |||
@@ -24,7 +24,8 @@ | |||
CARLA_BACKEND_START_NAMESPACE | |||
static const char* PluginThreadMode2str(const CarlaPluginThread::Mode mode) | |||
static inline | |||
const char* PluginThreadMode2str(const CarlaPluginThread::Mode mode) | |||
{ | |||
switch (mode) | |||
{ | |||
@@ -517,6 +517,7 @@ public: | |||
clearBuffers(); | |||
uint32_t aIns, aOuts, mIns, mOuts, params; | |||
aIns = aOuts = 0; | |||
bool needsCtrlIn, needsCtrlOut; | |||
needsCtrlIn = needsCtrlOut = false; | |||
@@ -40,6 +40,10 @@ CarlaBridgeClient::CarlaBridgeClient(const char* const uiTitle) | |||
CARLA_ASSERT(uiTitle != nullptr && uiTitle[0] != '\0'); | |||
#endif | |||
carla_debug("CarlaBridgeClient::CarlaBridgeClient(\"%s\")", uiTitle); | |||
#ifndef BUILD_BRIDGE_UI | |||
return; (void)uiTitle; // unused | |||
#endif | |||
} | |||
CarlaBridgeClient::~CarlaBridgeClient() | |||