Browse Source

Set audioMasterCurrentId before creating plugin, fixes #225

tags/1.9.7
falkTX 10 years ago
parent
commit
d6aa2015a1
1 changed files with 12 additions and 15 deletions
  1. +12
    -15
      source/backend/plugin/CarlaPluginVST2.cpp

+ 12
- 15
source/backend/plugin/CarlaPluginVST2.cpp View File

@@ -862,19 +862,6 @@ public:
} }
#endif #endif


// special plugin fixes
// 1. IL Harmless - disable threaded processing
if (fEffect->uniqueID == 1229484653)
{
char strBuf[STR_MAX+1] = { '\0' };
getLabel(strBuf);

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

//bufferSizeChanged(pData->engine->getBufferSize()); //bufferSizeChanged(pData->engine->getBufferSize());
reloadPrograms(true); reloadPrograms(true);


@@ -1742,8 +1729,7 @@ protected:
} }


case audioMasterCurrentId: case audioMasterCurrentId:
// TODO
// if using old sdk, return effect->uniqueID
ret = fEffect->uniqueID;
break; break;


case audioMasterIdle: case audioMasterIdle:
@@ -2116,9 +2102,13 @@ public:
// --------------------------------------------------------------- // ---------------------------------------------------------------
// initialize plugin (part 1) // initialize plugin (part 1)


sCurrentUniqueId = uniqueId;
sLastCarlaPluginVST2 = this; sLastCarlaPluginVST2 = this;

fEffect = vstFn(carla_vst_audioMasterCallback); fEffect = vstFn(carla_vst_audioMasterCallback);

sLastCarlaPluginVST2 = nullptr; sLastCarlaPluginVST2 = nullptr;
sCurrentUniqueId = 0;


if (fEffect == nullptr) if (fEffect == nullptr)
{ {
@@ -2268,6 +2258,7 @@ private:


int fUnique2; int fUnique2;


static intptr_t sCurrentUniqueId;
static CarlaPluginVST2* sLastCarlaPluginVST2; static CarlaPluginVST2* sLastCarlaPluginVST2;


// ------------------------------------------------------------------- // -------------------------------------------------------------------
@@ -2328,6 +2319,11 @@ private:
case audioMasterVersion: case audioMasterVersion:
return kVstVersion; return kVstVersion;


case audioMasterCurrentId:
if (sCurrentUniqueId != 0)
return sCurrentUniqueId;
break;

case audioMasterGetVendorString: case audioMasterGetVendorString:
CARLA_SAFE_ASSERT_RETURN(ptr != nullptr, 0); CARLA_SAFE_ASSERT_RETURN(ptr != nullptr, 0);
std::strcpy((char*)ptr, "falkTX"); std::strcpy((char*)ptr, "falkTX");
@@ -2398,6 +2394,7 @@ private:
CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaPluginVST2) CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaPluginVST2)
}; };


intptr_t CarlaPluginVST2::sCurrentUniqueId = 0;
CarlaPluginVST2* CarlaPluginVST2::sLastCarlaPluginVST2 = nullptr; CarlaPluginVST2* CarlaPluginVST2::sLastCarlaPluginVST2 = nullptr;


CARLA_BACKEND_END_NAMESPACE CARLA_BACKEND_END_NAMESPACE


Loading…
Cancel
Save