I could use a bit of clarification as to how Juce handles plugin state calls for AAX plugins.
While testing the AAX version of my plugin, I noticed that whenever I save a preset in Pro Tools, the entire plugin state gets saved, and not just the “current program”. The plugin also never gets a get/setCurrentProgam call. When I looked into the AAX wrapper code, I noticed that there are only calls to get/setStateInformation and never to get/setCurrentProgamStateInformation.
So, am I right that AAX plugins built with Juce (or in general then probably?) don’t have the concept of a “program” and a “bank of programs”?
My plugin internally has a 2D array of N x M float values (where N is the number of programs, and M is the number of parameters). When a user selects another program and setCurrentProgram gets called, I just set an index in my code so the right 1D array of parameters is selected, and parameter changes in the GUI then operate on that set of parameters, for that program.
When the AudioProcessor receives a getCurrentProgramStateInformation call, I only return the single 1D array of parameters for the current program. And when getStateInformation gets called I return the full 2D array with parameter sets for all programs in the plugin.
In the case of AAX, should I only keep a single set of parameters for my plugin then?