pasuspender provides a convenient way to suspend sources/sinks for the duration of a child process. This is for instance useful to allow PulseAudio to hand over ALSA devices to JACK dynamically. However it is common to only want to hand one single device to JACK, so with multiple ALSA devices or otherwise non-trivial PulseAudio setups the current behavior of suspending all sinks/sources is not satifactory.
Created attachment 51317 [details] [review] Proposed patch
For Jack interoperability, there's the device reservation protocol implemented in Pulseaudio and Jack which allows Jack to tell Pulseaudio via D-Bus to release the Alsa devices when Jack starts up, so from that point of view this patch seems to solve an already solved problem. However, I'm not following the Jack scene closely, so I don't know what the current situation is, but if there's still separate "Jack 1" and "Jack 2" in wide use, of which only the latter uses D-Bus, then I guess this makes sense with "Jack 1". Anyway, the functionality seems generally useful to me, so I have nothing against the patch (except maybe some coding style things like "else while"), I'm writing this mostly just because the justification seemed a bit strange...
Yes, I'm using JACK1, which seems to be pretty common still. The current official statement seems to be that JACK2 will not replace JACK1 in the foreseeable future, and they will live side by side... http://trac.jackaudio.org/wiki/Q_differenc_jack1_jack2
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/555.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.