pipewire/spa/plugins/alsa
Alper Nebi Yasak 507ec0b39a alsa-ucm: Set up hardware volumes again on duplicate port additions
While initializing ALSA cards with UCM, we call pa_alsa_ucm_add_port()
for each UCM device for each UCM verb. This checks if a port has been
already added by name and skips port initialization if it is already
done. Different UCM verbs can have devices with the same name, which
means their port names end up being the same. So, this port creation
step currently is only done for one UCM verb for both UCM devices.

Volume control setup is also part of this process. The UCM devices only
know about the volume mixer information from the UCM verb that they are
defined in, so the volume control setup is done for one UCM verb at a
time. Skipping this setup when a same-named port exists means only the
profiles belonging to the first initialized UCM verb have working
hardware volume control.

Move the volume control setup out of the port initialization block so
that we try to do it every time, therefore for every UCM verb. However,
check that we don't run it twice for the same UCM verb for a port.

In theory, the PlaybackVolume etc. value can be different per-verb
for the same device, so we can't simplify this code to a single volume
setup per port.

Link: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/840
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2024-12-07 18:32:48 +00:00
..
acp alsa-ucm: Set up hardware volumes again on duplicate port additions 2024-12-07 18:32:48 +00:00
mixer alsa-card-profiles: move HDMI/AC3 profiles to separate profile set 2024-11-23 14:58:17 +02:00
90-pipewire-alsa.rules Update 90-pipewire-alsa.rules with support for Astro Mixamp Pro TR. 2024-04-01 18:31:10 +00:00
acp-tool.c Fix compilation with -Werror=float-conversion 2024-06-18 12:17:56 +02:00
alsa-acp-device.c alsa-ucm: Set icon names for mappings as well 2024-12-04 20:42:03 +00:00
alsa-compress-offload-device.c spa: alsa: avoid potential uninitialized variable use 2024-09-18 19:54:13 +00:00
alsa-compress-offload-sink.c Fix typos 2024-05-22 09:19:34 +02:00
alsa-pcm-device.c spa: alsa: avoid potential uninitialized variable use 2024-09-18 19:54:13 +00:00
alsa-pcm-sink.c spa: alsa: Add a NULL check before updating rate match 2024-12-05 13:08:04 -05:00
alsa-pcm-source.c spa: alsa: Add a NULL check before updating rate match 2024-12-05 13:08:04 -05:00
alsa-pcm.c alsa: reduce debug level that got accidentally increased 2024-12-03 16:44:45 +01:00
alsa-pcm.h alsa: handle the case where the driver is destroyed 2024-11-15 16:09:36 +01:00
alsa-seq-bridge.c alsa: improve midi port.name 2024-08-26 13:42:09 +02:00
alsa-seq.c profiler: add followerClock block 2024-10-09 11:31:54 +02:00
alsa-seq.h alsa: add UMP support 2024-07-30 09:38:40 +02:00
alsa-udev.c alsa: add option to skip the busy check 2024-03-22 12:42:48 +01:00
alsa.c meson: fix build with missing libudev-devel 2024-02-06 11:49:40 +01:00
alsa.h spa: remove unnecessary indirection for some spa_log_topics 2023-10-06 13:08:24 +00:00
compress-offload-api-util.c alsa-compress-offload: Add device object and udev based autodetection 2023-09-02 08:28:22 +00:00
compress-offload-api-util.h alsa-compress-offload: Add device object and udev based autodetection 2023-09-02 08:28:22 +00:00
compress-offload-api.c alsa-compress-offload-sink: major sink rework 2023-02-24 14:15:13 +01:00
compress-offload-api.h alsa-compress-offload: Add device object and udev based autodetection 2023-09-02 08:28:22 +00:00
meson.build meson: fix build with missing libudev-devel 2024-02-06 11:49:40 +01:00
test-hw-params.c treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
test-timer.c fix compilation some more 2024-06-18 15:41:12 +02:00