From e797c993a87b743e56648e4ed510b36f375be9ec Mon Sep 17 00:00:00 2001 From: reuk Date: Mon, 4 Oct 2021 17:58:09 +0100 Subject: [PATCH] AAX Client: Add dirty state reporting via updateHostDisplay --- .../AAX/juce_AAX_Wrapper.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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;