Release v1.2.16
Core
- Release v1.2.16
- INSTALL: update compilation from git sources
- configure: update to autoconf v2.72
ALSA Control (alsactl)
- aplay, alsactl, topology: fix discards const from pointer target
- Remove more generated files on "make clean"
Speaker Test
- speaker-test: extend MAX_CHANNELS from 16 to 32
- speaker-test: fix segfault with more than 16 channels
aconnect
- aconnect: fix error handler for alsa-lib <= 1.2.15
alsa-info.sh
- alsa-info.sh: remove some bashisms to allow run with busybox
alsaloop
- alsaloop: parse_config(): align optstring order with the long options
- alsaloop: parse_config(): handle long form --wake option
- alsaloop: parse_config(): drop unused 'F' option
- alsaloop: parse_config(): handle short form -B / -E options
alsatplg (topology)
- aplay, alsactl, topology: fix discards const from pointer target
amixer
- amixer: always use line buffering for (s)events
- amixer: document --file option in man page
- amixer: support --file option
- amixer: support infinite line length for --stdin option
aplay/arecord
- aplay, alsactl, topology: fix discards const from pointer target
- Remove more generated files on "make clean"
- aplay: use snprintf instead of sprintf in device_list()
gitcompile
- gitcompile: extensions for gettext and error handling
- configure: update to autoconf v2.72
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Line buffering is the obviously correct mode for (s)events, but block
buffering would typically be used when piping its output to another
program.
Closes: https://github.com/alsa-project/alsa-utils/pull/306
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
The 'd' and 'm' options were not in the same order as the long options. Fix
that.
No functional change, but makes it easier to ensure they are kept in sync.
Closes: https://github.com/alsa-project/alsa-utils/pull/317
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
The usage info documents a long form --wake option:
"-W,--wake process wake timeout in ms\n"
But it wasn't handled:
alsaloop --wake 42
alsaloop: unrecognized option '--wake'
Fix that.
Closes: https://github.com/alsa-project/alsa-utils/pull/317
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
It is not documented in the usage info, no corresponding long option and is
not handled in the parsing, so drop it from the optstring.
Closes: https://github.com/alsa-project/alsa-utils/pull/317
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
The usage info documents both short and long form arguments for these:
"-B,--buffer buffer size in frames\n"
"-E,--period period size in frames\n"
But the short form was missing from the optstring so it wasn't accepted:
alsaloop -B 123 -E 42
alsaloop: invalid option -- 'B'
alsaloop: invalid option -- 'E'
Fix that.
Closes: https://github.com/alsa-project/alsa-utils/pull/317
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
get_channel_name() was accessing the channel_name array without bounds
checking. When using more than 16 channels without a channel map, it
would read past the end of the array and crash.
Closes: https://github.com/alsa-project/alsa-utils/pull/319
Signed-off-by: Geoffrey D. Bennett <g@b4.vu>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Allows to read commands directly from file.
Refactor exec_stdin() to exec_file() function to support generic files.
Closes: https://github.com/alsa-project/alsa-utils/pull/321
Signed-off-by: Mikhail Ivashinenko <miuivashinenko@salutedevices.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Since glibc-2.43:
For ISO C23, the functions bsearch, memchr, strchr, strpbrk, strrchr,
strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr that return pointers
into their input arrays now have definitions as macros that return a
pointer to a const-qualified type when the input argument is a pointer
to a const-qualified type.
https://lists.gnu.org/archive/html/info-gnu/2026-01/msg00005.html
Closes: https://github.com/alsa-project/alsa-utils/pull/322
Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
sprintf() does not perform bounds checking. Replace it with snprintf()
using sizeof(name) to follow safer coding practices and make the buffer
size explicit, consistent with how similar fixes have been applied
elsewhere in the codebase
Signed-off-by: Nishant Kumar Singh <nishantsingh2jan1998@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Release v1.2.15.2
Core
- Release v1.2.15.2
ALSA Control (alsactl)
- alsactl: fix sequence to clean card specific config files for UCM
- alsactl: add missing call to clean card specific config files
alsaloop
- alsaloop: only log xrun debug messages when verbose
aplay/arecord
- aplay: add support for G.711 A_LAW enconding in AU file format
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Xruns can happen quite often (E.G. continuously when using alsaloop to/from
the UAC gadget driver without a connected host), so only log the debug
messages when verbose logging has been requested to not flood the logs.
Closes: https://github.com/alsa-project/alsa-utils/pull/302
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
At the time being, aplay only supports G.711 µ-law, 8-bits PCM and
16-bits PCM encodings for the AU format while the AU format supports
many more.
In Europe the most G.711 used encoding is the A-law, which is also
part of the encodings supported by the AU file format.
Add support for that encoding in aplay.
Closes: https://github.com/alsa-project/alsa-utils/pull/297
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
For UCM, card-specific config files should be removed only when the fixed
boot flag is set or if the card is not the primary card in a given card
group.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
The card specific configuration files created at runtime must
be removed before UCM fixed boot sequence in the standard
restore operation.
Fixes: https://github.com/alsa-project/alsa-lib/issues/492
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Add the break before the default case back. Otherwise, all cases will
fall into the default/error case.
Closes: https://github.com/alsa-project/alsa-utils/pull/315
Fixes: e78583ab7c ("aplay: reorganize format handling in begin_wave()")
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
create the conf directory as part of the edit recipe
Closes: https://github.com/alsa-project/alsa-utils/pull/311
Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
If the systemdsystemunitdir got passed anyway as a variable, we don't
need the systemd.pc dependency anymore and allow building without a
systemd build-dependency.
Relevant in Alpine Linux, where we allowed systemd services to be
(sub-)packaged (e.g. for downstreams like postmarketOS), but don't have
systemd pacakged in Alpine itself, yet.
Closes: https://github.com/alsa-project/alsa-utils/pull/309
Signed-off-by: Achill Gilgenast <achill@achill.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Use strictly snd_pcm_format_physical_width/snd_pcm_format_width functions
to determine the sample bit width.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
When the primary card restores controls, all other cards
in the card group should do this operation, too.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Track user control elements separately and adjust control
count difference checking to account for dynamic user elements.
Prevents false positives in re-init detection when only user
controls have changed.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Add alsa-card-wait@.service to handle cards in waiting state.
Update udev rules to use --export and trigger the wait service
when ALSA_CARD_STATE=waiting. Service runs "alsactl wrestore"
for deferred card initialization.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Implement wait.c with wait_for_card() function to monitor Boot control
element and wait for card readiness using event-based polling.
Add "wrestore" command to wait for card ready state before restore.
Add FLAG_UCM_WAIT flag and move DEFAULT_SYNC_TIME to alsactl.h.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Add export.c with support for exporting card states as key=value pairs.
Exports ALSA_CARD_NUMBER/ALSA_CARD_STATE for single cards, or
ALSA_CARD#_STATE for multiple cards. States: active, skip, waiting.
Add -Y (--export) option to restore command for state export.
This feature is designed for udev IMPORT{program} use.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Implement boot parameter management for multi-card synchronization.
Add boot_params.c with read/write functions for Boot control element,
card group configuration file support, and validity checking.
Extend init_ucm.c with boot/restore logic and card state handling.
Add -G (group-file) and -m (force-ucm-restore) command line options.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
When listing the devices, currently we show all MIDI ports including
inactive ones. But those inactive ports are rarely useful, and it'd
be more convenient to filter them out.
This patch introduces the filtering of inactive ports at listing
devices via amidi -l option. When user needs to scan all MIDI ports
including inactive ports, pass the new option -x in addition.
Signed-off-by: Takashi Iwai <tiwai@suse.de>