On 05/02/2013 02:37 PM, Arun Raghavan wrote:
On Thu, 2013-05-02 at 12:55 +0200, David Henningsson wrote:
Just had an idea which I'll write down here before I forget it again...and I'm not saying I'll implement this anytime soon either, but here goes:
There is a device reserve protocol between PulseAudio and JACK2 - when JACK needs the sound card, it'll send a dbus message to PulseAudio and grab a name in D-Bus.
However, there are plenty of applications who like to access ALSA directly, without going through JACK2 or PulseAudio. By making a "reserve" plugin, we could have this functionality for those apps too.
In practice, if the app usually opens "plughw:0" or "hw:0", it could instead open "reserve:plughw:0" or "reserve:hw:0" to also reserve the device from PulseAudio usage while the device is open. Meanwhile, PulseAudio is free to use other audio devices (which is not the case when using e g pasuspender).
How does that sound?
Might be neat to do have desktops set up to do this whenever an ALSA device is opened (that is do it unconditionally when hw:X or plughw:X is opened).
Including when PA opens it? :P
I would prefer to do it explicitly, due to the possible overhead of talking to D-Bus.
One could possibly imagine it being done automatically with plughw, but definitely not with hw only because that's meant to be as low as you can possibly get.