xmms's volume stuff isn't a good example.
The XMMS developers are a bit pig-headed about stuff, they are still mostly OSS and OSS was designed to be single user enviroment on a very simple sound card. The alsa support is a plug-in for them and doesn't have anything to do with the volume control.
If a app wants control over the master volume and the uid/guid has rights then it's the job of Alsa to provide access to the master volume. Of course if it was Windows I suppose you would do a hack to detect the XMMS app and then force it to act to what you would considure "correct" behavior. Which wouldn't be that hard to do with Alsa, but that's just not how you do things in Linux.
If you want to see something cool, check out how users can have their own .asoundrc configuration file that alsa apps can use.
It's actually very very cool. As a user you can create your own Alsa devices without having to have rights to any hardware or /dev/ stuff.
The XMMS developers are a bit pig-headed about stuff, they are still mostly OSS and OSS was designed to be single user enviroment on a very simple sound card. The alsa support is a plug-in for them and doesn't have anything to do with the volume control.
If a app wants control over the master volume and the uid/guid has rights then it's the job of Alsa to provide access to the master volume. Of course if it was Windows I suppose you would do a hack to detect the XMMS app and then force it to act to what you would considure "correct" behavior. Which wouldn't be that hard to do with Alsa, but that's just not how you do things in Linux.
If you want to see something cool, check out how users can have their own .asoundrc configuration file that alsa apps can use.
It's actually very very cool. As a user you can create your own Alsa devices without having to have rights to any hardware or /dev/ stuff.