[pulseaudio-discuss] Moving sources and sinks

Matt Patterson matt at v8zman.com
Fri May 2 11:27:17 PDT 2008

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.


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 at mail.0pointer.de
> https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20080502/cb5fbe37/attachment.htm>

More information about the pulseaudio-discuss mailing list