Repro: Post dialog containing AudioDeviceSelectorComponent, select “show this device’s control panel” and change the buffer size in the device native control panel. The AudioDeviceSelectorComponent dropdown for buffer size does not show the change. The change is made though; if the app is restarted or if the control panel is accessed from somewhere else, the correct size is shown. The buffer size changes correctly if done through AudioDeviceSelectorComponent’s combo box.
On my machine, the audio dies (audioDeviceIOCallback is not called) if I change any parameters through the native control panel launched by AudioDeviceSelectorComponent. I’ve tried this with 3 devices (Tascam US-122, Line 6 Tone Port GX, Novation X-Station). On the Line 6, matching the buffer size in the component combo box restores the audio. For the Tascam, the combo box only shows the old size unless I chose another driver and then go back to the Tascam. In this case the correct buffer size is already selected and audio is restored. On the Novation, changing any parameters from the AudioDeviceSelectorComponent launched native control panel crashes the app inside the novation driver; this is one of several instabilities I’ve noticed when using the Novation driver with Juce.
This appears to be a bug in synchronizing information between the device manager and the selector component as the only thing my code does is launch the component. Is it even possible for the application to get a callback if the user changes something in the native device control panel? At some level it must be because the native device control panel has to conform to the OS’s management APIs.