We use VSTGUI for the UI for our AAX plugins. I’ve updated our VST3 and AU plugins to the latest VST3 SDK (3.6.13), but am having a problem with AAX. It seems that in the newer VSTGUI code, the CFrame class is specified as “final”. But the method we’ve always used for what Avid calls the “Content View” is to inherit from the CFrame class, which we cannot do if CFrame is final. I have a lot of UI code that is shared between VST3, AU and AAX, so using different VSTSDK/VSTGUI versions is not a good thing to do, but at the same time, I don’t want to be stuck with using an older VSTGUI just to support AAX. Has anyone else comes across this problem? How can I address this issue?
Obviously, I can edit that file and remove the “final” keyword, but I would really like to know why it was added, and whether removing it would alter any expected behavior when using the CFrame class.
Actually, looking deeper, it’s more than just removing that keyword. All the “virtual” specifiers have been removed (which makes sense for a class no longer designed to inherit from). Not sure if simply adding those back will fix the problem. Perhaps we need to stick with VSTGUI 4.3 (from the 3.6.6 SDK) until we can migrate this plugin to JUCE? Hmm…
Yeah, CFrame was not designed to be inherited from. I just had a quick look at what the AAX SDK is doing there, and it would have been a better idea to create a specific VSTGUIEditorInterface implementation for their parameter stuff. But you’re right, you should stick with the earlier VSTGUI version.
I had a number of problems trying to modify CFrame to work like it used to in AAX, and just gave up. (The main problem was that removing the instance and then creating a new one always caused a crash because of something not being destroyed properly, apparently.) So I’ve gone back to VST 3.6.6 and its VSTGUI version (4.3?). It’s working again now. Thanks!