Detailed changes v1.2.13 v1.2.14: Difference between revisions

From AlsaProject
Jump to navigation Jump to search
No edit summary
 
m (1 revision imported)
 
(No difference)

Latest revision as of 16:09, 14 April 2025

Detailed changelog between 1.2.13 and 1.2.14 releases

Changelog between 1.2.11 and 1.2.14 releases

alsa-lib

Core

- Release v1.2.14 - Delete alsalisp code

Install of the alsalisp binary has been disabled since 2006 (in commit
8d382ccd), and building of it was disabled by default in 2018 (in commit
32ceab21), so it is reasonable to assume that nobody is using it.

Use within the alsa-lib project is limited to an aliases file that looks
like it is intended as an example, plus some very small .alisp files
associated with the SiS SI7018 PCI sound card which has not been
manufactured in years. These too have not been installed since 2018 when
commit 32ceab21 disabled building of the alsalisp binary.

In preparing this change, I searched the Github issue tracker for
"lisp", "alisp" and "alsalisp", and found no complaints about the above
changes. I also did a Github code search for projects that might be
including the `alisp.h` header and found none. Therefore I think this
code can be safely deleted and nobody is likely to object.

Closes: https://github.com/alsa-project/alsa-lib/pull/448

- include: prefer alsa/asoundlib.h for apps, dependency cleanups

Fixes several issues with header files:

- prefer alsa/asoundlib.h file for the alsa-lib core functionalities
  (use #warning to inform current and future developers, do the job)
- include alsa/asoundlib.h in headers for external plugins by default
- pcm_external.h: dependencies cleanup
- as benefit, the parsers in IDEs should get all information for individial
  header files (see PR#435)

This change was mainly tergetted to fix errors caused by wrong include order
(like for endianness detection, missing typedefs etc.).

Closes: https://github.com/alsa-project/alsa-lib/issues/431
Link: https://github.com/alsa-project/alsa-lib/pull/435

- seq: Define new events for UMP EP/FB change notifications

Two new sequencer event types are added for notifications of UMP info
changes: SND_SEQ_EVENT_UMP_EP_CHANGE (68) and
SND_SEQ_EVENT_UMP_BLOCK_CHANGE (69).

- configure: Make sequencer dependent on rawmidi

The sequencer feature requires rawmidi implicitly, and it became more
obvious with UMP support.  Add the dependency check to configure
script.

- src/Versions.in.in: Update *_tempo_base name

Change @SYMBOL_PREFIX@snd_has_tempo_base to
@SYMBOL_PREFIX@snd_has_queue_tempo_base.

Starting with version 1.2.13, alsa-lib fails to link with ld.lld-19 due
to "version script assignment of 'ALSA_1.2.13' to symbol
'snd_seq_has_tempo_base' failed: symbol not defined".

Per commit 769d1db1b0a213a39c7e59c0d1d724e7f45b1ac3 the correct name for
the symbol is @SYMBOL_PREFIX@snd_has_queue_tempo_base; therefore, update
src/Vesions.in.in to match.

Fixes bug #420
Fixes Gentoo bug 943399 (https://bugs.gentoo.org/943399)

Closes: https://github.com/alsa-project/alsa-lib/pull/421

Config API

- include: prefer alsa/asoundlib.h for apps, dependency cleanups

Fixes several issues with header files:

- prefer alsa/asoundlib.h file for the alsa-lib core functionalities
  (use #warning to inform current and future developers, do the job)
- include alsa/asoundlib.h in headers for external plugins by default
- pcm_external.h: dependencies cleanup
- as benefit, the parsers in IDEs should get all information for individial
  header files (see PR#435)

This change was mainly tergetted to fix errors caused by wrong include order
(like for endianness detection, missing typedefs etc.).

Closes: https://github.com/alsa-project/alsa-lib/issues/431
Link: https://github.com/alsa-project/alsa-lib/pull/435

Control API

- control: remap - improve sync feature

It may be useful to deactivate the sync mechanism for some configurations.
Create a new virtual boolean control for this.

Link: https://github.com/alsa-project/alsa-ucm-conf/pull/410

- control: remap - add sync feature

For UCM, it may be required to sync multiple controls. The logic
is really simple - last write to any control in the group wins.

Link: https://github.com/alsa-project/alsa-ucm-conf/pull/410

- control: remap - separate event handling from map (preparation for sync) - control: remap - add possibility to remap multiple source channels

For UCM (ASoC), there is a requirement to remap two stereo
controls to one stereo control (amplifiers).

Link: https://github.com/alsa-project/alsa-ucm-conf/pull/525

- include: prefer alsa/asoundlib.h for apps, dependency cleanups

Fixes several issues with header files:

- prefer alsa/asoundlib.h file for the alsa-lib core functionalities
  (use #warning to inform current and future developers, do the job)
- include alsa/asoundlib.h in headers for external plugins by default
- pcm_external.h: dependencies cleanup
- as benefit, the parsers in IDEs should get all information for individial
  header files (see PR#435)

This change was mainly tergetted to fix errors caused by wrong include order
(like for endianness detection, missing typedefs etc.).

Closes: https://github.com/alsa-project/alsa-lib/issues/431
Link: https://github.com/alsa-project/alsa-lib/pull/435

PCM API

- pcm: hw: do not reset tstamp_type in SND_PCM_APPEND mode (#2)

This is basically redo of all changed and add appropriate conditions
to disable only ioctl calls, but preserve tstamp_type assignments.

Link: https://github.com/alsa-project/alsa-lib/pull/450
Suggested-by: Signed-off-by: Kevin Groeneveld <kgroeneveld@lenbrook.com>

- pcm: hw: fix default timestamp type for O_APPPEND

Link: https://github.com/alsa-project/alsa-lib/pull/450

- pcm: hw: do not reset tstamp_type in SND_PCM_APPEND mode

When the first client of plugins such as dshare open the hw device they set
a default tstamp_type in snd_pcm_direct_initialize_slave based on
tstamp_type from the config file. But when subsequent clients open the same
plugin the snd_pcm_hw_open_fd function clobbers this default.

Closes: https://github.com/alsa-project/alsa-lib/pull/450

- pcm: fix minor typos in doc

Closes: https://github.com/alsa-project/alsa-lib/pull/446

RawMidi API

- rawmidi: ump - fix snd_ump_block_info_set_block_id double version #2

Define two different symbols with similar functionality.

Fix for:

  CC       ump.lo
/tmp/ccZKscpB.s: Assembler messages:
/tmp/ccZKscpB.s:18: Error: multiple versions [`snd_ump_block_info_set_block_id@@ALSA_1.2.13'|`snd_ump_block_info_set_block_id@ALSA_1.2.10'] for symbol `__snd_ump_block_info_set_block_id'
make[3]: *** [Makefile:392: ump.lo] Error 1

Link: https://github.com/alsa-project/alsa-lib/issues/422

- rawmidi: Extensions for tied device and substream inactive flag

This is the enhancements of rawmidi API for the new feature added in
6.14 kernel: the indication of a tied device and the inactive flag for
the selected substream.

The new function is added for obtaining the tied device,
snd_rawmidi_info_get_tied_device().

And the new bit flag is defined for indicating the inactive
substream, SNDRV_RAWMIDI_INFO_STREAM_INACTIVE, which is exposed via
snd_rawmidi_info_get_flags().

- rawmidi: ump - fix snd_ump_block_info_set_block_id double version

Fix mistake snd_ump_block_info_get_block_id / snd_ump_block_info_set_block_id .

Link: https://github.com/alsa-project/alsa-lib/issues/422

- rawmidi: ump - fix snd_ump_block_info_get_block_id double version

The changes for 1.2.13 in Versions.in.in file matches also old
1.2.10 function snd_ump_block_info_get_block_id:

1 Removed function:

  [D] 'function void snd_ump_block_info_set_block_id(snd_ump_block_info_t*, unsigned int)'    {snd_ump_block_info_set_block_id@@ALSA_1.2.10}

Add 1.2.10 symbol back, but keep 1.2.13 symbol as default.

Closes: https://github.com/alsa-project/alsa-lib/issues/422

Rawmidi API

- rawmidi: Make rawmidi flag bits doxygen-style comments

We forgot to put the markers in rawmidi info bit flags.

- rawmidi: Extensions for tied device and substream inactive flag

This is the enhancements of rawmidi API for the new feature added in
6.14 kernel: the indication of a tied device and the inactive flag for
the selected substream.

The new function is added for obtaining the tied device,
snd_rawmidi_info_get_tied_device().

And the new bit flag is defined for indicating the inactive
substream, SNDRV_RAWMIDI_INFO_STREAM_INACTIVE, which is exposed via
snd_rawmidi_info_get_flags().

Sequencer API

- seq: update_group_ports - rewrite blknames update

Resolve the warning bellow and use more optimized calls.

seqmid.c: In function ‘update_group_ports’:
seqmid.c:672:45: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 61 [-Wformat-truncation=]
  672 |                                          ", %s", bp->name);
      |                                             ^~
seqmid.c:671:33: note: ‘snprintf’ output between 3 and 130 bytes into a destination of size 63
  671 |                                 snprintf(blknames + len, sizeof(blknames) - len,
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  672 |                                          ", %s", bp->name);
      |                                          ~~~~~~~~~~~~~~~~~

- ALSA: seq: Use SND_* instead of SNDRV_*

The values SNDRV_XXX are used incorrectly in some code where they
should have been SND_XXX, due to copy&paste from the kernel code.

Practically seen there are no difference, and the code still works
fine, but those should be corrected for consistency.

- ALSA: seq: Add missing UMP EP cap bit at snd_seq_create_ump_endpoint()

In snd_seq_create_ump_endpoint(), it was forgotten to give the UMP
Endpoint capability bit (SND_SEQ_PORT_CAP_UMP_ENDPOINT) to the port 0
("UMP 2.0").  This resulted in port 0 being a normal port for the
non-existing group.

Closes: https://github.com/alsa-project/alsa-lib/issues/447

- seq: shuffle calloc arguments in snd_seq_hw_open (gcc warning) - seq: add more checks to snd_seq_hw_set_client_info for older kernels

The snd_seq_set_client_midi_version() should fail for older kernel
when applications are trying to configure new midi versions.

BugLink: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4621

- seq: Fix typo of the group number in snd_seq_create_ump_endpoint()

The group number of UMP Endpoint client created by
snd_seq_create_ump_endpoint() is wrongly set due to a copy&paste
error.

Closes: https://github.com/alsa-project/alsa-lib/issues/440

- seq: Fix bogus return of snd_seq_client_info_get_ump_conversion()

snd_seq_client_info_get_ump_conversion() should have returned the
proper bit of group_filter bit field, but it just did return
midi_version field -- a stupid copy & paste error.  Let's fix it.

- seq: seq.c - fix calloc arguments

The usage was inverted. The first argument is count of
elements, the second one is size of one element.

- seq: seqmid - fix info->name is always true error

Replate pointer check to the zero string check as it
was the intention.

- seq: Define new events for UMP EP/FB change notifications

Two new sequencer event types are added for notifications of UMP info
changes: SND_SEQ_EVENT_UMP_EP_CHANGE (68) and
SND_SEQ_EVENT_UMP_BLOCK_CHANGE (69).

- seq: include UMP headers

Some applications seem including alsa/seqmid.h individually, and this
got broken with the update of alsa-lib because now we have
dependencies to UMP stuff.  Include the necessary UMP headers
internally.  Also, add the inclusion of rawmidi.h in ump.h for similar
reasons.

Link: https://bugzilla.suse.com/show_bug.cgi?id=1233682

Use Case Manager API

- 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.

- ucm: add '${LibCaps}' substitution

It is a preparation for future checking of alsa-lib's extensions.

- ucm: remove @@LibraryVersion and @@SyntaxVersion variables

It seems that version checking is more complicated:

Syntax is one-way settlement from the configuration files.
It cannot be conditional.

The library version string is hard to check with regex.

- ucm: format @@SyntaxVersion to 4 digits

It is better for regex matching.

- ucm: enhance documentation (sys-card + ranges + more) - ucm: add @@LibraryVersion and @@SyntaxVersion variables

It may be useful to check the current syntax version (and maybe
library version) when new features are added.

- ucm: add sys-card substitution

It may be useful to check additional sysfs parameters like USB descriptors
to determine the exact hardware capabilities.

Introduce 'sys-card' substitution and 'sys' substitution to allow data
fetching from given range. Also, add conversion to hexadecimal format
when the source file has binary contents.

Example - fetch bytes from positions 0x10..0x15 (6 bytes):

  Define.Bytes1 "${sys-card:[type=hex,pos=0x10,size=6]device/../descriptors}"

Example - fetch one byte from position 0x22:

  Define.Bytes2 "${sys-card:[type=hex,pos=0x22]device/../descriptors}"

Replace type=hex or omit this variable settings to work with ASCII
characters.

Link: https://github.com/alsa-project/alsa-ucm-conf/issues/444

/Makefile.am

- Delete alsalisp code

Install of the alsalisp binary has been disabled since 2006 (in commit
8d382ccd), and building of it was disabled by default in 2018 (in commit
32ceab21), so it is reasonable to assume that nobody is using it.

Use within the alsa-lib project is limited to an aliases file that looks
like it is intended as an example, plus some very small .alisp files
associated with the SiS SI7018 PCI sound card which has not been
manufactured in years. These too have not been installed since 2018 when
commit 32ceab21 disabled building of the alsalisp binary.

In preparing this change, I searched the Github issue tracker for
"lisp", "alisp" and "alsalisp", and found no complaints about the above
changes. I also did a Github code search for projects that might be
including the `alisp.h` header and found none. Therefore I think this
code can be safely deleted and nobody is likely to object.

Closes: https://github.com/alsa-project/alsa-lib/pull/448

/include/Makefile.am

- Delete alsalisp code

Install of the alsalisp binary has been disabled since 2006 (in commit
8d382ccd), and building of it was disabled by default in 2018 (in commit
32ceab21), so it is reasonable to assume that nobody is using it.

Use within the alsa-lib project is limited to an aliases file that looks
like it is intended as an example, plus some very small .alisp files
associated with the SiS SI7018 PCI sound card which has not been
manufactured in years. These too have not been installed since 2018 when
commit 32ceab21 disabled building of the alsalisp binary.

In preparing this change, I searched the Github issue tracker for
"lisp", "alisp" and "alsalisp", and found no complaints about the above
changes. I also did a Github code search for projects that might be
including the `alisp.h` header and found none. Therefore I think this
code can be safely deleted and nobody is likely to object.

Closes: https://github.com/alsa-project/alsa-lib/pull/448

- include: prefer alsa/asoundlib.h for apps, dependency cleanups

Fixes several issues with header files:

- prefer alsa/asoundlib.h file for the alsa-lib core functionalities
  (use #warning to inform current and future developers, do the job)
- include alsa/asoundlib.h in headers for external plugins by default
- pcm_external.h: dependencies cleanup
- as benefit, the parsers in IDEs should get all information for individial
  header files (see PR#435)

This change was mainly tergetted to fix errors caused by wrong include order
(like for endianness detection, missing typedefs etc.).

Closes: https://github.com/alsa-project/alsa-lib/issues/431
Link: https://github.com/alsa-project/alsa-lib/pull/435

ALSA Lisp

- Delete alsalisp code

Install of the alsalisp binary has been disabled since 2006 (in commit
8d382ccd), and building of it was disabled by default in 2018 (in commit
32ceab21), so it is reasonable to assume that nobody is using it.

Use within the alsa-lib project is limited to an aliases file that looks
like it is intended as an example, plus some very small .alisp files
associated with the SiS SI7018 PCI sound card which has not been
manufactured in years. These too have not been installed since 2018 when
commit 32ceab21 disabled building of the alsalisp binary.

In preparing this change, I searched the Github issue tracker for
"lisp", "alisp" and "alsalisp", and found no complaints about the above
changes. I also did a Github code search for projects that might be
including the `alisp.h` header and found none. Therefore I think this
code can be safely deleted and nobody is likely to object.

Closes: https://github.com/alsa-project/alsa-lib/pull/448

Documentation

- doc: fix permissions

Doxygen create also subdirectories. Make sure that files
in those directories have required permissions.

External PCM Filter Plugin SDK

- include: pcm extplug/ioplug: fix internal include

The header files are directly included when the alsa-lib is building.
Do not show warning.

External PCM I/O Plugin SDK

- include: pcm extplug/ioplug: fix internal include

The header files are directly included when the alsa-lib is building.
Do not show warning.

Kernel Headers

- Sync UAPI asequencer.h with 6.14 kernel

There are the new event types for UMP EP and FB notifications as well
as the new struct for them.

- Sync UAPI asound.h with 6.14 kernel

There is a small update of rawmidi API for supporting the UMP tied
device info and inactive flag.

MIDI 2.0 (UMP)

- include/ump_msg.h: Fix endianness detection

The SNDRV_BIG_ENDIAN_BITFIELD define is only available in the alsa-lib's
internal build process (include/local.h).

- seq: include UMP headers

Some applications seem including alsa/seqmid.h individually, and this
got broken with the update of alsa-lib because now we have
dependencies to UMP stuff.  Include the necessary UMP headers
internally.  Also, add the inclusion of rawmidi.h in ump.h for similar
reasons.

Link: https://bugzilla.suse.com/show_bug.cgi?id=1233682

Test/Example code

- test/playmidi1: fix compilation caused by conflict between midifile.h and ump_msg.h

It's a fast fix. The better way is to fix midifile.h or remote this example
(we have already some

Closes: https://github.com/alsa-project/alsa-lib/issues/436

Utils

- utils: add missing alsa-topology.pc.in to EXTRA_DIST

alsa-utils

Core

- Release v1.2.14 - axfer, topology: use only <alsa/asoundlib.h> include instead specific alsa-lib headers

See commit ea8972c8 ("include: prefer alsa/asoundlib.h for apps, dependency cleanups")
in alsa-lib.

ALSA Control (alsactl)

- alsactl: info - handle situations when devices are not available in kernel

The kernel returns ENOTTY error in this case. Do nothing for this error code.

Closes: https://github.com/alsa-project/alsa-utils/issues/287

- alsactl: info - print errors for next_device calls - Remove trailing spaces in man pages - alsactl: 90-alsa-restore.rules - fix AMD acp-pdm-mach link

The link name of AMD ACP digital microphones driver acp-pdm-mach
is acp-dmic-codec. Fix it to make UCM initialize it again.

Closes: https://github.com/alsa-project/alsa-utils/pull/281

- alsactl: 90-alsa-restore.rules - fix alsa_restore_go/std

Fix the label mismatch which was introduced in the transition from the
temporary test rules.

Closes: https://github.com/alsa-project/alsa-utils/issues/280

Audio Transfer utility

- axfer, topology: use only <alsa/asoundlib.h> include instead specific alsa-lib headers

See commit ea8972c8 ("include: prefer alsa/asoundlib.h for apps, dependency cleanups")
in alsa-lib.

alsa-info.sh

- alsa-info: move man page to section 8 (administration commands)

Debian inspired action

- alsa-info.sh: Add alsa-ucm package to package filter

alsatplg (topology)

- Topology: NHLT: Intel: Improve error message for DMIC enable conflict

The DMIC HW does not provide all the freedom that topology
syntax appears to provide for DAI configuration. This change
helps to understand better what the error is about.

Closes: https://github.com/alsa-project/alsa-utils/pull/286

- Topology: NHLT: Intel: Fix mono DMIC configure for MTL platform

This change fixes the blob generator for mono microphone
configuration. As difference to previous platforms the FIFO packer
mono/stereo mode set up in OUTCONTROLx IPM_SOURCE_MODE bit-field.
The previous code version hard-codes the FIFO packer to stereo
mode without support for mono.

As a fix if only one microphone is enabled for dmic0 or dmic1,
then the corresponding IPM_SOURCE_MODE in OUTCONTROL0 or OUTCONTROL1
is set to 0. Otherwise it is set to 1 for stereo mode.

Closes: https://github.com/alsa-project/alsa-utils/pull/286

- axfer, topology: use only <alsa/asoundlib.h> include instead specific alsa-lib headers

See commit ea8972c8 ("include: prefer alsa/asoundlib.h for apps, dependency cleanups")
in alsa-lib.

- Topology: NHLT: Intel: Fix DMA slots config in SSP blob

This fixes a mistake in function ssp_calculate_intern_v30().
The rx_dir[0] and tx_dir[0] value was hard-coded to 0x3 for
typical stereo slots configuration. It should be instead
retrieved from topology parameters for the SSP.

Closes: https://github.com/alsa-project/alsa-utils/pull/289

amixer

- amixer: fix unknown TVL sequence print

Closes: https://github.com/alsa-project/alsa-utils/issues/282

aplay/arecord

- Remove trailing spaces in man pages

aplaymidi/arecordmidi

- Remove trailing spaces in man pages

aplaymidi2/arecordmidi2 (MIDI v2.0)

- arecordmidi2: fix unitialization variable error in read_ump_raw()

Variable v should be initialized from the first word in the buffer.

aseqdump

- aseqdump: Fix typos in messages

The message for a MIDI2 pitch bend event was shown incorrectly as
channel pressure.  Fix it.

Also, some MIDI2 note-on events referred to note-off union fields and
those should be corrected, too (although both point to the same
address, hence there is no difference in the outputs).

Closes: https://github.com/alsa-project/alsa-utils/issues/285

alsa-ucm-conf

Core

- github: use ucm-validator2, use actions/checkout@v4

Configuration

- USB-Audio: Add support of HyperX SoloCast (USB ID 03f0:0b8b)

Support of
- volume control
- un/mute control

PS: About un/mute control - only from PC to Mic, vise versa does not work - like when you
un/mute Mic on PC it works as expected (even LED show actual status) but when you click
button on Mic side it does not reflect on PC side.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/545

- ucm2: Qualcomm: add Asus Zenbook A14

Add a Regex string, seems compatible with Lenovo T14s
x2 speakers, x2 DMICs, x3 DP (x2 USB-C, x1 DP->HDMI), headphone jack

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/544

- ucm2: Qualcomm: add Lenovo ThinkBook 16 support

add a Regex string, seems compatible with Thinkpad T14s

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/543

- ucm2: Qualcomm: add HP Omnibook X14 support

assume same as T14s (2 speakers)

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/531

- USB-Audio: Add focusrite scarlett 18i20 lineup

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/539/

- USB-Audio: Add Roland BridgeCast One

Use similar config as the BridgeCast v2 as it has the same outputs and it worked in my test.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/536

- sof-soundwire: cs42l43: Switch mixer based on output volume

Hardware volume control in cs42l43 can go up to +31.5dB which can
cause audio degradation. For best results, limit hardware volume to 0dB.

The application may request >0dB mixer volume controls using
'@OutMix>0dB' variable passed to snd_use_case_mgr_open().

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/540
Link: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4622

- ucm2: sof-soundwire: Correct include file path for dsp.conf

The file path must be given as absolut and not relative, otherwise the
dsp.conf file will not be found:
$ alsaucm dump text
ALSA lib utils.c:364:(uc_mgr_config_load_into) could not open configuration file /usr/share/alsa/ucm2/conf.d/sof-soundwire/../Intel/sof-hda-dsp/dsp.conf
ALSA lib parser.c:78:(uc_mgr_config_load_file) error: failed to open file /usr/share/alsa/ucm2/conf.d/sof-soundwire/../Intel/sof-hda-dsp/dsp.conf: -2
ALSA lib main.c:1554:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -2
alsaucm: error failed to open sound card hw:0: No such file or directory

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/542

- USB-Audio: ALC4080 - add rear microphone support for 0414:a014 (Gigabyte Aorus Pro)

0414:a014 Gigabyte B850I Aorus Pro (rev 1.0)

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/535
Link: https://github.com/alsa-project/alsa-ucm-conf/issues/528

- sof-soundwire: Add LED support for cs35l56 amplifiers

Systems may have up to 8 CS35L56 amplifiers, and each amplifier should
be attached to the speaker LED. A mapped Playback switch is required to
ensure all amps are muted and unmute appropriately.

Link: https://lore.kernel.org/alsa-devel/20250331093440.9412-1-sbinding@opensource.cirrus.com/

- sof-soundwire: cs42l43: Drop headset mic from mic mute LED

As per conversation in [1], let headsets be dropped from LED bindings.

[1]: https://github.com/alsa-project/alsa-ucm-conf/pull/512

Link: https://lore.kernel.org/alsa-devel/20250328134809.3008238-1-mstrozek@opensource.cirrus.com/

- HDA: mics - don't create conflict link for Headphone Mic

Both devices are able to be used together (Headphones out + Headphones mic).

Link: https://github.com/alsa-project/alsa-ucm-conf/pull/526

- HDA: mics - improve the Jack selection

There may be different Jack controls when hardware has
different physical audio jacks or improved sensing mechanism.

Link: https://github.com/alsa-project/alsa-ucm-conf/pull/526

- HDA: mics - prefer 'Mic Jack' instead 'Headphone Jack'

Headphone Jack may be for playback only.

Example Jack controls for ALC287 with sof-hda-dsp:

  iface=CARD,name='Headphone Jack'  # reflects for Headphones w/o mic
  iface=CARD,name='Mic Jack'        # reflects to Headphones with mic

Link: https://github.com/alsa-project/alsa-ucm-conf/pull/526

- USB-Audio: ALC4080 - add support for ASUS B850-I (USB ID 0b05:1be1)

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/537

- sof-hda-dsp: Use common HDA initialization from /HDA/init.conf

No functional changes.

- HDA: move led.conf include to more appropriate place - ucm2: Qualcomm: fix typo in Lenovo T14s matching

The original commit referenced an incorrect laptop model in the
matching code. Use the correct model. This introduces no
functional changes.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/532

- sof-soundwire: rt1318: add playback control switch

This patch defines 'rt1318-1 DAC' as PlaybackMixerElem when equipped with only one amp
and defines a remapped one 'rt1318 DAC Playback Switch' when using two amps.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/525

- ucm2: Qualcomm: add Lenovo Yoga Slim7x support

Yoga Slim 7x supports:
        - 4 speakers
        - 4 dmics
        - Display ports

This patch adds support to Speaker and DMIC's for now.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/522

- ucm2: Qualcomm: add Lenovo T14s support

T14s supports:
        - 2 speakers.
        - 2 dmics
        - headset with mic.

This patch adds support to all these, however only speakers, dmic and
headset playback is tested.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/522

- ucm2: MediaTek: mt8390-evk: Add support for SOF

Add support for MT8390 EVK with the SOF enabled. The only differences
compared to the UCM with SOF disabled is the device number for playback
and capture, which uses the PCMs for the SOF instead, and the number of
channels for capture, which is stereo rather than mono.

Define those parameters as variables for each case, with and without
SOF, and move the common intialization to an init.conf, so the UCM can
be shared by both.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/513

- Torradex: replace spaces with tabs when appropriate - Torradex: fix wrong device names Headphone/Microphone - USB-Audio: Add support for RME Fireface UCX II

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/509

- Qualcomm: Add QCS6490 RB3Gen2 HiFi config

Add UCM2 configs for the Qualcomm QCS6490 RB3Gen2 Board to handle:
        - on-board Speakers
        - on-board Microphones

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/508

- Qualcomm: Add QCM6490 IDP HiFi config

Add UCM2 configs for the Qualcomm QCM6490 IDP Board to handle:
        - on-board Speakers
        - Headphones speakers
        - Headphones Microphones
        - on-board Microphones

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/508

- ucm2: IO-Boards: Toradex: verdin: Add support for Toradex

Add support for the Toradex Verdin Development carrier board, using the
NAU8822 audio codec.

This is a carrier board for the Verdin family, where any Verdin SoM
(NXP, TI...) can be connected to it, therefore this is being added to
the IO-Boards instead of a specific hardware vendor.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/448

- ucm2: IO-Boards: Toradex: verdin: Add support for Toradex

Add support for the Toradex Verdin Dahlia carrier board, using the WM8904
audio codec.

This is a carrier board for the Verdin family, where any Verdin SoM
(NXP, TI...) can be connected to it, therefore this is being added to the
IO-Boards instead of a specific hardware vendor.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/448

- ucm2: NXP: iMX6: Toradex: colibri-imx6: Add support for

Add support for the Toradex Colibri iMX6 system on module, using the
SGTL5000 audio codec.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/448

- ucm2: NXP: iMX7: Toradex: colibri-imx7: Add support for

Add support for the Toradex Colibri iMX7 system on module, using the
SGTL5000 audio codec.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/448

- ucm2: NXP: iMX8X: Toradex: colibri-imx8x: Add support for

Add support for the Toradex Colibri iMX8X system on module, using the
SGTL5000 audio codec.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/448

- ucm2: NXP: iMX6: Toradex: apalis-imx6: Add support for

Add support for the Toradex Apalis iMX6 system on module, using the
SGTL5000 audio codec.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/448

- ucm2: NXP: iMX8: Toradex: apalis-imx8: Add support for

Add support for the Toradex Apalis iMX8 system on module, using the
SGTL5000 audio codec.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/448

- ucm2: IO-Boards: Toradex: apalis: Add support for Toradex

Add support for the Toradex Apalis Evaluation Board carrier board using
the NAU8822 audio codec.

This is a carrier board for the Apalis family, where any Apalis SoM
(iMX8, iMX6...) can be connected to it, therefore this is being added to
the IO-Boards instead of a specific hardware vendor.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/448

- USB-Audio: add Roland Quad-Capture support

Add initial Roland Quad-Capture support

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/494

- ucm2: HDA - remove HDA-Capture-value.conf and put contents directly to HDACaptureDevice macro

Link: https://github.com/alsa-project/alsa-ucm-conf/pull/526

- ucm2: HDA: HiFi-analog/mic: Refactor the analog mic discovery

The current mic device creation works on certain machines and fails on
others. There are several places of conflicts and setups which can only
just fail, but this is mostly not an issue if the user never uses the mic,
only the speaker/headset - which, to be honest is what most of us do ;)

As an example:
The mic selection in most codecs are via enum and it is assumed to be
named 'Input Source', which is not always the case as some device uses
'Capture Source' for the control's name.
There is also different sets of mics that one can select from:
Exhibit A
numid=6,iface=MIXER,name='Input Source'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'Headset Mic'
  ; Item #1 'Headphone Mic'
  : values=1

Exhibit B
numid=6,iface=MIXER,name='Capture Source'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'Internal Mic'
  ; Item #1 'Headset Mic'
  : values=0

Exhibit C
numid=6,iface=MIXER,name='Capture Source'
  ; type=ENUMERATED,access=rw------,values=1,items=3
  ; Item #0 'Internal Mic'
  ; Item #1 'Headset Mic'
  ; Item #2 'Headphone Mic'
  : values=0

Exhibit D (this pushes the limits... The patch will ignore item 1)
numid=6,iface=MIXER,name='Capture Source'
  ; type=ENUMERATED,access=rw------,values=1,items=3
  ; Item #0 'Internal Mic'
  ; Item #1 'Internal Mic 1'
  ; Item #2 'Mic'
  : values=2

Other issue is that we have this 'Headphone Mic', which turned out to be
a 'Stereo Microphone in Headphone Jack', so if it is selected then the
Headphone cannot work, they conflict, they use the same rings for different
direction and purpose.

This patch aims to make the mic discovery a bit more deterministic and
pragmatic.

But even if the UCM creates the use case profiles correctly, it is still
up to UIs (KDE/GNOME/etc) to misunderstand how UCM presents the profiles,
what they mean and most of all what 'Mic1', `Mic2', etc is.
KDE presents the profiles as they are and user can selct between them to
pick the right combination of output and input.
GNOME goes further with simplification (and fails with it) and presents
'random' Configuration profiles for Output and Input, plus a device
selection and they do work in an interesting way. GNOME also have popup
for specifying the type of the plugged accessory, which does not worl at
all with UCM profiles.

But, this patch is meant for a small step to have clear rules based mic
presentation for HDA.

The expectation is that what have worked will work as it used to and what
did not worked should be detected and presented correctly.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/526

- GoXLR: Add 'Broadcast Stream Mix 2' to Capture if channels

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/523

- use SetLED in rt1318 init configuration - Turn speaker LED accroding to rt1318 speaker status

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/512

- ucm2: use new SetLED macro to hide the implementation details

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/517

- common: add led.conf with SetLED macro to hide implementation details

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/517

- USB-Audio: Add support for TASCAM Model 12

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/490

- UCM2: Blobs: SOF: Cleanup blob names from .blob to .bin

The configuration blobs for SOF processing components are mixed
with old filename suffix .blob and new .bin. This patch renames
for cleanup the remaining .blob files to .bin to follow the
chosen naming in SOF project.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/504

- USB-Audio: alc4080: Add MSI PRO B650-A WIFI USB ID 0db0:9e6d

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/514

- USB-Audio: Improve support for Focusrite 4th Gen devices

There are 4 capture channels (additional ones for mixer monitor).

Closes: https://github.com/alsa-project/alsa-ucm-conf/issues/515
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/516

- USB-Audio: GoXLR - fix the channel detection for mini, cleanups

Note that detection for 25 channels requires commit [1] (alsa-lib 1.2.14+).

[1] https://github.com/alsa-project/alsa-lib/commit/7fbd47ce797939862025ef424865570dcdc2565b

BugLink: https://github.com/alsa-project/alsa-ucm-conf/issues/444
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/521

- USB-Audio: set capture channels to 4 in UR22C-HiFi.conf

Link: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4609
Closes: https://github.com/alsa-project/alsa-ucm-conf/issues/519

- sof-soundwire: Fix cs42l43 dmic initialisation

Move the mixer controls initialization to BootSequence to let
manage (store/restore) the sound state at boot.

- sof-soundwire: Split cs42l43 dmic initialisation

Split the initialisation of cs42l43 into a headset part and a dmic
part. This will prevent the dmic mute controls getting attached to
the mute LED when the codec dmics are not being used.

Link: https://lore.kernel.org/alsa-devel/20250306125402.1741562-1-ckeepax@opensource.cirrus.com/

- ucm2: add mt8183_mt6358_ts3a227_max98357

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/502

- ucm2: add mt8183_da7219_rt1015p

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/502

- ucm2: add acp3x-alc5682-alc1015

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/501

- DEBUG.md: add "Logs from PipeWire (wireplumber)" section - USB-Audio: Revelator-IO-44-HiFi - fix device names (validator) - Rename ucm2/AMD/acp3xalc5682m98 to ucm2/AMD/acp3x-alc5682-max98357

The driver name is just crippled.

- Rename ucm2/AMD/acpd7219m98357 to ucm2/AMD/acp-da7219-rt5682-max98357

The driver name is just crippled.

- Qualcomm: Add SM8750 MTP HiFi config

Add UCM2 configs for the Qualcomm SM8750-MTP Board to handle:
- on-board Speakers
- Headphones speakers
- Top and Bottom on-board Microphones

Not yet implemented/tested are Headphone Microphones over USB-C port.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/498

- rt722: change output volume of headphone to 0dB

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/496

- ucm2: USB-Audio: add Presonus Revelator IO 44 (USB194f:0424)

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/495

- USB-Audio: ALC4080 - add ASUS ROG Crosshair X870E Hero (USB ID 0b05:1b7c)

https://rog.asus.com/motherboards/rog-crosshair/rog-crosshair-x870e-hero/

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/492

- sun4i-codec: add routing for headphones and internal speaker

The sun4i-codec kernel driver covers a large number of Allwinner SoCs.
The H616 codec has a single line-out route, which is used in concert
with a Toshiba mux chip to send audio to either an internal speaker or
headphone jack on a number of Anbernic handheld gaming devices.

Add a UCM configuration to allow enabling/disabling the speaker amp
depending on whether headphones are in use or not.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/491

- UCM2: sof-soundwire: Add setup of IIR, DRC, beamformer

The SoundWire PCs with PCH-DMIC use the top level sof-soundwire.conf.
This patch adds similar Dmic0 end-point processing enable as done in
for DMIC in HDA codec PCs if the controls for processing exist.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481

- UCM2: sof-soundwire: Add setup of IIR, DRC, beamformer

This patch enables as BootSequence the DRC and multi-microphone
beamformer processing with the supplied blobs in topology. The
enable is for defaults if there is no previous control state. The
user can permanently switch off them if needed.

If DMI ID based customization can done with scripts in
blobs/sof/product_configs or blobs/sof/user_configs. If the blob
file names are not empty the blobs are applied by UCM2 as
FixedBootSequence in every boot to replace topology defaults.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481

- UCM2: sof-soundwire: Enable DRC and equalizers for

This patch enables SOF post-processing for soundwire speaker
output. The DRC processing is enabled as BootSequence, and
setup of DRC, IIR, and FIR equalizer blobs as FixedBootSeqeuence
by DMI ID if custom blobs have been defined for the device in
ucm2/blobs/sof/product_configs or ucm2/blobs/sof/user_configs.

The DRC can be turned off permanently by user space if not
desired since BootSequence is only used for first time UCM2
start.

The DRC, IIR, FIR blobs are set as FixedBootSequence only
if custom blobs are defined. Otherwise the blobs defined in
topology remain in use.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481

- UCM2: Intel: sof-hda-dsp: Enable Dmic0 DRC and TDFB

This patch enables the SOF microphone capture pre-processing
features as BootSequence initial values if the controls for them
are available. If the user later switches these off, they will
remain off.

The DRC is dynamic range control that boosts the capture level,
and the TDFB (time-domain fixed beamformer) improves capture
signal-to-noise ratio for set beam angle direction. The used
0 degrees angle is defined as angle towards notebook computer
user.

The generic blobs in topology can be replaced with device
specific blobs based on DMI ID. See ucm2/blobs/sof/product_configs
and ucm2/blobs/sof/user_configs.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481

- UCM2: Blobs/SOF/IPC4: Add Beamformer blobs, update

This change adds a few blobs to use with SOF TDFB beamformer
and updates the instructions how to generate the blobs in SOF.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481

- UCM2: Intel: sof-hda-dsp: Cleanup definitions

This patch cleans up definitions in preparation to add more
controlled processing for audio endpoints.

- The algorithms names write style is aligned to e.g. "Iir" instead
  of "IIR" and "Iir" to avoid mistakes from typos.
- Add prefix PostMixerAnalogPlayback to HDA analog playback
  blob names to separate them from other Speaker endpoints.
- Similarly rename SofControl macro.

The functionality is not changed.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481

- UCM2: Intel: sof-hda-dsp: Move variables defitions from

This patch moves SOF control blobs related variables set are to
a new dsp.conf that is included from top level sof-hda-dsp.conf.

The change allows to use the variables in InitBootSequence for the
controls. E.g. customize the default blobs applied based on
DMI ID of the device.

There's no change to functionality in this patch.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/481

- ucm: fix SectionDevice identifiers

According [1], the device naming scheme should be consistent.
Try to rename affected device names according the documentation.

[1] https://github.com/alsa-project/alsa-lib/blob/master/include/use-case.h

- ucm2: whitespace fixes - USB-Audio: ALC4080: add support for MSI MEG X670E GODLIKE (USB 0db0:e1f8)

www.msi.com/Motherboard/MEG-X670E-GODLIKE

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/488

- USB-Audio: ALC4080 - add ASUS ROG STRIX X870E-E GAMING WIFI (USB 0b05:1b9b)

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/486

- Configuration files for Roland Bridge Cast X V2

Added configuration for Roland BridgeCast X. X Version of Bridgecast is wired diferently than the non X Version wich is supported

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/469

- ucm2: sof-soundwire: Correct FixedBootSequence for dmic info

Replace the curly brackets with square brackets.
The curly ones break the FixedBootSequence parsing by resetting the
sequence.
If the /var/lib/alsa/card0.conf.d is not present then UCM will fail because
all sequences before the dmic is lost, including the card-init:

# alsactl init
alsa-lib main.c:619:(execute_cfgsave) unable to open file '/var/lib/alsa/card0.conf.d/42-sof-hdmi.conf': No such file or directory
alsa-lib main.c:2456:(set_fixedboot_user) Unable to execute force boot sequence

The full sequence supposed to be:
card-init
ctl-remap
cs42l43
dmic
hdmi

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/485

- amd-soundwire: add support for AMD generic legacy machine driver

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/478
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/470

- sof-hda-dsp: Add back missing .conf suffix for product/user specific configs

Closes: https://github.com/alsa-project/alsa-ucm-conf/issues/482

- sof-soundwire: whitespace cleanup - sof-soundwire: cs42l43: Correct CapturePCM and routing

For headset microphone capture the correct PCM device to use is
"hw:${CardId},1", "hw:${CardId},4" is for built in microphone capture.

Adjust the routing as well since :0,1 is connected to data port 2 on the
codec.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/466

- avs_nau8825: Fix JackControl name

This is the name reported by amixer events.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/464

- sof-soundwire: cs42l43-spk: Correct PlaybackPCM and routing

For speaker the correct PCM device to use is "hw:${CardId},2", the
"hw:${CardId},0" is for headset playback.

Adjust the routing as well since with :0,2 the DP6RX1/2 needs to be
selected for the speaker.

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/465

- sof-hda-dsp: Fix the case where sysfs dmi product_name attribute is not set

  !!DMI Information
  !!---------------

  Manufacturer:
  Product Name:
  Product Version:
  Firmware Version:  R6G07
  System SKU:        Default string
  Board Vendor:      Default string
  Board Name:        Default string

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=2292583

- UCM2: Intel: sof-hda-dsp: Fix handling of empty sys_vendor

The mistake in UCM syntax caused in alsaucm start error:

ALSA lib ucm_cond.c:367:(if_eval) unknown If.Condition.Type

       sys_vendor attribute is not set")

Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/463

Description

- Release v1.2.14

Detailed changelog between 1.2.12 and 1.2.14 releases

Changelog between 1.2.11 and 1.2.14 releases

alsa-python

Core

- Release v1.2.14

Documentation

- doc: Port from htmllib to html.parser HTMLParser

htmllib was deprecated in 2.6 and removed in 3.x.

Instead of dealing with non-breakable space in the HTMLParser,
transform to spaces in parse_asoundlib_api() instead.

At the same time adjust to the current ALSA API web page format.

Closes: https://github.com/alsa-project/alsa-python/pull/15

- doc: Add formatter.py from PySolFC project

The "formatter" module was deprecated in 3.4 and was removed
from the standard library in 3.10.

Closes: https://github.com/alsa-project/alsa-python/pull/15

- doc: Use getpass.getuser instead of os.getlogin

Closes: https://github.com/alsa-project/alsa-python/pull/15

- doc: Open pickle file as binary

Closes: https://github.com/alsa-project/alsa-python/pull/15

- doc: urllib data must be decoded into text

Closes: https://github.com/alsa-project/alsa-python/pull/15

- doc: Use double backslash in regex

Closes: https://github.com/alsa-project/alsa-python/pull/15

- doc: Applied 2to3 on APICoverage.py and

 alsa-python-coverage.py

Closes: https://github.com/alsa-project/alsa-python/pull/15

- doc: Fix `summarizes' typo

Closes: https://github.com/alsa-project/alsa-python/pull/15

Test python scripts

- hctltest1.py: Skip read/write if no values in element

Closes: https://github.com/alsa-project/alsa-python/pull/14

pyalsa.alsahcontrol module

- alsahcontrol.c: Actually set IEC958 values with

 Value.set_tuple()

The IEC958 structure was prepared, but not actually written.

Closes: https://github.com/alsa-project/alsa-python/pull/14

- alsahcontrol.c: Use PyBytes for IEC958 values

Closes: https://github.com/alsa-project/alsa-python/pull/14

pyalsa.alsamixer module

- alsamixer: fix return value in pyalsamixerelement_getvolumedb()

It seems like typo.

pyalsa.alsaseq module

- alsaseq: Fix type check in set_time()

SeqEvent_set_time() has fallen victim to the inverted get_long1() return
value here, erroring out when called with actual integers.

Closes: https://github.com/alsa-project/alsa-python/pull/17

Detailed changelog between 1.2.11 and 1.2.14 releases

Changelog between 1.2.11 and 1.2.14 releases

alsa-tools

Core

- Release v1.2.14 - github: actions - create initial build.yaml

Digigram Echo Mixer

- echomixer: fix various gcc warnings

Digigram PCXHR Loader

- pcxhrloader: fix gcc warnings (string truncation)

Envy24 Control

- envy24control: port to GTK 3

Closes: https://github.com/alsa-project/alsa-tools/pull/35

- envy24control: fix GtkSpinButton runtime warnings

Change the parameters to gtk_adjustment_new to get rid of this runtime
warning from GTK:

GtkSpinButton: setting an adjustment with non-zero page size is
deprecated

The change is also important when envy24control is ported to GTK 3, as
the spin buttons will stop working if it's not done.

Closes: https://github.com/alsa-project/alsa-tools/pull/31

- envy24control: fix memory access errors in profiles

Fix two memory errors in the profiles parser: an invalid read and a
"source and destination overlap in strncpy" warning.

When the profiles page is initialized it fetches the profile names from
the profiles file. When a profile wasn't defined in the file, the parser
made invalid reads outside the buffer.

Closes: https://github.com/alsa-project/alsa-tools/pull/34

- envy24control: fix file descriptor leaks in profiles

File descriptors were leaked when "Save active profile" was pressed. Add
the missing calls to close.

Closes: https://github.com/alsa-project/alsa-tools/pull/33

- envy24control: fix crash when using system profiles file

envy24control crashed if you tried to start it with -f
/etc/envy24control/profiles.conf.

Closes: https://github.com/alsa-project/alsa-tools/pull/32

- envy24control: fix control callback for spdif output

Update S/PDIF Output Settings GUI when settings change.

Closes: https://github.com/alsa-project/alsa-tools/pull/30

- envy24control: simplify code by using gtk_widget_show_all

Remove all gtk_widget_show calls and replace it with just one
gtk_widget_show_all. This makes the code shorter and it will also help a
future port to GTK 4, where gtk_widget_show is gone.

Closes: https://github.com/alsa-project/alsa-tools/pull/29

- envy24control: fix spdif output settings

The S/PDIF Output Settings in envy24control had some bugs: wrong bits
were set when user changed "Stream" under "Professional" or any of the
settings under "Consumer".

Closes: https://github.com/alsa-project/alsa-tools/pull/28

- envy24control: fix cast warnings and string array overflows

HDA Jack Retask

- hdajackretask: fix reset_changes_boot() declaration - hdajackretask: Fix build with gcc7

The old compiler doesn't allow a variable declaration inside switch
block.

RME Digi Control

- rmedigicontrol: fix gcc warnings (string size)

as10k1 (EMU10K1+ DSP Assembler)

- as10k1: fix gcc warnings

hdspconf

- hdspconf: fix gcc warnings (const)

hdspmixer

- hdspmixer: correct string delimiter in labels_aio_ss_input

Closes: https://github.com/alsa-project/alsa-tools/issues/10

ld10k1 (EMU10K1+ DSP Code Loader)

- ld10k1: fix various gcc warnings

mixartloader

- mixartloader: fix gcc warnings (string truncation)

usx2yloader

- usx2yloader: fix gcc warnings (string size)

vxloader

- vxloader: fix gcc warnings (string size)