| @@ -1790,6 +1790,7 @@ public: | |||||
| case audioMasterCurrentId: | case audioMasterCurrentId: | ||||
| // TODO | // TODO | ||||
| // if using old sdk, return effect->uniqueID | |||||
| break; | break; | ||||
| case audioMasterIdle: | case audioMasterIdle: | ||||
| @@ -1797,7 +1798,7 @@ public: | |||||
| if (effect) | if (effect) | ||||
| effect->dispatcher(effect, effEditIdle, 0, 0, nullptr, 0.0f); | effect->dispatcher(effect, effEditIdle, 0, 0, nullptr, 0.0f); | ||||
| else | else | ||||
| qWarning("VstPlugin::hostCallback::audioMasterIdle called without valid object"); | |||||
| qWarning("VstPlugin::hostCallback::audioMasterIdle called without valid effect"); | |||||
| break; | break; | ||||
| #if ! VST_FORCE_DEPRECATED | #if ! VST_FORCE_DEPRECATED | ||||
| @@ -1862,12 +1863,12 @@ public: | |||||
| break; | break; | ||||
| case audioMasterTempoAt: | case audioMasterTempoAt: | ||||
| CARLA_ASSERT(self); | |||||
| // Deprecated in VST SDK 2.4 | // Deprecated in VST SDK 2.4 | ||||
| CARLA_ASSERT(self); | |||||
| if (self) | if (self) | ||||
| ret = self->handleAudioMasterTempoAt(); | ret = self->handleAudioMasterTempoAt(); | ||||
| else | else | ||||
| qWarning("stPlugin::hostCallback::audioMasterTempoAt called without valid object"); | |||||
| qWarning("VstPlugin::hostCallback::audioMasterTempoAt called without valid object"); | |||||
| if (ret == 0) | if (ret == 0) | ||||
| ret = 120 * 10000; | ret = 120 * 10000; | ||||
| break; | break; | ||||
| @@ -1879,11 +1880,13 @@ public: | |||||
| #else | #else | ||||
| ret = carlaOptions.maxParameters; | ret = carlaOptions.maxParameters; | ||||
| #endif | #endif | ||||
| if (effect && ret > effect->numParams) | |||||
| ret = effect->numParams; | |||||
| break; | break; | ||||
| case audioMasterGetParameterQuantization: | case audioMasterGetParameterQuantization: | ||||
| // Deprecated in VST SDK 2.4 | // Deprecated in VST SDK 2.4 | ||||
| // TODO | |||||
| ret = 1; // full single float precision | |||||
| break; | break; | ||||
| #endif | #endif | ||||
| @@ -1920,35 +1923,33 @@ public: | |||||
| case audioMasterGetSampleRate: | case audioMasterGetSampleRate: | ||||
| CARLA_ASSERT(self); | CARLA_ASSERT(self); | ||||
| if (self) | if (self) | ||||
| { | |||||
| ret = self->handleAudioMasterGetSampleRate(); | ret = self->handleAudioMasterGetSampleRate(); | ||||
| } | |||||
| else | else | ||||
| { | |||||
| qWarning("VstPlugin::hostCallback::audioMasterGetSampleRate called without valid object"); | qWarning("VstPlugin::hostCallback::audioMasterGetSampleRate called without valid object"); | ||||
| if (ret == 0) | |||||
| ret = 44100; | ret = 44100; | ||||
| } | |||||
| break; | break; | ||||
| case audioMasterGetBlockSize: | case audioMasterGetBlockSize: | ||||
| CARLA_ASSERT(self); | CARLA_ASSERT(self); | ||||
| if (self) | if (self) | ||||
| { | |||||
| ret = self->handleAudioMasterGetBlockSize(); | ret = self->handleAudioMasterGetBlockSize(); | ||||
| } | |||||
| else | else | ||||
| { | |||||
| qWarning("stPlugin::hostCallback::audioMasterGetBlockSize called without valid object"); | |||||
| qWarning("VstPlugin::hostCallback::audioMasterGetBlockSize called without valid object"); | |||||
| if (ret == 0) | |||||
| #ifndef BUILD_BRIDGE | |||||
| ret = carlaOptions.processHighPrecision ? 8 : 512; | |||||
| #else | |||||
| ret = 512; | ret = 512; | ||||
| } | |||||
| #endif | |||||
| break; | break; | ||||
| case audioMasterGetInputLatency: | case audioMasterGetInputLatency: | ||||
| // TODO | |||||
| ret = 0; | |||||
| break; | break; | ||||
| case audioMasterGetOutputLatency: | case audioMasterGetOutputLatency: | ||||
| // TODO | |||||
| ret = 0; | |||||
| break; | break; | ||||
| #if ! VST_FORCE_DEPRECATED | #if ! VST_FORCE_DEPRECATED | ||||
| @@ -1964,6 +1965,7 @@ public: | |||||
| case audioMasterWillReplaceOrAccumulate: | case audioMasterWillReplaceOrAccumulate: | ||||
| // Deprecated in VST SDK 2.4 | // Deprecated in VST SDK 2.4 | ||||
| ret = 1; // replace | |||||
| break; | break; | ||||
| #endif | #endif | ||||
| @@ -1996,11 +1998,7 @@ public: | |||||
| // Deprecated in VST SDK 2.4 | // Deprecated in VST SDK 2.4 | ||||
| break; | break; | ||||
| //#ifdef VESTIGE_HEADER | |||||
| // case audioMasterGetSpeakerArrangement: | |||||
| //#else | |||||
| case audioMasterGetOutputSpeakerArrangement: | case audioMasterGetOutputSpeakerArrangement: | ||||
| //#endif | |||||
| // Deprecated in VST SDK 2.4 | // Deprecated in VST SDK 2.4 | ||||
| // TODO | // TODO | ||||
| break; | break; | ||||
| @@ -2009,7 +2007,10 @@ public: | |||||
| case audioMasterGetVendorString: | case audioMasterGetVendorString: | ||||
| CARLA_ASSERT(ptr); | CARLA_ASSERT(ptr); | ||||
| if (ptr) | if (ptr) | ||||
| { | |||||
| strcpy((char*)ptr, "Cadence"); | strcpy((char*)ptr, "Cadence"); | ||||
| ret = 1; | |||||
| } | |||||
| else | else | ||||
| qWarning("VstPlugin::hostCallback::audioMasterGetVendorString called with invalid pointer"); | qWarning("VstPlugin::hostCallback::audioMasterGetVendorString called with invalid pointer"); | ||||
| break; | break; | ||||
| @@ -2017,7 +2018,10 @@ public: | |||||
| case audioMasterGetProductString: | case audioMasterGetProductString: | ||||
| CARLA_ASSERT(ptr); | CARLA_ASSERT(ptr); | ||||
| if (ptr) | if (ptr) | ||||
| { | |||||
| strcpy((char*)ptr, "Carla"); | strcpy((char*)ptr, "Carla"); | ||||
| ret = 1; | |||||
| } | |||||
| else | else | ||||
| qWarning("VstPlugin::hostCallback::audioMasterGetProductString called with invalid pointer"); | qWarning("VstPlugin::hostCallback::audioMasterGetProductString called with invalid pointer"); | ||||
| break; | break; | ||||
| @@ -2058,6 +2062,10 @@ public: | |||||
| case audioMasterGetDirectory: | case audioMasterGetDirectory: | ||||
| // TODO | // TODO | ||||
| //if (ptr) | |||||
| // strcpy((char*)ptr, "stuff"); | |||||
| //else | |||||
| // qWarning("VstPlugin::hostCallback::audioMasterGetDirectory called with invalid pointer"); | |||||
| break; | break; | ||||
| case audioMasterUpdateDisplay: | case audioMasterUpdateDisplay: | ||||
| @@ -2066,6 +2074,7 @@ public: | |||||
| self->handleAudioMasterUpdateDisplay(); | self->handleAudioMasterUpdateDisplay(); | ||||
| if (effect) | if (effect) | ||||
| effect->dispatcher(effect, effEditIdle, 0, 0, nullptr, 0.0f); | effect->dispatcher(effect, effEditIdle, 0, 0, nullptr, 0.0f); | ||||
| ret = 1; | |||||
| break; | break; | ||||
| case audioMasterBeginEdit: | case audioMasterBeginEdit: | ||||