diff --git a/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp b/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp index c7ad0a0d57..59f67554d5 100644 --- a/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp @@ -900,6 +900,13 @@ namespace AAXClasses } } + AAX_Result GetNumberOfChanges (int32_t* numChanges) const override + { + const auto result = AAX_CEffectParameters::GetNumberOfChanges (numChanges); + *numChanges += numSetDirtyCalls; + return result; + } + AAX_Result UpdateParameterNormalizedValue (AAX_CParamID paramID, double value, AAX_EUpdateSource source) override { auto result = AAX_CEffectParameters::UpdateParameterNormalizedValue (paramID, value, source); @@ -1107,6 +1114,9 @@ namespace AAXClasses if (details.latencyChanged) check (Controller()->SetSignalLatency (processor->getLatencySamples())); + + if (details.nonParameterStateChanged) + ++numSetDirtyCalls; } void audioProcessorParameterChangeGestureBegin (AudioProcessor*, int parameterIndex) override @@ -1999,7 +2009,7 @@ namespace AAXClasses bool isPrepared = false; MidiBuffer midiBuffer; Array channelList; - int32_t juceChunkIndex = 0; + int32_t juceChunkIndex = 0, numSetDirtyCalls = 0; AAX_CSampleRate sampleRate = 0; int lastBufferSize = 1024, maxBufferSize = 1024; bool hasSidechain = false, canDisableSidechain = false, lastSideChainState = false;