So I think what I would do is make a "combined" sink for each class of data that routes all audio to all sources. If you disable the module to gets rid of idle streams this will leave you with active but corked streams to all output devices from each sink. You can then update which streams are muted. If you need to do this literally stream by stream (as in playback event by playback event) this might not work because I am just using the text interface (basically what pacmd is) and would have no way of being notified when a new stream is played. If on the other hand the routing is more global and based on external events you could easily update the current config and then all future sounds would play as expected.

I'm not at home right now, but I will try to remember to forward my code tonight or tomorrow morning. If you really can't wait I sent an older version to the mailing list a while back, it should be in the archives.

Matt


Nick Thompson wrote:
Awesome Matt, if you can share your source I would love to see it.

What you are doing sounds interesting.

For my app I'd like to have two classes of data. For arguments sake these are "normal" and "alert". Normal audio (mp3, wav, application data) needs to be routed to the currently selected output. Alert audio, which would include system sounds, tactile feedback and the like, would need to be routed to a different source (and possibly also the default output source as well). Initially I was looking at some sort of stream tagging mechanism using something like the class filed in ALSA, but this is clunky and I cannot guarantee that all audio will pass through alsa (for example the gstreamer pulse plugin looks interesting for certain apps). At the moment I'm trying to prototype this on a regular x86 desktop system, later I'll move it to an embedded system, once I've figured out a means to implement it.

It think the issue I have can be described as follows: based on my current understanding I would need to track every stream to determine where to route it. I'd like to cluster my normal and alert streams together and route them all en-masse to a sink.

Thanks!!

Nick


On May 2, 2008, at 10:37 AM, Matt Patterson wrote:
I do agree that coding for pulse can be a steep learning curve, which is why I opted to build all my solutions by simply connecting to the text mode control socket and sending commands/parsing text output. I have built what is essentially a multiplex audio switch allowing any of x number input sources to play out of any x number of output sinks, all controlled via a python or php app.
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss

Reply via email to