On 2015-02-12 14:11, Tanu Kaskinen wrote:
"JackHWMute" is a UCM device value that, if set, indicates that the
jack of the device mutes some other device at the hardware or driver
level. A common example would be a headphone jack that mutes built-in
speakers. PulseAudio should show such auto-muted devices as
unavailable.
Previously there was only a simple relationship: each UCM device was
related to one jack and vice versa. Now each device is still related
to exactly one jack, but each jack can be related to two devices: one
that the jack enables, and one that the jack disables (mutes).
Sorry for chiming in this late, but...
Can we instead duplicate the jack, like we do for non-UCM, and set
jack->state_plugged -> PA_AVAILABLE_NO / jack->state_unplugged ->
PA_AVAILABLE_YES for the HWMute jack functionality?
It looks like this would enable us to share code between UCM and non-UCM
code paths instead of duplicating similar functionality.
Also, we would then get automatic support for use cases like "Line Out"
which should only be available if both a) "Line Out Jack" is plugged in
and b) "Headphone Jack" is unplugged.
The patch adds pa_alsa_jack_set_plugged_in() to encapsulate the logic
of marking the appropriate ports available/unavailable.
pa_alsa_jack_set_plugged_in() propagates the status to UCM devices,
and the devices propagate the status further to ports.
...and then my suggestion would be remain connecting the ports directly
to the jacks, like we make use of today in report_port_state.
(The UCM devices do not need to have availability at all.)
Previously the
logic of mapping jack status to port availability was done by
module-alsa-card.c, which I think is not the right place, so I didn't
want to add the UCM "mute jack" logic there.
I don't mind moving jack availability logic from module-alsa-card to
somewhere you find more fitting. This applies to both UCM and non-UCM code.
Btw, I also agree with Arun that ports should be of unknown availability
in case they have no jacks at all connected to them.
--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss