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) 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]) 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); qCritical("remove_plugin(%i) - could not find plugin", id);


Loading…
Cancel
Save