Adequate DeviceSelector arguments in SettingsComponent

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.