As you may know GetCanAutomate() doesn't really work in FL Studio for example.
This is a quick fix. We just don't inform a host about parameter change. This is working properly in FL Studio but I use chunks in my plugin, so I might need to investigate this more.
IPlugBase.cpp
Code:
void IPlugBase::SetParameterFromGUI(int idx, double normalizedValue)
{
Trace(TRACELOC, "%d:%f", idx, normalizedValue);
WDL_MutexLock lock(&mMutex);
GetParam(idx)->SetNormalized(normalizedValue);
if (GetParam(idx)->GetCanAutomate()) InformHostOfParamChange(idx, normalizedValue);
OnParamChange(idx);
}
Code:
void IPlugBase::DirtyParameters()
{
WDL_MutexLock lock(&mMutex);
for (int p = 0; p < NParams(); p++)
{
double normalizedValue = GetParam(p)->GetNormalized();
if (GetParam(p)->GetCanAutomate()) InformHostOfParamChange(p, normalizedValue);
}
}