First of all, thanks to Jules for the very inspirational ParameterSlider class in the demo. It is such a better way of doing things that I started over from scratch to do a re-write of all my plugins!
Result? In half the number of lines of code, with improved encapsulation, and better readability, I have not only the same functionality as before, but I have been able to add new features, not the least of which is the ability to process 64bit data from compatible hosts.
And everything works.
But I changed almost everything, so there has to be an issue somewhere, right?
One specific worry is the integration of my registration system. I am using the juce_tracktion_marketplace module nearly straight up. I use an AsyncUpdater, owned by my AudioPorcessor class to process the registration tasks.
The AsyncUpdater is triggered in the AudioProcessor constructor.
…and then comes the possibly dangerous part…
My AudioProcessorEditor class needs to know a definitive status for OnlineUnlockStatus.isUnlocked() because the state of several components depend upon it.
To reliably get the status for OnlineUnlockStatus.isUnlocked(), I call myAsyncUpdater.handleUpdateNowIfNeeded() in the AudioProcessorEditor constructor.
Everything is working perfectly, but I am leery about “forcing” the AsyncUpdater, and there are probably scenarios I have not thought of.
My question is; is this safe?