[pulseaudio-discuss] [PATCH v2 0/6] ucm: Add support for "JackHWMute"
tanu.kaskinen at linux.intel.com
Fri Aug 21 04:46:17 PDT 2015
On Mon, 2015-05-04 at 21:03 +0300, Tanu Kaskinen wrote:
> 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(-)
I agreed with David to push this patch series, even though the patches
haven't been through proper review. This patch series was the last thing
blocking a release candidate, so RC1 should happen soon.
More information about the pulseaudio-discuss