Browse Source

Fix for gcc loop optimizations

tags/1.9.4
falkTX 11 years ago
parent
commit
4248b7c3b0
7 changed files with 51 additions and 43 deletions
  1. +20
    -20
      source/backend/engine/CarlaEngine.cpp
  2. +13
    -13
      source/backend/engine/CarlaEngineInternal.cpp
  3. +5
    -3
      source/backend/engine/CarlaEngineInternal.hpp
  4. +6
    -6
      source/backend/engine/CarlaEngineRtAudio.cpp
  5. +2
    -1
      source/backend/plugin/CarlaPluginThread.cpp
  6. +1
    -0
      source/backend/plugin/ReWirePlugin.cpp
  7. +4
    -0
      source/bridges/CarlaBridgeClient.cpp

+ 20
- 20
source/backend/engine/CarlaEngine.cpp View File

@@ -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
{


+ 13
- 13
source/backend/engine/CarlaEngineInternal.cpp View File

@@ -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));


+ 5
- 3
source/backend/engine/CarlaEngineInternal.hpp View File

@@ -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;


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

@@ -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())
{


+ 2
- 1
source/backend/plugin/CarlaPluginThread.cpp View File

@@ -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)
{


+ 1
- 0
source/backend/plugin/ReWirePlugin.cpp View File

@@ -517,6 +517,7 @@ public:
clearBuffers();

uint32_t aIns, aOuts, mIns, mOuts, params;
aIns = aOuts = 0;

bool needsCtrlIn, needsCtrlOut;
needsCtrlIn = needsCtrlOut = false;


+ 4
- 0
source/bridges/CarlaBridgeClient.cpp View File

@@ -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()


Loading…
Cancel
Save