So I turned my Fireface 400 off and ran my app…the AudioDeviceManager picked the first available WASAPI device which happened to be my WebCam, which has no output channels and one input channel.
It would be cool if AudioDeviceManager could have a virtual override that the AudioIODeviceType calls back that lets such devices get filtered out, this way I could subclass the AudioDeviceManager and indicate that audio device with inputs and no outputs are to be ignored.
Something else that would be useful would be if various audio device types could allow for devices that are not currently active / plugged in. For WASAPI there’s a flag passed into the enumerator. Not sure about the others. Reason being, if the user chooses for example, the Fireface 400 and then exit the app, turn off the Fireface, relaunch the app, and bring up the settings, the program can indicate that the currently selected device is not plugged in and retain the settings. Instead of just saying “Couldn’t open output device” and then forcing a different device to become active.
It kind of sucks that changes made to the audio setup must be applied right away (as opposed to an interface that supports Apply/OK/Cancel) but of course I understand why this has to be that way.
I realize this is probably not a priority but I still wanted to mention it.