On Wed, 05.07.06 09:13, Shahms King (shahms at shahms.com) wrote: > Hello all, Hi! > As part of a course I'm taking on open source development this summer, > I'd like to (finally) implement some of these ideas and get feedback on > the feasibility and acceptability of some of them. As I see it, there > are a number of parts that need to be implemented to get hotplug of > audio devices (think USB audio) working seamlessly. > > First is hal integration. Although not strictly necessary, it's "low > hanging fruit" and would obviate the /proc parsing within module-detect > while allowing for cleanly loading and unloading modules upon device > addition and removal. HAL integration is a top item on my todo list. (see the "todo" file included in the source tree) It's actually not *that* low hanging fruit, because you need to come up with a decent DBUS event loop wrapping, which might not be trivial. > Second, a module similar to module-combine that handles (slave) device > addition and removal sanely, rather than unloading itself when any of > the slave modules in unloaded. There are a number of different > possibilities for this, but my current thinking is a module that listens > for new sinks to be added and adds sinks matching a configurable pattern > as slaves. This is a nice idea. I didn't think of integrating hotplug stuff with module-combine, but I guess this would make a lot of sense. Right now PA doesn't support "hot" moving of streams between sinks. The code implementing this can get quite complicated, if you want to do it properly (because of the handling of the latency), but I actually already started to work on this. You can expect that this will be available in PA in a few weeks. I guess it makes a lot of sense to beef up the current module-combine to have a mode where it automatically adds all hardware sinks to the slave set, whenever they become available. For this to work cleanly we should add a new flag to the pa_sink structure for declaring whether a sink is an actual HW sink, or is more something like a virtual SW sink (such as module-null-sink, rtp or even combine itself) > Those two are the low-hanging fruit that I can likely at least get > started in the amount of time I have. The others basically consist of: > moving clients between sinks, reconfiguring existing sinks, and more > fully exploiting the capabilities of the hardware where appropriate. > Ideally, I'll have patches implementing modules for hal integration and > hopefully 'autocombine' by the end of the summer and would mainly like > to get your thoughts on the acceptability of said modules for upstream > inclusion... We are definitely interested in this stuff. As I said above, HAL integration was on my TODO list anyway, and the module-combine stuff is a very nice idea. The "hot" moving of streams between sinks is something I will do myself and commit in a few weeks. I am looking forward to your work on PA. If you need any help or have any questions, ask them on this ML or even better on the IRC channel #pulseaudio on irc.freenode.org. If you start working on one of the items (e.g. HAL), please tell me so, i will mark this in the todo list then. Thanks, Lennart -- Lennart Poettering; lennart [at] poettering [dot] net ICQ# 11060553; GPG 0x1A015CC4; http://0pointer.net/lennart/