For a JUCE host that uses stereo throughout I need to figure out all bus layouts of a plug-in in order to select one that provides stereo I/O (or ignore the plug-in altogether). All I have is a PluginDescription (just scanned) and an AudioPluginInstance (instantiated in the scanner process).
The current (default) BusesLayout can be queried from the instance. That’s usually some maximal layout with tons of buses that aren’t needed (e.g. NI Kontakt). Also, some plug-ins don’t seem to use the main bus for default stereo.
Currently I’m enumerating (in order of preference) conceivable layouts deduced from the total number of channels provided by the PluginDescription. The first layout that stands the checkBusesLayoutSupported() test is choosen. This smells fishy, as in fishing in the dark.
Is there a better way to query supported layouts?