[pulseaudio-discuss] "Speaker saver" module to notify when sound is needed and when not
linux.news at bucksch.org
Mon Nov 7 13:58:31 PST 2011
On 07.11.2011 22:38, Tanu Kaskinen wrote:
> On Mon, 2011-11-07 at 10:23 +0000, Colin Guthrie wrote:
>> 'Twas brillig, and Ben Bucksch at 07/11/11 02:55 did gyre and gimble:
>>> On 07.11.2011 03:34, Ben Bucksch wrote:
>>>> Is there a module that can run a (configurable) shell command when
>>>> * sound output is needed, i.e. an application plays a sound, and
>>>> it's not muted
>>>> * no sound output is needed anymore, after a certain configurable
>>>> timeout, e.g. no sound played in the last 120 minutes
>>>> ? Effectively, this would work exactly like a screen saver, just for
>>>> sound, not for the screen/input.
>>> FYI: Ford_Perfect pointed me to
>>> (if anybody has better solutions, please let me know)
>> Ahh interesting. Yeah you could use this to know when PA is playing
>> sound. All you'd need is a simple dbus integration and you could write
>> your app accordingly completely separate of PA.
>> The other option is to get your hands dirty, write a module in PA and
>> use that.
> I don't see why server-side solution would be better in this case.
I didn't claim that. I agree, system-wide or not is irrelevant for this
> Ben, you seemed to think that having mplayer on pause running all the
> time would have this same problem. I don't think that's the case -
> mplayer should set the stream to "corked" state while paused.
> Corked streams don't keep the sink in the "running" state, so just monitoring
> the sink state should be enough.
OK, great, that's good then. I wouldn't know. All I know is that I often
have 2-3 applications listed in pavucontrol, including mplayer on pause
If that's not a problem, and pulse closes the audio device despite this
and therefore notifies via dbus, I'm happy and can try to use this
approach, i.e. write a small dbus app.
> (The device reservation solution might also work well, and if it does,
> it's probably the easiest solution to implement, at least if you're
> already familiar with D-Bus.)
Yes. I'm vaguely familiar with dbus, I used it once before. I found
mozjs-dbus, which has a nice implementation of "listen until service
name X appears" that I can implement in any language.
More information about the pulseaudio-discuss