pipewire/spa/plugins/alsa/acp
Pauli Virtanen c89acd3e1c alsa: acp: fix volume rounding down causing mute
Some ALSA devices have minimum HW volume value that is muted.  ALSA
indicates it with SND_CTL_TLV_DB_GAIN_MUTE = -9999999 dB/100 volume dB.
When rounding down to HW volume, we may get this muted value.

When determining splitting of volumes to mixers and soft volume, we
don't want HW mixers to set volume to muted, unless the target volume is
actually muted.

Fix by adding element_ask_unmuted_dB_vol() that rounds up if the asked
rounding mode resulted to mute.

This fixes mic getting muted at low volume despite ALSA reporting the dB
values correctly.

Fixes #4890
2025-10-14 08:02:23 +00:00
..
acp.c spa: alsa: Add option to use ELD-detected channels 2025-10-10 09:34:43 +00:00
acp.h spa: alsa: Read and expose channel count and position from ELD 2025-10-10 09:34:43 +00:00
alsa-mixer.c alsa: acp: fix volume rounding down causing mute 2025-10-14 08:02:23 +00:00
alsa-mixer.h spa: acp: Allow Volume control which supports mute to be used as a hardware mute 2025-05-05 07:40:29 +00:00
alsa-ucm.c spa: alsa: fix some coverity warnings 2025-06-14 14:38:26 +03:00
alsa-ucm.h spa: acp: indicate ALSA UCM profile errors in UIs 2025-03-13 21:25:55 +00:00
alsa-util.c spa: alsa: Read and expose channel count and position from ELD 2025-10-10 09:34:43 +00:00
alsa-util.h spa: alsa: Read and expose channel count and position from ELD 2025-10-10 09:34:43 +00:00
array.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
card.h spa: alsa: Add option to use ELD-detected channels 2025-10-10 09:34:43 +00:00
channelmap.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
compat.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
compat.h spa: alsa: fix some coverity warnings 2025-06-14 14:38:26 +03: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 *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
dynarray.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
hashmap.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
idxset.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01: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 *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
volume.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00