You are not logged in.
Hey,
I have an htpc box with arch. It mainly runs xbmc and steam.
It is connected via hdmi to a TV.
I have installed pulse audio and I would like the sound to switch to headphones
when they are plugged into the front headphone jack.
When no headphones are plugged in, the sound should be output to hdmi.
Both devices work and I can play a sound on the TV with
aplay -D plughw:0,8 /usr/share/sounds/alsa/Front_Right.wav
and on the headphones with
aplay -D plughw:1,0 /usr/share/sounds/alsa/Front_Right.wav
Detection of plugged in headphones seems to work as well.
Here is a diff of pacmd list-sinks with headphones plugged in and plugged out:
$ diff sinks_plugged_in sinks_plugged_out
128c128
< analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: yes)
---
> analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: no)
Here are the outputs of some other commands i thought might be useful:
pacmd list-cards
pacmd list-sinks
aplay -lL
My pulseaudio config can be found here:
/etc/pulse/default.pa
I don't know how I can achieve this. All I found was guides on how to turn this feature off,
giving me the impression that it is supposed to be turned on by default ?!
I am very greatful for any help and am happy to supply additional info if required.
Offline
Sorry to bump my own thread, but I still haven't found a solution for this.
On my Linux Mint laptop, auto switching from the built in speakers to the headphones worked out-of-the-box,
so I guess this should be, in general, possible.
Offline
Sorry to bump my own thread, but I still haven't found a solution for this.
On my Linux Mint laptop, auto switching from the built in speakers to the headphones worked out-of-the-box,
so I guess this should be, in general, possible.
That is probably an internal feature of pulseaudio or even a hardware feature of your laptop. Do you look for something like this?
I would check if udev recognizes that headphones are plugged in/out (udevadm monitor), create a rule and a script setting the default output via pacmd. Or create a systemd service, or your own script periodically checking the status.
I am not using PulseAudio any more since a long time ago, so things might have changed and there might be modules for this.
Last edited by emeres (2014-05-08 19:55:04)
Offline
Do you look for something like this?
I am not sure. I had a look at the code (I dont know Perl, though), and it seems that, in the end, all it does is issuing
pacmd set-default-sink x
However, when I do this manually, it doesnt switch the sound to the other sink.
I would check if udev recognizes that headphones are plugged in/out (udevadm monitor), create a rule and a script setting the default output via pacmd. Or create a systemd service, or your own script periodically checking the status.
Unfortunately, udev does not seem to detect plugging in or out
(udev monitor doesnt output anything when I plug headphones in or out).
However, I can see the change in pacmd list-sinks as described above.
When I set pulse log level to debug, I also get some output from there, indicating that it gets recognized:
D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now unplugged
D: [pulseaudio] device-port.c: Setting port analog-output-headphones to status no
D: [pulseaudio] module-switch-on-port-available.c: finding port analog-output-headphones
D: [pulseaudio] module-alsa-card.c: Jack 'Front Headphone Jack' is now plugged in
D: [pulseaudio] device-port.c: Setting port analog-output-headphones to status yes
D: [pulseaudio] module-switch-on-port-available.c: finding port analog-output-headphones
Offline
So you want to switch already running audio to another sink on the fly?
Offline
So you want to switch already running audio to another sink on the fly?
Yes, exactly.
Offline
I do not know if that is easily possible. I would create a device for both TV/Box and headphones, and then mute the appropriate channels, when sink status changes on un-/plugging. Since you have that feature with your laptop, look it up. See what modules pulseaudio loads and what changes are made. (If it is not a hardware feature)
Offline