Browse Source

Rack: if plugin only has 1 output, copy it to the 2nd

tags/1.9.7
falkTX 11 years ago
parent
commit
d9938b13d8
1 changed files with 13 additions and 5 deletions
  1. +13
    -5
      source/backend/engine/CarlaEngineGraph.cpp

+ 13
- 5
source/backend/engine/CarlaEngineGraph.cpp View File

@@ -793,8 +793,9 @@ void RackGraph::process(CarlaEngine::ProtectedData* const data, const float* inB

bool processed = false;

uint32_t oldAudioInCount = 0;
uint32_t oldMidiOutCount = 0;
uint32_t oldAudioInCount = 0;
uint32_t oldAudioOutCount = 0;
uint32_t oldMidiOutCount = 0;

// process plugins
for (uint i=0; i < data->curPluginCount; ++i)
@@ -833,8 +834,9 @@ void RackGraph::process(CarlaEngine::ProtectedData* const data, const float* inB
}
}

oldAudioInCount = plugin->getAudioInCount();
oldMidiOutCount = plugin->getMidiOutCount();
oldAudioInCount = plugin->getAudioInCount();
oldAudioOutCount = plugin->getAudioOutCount();
oldMidiOutCount = plugin->getMidiOutCount();

// process
plugin->initBuffers();
@@ -848,6 +850,12 @@ void RackGraph::process(CarlaEngine::ProtectedData* const data, const float* inB
FloatVectorOperations::add(outBuf[1], inBuf1, iframes);
}

// if plugin only has 1 output, copy it to the 2nd
if (oldAudioOutCount == 1)
{
FloatVectorOperations::copy(outBuf[1], outBuf[0], iframes);
}

// set peaks
{
EnginePluginData& pluginData(data->plugins[i]);
@@ -868,7 +876,7 @@ void RackGraph::process(CarlaEngine::ProtectedData* const data, const float* inB
pluginData.insPeak[1] = 0.0f;
}

if (plugin->getAudioOutCount() > 0)
if (oldAudioOutCount > 0)
{
range = FloatVectorOperations::findMinAndMax(outBuf[0], iframes);
pluginData.outsPeak[0] = carla_maxLimited<float>(std::abs(range.getStart()), std::abs(range.getEnd()), 1.0f);


Loading…
Cancel
Save