[pulseaudio-discuss] [PATCH v2 0/6] ucm: Add support for "JackHWMute"
Tanu Kaskinen
tanu.kaskinen at linux.intel.com
Mon May 4 11:03:39 PDT 2015
Here's v2 for supporting UCM's JackHWMute. What used to be only one
patch is now six patches, to make the review experience even more
pleasant. There are several changes beyond just splitting the
patch into smaller pieces:
- Instead of creating one jack object per UCM device name, there's
now one jack object per kcontrol. The reason for this is that I
gained motivation to refactor the jack handling in the traditional
mixer code too, and I plan to unify both code bases to use the one
jack per kcontrol model, which I think is the most conceptually
clear approach (creating one jack object per physical jack would be
even better, but Linux doesn't provide the necessary information to
implement that).
- Removed input and output jack separation. UCM doesn't support
specifying separate jacks, and pretending otherwise made working
with the code more difficult than necessary.
- JackHWMute can actually contain more than one device (use-case.h
documentation patch has been sent to alsa-devel). The code was
updated to reflect this.
- UCM ports are now initialized with unknown availability to match
the traditional mixer code. This revealed a couple of bugs, which
are now fixed:
- When the jack state was changed, the order of updating ordinary
and hw-mute devices' port availability was "wrong":
module-switch-on-port-available didn't like the original order.
Doing the updates in a different order made
module-switch-on-port-available happy. (There's a wall of text
comment in the code to explain the details.)
- In v1, I did not take pa_alsa_jack.has_control into account when
updating port availability. That didn't seem to have much effect
when ports were initialized with "yes" availability, but with
"unknown" this bug became visible. Now has_control is always
considered when updating the port availability.
- Added pa_alsa_jack_new() and pa_alsa_jack_free(). That's a minor
refactoring that I felt was useful.
Tanu Kaskinen (6):
alsa: Add pa_alsa_jack_new() and pa_alsa_jack_free()
ucm: Don't create separate input and output jacks
alsa: Add associations between jacks, UCM devices and UCM ports
alsa: Move UCM port availability updating to the mixer code
ucm: Create only one jack object per kcontrol
ucm: Add support for "JackHWMute"
src/modules/alsa/alsa-mixer.c | 138 ++++++++++++++++---
src/modules/alsa/alsa-mixer.h | 10 ++
src/modules/alsa/alsa-ucm.c | 268 +++++++++++++++++++++++++++++++-----
src/modules/alsa/alsa-ucm.h | 16 ++-
src/modules/alsa/module-alsa-card.c | 19 +--
src/pulsecore/device-port.c | 14 +-
6 files changed, 401 insertions(+), 64 deletions(-)
--
1.9.3
More information about the pulseaudio-discuss
mailing list