In the System Preferences->Sound menu, a user
can choose the default audio input and audio output
device.
In the CoreAudio API, this choice becomes the
current value of kAudioHardwarePropertyDefaultInputDevice
and kAudioHardwarePropertyDefaultOutputDevice.
Consumer-oriented apps use those Defaults, as
a rule; content-creation apps usually have their
own Preferences that let you select the audio
devices for the app.
ALSA defines a PCM device called "default", which can be reset by the
user in ~/.asoundrc. Consumer-oriented apps are supposed to use
"default" as the device name. Content-creation apps use JACK; JACK has
its own preferences selection mechanism.
Yes, this takes a lot of work, and is not in the
direct
path of solving pro audio problems. Just like I've spent
5 years on pushing RTP MIDI through the standards
process because I felt someone had to do it, I think the
Linux audio API problem only gets solved if someone
decides to dedicate 5 years of their life to doing it.
That's how long a systems project takes to have
an impact on the world. Good luck.
My 5 years might be just about up :(
Oh wait, I forgot, JACK isn't that old :)
--p