After calling AudioDeviceManager::initialise with some non zero values for input and output channels, later on if I try to open a device but with no bits set in the input and output BigInteger, the device fails to open. For the case of ASIO specifically, it seems that bufferSwitch doesn’t get called if there are no channels, and Juce detects that there was no callback and considers it an error.
Even if Juce were to let it through (which works, when I skip that code in the debugger), my whole architecture assumes that when a device is opened that the I/O callback will get called and unfortunately this can’t change (too many benefits).
However, now I am implementing the “audio setup” dialog of my app, where you choose the output device and up to 6 device channels to map from my app output. When the user switches to a new device, the 6 channel ComboBoxes show “(none)” meaning unassigned, and Juce don’t like it when I open a device without any bits set for active input and output channels.
What should I do?