]> git.alsa-project.org Git - alsa-lib.git/log
alsa-lib.git
5 days agoconf: NFORCE: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:18:06 +0000 (16:18 +0100)]
conf: NFORCE: define pcm configuration block only one time

There may be multiple NFORCE soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: Maestro3: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:57 +0000 (16:17 +0100)]
conf: Maestro3: define pcm configuration block only one time

There may be multiple Maestro3 soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: Loopback: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:57 +0000 (16:17 +0100)]
conf: Loopback: define pcm configuration block only one time

There may be multiple Loopback soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: ICH,ICH4,ICH-MODEM: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:57 +0000 (16:17 +0100)]
conf: ICH,ICH4,ICH-MODEM: define pcm configuration block only one time

There may be multiple ICH soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: ICE17[12][24]: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:57 +0000 (16:17 +0100)]
conf: ICE17[12][24]: define pcm configuration block only one time

There may be multiple ICE17[12][24] soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: HdmiLpeAudio: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:47 +0000 (16:17 +0100)]
conf: HdmiLpeAudio: define pcm configuration block only one time

There may be multiple HdmiLpeAudio soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: GUS: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:47 +0000 (16:17 +0100)]
conf: GUS: define pcm configuration block only one time

There may be multiple GUS soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: FWSpeakers: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:46 +0000 (16:17 +0100)]
conf: FWSpeakers: define pcm configuration block only one time

There may be multiple FWSpeakers soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: FM801: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:46 +0000 (16:17 +0100)]
conf: FM801: define pcm configuration block only one time

There may be multiple FM801 soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: FireWave: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:46 +0000 (16:17 +0100)]
conf: FireWave: define pcm configuration block only one time

There may be multiple FireWave soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: ES1968: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:45 +0000 (16:17 +0100)]
conf: ES1968: define pcm configuration block only one time

There may be multiple ES1968 soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: ENS137[01]: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:45 +0000 (16:17 +0100)]
conf: ENS137[01]: define pcm configuration block only one time

There may be multiple ENS137[01] soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: EMU10K1X: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:17:45 +0000 (16:17 +0100)]
conf: EMU10K1X: define pcm configuration block only one time

There may be multiple EMU10K1X soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: EMU10K1: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:08:42 +0000 (16:08 +0100)]
conf: EMU10K1: define pcm configuration block only one time

There may be multiple EMU10K1 soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: Aureon51: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 15:08:42 +0000 (16:08 +0100)]
conf: Aureon51: define pcm configuration block only one time

There may be multiple Aureon51 soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: Echo3G: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 11:12:47 +0000 (12:12 +0100)]
conf: Echo3G: define pcm configuration block only one time

There may be multiple Echo3G soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: CS46xx: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 11:12:47 +0000 (12:12 +0100)]
conf: CS46xx: define pcm configuration block only one time

There may be multiple CS46xx soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: CMI8xxx: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 11:12:47 +0000 (12:12 +0100)]
conf: CMI8xxx: define pcm configuration block only one time

There may be multiple CMI8xxx soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: CA0106: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 11:12:47 +0000 (12:12 +0100)]
conf: CA0106: define pcm configuration block only one time

There may be multiple CA0106 soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: AU88[123]0: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 11:12:47 +0000 (12:12 +0100)]
conf: AU88[123]0: define pcm configuration block only one time

There may be multiple AU88[123]0 soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: Aureon: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 11:12:47 +0000 (12:12 +0100)]
conf: Aureon: define pcm configuration block only one time

There may be multiple Aureon soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: Audigy: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 11:12:47 +0000 (12:12 +0100)]
conf: Audigy: define pcm configuration block only one time

There may be multiple Audigy soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 days agoconf: AACI,ATIIXP: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 11:12:47 +0000 (12:12 +0100)]
conf: AACI,ATIIXP: define pcm configuration block only one time

There may be multiple AACI,ATIIXP soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 days agoconf: vc4-hdmi: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 11:12:47 +0000 (12:12 +0100)]
conf: vc4-hdmi: define pcm configuration block only one time

There may be multiple vc4-hdmi soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

BugLink: https://github.com/alsa-project/alsa-lib/issues/488
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 days agoconf: HDA-Intel: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 11:12:47 +0000 (12:12 +0100)]
conf: HDA-Intel: define pcm configuration block only one time

There may be multiple HDA-Intel soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 days agoconf: USB-Audio: define pcm configuration block only one time
Jaroslav Kysela [Wed, 10 Dec 2025 11:12:47 +0000 (12:12 +0100)]
conf: USB-Audio: define pcm configuration block only one time

There may be multiple USB soundcards in the system. Overwrite
the PCM configurations when loaded multiple times.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 days agoRevert "conf: fix load_for_all_cards() - do not merge the card specific contents"
Jaroslav Kysela [Wed, 10 Dec 2025 11:03:29 +0000 (12:03 +0100)]
Revert "conf: fix load_for_all_cards() - do not merge the card specific contents"

This reverts commit eda76146c5653ff1d5bc4b4c53f7a2d5ccc17da2.

Also, revert additional related commits:

  Revert "conf: fix possible memory leak in config_file_open() - error path"
  This reverts commit 2f59398c83b8065fb9ff58939df3a9187746068e.

  Revert "conf: merge card specific contents per file (whole) after parsing"
  This reverts commit a6238053c4fa518b214f99d91a01b96c5ef6e3ca.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 days agoconf: fix possible memory leak in config_file_open() - error path
Jaroslav Kysela [Tue, 9 Dec 2025 17:39:52 +0000 (18:39 +0100)]
conf: fix possible memory leak in config_file_open() - error path

Fixes: a6238053 ("conf: merge card specific contents per file (whole) after parsing")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 days agoconf: merge card specific contents per file (whole) after parsing
Jaroslav Kysela [Tue, 9 Dec 2025 17:04:07 +0000 (18:04 +0100)]
conf: merge card specific contents per file (whole) after parsing

Unfortunately, mentioned fix caused a regression for items stored in one file.
Merge the file contents after parsing not inside parsing process.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2420645
Fixes: eda76146 ("conf: fix load_for_all_cards() - do not merge the card specific contents")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 days agoucm: exec - fix maxfd used warning
Jaroslav Kysela [Tue, 9 Dec 2025 16:48:34 +0000 (17:48 +0100)]
ucm: exec - fix maxfd used warning

Fixes: a068cf08 ("ucm: use closefrom instead of close_range")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
7 days agoucm: use closefrom instead of close_range
Mike Gilbert [Tue, 9 Dec 2025 04:46:17 +0000 (23:46 -0500)]
ucm: use closefrom instead of close_range

closefrom is a library function with a fallback mechanism for when the
kernel does not support the close_range syscall.

Also check for the function properly instead of assuming it is available
with _GNU_SOURCE defined.

Closes: https://github.com/alsa-project/alsa-lib/pull/486
Fixes: https://github.com/alsa-project/alsa-lib/issues/485
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
8 days agoRelease v1.2.15 reltest v1.2.15
Jaroslav Kysela [Sun, 7 Dec 2025 19:41:56 +0000 (20:41 +0100)]
Release v1.2.15

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
11 days agoinclude: fix typo in error.h to avoid compile error when gcc <= 2.95
SimonQian [Wed, 19 Nov 2025 06:46:45 +0000 (14:46 +0800)]
include: fix typo in error.h to avoid compile error when gcc <= 2.95

Closes: https://github.com/alsa-project/alsa-lib/pull/483
Signed-off-by: SimonQian <vsfos@qq.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
12 days agoucm: add ValueGlobals section to the top configuration file
Jaroslav Kysela [Mon, 1 Dec 2025 15:39:15 +0000 (16:39 +0100)]
ucm: add ValueGlobals section to the top configuration file

BootCardGroup and BootCardSyncTime variables should not be listed
by default in _identifiers. Handle them differently using
ValueGlobals section.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
12 days agoucm: fix the DefineRegex issue where multiple variables were set to empty string
Jaroslav Kysela [Tue, 2 Dec 2025 09:59:19 +0000 (10:59 +0100)]
ucm: fix the DefineRegex issue where multiple variables were set to empty string

It is not required to set variables in undefined groups to empty string.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
12 days agoucm: Include directive - add optional behaviour
Jaroslav Kysela [Tue, 2 Dec 2025 09:08:58 +0000 (10:08 +0100)]
ucm: Include directive - add optional behaviour

It may be useful to skip the include when the file does not exist
(make it optional).

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
12 days agoucm: complete dependency graphs for conflicting/supported device lists
Jaroslav Kysela [Mon, 1 Dec 2025 14:56:56 +0000 (15:56 +0100)]
ucm: complete dependency graphs for conflicting/supported device lists

Modify verb_dev_list_check() to ensure all devices in a conflicting or
supported group reference each other. Previously, the function only
ensured bidirectional relationships. Now it ensures all devices in
the same group have complete dependency lists.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
12 days agoucm: implement DeviceVariant configuration extension
Jaroslav Kysela [Thu, 20 Nov 2025 15:11:32 +0000 (16:11 +0100)]
ucm: implement DeviceVariant configuration extension

It may be useful for the channel count specification for example.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
12 days agoucm: implement ValueDefaults.BootCardGroup and define use
Jaroslav Kysela [Mon, 1 Dec 2025 12:32:10 +0000 (13:32 +0100)]
ucm: implement ValueDefaults.BootCardGroup and define use

We need a boot synchronization for multiple UCM cards where linking
is expected like AMD ACP or Intel AVS drivers. This method is
using a timestamp file which can be created and modified during
the boot process (e.g. from the alsactl tool).

The goal is to return a valid UCM configuration for standard
applications combining multiple ALSA cards into one UCM configuration
and cover the time window when all cards have not been probed yet.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2 weeks agoucm: keep original device name for logs
Jaroslav Kysela [Tue, 18 Nov 2025 13:55:25 +0000 (14:55 +0100)]
ucm: keep original device name for logs

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2 weeks agoucm: sort devices by priority
Jaroslav Kysela [Tue, 18 Nov 2025 13:23:18 +0000 (14:23 +0100)]
ucm: sort devices by priority

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agoinclude: list.h - add list_splice() and list_splice_init() functions
Jaroslav Kysela [Tue, 18 Nov 2025 13:37:45 +0000 (14:37 +0100)]
include: list.h - add list_splice() and list_splice_init() functions

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agoucm: doc - add examples for device name with descriptors (colon)
Jaroslav Kysela [Tue, 18 Nov 2025 13:01:29 +0000 (14:01 +0100)]
ucm: doc - add examples for device name with descriptors (colon)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agoucm: be more restrictive for device name with descriptor
Jaroslav Kysela [Tue, 18 Nov 2025 13:00:48 +0000 (14:00 +0100)]
ucm: be more restrictive for device name with descriptor

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agoucm: strip device index when the device type is present only one time
Jaroslav Kysela [Tue, 18 Nov 2025 12:35:06 +0000 (13:35 +0100)]
ucm: strip device index when the device type is present only one time

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agoucm: add support for device names with colon (':')
Jaroslav Kysela [Tue, 18 Nov 2025 12:13:20 +0000 (13:13 +0100)]
ucm: add support for device names with colon (':')

The colon identifier means to automatically assign
a device index for this device.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agoucm: normalize device names
Jaroslav Kysela [Tue, 18 Nov 2025 09:41:06 +0000 (10:41 +0100)]
ucm: normalize device names

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agoucm: add possibility to inline Verb configurations to the main configuration file
Jaroslav Kysela [Mon, 17 Nov 2025 17:36:32 +0000 (18:36 +0100)]
ucm: add possibility to inline Verb configurations to the main configuration file

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agoucm: add Prepend and Append block handling for If conditions (syntax 8+)
Jaroslav Kysela [Mon, 17 Nov 2025 17:00:59 +0000 (18:00 +0100)]
ucm: add Prepend and Append block handling for If conditions (syntax 8+)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agogithub: add coverity.yml
Jaroslav Kysela [Mon, 10 Nov 2025 09:18:22 +0000 (10:18 +0100)]
github: add coverity.yml

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agocoverity.com fixes - initial round
Jaroslav Kysela [Mon, 10 Nov 2025 16:56:27 +0000 (17:56 +0100)]
coverity.com fixes - initial round

This commit tries to fix a bunch of issues found
by coverity.com.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agomixer: abst - reshuffle snd_mixer_simple_basic_register code to be more logical
Jaroslav Kysela [Wed, 12 Nov 2025 09:20:21 +0000 (10:20 +0100)]
mixer: abst - reshuffle snd_mixer_simple_basic_register code to be more logical

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agoseq: fix snd_seq_drain_output return value for partial drain
Jaroslav Kysela [Tue, 11 Nov 2025 15:17:16 +0000 (16:17 +0100)]
seq: fix snd_seq_drain_output return value for partial drain

The processed value was not properly updated thus the partial
flush was not notified properly.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agoseq: hw - notify if running mode / pversion ioctl fails
Jaroslav Kysela [Tue, 11 Nov 2025 15:10:59 +0000 (16:10 +0100)]
seq: hw - notify if running mode / pversion ioctl fails

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 weeks agopcm: plugin - avoid 32-bit to 64-bit return value conversions
Jaroslav Kysela [Tue, 11 Nov 2025 17:33:41 +0000 (18:33 +0100)]
pcm: plugin - avoid 32-bit to 64-bit return value conversions

Several functions were affected. Simplify code without
any functionality change.

Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
4 weeks agoadd missing return value changes for snd_config_get_string() calls
Jaroslav Kysela [Tue, 11 Nov 2025 15:40:36 +0000 (16:40 +0100)]
add missing return value changes for snd_config_get_string() calls

Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
4 weeks agoadd missing return value changes for snd_config_get_id() calls
Jaroslav Kysela [Tue, 11 Nov 2025 15:01:17 +0000 (16:01 +0100)]
add missing return value changes for snd_config_get_id() calls

Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
5 weeks agosnd_tlv_convert_to_dB: Fix mute handling for MINMAX_MUTE type
qaqland [Mon, 15 Sep 2025 06:01:18 +0000 (14:01 +0800)]
snd_tlv_convert_to_dB: Fix mute handling for MINMAX_MUTE type

Ensure the SND_CTL_TLV_DB_GAIN_MUTE value is returned when the calculated
gain equals the minimum dB value for the SNDRV_CTL_TLVT_DB_MINMAX_MUTE type.
The previous check based solely on the volume value could miss cases where
the linear calculation resulted in the minimum gain.

Closes: https://github.com/alsa-project/alsa-lib/pull/478
Signed-off-by: qaqland <anguoli@uniontech.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agodoc: add missing include pcm_plugin.h to source files
Jaroslav Kysela [Fri, 7 Nov 2025 20:52:31 +0000 (21:52 +0100)]
doc: add missing include pcm_plugin.h to source files

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoucm: add missing stdbool.h include to ucm_local.h
Jaroslav Kysela [Fri, 7 Nov 2025 20:51:43 +0000 (21:51 +0100)]
ucm: add missing stdbool.h include to ucm_local.h

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agodoxygen: fix warnings and add missing ALSA_LIBRARY_BUILD define
Jaroslav Kysela [Fri, 7 Nov 2025 20:30:32 +0000 (21:30 +0100)]
doxygen: fix warnings and add missing ALSA_LIBRARY_BUILD define

BugLink: https://github.com/alsa-project/alsa-lib/pull/480
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoconf/pistachio: fix syntax
Olivier Blin [Fri, 1 Aug 2025 16:02:57 +0000 (18:02 +0200)]
conf/pistachio: fix syntax

It was missing closing brackets since its introduction.

Closes: https://github.com/alsa-project/alsa-lib/pull/470
Fixes: 4dfa8f08fb83 ("conf/cards: add support for pistachio-card.")
Signed-off-by: Olivier Blin <olivier.blin@softathome.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agotest: ucm - remove old syntax configuration files (incomplete anyway)
Jaroslav Kysela [Fri, 7 Nov 2025 19:55:07 +0000 (20:55 +0100)]
test: ucm - remove old syntax configuration files (incomplete anyway)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agopcm route: suppress false positive warning for gcc 8+
Jaroslav Kysela [Fri, 7 Nov 2025 19:06:33 +0000 (20:06 +0100)]
pcm route: suppress false positive warning for gcc 8+

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoucm: fix variant issue where variables or macros are overwritten
Jaroslav Kysela [Fri, 7 Nov 2025 16:59:12 +0000 (17:59 +0100)]
ucm: fix variant issue where variables or macros are overwritten

It is necessary to reset the state logic before each verb variant
is parsed. So save the original variable list and macros and
restore them before each parser iteration.

BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/633
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoucm: remove 'error: ' prefix from error messages (duplication)
Jaroslav Kysela [Fri, 7 Nov 2025 15:37:36 +0000 (16:37 +0100)]
ucm: remove 'error: ' prefix from error messages (duplication)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoerror: make prio/interface output a bit shorter in default log handler
Jaroslav Kysela [Fri, 7 Nov 2025 15:31:08 +0000 (16:31 +0100)]
error: make prio/interface output a bit shorter in default log handler

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoerror: add missing log_priority/interface functions to header file
Jaroslav Kysela [Fri, 7 Nov 2025 15:21:05 +0000 (16:21 +0100)]
error: add missing log_priority/interface functions to header file

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoconfigure: bumb version to 1.2.13pre1 (for alsa-utils)
Jaroslav Kysela [Fri, 7 Nov 2025 15:10:17 +0000 (16:10 +0100)]
configure: bumb version to 1.2.13pre1 (for alsa-utils)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoucm: remove uc_dbg macro and callers
Jaroslav Kysela [Fri, 7 Nov 2025 14:58:04 +0000 (15:58 +0100)]
ucm: remove uc_dbg macro and callers

Those debug prints are not much useful now.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoinclude: remove local SNDMSG/SYSMSG defines (no longer used)
Jaroslav Kysela [Fri, 7 Nov 2025 14:48:16 +0000 (15:48 +0100)]
include: remove local SNDMSG/SYSMSG defines (no longer used)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoucm: replace uc_error with snd_error calls
Jaroslav Kysela [Fri, 7 Nov 2025 14:46:16 +0000 (15:46 +0100)]
ucm: replace uc_error with snd_error calls

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoucm: add a basic set of trace/debug log calls
Jaroslav Kysela [Fri, 7 Nov 2025 14:37:11 +0000 (15:37 +0100)]
ucm: add a basic set of trace/debug log calls

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agohuge correction of tabulators and whitespaces
Jaroslav Kysela [Fri, 7 Nov 2025 13:27:38 +0000 (14:27 +0100)]
huge correction of tabulators and whitespaces

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agolog: implement filter based on string configuration (env LIBASOUND_DEBUG).
Jaroslav Kysela [Fri, 7 Nov 2025 11:18:00 +0000 (12:18 +0100)]
log: implement filter based on string configuration (env LIBASOUND_DEBUG).

Examples:

 "debug"                 - Set global level to debug
 "3"                     - Set global level to 3 (info)
 "info,pcm:debug"        - Set global to info, pcm to debug
 "error,mixer:5,pcm:4"   - Set global to error, mixer to 5 (trace), pcm to 4 (debug)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoconfig: do not print errno in snd_config_check_hop()
Jaroslav Kysela [Thu, 6 Nov 2025 15:03:36 +0000 (16:03 +0100)]
config: do not print errno in snd_config_check_hop()

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoreplace SNDMSG,SYSMSG,SNDERR,SYSERR with new log macros
Jaroslav Kysela [Thu, 6 Nov 2025 14:57:13 +0000 (15:57 +0100)]
replace SNDMSG,SYSMSG,SNDERR,SYSERR with new log macros

... with interface identifiers

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoerror: add priority and interface strings to the log messages
Jaroslav Kysela [Thu, 6 Nov 2025 13:45:33 +0000 (14:45 +0100)]
error: add priority and interface strings to the log messages

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoredesign the message log functions
Jaroslav Kysela [Thu, 6 Nov 2025 13:29:54 +0000 (14:29 +0100)]
redesign the message log functions

Add priority level and interface classifiers. Define macros
for all priority level types to keep the callers more readable.
Ensure the compatibility with previous logging mechanism.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 weeks agoerror: do not export internal snd_err_msg variable
Jaroslav Kysela [Mon, 3 Nov 2025 14:57:16 +0000 (15:57 +0100)]
error: do not export internal snd_err_msg variable

This variable was never intended to modify from outside (not in public
headers).

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 weeks agotopology: fix nibble warning in tplg_save_quoted()
Jaroslav Kysela [Mon, 3 Nov 2025 15:12:07 +0000 (16:12 +0100)]
topology: fix nibble warning in tplg_save_quoted()

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 weeks agorawmidi: Fix SNDRV_RAWMIDI_INFO_STREAM_INACTIVE duplicate definition
Jaroslav Kysela [Mon, 3 Nov 2025 15:01:34 +0000 (16:01 +0100)]
rawmidi: Fix SNDRV_RAWMIDI_INFO_STREAM_INACTIVE duplicate definition

The origin of this define is in include/alsa/sound/uapi/asound.h included from
include/local.h. Skip redefinition in the internal build.

Fixes: e6d0db9d ("rawmidi: Fix the prefix of the inactive stream flag")
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 weeks agoconf: fix load_for_all_cards() - do not merge the card specific contents
Jaroslav Kysela [Thu, 18 Sep 2025 09:49:37 +0000 (11:49 +0200)]
conf: fix load_for_all_cards() - do not merge the card specific contents

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 weeks agoconf: fix parse_array_def - merge arrays
Jaroslav Kysela [Thu, 18 Sep 2025 13:34:09 +0000 (15:34 +0200)]
conf: fix parse_array_def - merge arrays

A tiny overlook caused wrong array merge. New compound member must be
always created.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 weeks agoconf: Revert "conf: fix load_for_all_cards()"
Jaroslav Kysela [Thu, 18 Sep 2025 09:03:02 +0000 (11:03 +0200)]
conf: Revert "conf: fix load_for_all_cards()"

This reverts commit ddfc32abf5697de1618b9e7ffdf57a0f97013090.

It was not a correct fix. The private values may differ (multiple
instances for e.g. USB sound cards). This fix prevents to load
private configurations for other instances.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
7 weeks agorawmidi: Fix the prefix of the inactive stream flag
Takashi Iwai [Tue, 28 Oct 2025 12:34:10 +0000 (13:34 +0100)]
rawmidi: Fix the prefix of the inactive stream flag

I copied SNDRV_RAWMIDI_INFO_STREAM_INACTIVE definition as is from the
kernel uapi header, but for alsa-lib, it should have been changed to
SND_ prefix instead.

Put the correct definition while keeping the old SNDRV_ definition for
compatibility (that might be already used by applications).

Fixes: 137eca7720be ("rawmidi: Extensions for tied device and substream inactive flag")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2 months agoconf: fix parse_array_def override code path
Jaroslav Kysela [Thu, 18 Sep 2025 09:00:47 +0000 (11:00 +0200)]
conf: fix parse_array_def override code path

The error may cause segmentation fault and incorrect behaviour.

Closes: https://github.com/alsa-project/alsa-lib/issues/477
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 months agotest: update midifile library to ANSI C
Adam Sampson [Sun, 6 Jul 2025 04:07:45 +0000 (05:07 +0100)]
test: update midifile library to ANSI C

The midifile library used by the playmidi1 program dates from 1989, and
used pre-ANSI function definitions and prototypes. GCC 15 now defaults
to C23 where () means the same as (void) in prototypes, which causes
type mismatch errors.

Update the code to use ANSI function definitions and prototypes, so
it'll compile happily as anything from ANSI C to C23. This revealed that
playmidi1's do_tempo had the wrong argument type, so correct that as
well.

Closes: https://github.com/alsa-project/alsa-lib/pull/463
Signed-off-by: Adam Sampson <ats@offog.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 months agoucm: use close_range on _GNU_SOURCE
Jochen Sprickerhof [Sun, 15 Jun 2025 08:10:52 +0000 (10:10 +0200)]
ucm: use close_range on _GNU_SOURCE

Closes: https://github.com/alsa-project/alsa-lib/pull/459
Signed-off-by: Jochen Sprickerhof <git@jochen.sprickerhof.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 months agoForce to use alphasort64() sorting function for Harmony OS
wyjstrong [Tue, 29 Jul 2025 06:58:43 +0000 (14:58 +0800)]
Force to use alphasort64() sorting function for Harmony OS

