Browse Source

Carla: dispatch VST effBegin/EndSetProgram between effSetProgram calls

tags/v0.9.0
falkTX 12 years ago
parent
commit
13c22b11e4
1 changed files with 19 additions and 0 deletions
  1. +19
    -0
      c++/carla-backend/vst.cpp

+ 19
- 0
c++/carla-backend/vst.cpp View File

@@ -316,12 +316,16 @@ public:
if (x_engine->isOffline())
{
const CarlaEngine::ScopedLocker m(x_engine, block);
effect->dispatcher(effect, effBeginSetProgram, 0, 0, nullptr, 0.0f);
effect->dispatcher(effect, effSetProgram, 0, index, nullptr, 0.0f);
effect->dispatcher(effect, effEndSetProgram, 0, 0, nullptr, 0.0f);
}
else
{
const ScopedDisabler m(this, block);
effect->dispatcher(effect, effBeginSetProgram, 0, 0, nullptr, 0.0f);
effect->dispatcher(effect, effSetProgram, 0, index, nullptr, 0.0f);
effect->dispatcher(effect, effEndSetProgram, 0, 0, nullptr, 0.0f);
}
}

@@ -744,6 +748,21 @@ public:
recreateLatencyBuffers();
}

// special plugin fixes
#ifdef __WINE__
// 1. IL Harmless - disable threaded processing
if (effect->uniqueID == 1229484653)
{
char strBuf[255] = { 0 };
getLabel(strBuf);

if (strcmp(strBuf, "IL Harmless") == 0)
{
// TODO - disable threaded processing
}
}
#endif

reloadPrograms(true);

x_client->activate();


Loading…
Cancel
Save