On Fri, Feb 2, 2018 at 4:27 PM, Samuel Thibault <sthiba...@debian.org> wrote:
> Hello,
> Samuel Thibault, on sam. 06 janv. 2018 14:45:04 +0100, wrote:
>> Scott Leggett, on sam. 06 janv. 2018 23:47:42 +1100, wrote:
>> > can deal with devices being assigned to them and going away.
>> It seems promising but I need more details. At which layer does this
>> happen? Does pulseaudio have hooks for this? I.e. espeakup would provide
>> hooks for relieving the audio device when pulseaudio feels the need to?
>> It seems to me that it's the kind of approach which would work.
> I haven't had any feedback on this.  What is meant by "assigned to them
> and going away"?  Which pulseaudio functions implements this?  I have
> looked for "going", "away", "destroy", etc. in the pulseaudio headers (I
> didn't find any other documentation in the source package), to no avail.
> Do you have ideas on which keywords I should look for in pulseaudio?
> (I'm fine with diving in the source coed, I'd just rather not start
> without any clue what to look for)

There are two mechanisms by which pulseaudio coordinates device access.

The first one is the `uaccess` mechanism provided by udev. Pulseaudio
monitors the device for ACL changes, and releases it when the device
is no longer accessible to the user. This is how pulseaudio drops
access to the device when switching VT.

The second one is a dbus negotiation protocol. It is described
here[1]. Currently it is respected by at least pulseaudio, jack2 and
kodi. The pulseaudio support is implemented in src/modules/reserve*.

[1] http://git.0pointer.net/reserve.git/tree/reserve.txt


Felipe Sateler

Reply via email to