Closes: https://github.com/alsa-project/alsa-lib/pull/467
Signed-off-by: wyjstrong <wyjstrong@163.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
4 months agopcm: add a loop to snd_pcm_avail_delay() to avoid bogus delay values
Kai Vehmanen [Thu, 31 Jul 2025 12:37:33 +0000 (15:37 +0300)]
pcm: add a loop to snd_pcm_avail_delay() to avoid bogus delay values

snd_pcm_avail_delay() is expected to report avail and delay values
in atomic fashion. However the function does two separate syscalls
and it cannot guarantee the avail value is the same as was used
to calculate the delay. This is a problem as the reported delay is
always relative to avail frames value.

If application (like e.g. alsa_conformance_test) uses snd_pcm_avail_delay()
to estimate the effective play position, it can observe bogus delay
values (and effective play position going backwards) if
snd_pcm_avail_delay() is called during a DMA burst where hw_ptr
moves quickly.

This commit adds a loop similar to that used in snd_pcm_hw_htimestamp()
to wait until we get a stable avail reading, and only then extract
the delay. This will avoid bogus values if function is called during
DMA bursts.

Closes: https://github.com/alsa-project/alsa-lib/pull/469
Closes: https://github.com/alsa-project/alsa-lib/issues/468
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
5 months agoucm: regex: fix the error message (missing argument)
Jaroslav Kysela [Thu, 26 Jun 2025 09:33:15 +0000 (11:33 +0200)]
ucm: regex: fix the error message (missing argument)

Link: https://github.com/alsa-project/alsa-ucm-conf/pull/580
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
6 months agoconf: aliases: add hda-acpi -> HDA-Intel alias
Daniel Dadap [Thu, 15 May 2025 13:32:35 +0000 (08:32 -0500)]
conf: aliases: add hda-acpi -> HDA-Intel alias

The new snd_hda_acpi driver in Linux exposes the existing Azalia
interface to non-PCI devices advertised over ACPI. Add an alias
to the existing HDA-Intel configuration file so that devices using
this driver can be discovered properly.

Signed-off-by: Daniel Dadap <ddadap@nvidia.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
7 months agomixer: bag - fix bag_del_all implementation (missing free)
Jaroslav Kysela [Fri, 9 May 2025 07:55:00 +0000 (09:55 +0200)]
mixer: bag - fix bag_del_all implementation (missing free)

The bag1_t structure must be freed, too.

Fixes: https://github.com/alsa-project/alsa-lib/issues/453
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
7 months agogithub: fix Fedora workflow (awk package dependency)
Jaroslav Kysela [Thu, 24 Apr 2025 13:16:12 +0000 (15:16 +0200)]
github: fix Fedora workflow (awk package dependency)

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
7 months agoRevert "ucm: do not bump syntax version to 8"
Jaroslav Kysela [Thu, 24 Apr 2025 11:25:30 +0000 (13:25 +0200)]
Revert "ucm: do not bump syntax version to 8"

This reverts commit e51cba0973d97d8a4c3d2d5896b203d8c3628c89.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
8 months agoRelease v1.2.14 v1.2.14
Jaroslav Kysela [Mon, 14 Apr 2025 16:42:04 +0000 (18:42 +0200)]
Release v1.2.14

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
8 months agoseq: seqmid - use correct snd_strlcat instead snd_strlcpy in update_group_ports()
Jaroslav Kysela [Mon, 14 Apr 2025 16:36:45 +0000 (18:36 +0200)]
seq: seqmid - use correct snd_strlcat instead snd_strlcpy in update_group_ports()

Fixes: a4e47461 ("seq: update_group_ports - rewrite blknames update")
Suggested-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
8 months agoadd snd_strlcat() function
Jaroslav Kysela [Mon, 14 Apr 2025 16:34:45 +0000 (18:34 +0200)]
add snd_strlcat() function

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
8 months agoucm: do not bump syntax version to 8
Jaroslav Kysela [Mon, 14 Apr 2025 07:44:40 +0000 (09:44 +0200)]
ucm: do not bump syntax version to 8

The new code for syntax 8 is not widely tested. Postpone it for next
alsa-lib release.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>