I’m struggling to understand the reasoning behind some of the constructor arguments in SettingComponent’s deviceSelector
The constructor:
class SettingsComponent : public Component
{
public:
SettingsComponent (...)
: owner (pluginHolder),
deviceSelector (deviceManagerToUse,
0, maxAudioInputChannels,
0, maxAudioOutputChannels,
true,
(pluginHolder.processor.get() != nullptr && pluginHolder.processor->producesMidi()),
true, false),
...
{ ... }
In my opinion, could clearly be more appropriately set using the processor’s configuration, for example:
class SettingsComponent : public Component
{
public:
SettingsComponent (...)
: owner (pluginHolder),
deviceSelector (deviceManagerToUse,
0, maxAudioInputChannels,
0, maxAudioOutputChannels,
(pluginHolder.processor.get() != nullptr && pluginHolder.processor->acceptsMidi()),
(pluginHolder.processor.get() != nullptr && pluginHolder.processor->producesMidi()),
maxAudioOutputChannels > 1,
false),
...
{ ... }
Note: I just wrote this as an example, it may not be the most appropriate solution for most cases.
