So I finally ended up writing something. It took longer than expected, partially because I first tried to instead update module-device-manager to become more port aware, but at the end of the day, there were just too many things that seemed difficult to transform into something that made sense to me. (As you see, there are not many rows that are the same as in module-device-manager...) So I made this module instead, perhaps more streamlined for the unity/gnome use case rather than KDE's. As a result, this module currently lacks this functionality that module-device-manager has: * Protocol extensions * Role based routing * Device description management None of the above seem impossible to implement if there's a desire for it, but I'm not sure exactly how to map gnome style user actions into something role based. Oh, and an implementation side note. I kept all hooks in a dynarray. Why don't we do that in all modules? Less code ftw :-) Consider the code experimental for now - I haven't tested everything well enough to feel confident about merging it. I still wanted to show it, in order for people to know what I'm up to, review, test and so on. After all it's a frequently asked for feature so maybe some testers would be interested in helping out :-) David Henningsson (3): core, namereg: Add hook for when default sink/source changes module-port-manager: Add new port manager module default.pa: Load module-port-manager instead of module-switch-on-port-available src/Makefile.am | 8 + src/daemon/default.pa.in | 5 +- src/modules/module-port-manager.c | 788 ++++++++++++++++++++++++++++++++++++++ src/pulsecore/core.h | 2 + src/pulsecore/namereg.c | 2 + 5 files changed, 802 insertions(+), 3 deletions(-) create mode 100644 src/modules/module-port-manager.c -- 1.9.1