Browse Source

Carla-Backend: Only redorder plugins on rack mode (FIXME until properly handled)

tags/v0.9.0
falkTX 13 years ago
parent
commit
0b1380e69e
1 changed files with 21 additions and 21 deletions
  1. +21
    -21
      src/carla-backend/carla_engine.cpp

+ 21
- 21
src/carla-backend/carla_engine.cpp View File

@@ -240,38 +240,38 @@ short CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, con

bool CarlaEngine::removePlugin(const unsigned short id)
{
for (unsigned short i=0; i < MAX_PLUGINS; i++)
{
CarlaPlugin* const plugin = m_carlaPlugins[i];
CarlaPlugin* const plugin = m_carlaPlugins[id];

if (plugin && plugin->id() == id)
{
processLock();
plugin->setEnabled(false);
processUnlock();
if (plugin && plugin->id() == id)
{
processLock();
plugin->setEnabled(false);
processUnlock();

if (m_checkThread.isRunning())
m_checkThread.stopNow();
if (m_checkThread.isRunning())
m_checkThread.stopNow();

delete plugin;
delete plugin;

m_carlaPlugins[i] = nullptr;
m_uniqueNames[i] = nullptr;
m_carlaPlugins[id] = nullptr;
m_uniqueNames[id] = nullptr;

for (unsigned short j=i+1; j < MAX_PLUGINS; i++, j++)
if (carlaOptions.process_mode == PROCESS_MODE_CONTINUOUS_RACK)
{
for (unsigned short i=id; i < MAX_PLUGINS; i++)
{
m_carlaPlugins[i] = m_carlaPlugins[j];
m_uniqueNames[i] = m_uniqueNames[j];
m_carlaPlugins[i] = m_carlaPlugins[i+1];
m_uniqueNames[i] = m_uniqueNames[i+1];

if (m_carlaPlugins[i])
m_carlaPlugins[i]->setId(j);
m_carlaPlugins[i]->setId(i+1);
}
}

if (isRunning())
m_checkThread.start(QThread::HighPriority);
if (isRunning())
m_checkThread.start(QThread::HighPriority);

return true;
}
return true;
}

qCritical("remove_plugin(%i) - could not find plugin", id);


Loading…
Cancel
Save