Lennart Poettering wrote:
- pulseaudio, using hal-detection and "combined" device: doesn't work
because a removed device is never reinserted into the combined device;
Of course it is. Just install PA 0.9.7 or newer.
Nope, really.
The relevant config file sections (using pa 0.9.7):
***
load-module module-hal-detect load-module module-combine sink_name=all -> master=alsa_output.pci_8086_27d8_alsa_playback_0 -> slaves=alsa_output.usb_device_8bb_2704_noserial_if0_alsa_playback_0 -> adjust_time=5 resample_method=src-sinc-best-quality
- or -
load-module module-detect load-module module-combine sink_name=all master=alsa_output.hw_0 -> slaves=alsa_output.hw_1 adjust_time=10 -> resample_method=src-sinc-best-quality
- or -
load-module module-alsa-sink device=hw:0 format=s16 rate=44100 -> channels=2 sink_name=alc883 channel_map=left,right load-module module-alsa-sink device=hw:1 format=s16 rate=44100 -> channels=2 sink_name=jvc channel_map=left,right load-module module-combine sink_name=all master=alc883 slaves=jvc -> adjust_time=10 resample_method=src-sinc-best-quality
***
-> is line continuation
These combinations all yield the same result: at startup I have an "all" sink that combines both devices, and does that pretty well, I must say. But as soon as the USB device is removed, it is removed from the combined "all" sink. Then when the USB device is reinserted, it gets detected (module-hal-detect) or not (module-detect, static config). Using module-hal-detect the reinserted just sits there, it isn't added to the combined sink. Using the other methods, it's not even detected that the USB device is back...
The only solution I can think of, is a udev script that casts some magic spells towards pulse when the USB device is inserted or removed... But then I could skip pulse altogether, because mpd has an option to activate and deactivate selected outputs at runtime, as well.