AudioIODevice::getDeviceNames

Is it safe to assume that the first item returned is the default device?

yes - but hang on for the next juce release (very soon), which will have a load of really cool new audio device handling stuff, so you won’t have to worry about any of this…