pipewire/spa/plugins/alsa/acp
Alper Nebi Yasak 7d2e824e97 acp: Disable active UCM profile before enabling Pro Audio profile
While switching to the Pro Audio profile from a UCM profile, the active
UCM profile is not disabled because the devices may need a UCM verb to
be set before being used. Then, switching away from the Pro profile to a
UCM profile is done by passing the Off profile as the old profile,
instead of the actually-still-enabled UCM profile.

This means the devices from the old UCM profile are kept enabled when we
try to switch to another UCM profile. And the devices to enable may be
conflicting with the still-enabled devices, which will cause failures.

To avoid this, we need to tell the UCM code to disable the profile when
switching away from it. Doing so disables UCM devices and the UCM verb.
Existing code sets the highest priority UCM verb before probing the Pro
profile, so manually enable the same one here as well, instead of
relying on unclean state from whatever profile that was last active.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-12-04 15:34:48 +00:00
..
acp.c acp: Disable active UCM profile before enabling Pro Audio profile 2023-12-04 15:34:48 +00:00
acp.h acp: add support for hiding profiles and ports 2023-11-30 17:40:48 +01:00
alsa-mixer.c alsa-util: Perform format and rate detection before setting HW params 2023-12-04 15:34:48 +00:00
alsa-mixer.h alsa-ucm: Let profiles know their associated UCM verb 2023-12-04 15:34:48 +00:00
alsa-ucm.c acp: Don't sync hardware volumes while UCM device is disabled 2023-12-04 15:34:48 +00:00
alsa-ucm.h acp: Don't sync hardware volumes while UCM device is disabled 2023-12-04 15:34:48 +00:00
alsa-util.c alsa-util: Fix pa_alsa_get_supported_formats fallback. 2023-12-04 15:34:48 +00:00
alsa-util.h alsa-util: Perform format and rate detection before setting HW params 2023-12-04 15:34:48 +00:00
array.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
card.h acp: add option to set Pro Audio channels 2023-01-31 15:59:39 +01:00
channelmap.h acp: don't mix non-AUX and AUX channels 2022-06-02 12:54:04 +02:00
compat.c spa: alsa: fix leaks in get_data_path() 2023-11-10 03:29:49 +01:00
compat.h alsa-ucm: Remove combination port generation logic 2023-12-04 15:34:48 +00:00
conf-parser.c config.h is a local header, not a system one 2021-06-10 09:04:16 +10:00
conf-parser.h alsa-acp: Add libacp based card device 2020-07-06 12:20:09 +02:00
device-port.h Fix typos 2021-04-30 07:40:20 +00:00
dynarray.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
hashmap.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
idxset.h acp: Add idxset comparison and reverse search operations 2023-12-04 15:34:48 +00:00
llist.h alsa-acp: Add libacp based card device 2020-07-06 12:20:09 +02:00
meson.build treewide: meson.build: use dependency variable for SPA 2021-12-28 18:34:06 +01:00
proplist.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
volume.h alsa: get rid of non-portable isinf use 2023-08-31 10:37:22 +00:00