Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package alsa for openSUSE:Factory checked in at 2022-10-27 13:53:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/alsa (Old) and /work/SRC/openSUSE:Factory/.alsa.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "alsa" Thu Oct 27 13:53:29 2022 rev:218 rq:1031067 version:1.2.8 Changes: -------- --- /work/SRC/openSUSE:Factory/alsa/alsa.changes 2022-07-21 11:33:19.974944936 +0200 +++ /work/SRC/openSUSE:Factory/.alsa.new.2275/alsa.changes 2022-10-27 13:53:49.948463487 +0200 @@ -1,0 +2,9 @@ +Tue Oct 25 07:19:06 UTC 2022 - Takashi Iwai <ti...@suse.com> + +- Update to version 1.2.8: + add FreeBSD/NetBD/OpenBSD build support, fixes in control namehint, + various PCM plugins and UCM. For details, see: + https://www.alsa-project.org/wiki/Changes_v1.2.7.2_v1.2.8 +- Add keyring + +------------------------------------------------------------------- Old: ---- alsa-lib-1.2.7.2.tar.bz2 alsa-lib-1.2.7.2.tar.bz2.sig New: ---- alsa-lib-1.2.8.tar.bz2 alsa-lib-1.2.8.tar.bz2.sig alsa.keyring ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ alsa.spec ++++++ --- /var/tmp/diff_new_pack.PpwfCW/_old 2022-10-27 13:53:50.840468037 +0200 +++ /var/tmp/diff_new_pack.PpwfCW/_new 2022-10-27 13:53:50.844468057 +0200 @@ -32,7 +32,7 @@ %endif Name: alsa -Version: 1.2.7.2 +Version: 1.2.8 Release: 0 Summary: Advanced Linux Sound Architecture License: LGPL-2.1-or-later @@ -53,6 +53,8 @@ Source31: all_notes_off.bin Source32: all_notes_off.mid Source34: alsa-init.sh +# from https://www.alsa-project.org/files/pub/gpg-release-key-v1.txt +Source35: alsa.keyring # rest suse fixes Patch101: alsa-lib-ignore-non-accessible-ALSA_CONFIG_PATH.patch BuildRequires: doxygen ++++++ alsa-lib-1.2.7.2.tar.bz2 -> alsa-lib-1.2.8.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/configure new/alsa-lib-1.2.8/configure --- old/alsa-lib-1.2.7.2/configure 2022-07-08 17:36:02.000000000 +0200 +++ new/alsa-lib-1.2.8/configure 2022-10-24 10:19:19.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for alsa-lib 1.2.7.2. +# Generated by GNU Autoconf 2.69 for alsa-lib 1.2.8. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='alsa-lib' PACKAGE_TARNAME='alsa-lib' -PACKAGE_VERSION='1.2.7.2' -PACKAGE_STRING='alsa-lib 1.2.7.2' +PACKAGE_VERSION='1.2.8' +PACKAGE_STRING='alsa-lib 1.2.8' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1471,7 +1471,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures alsa-lib 1.2.7.2 to adapt to many kinds of systems. +\`configure' configures alsa-lib 1.2.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1542,7 +1542,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of alsa-lib 1.2.7.2:";; + short | recursive ) echo "Configuration of alsa-lib 1.2.8:";; esac cat <<\_ACEOF @@ -1704,7 +1704,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -alsa-lib configure 1.2.7.2 +alsa-lib configure 1.2.8 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2115,7 +2115,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by alsa-lib $as_me 1.2.7.2, which was +It was created by alsa-lib $as_me 1.2.8, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3053,7 +3053,7 @@ # Define the identity of the package. PACKAGE='alsa-lib' - VERSION='1.2.7.2' + VERSION='1.2.8' cat >>confdefs.h <<_ACEOF @@ -13316,7 +13316,7 @@ $as_echo "no" >&6; } fi -for ac_header in endian.h sys/endian.h sys/shm.h +for ac_header in endian.h sys/endian.h sys/shm.h malloc.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -14978,7 +14978,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by alsa-lib $as_me 1.2.7.2, which was +This file was extended by alsa-lib $as_me 1.2.8, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15044,7 +15044,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -alsa-lib config.status 1.2.7.2 +alsa-lib config.status 1.2.8 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -16769,8 +16769,9 @@ echo "Creating asoundlib.h..." cp "$srcdir"/include/asoundlib-head.h include/asoundlib.h +if test "$ac_cv_header_sys_endian_h" != "yes"; then test "$ac_cv_header_endian_h" = "yes" && echo "#include <endian.h>" >> include/asoundlib.h -if test "$ac_cv_header_sys_endian_h" = "yes"; then +else cat >> include/asoundlib.h <<EOF #include <sys/endian.h> #ifndef __BYTE_ORDER diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/configure.ac new/alsa-lib-1.2.8/configure.ac --- old/alsa-lib-1.2.7.2/configure.ac 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/configure.ac 2022-10-24 10:17:27.000000000 +0200 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) -AC_INIT(alsa-lib, 1.2.7.2) +AC_INIT(alsa-lib, 1.2.8) AC_CONFIG_SRCDIR([src/control/control.c]) AC_CONFIG_MACRO_DIR([m4]) @@ -335,7 +335,7 @@ fi dnl Check for headers -AC_CHECK_HEADERS([endian.h sys/endian.h sys/shm.h]) +AC_CHECK_HEADERS([endian.h sys/endian.h sys/shm.h malloc.h]) dnl Check for resmgr support... AC_MSG_CHECKING(for resmgr support) @@ -764,8 +764,9 @@ dnl Create asoundlib.h dynamically according to configure options echo "Creating asoundlib.h..." cp "$srcdir"/include/asoundlib-head.h include/asoundlib.h +if test "$ac_cv_header_sys_endian_h" != "yes"; then test "$ac_cv_header_endian_h" = "yes" && echo "#include <endian.h>" >> include/asoundlib.h -if test "$ac_cv_header_sys_endian_h" = "yes"; then +else cat >> include/asoundlib.h <<EOF #include <sys/endian.h> #ifndef __BYTE_ORDER diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/doc/pictures/Makefile.am new/alsa-lib-1.2.8/doc/pictures/Makefile.am --- old/alsa-lib-1.2.7.2/doc/pictures/Makefile.am 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/doc/pictures/Makefile.am 2022-10-24 10:17:27.000000000 +0200 @@ -1 +1,9 @@ -EXTRA_DIST=wave1.gif wave2.gif +GIT_FILES=$(wildcard *.gif) +PUML_FILES=$(wildcard *.puml) +SVG_FILES=$(PUML_FILES:.puml=.svg) +EXTRA_DIST=$(GIT_FILES) $(PUML_FILES) $(SVG_FILES) + +all: $(SVG_FILES) + +.puml.svg: + plantuml -tsvg $< diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/doc/pictures/Makefile.in new/alsa-lib-1.2.8/doc/pictures/Makefile.in --- old/alsa-lib-1.2.7.2/doc/pictures/Makefile.in 2022-07-08 17:36:01.000000000 +0200 +++ new/alsa-lib-1.2.8/doc/pictures/Makefile.in 2022-10-24 10:19:18.000000000 +0200 @@ -254,10 +254,14 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = wave1.gif wave2.gif +GIT_FILES = $(wildcard *.gif) +PUML_FILES = $(wildcard *.puml) +SVG_FILES = $(PUML_FILES:.puml=.svg) +EXTRA_DIST = $(GIT_FILES) $(PUML_FILES) $(SVG_FILES) all: all-am .SUFFIXES: +.SUFFIXES: .puml .svg $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -450,6 +454,11 @@ .PRECIOUS: Makefile +all: $(SVG_FILES) + +.puml.svg: + plantuml -tsvg $< + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-boot.puml new/alsa-lib-1.2.8/doc/pictures/ucm-seq-boot.puml --- old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-boot.puml 1970-01-01 01:00:00.000000000 +0100 +++ new/alsa-lib-1.2.8/doc/pictures/ucm-seq-boot.puml 2022-10-24 10:17:27.000000000 +0200 @@ -0,0 +1,17 @@ +@startuml +title "UCM sequence boot order (using udev and alsactl)" + +start +:Sound card detected (udev); +:UCM: FixedBootSequence; +if (Card state (/var/lib/alsa/asound.state)) then (not present) + :UCM: BootSequence; +else (present) + :alsactl: Restore state (from asound.state); +endif +:Standard sound card use (with or without UCM); +:Save sound card state (asound.state); +:Sound card detached; +stop + +@enduml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-boot.svg new/alsa-lib-1.2.8/doc/pictures/ucm-seq-boot.svg --- old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-boot.svg 1970-01-01 01:00:00.000000000 +0100 +++ new/alsa-lib-1.2.8/doc/pictures/ucm-seq-boot.svg 2022-10-24 10:17:27.000000000 +0200 @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="508px" preserveAspectRatio="none" style="width:500px;height:508px;background:#FFFFFF;" version="1.1" viewBox="0 0 500 508" width="500px" zoomAndPan="magnify"><defs/><g><rect height="26.2969" style="stroke:#00000000;stroke-width:1.0;fill:none;" width="411" x="43" y="15"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="401" x="48" y="32.9951">UCM sequence boot order (using udev and alsactl)</text><ellipse cx="215.5" cy="57.2969" fill="#222222" rx="10" ry="10" style="stroke:#222222;stroke-width:1.0;"/><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="197" x="117" y="87.2969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="177" x="127" y="108.4355" >Sound card detected (udev)</text><rect fill="#F1F1F1" height="33.9688" >rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="179" >x="126" y="141.2656"/><text fill="#000000" font-family="sans-serif" >font-size="12" lengthAdjust="spacing" textLength="159" x="136" >y="162.4043">UCM: FixedBootSequence</text><polygon fill="#F1F1F1" >points="106.5,195.2344,324.5,195.2344,336.5,207.2344,324.5,219.2344,106.5,219.2344,94.5,207.2344,106.5,195.2344" > style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" >font-family="sans-serif" font-size="11" lengthAdjust="spacing" >textLength="218" x="106.5" y="211.0425">Card state >(/var/lib/alsa/asound.state)</text><text fill="#000000" >font-family="sans-serif" font-size="11" lengthAdjust="spacing" >textLength="66" x="28.5" y="204.6401">not present</text><text fill="#000000" >font-family="sans-serif" font-size="11" lengthAdjust="spacing" >textLength="44" x="336.5" y="204.6401">present</text><rect fill="#F1F1F1" >height="33.9688" rx="12.5" ry="1 2.5" style="stroke:#181818;stroke-width:0.5;" width="147" x="11" y="229.2344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="127" x="21" y="250.373">UCM: BootSequence</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="285" x="204" y="229.2344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="265" x="214" y="250.373">alsactl: Restore state (from asound.state)</text><polygon fill="#F1F1F1" points="215.5,269.2031,227.5,281.2031,215.5,293.2031,203.5,281.2031,215.5,269.2031" style="stroke:#181818;stroke-width:0.5;"/><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="317" x="57" y="313.2031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="297" x="67" y="334.3418">Standard sound card use (with or without UCM)</text><rect fill="#F1F 1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="260" x="85.5" y="367.1719"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="240" x="95.5" y="388.3105">Save sound card state (asound.state)</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="156" x="137.5" y="421.1406"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="136" x="147.5" y="442.2793">Sound card detached</text><ellipse cx="215.5" cy="486.1094" rx="11" ry="11" style="stroke:#222222;stroke-width:1.0;fill:none;"/><ellipse cx="215.5" cy="486.1094" fill="#222222" rx="6" ry="6" style="stroke:#111111;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="215.5" x2="215.5" y1="67.2969" y2="87.2969"/><polygon fill="#181818" points="211.5,77.2969,215.5,87.2969,219.5,77.2969,215.5,81.2969" style="stroke:#181818;stroke-width:1 .0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="215.5" x2="215.5" y1="121.2656" y2="141.2656"/><polygon fill="#181818" points="211.5,131.2656,215.5,141.2656,219.5,131.2656,215.5,135.2656" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="94.5" x2="84.5" y1="207.2344" y2="207.2344"/><line style="stroke:#181818;stroke-width:1.0;" x1="84.5" x2="84.5" y1="207.2344" y2="229.2344"/><polygon fill="#181818" points="80.5,219.2344,84.5,229.2344,88.5,219.2344,84.5,223.2344" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="336.5" x2="346.5" y1="207.2344" y2="207.2344"/><line style="stroke:#181818;stroke-width:1.0;" x1="346.5" x2="346.5" y1="207.2344" y2="229.2344"/><polygon fill="#181818" points="342.5,219.2344,346.5,229.2344,350.5,219.2344,346.5,223.2344" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="84.5" x2="84.5" y1="263.2031" y2="281.2031"/><line st yle="stroke:#181818;stroke-width:1.0;" x1="84.5" x2="203.5" y1="281.2031" y2="281.2031"/><polygon fill="#181818" points="193.5,277.2031,203.5,281.2031,193.5,285.2031,197.5,281.2031" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="346.5" x2="346.5" y1="263.2031" y2="281.2031"/><line style="stroke:#181818;stroke-width:1.0;" x1="346.5" x2="227.5" y1="281.2031" y2="281.2031"/><polygon fill="#181818" points="237.5,277.2031,227.5,281.2031,237.5,285.2031,233.5,281.2031" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="215.5" x2="215.5" y1="175.2344" y2="195.2344"/><polygon fill="#181818" points="211.5,185.2344,215.5,195.2344,219.5,185.2344,215.5,189.2344" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="215.5" x2="215.5" y1="293.2031" y2="313.2031"/><polygon fill="#181818" points="211.5,303.2031,215.5,313.2031,219.5,303.2031,215.5,307.2031" style="stroke:#181 818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="215.5" x2="215.5" y1="347.1719" y2="367.1719"/><polygon fill="#181818" points="211.5,357.1719,215.5,367.1719,219.5,357.1719,215.5,361.1719" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="215.5" x2="215.5" y1="401.1406" y2="421.1406"/><polygon fill="#181818" points="211.5,411.1406,215.5,421.1406,219.5,411.1406,215.5,415.1406" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="215.5" x2="215.5" y1="455.1094" y2="475.1094"/><polygon fill="#181818" points="211.5,465.1094,215.5,475.1094,219.5,465.1094,215.5,469.1094" style="stroke:#181818;stroke-width:1.0;"/><!--MD5=[e09ca9f4b18fe6c64001e568b14569ed] +@startuml +title "UCM sequence boot order (using udev and alsactl)" + +start +:Sound card detected (udev); +:UCM: FixedBootSequence; +if (Card state (/var/lib/alsa/asound.state)) then (not present) + :UCM: BootSequence; +else (present) + :alsactl: Restore state (from asound.state); +endif +:Standard sound card use (with or without UCM); +:Save sound card state (asound.state); +:Sound card detached; +stop + +@enduml + +PlantUML version 1.2022.5(Sat Apr 30 12:55:52 CEST 2022) +(LGPL source distribution) +Java Runtime: OpenJDK Runtime Environment +JVM: OpenJDK 64-Bit Server VM +Default Encoding: UTF-8 +Language: cs +Country: CZ +--></g></svg> \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-device.puml new/alsa-lib-1.2.8/doc/pictures/ucm-seq-device.puml --- old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-device.puml 1970-01-01 01:00:00.000000000 +0100 +++ new/alsa-lib-1.2.8/doc/pictures/ucm-seq-device.puml 2022-10-24 10:17:27.000000000 +0200 @@ -0,0 +1,26 @@ +@startuml +title "UCM device sequence graph" + +start +split + :Enable device; + :EnableSequence; + :Use device; + :Disable device; + :DisableSequence; +split again + :Switch device; + :Disable old device; + if (TransitionSequence) then (present) + :TransitionSequence; + :Enable new device; + else (not present) + :Disable old device; + :DisableSequence; + :Enable new device; + :EnableSequence; + endif +end split +stop + +@enduml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-device.svg new/alsa-lib-1.2.8/doc/pictures/ucm-seq-device.svg --- old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-device.svg 1970-01-01 01:00:00.000000000 +0100 +++ new/alsa-lib-1.2.8/doc/pictures/ucm-seq-device.svg 2022-10-24 10:17:27.000000000 +0200 @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="598px" preserveAspectRatio="none" style="width:462px;height:598px;background:#FFFFFF;" version="1.1" viewBox="0 0 462 598" width="462px" zoomAndPan="magnify"><defs/><g><rect height="26.2969" style="stroke:#00000000;stroke-width:1.0;fill:none;" width="236" x="111.5" y="15"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="226" x="116.5" y="32.9951">UCM device sequence graph</text><ellipse cx="222" cy="57.2969" fill="#222222" rx="10" ry="10" style="stroke:#222222;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.5;" x1="75.5" x2="302.75" y1="87.2969" y2="87.2969"/><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="107" x="22" y="161.2656"/><text fill="#000000" font-family="sans-serif " font-size="12" lengthAdjust="spacing" textLength="87" x="32" y="182.4043">Enable device</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="126" x="12.5" y="217.7188"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="106" x="22.5" y="238.8574">EnableSequence</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="88" x="31.5" y="286.6875"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="68" x="41.5" y="307.8262">Use device</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="110" x="20.5" y="355.6563"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="90" x="30.5" y="376.7949">Disable device</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#1 81818;stroke-width:0.5;" width="129" x="11" y="424.625"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="109" x="21" y="445.7637">DisableSequence</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="104" x="250.75" y="107.2969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="84" x="260.75" y="128.4355">Switch device</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="133" x="236.25" y="163.75"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="113" x="246.25" y="184.8887">Disable old device</text><polygon fill="#F1F1F1" points="246.25,220.2031,359.25,220.2031,371.25,232.2031,359.25,244.2031,246.25,244.2031,234.25,232.2031,246.25,220.2031" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="113" x="246.25" y="236.0112">TransitionSequence</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="44" x="190.25" y="229.6089">present</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="66" x="371.25" y="229.6089">not present</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="145" x="150" y="254.2031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="125" x="160" y="275.3418">TransitionSequence</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="136" x="154.5" y="323.1719"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="116" x="164.5" y="344.3105">Enable new device</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry ="12.5" style="stroke:#181818;stroke-width:0.5;" width="133" x="316.5" y="254.2031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="113" x="326.5" y="275.3418">Disable old device</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="129" x="318.5" y="323.1719"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="109" x="328.5" y="344.3105">DisableSequence</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="136" x="315" y="392.1406"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="116" x="325" y="413.2793">Enable new device</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="126" x="320" y="461.1094"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdj ust="spacing" textLength="106" x="330" y="482.248">EnableSequence</text><polygon fill="#F1F1F1" points="302.75,501.0781,314.75,513.0781,302.75,525.0781,290.75,513.0781,302.75,501.0781" style="stroke:#181818;stroke-width:0.5;"/><line style="stroke:#181818;stroke-width:1.5;" x1="75.5" x2="302.75" y1="545.0781" y2="545.0781"/><ellipse cx="222" cy="576.0781" rx="11" ry="11" style="stroke:#222222;stroke-width:1.0;fill:none;"/><ellipse cx="222" cy="576.0781" fill="#222222" rx="6" ry="6" style="stroke:#111111;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="75.5" x2="75.5" y1="195.2344" y2="217.7188"/><polygon fill="#181818" points="71.5,207.7188,75.5,217.7188,79.5,207.7188,75.5,211.7188" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="75.5" x2="75.5" y1="251.6875" y2="286.6875"/><polygon fill="#181818" points="71.5,276.6875,75.5,286.6875,79.5,276.6875,75.5,280.6875" style="stroke:#181818;stroke-width:1.0;"/><line style="st roke:#181818;stroke-width:1.0;" x1="75.5" x2="75.5" y1="320.6563" y2="355.6563"/><polygon fill="#181818" points="71.5,345.6563,75.5,355.6563,79.5,345.6563,75.5,349.6563" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="75.5" x2="75.5" y1="389.625" y2="424.625"/><polygon fill="#181818" points="71.5,414.625,75.5,424.625,79.5,414.625,75.5,418.625" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="302.75" x2="302.75" y1="141.2656" y2="163.75"/><polygon fill="#181818" points="298.75,153.75,302.75,163.75,306.75,153.75,302.75,157.75" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="222.5" x2="222.5" y1="288.1719" y2="323.1719"/><polygon fill="#181818" points="218.5,313.1719,222.5,323.1719,226.5,313.1719,222.5,317.1719" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="383" x2="383" y1="288.1719" y2="323.1719"/><polygon fill="#181818" points="379,313.1719,383,323.1719,387,313.1719,383,317.1719" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="383" x2="383" y1="357.1406" y2="392.1406"/><polygon fill="#181818" points="379,382.1406,383,392.1406,387,382.1406,383,386.1406" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="383" x2="383" y1="426.1094" y2="461.1094"/><polygon fill="#181818" points="379,451.1094,383,461.1094,387,451.1094,383,455.1094" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="234.25" x2="222.5" y1="232.2031" y2="232.2031"/><line style="stroke:#181818;stroke-width:1.0;" x1="222.5" x2="222.5" y1="232.2031" y2="254.2031"/><polygon fill="#181818" points="218.5,244.2031,222.5,254.2031,226.5,244.2031,222.5,248.2031" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="371.25" x2="383" y1="232.2031" y2="232.2031"/><line s tyle="stroke:#181818;stroke-width:1.0;" x1="383" x2="383" y1="232.2031" y2="254.2031"/><polygon fill="#181818" points="379,244.2031,383,254.2031,387,244.2031,383,248.2031" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="222.5" x2="222.5" y1="357.1406" y2="513.0781"/><line style="stroke:#181818;stroke-width:1.0;" x1="222.5" x2="290.75" y1="513.0781" y2="513.0781"/><polygon fill="#181818" points="280.75,509.0781,290.75,513.0781,280.75,517.0781,284.75,513.0781" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="383" x2="383" y1="495.0781" y2="513.0781"/><line style="stroke:#181818;stroke-width:1.0;" x1="383" x2="314.75" y1="513.0781" y2="513.0781"/><polygon fill="#181818" points="324.75,509.0781,314.75,513.0781,324.75,517.0781,320.75,513.0781" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="302.75" x2="302.75" y1="197.7188" y2="220.2031"/><polygon fill="#1 81818" points="298.75,210.2031,302.75,220.2031,306.75,210.2031,302.75,214.2031" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="75.5" x2="75.5" y1="88.7969" y2="161.2656"/><polygon fill="#181818" points="71.5,151.2656,75.5,161.2656,79.5,151.2656,75.5,155.2656" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="302.75" x2="302.75" y1="88.7969" y2="107.2969"/><polygon fill="#181818" points="298.75,97.2969,302.75,107.2969,306.75,97.2969,302.75,101.2969" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="75.5" x2="75.5" y1="458.5938" y2="545.0781"/><polygon fill="#181818" points="71.5,535.0781,75.5,545.0781,79.5,535.0781,75.5,539.0781" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="302.75" x2="302.75" y1="525.0781" y2="545.0781"/><polygon fill="#181818" points="298.75,535.0781,302.75,545.0781,306.75,535.0781,302.75 ,539.0781" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="222" x2="222" y1="67.2969" y2="87.2969"/><polygon fill="#181818" points="218,77.2969,222,87.2969,226,77.2969,222,81.2969" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="222" x2="222" y1="546.5781" y2="565.0781"/><polygon fill="#181818" points="218,555.0781,222,565.0781,226,555.0781,222,559.0781" style="stroke:#181818;stroke-width:1.0;"/><!--MD5=[9943065c368326033cbbfb71ee762752] +@startuml +title "UCM device sequence graph" + +start +split + :Enable device; + :EnableSequence; + :Use device; + :Disable device; + :DisableSequence; +split again + :Switch device; + :Disable old device; + if (TransitionSequence) then (present) + :TransitionSequence; + :Enable new device; + else (not present) + :Disable old device; + :DisableSequence; + :Enable new device; + :EnableSequence; + endif +end split +stop + +@enduml + +PlantUML version 1.2022.5(Sat Apr 30 12:55:52 CEST 2022) +(LGPL source distribution) +Java Runtime: OpenJDK Runtime Environment +JVM: OpenJDK 64-Bit Server VM +Default Encoding: UTF-8 +Language: cs +Country: CZ +--></g></svg> \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-verb.puml new/alsa-lib-1.2.8/doc/pictures/ucm-seq-verb.puml --- old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-verb.puml 1970-01-01 01:00:00.000000000 +0100 +++ new/alsa-lib-1.2.8/doc/pictures/ucm-seq-verb.puml 2022-10-24 10:17:27.000000000 +0200 @@ -0,0 +1,30 @@ +@startuml +title "UCM verb sequence graph" + + +start +split + :Enable verb; + :SectionDefaults sequence; + :EnableSequence; + + :Enable, use and disable verb devices; + + :Disable verb; + :DisableSequence; +split again + :Switch verb; + :Disable old verb; + if (TransitionSequence) then (present) + :TransitionSequence; + :Enable new verb; + else (not present) + :Disable old verb; + :DisableSequence; + :Enable new verb; + :EnableSequence; + endif +end split +stop + +@enduml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-verb.svg new/alsa-lib-1.2.8/doc/pictures/ucm-seq-verb.svg --- old/alsa-lib-1.2.7.2/doc/pictures/ucm-seq-verb.svg 1970-01-01 01:00:00.000000000 +0100 +++ new/alsa-lib-1.2.8/doc/pictures/ucm-seq-verb.svg 2022-10-24 10:17:27.000000000 +0200 @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="584px" preserveAspectRatio="none" style="width:583px;height:584px;background:#FFFFFF;" version="1.1" viewBox="0 0 583 584" width="583px" zoomAndPan="magnify"><defs/><g><rect height="26.2969" style="stroke:#00000000;stroke-width:1.0;fill:none;" width="220" x="180.25" y="15"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="210" x="185.25" y="32.9951">UCM verb sequence graph</text><ellipse cx="285" cy="57.2969" fill="#222222" rx="10" ry="10" style="stroke:#222222;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.5;" x1="137.5" x2="429.5" y1="87.2969" y2="87.2969"/><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="94" x="90.5" y="139.2969"/><text fill="#000000" font-family="sans-seri f" font-size="12" lengthAdjust="spacing" textLength="74" x="100.5" y="160.4355">Enable verb</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="185" x="45" y="208.2656"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="165" x="55" y="229.4043">SectionDefaults sequence</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="126" x="74.5" y="277.2344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="106" x="84.5" y="298.373">EnableSequence</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="253" x="11" y="333.2031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="233" x="21" y="354.3418">Enable, use and disable verb devices</text><rect fill="#F1F1F1" height="33.9688" rx=" 12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="97" x="89" y="389.1719"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="77" x="99" y="410.3105">Disable verb</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="129" x="73" y="445.1406"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="109" x="83" y="466.2793">DisableSequence</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="91" x="384" y="107.2969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="71" x="394" y="128.4355">Switch verb</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="120" x="369.5" y="176.2656"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" text Length="100" x="379.5" y="197.4043">Disable old verb</text><polygon fill="#F1F1F1" points="373,245.2344,486,245.2344,498,257.2344,486,269.2344,373,269.2344,361,257.2344,373,245.2344" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="113" x="373" y="261.0425">TransitionSequence</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="44" x="317" y="254.6401">present</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="66" x="498" y="254.6401">not present</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="145" x="278.5" y="279.2344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="125" x="288.5" y="300.373">TransitionSequence</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="str oke:#181818;stroke-width:0.5;" width="123" x="289.5" y="335.2031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="103" x="299.5" y="356.3418">Enable new verb</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="120" x="448" y="279.2344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="100" x="458" y="300.373">Disable old verb</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="129" x="443.5" y="335.2031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="109" x="453.5" y="356.3418">DisableSequence</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="123" x="446.5" y="391.1719"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLen gth="103" x="456.5" y="412.3105">Enable new verb</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="126" x="445" y="447.1406"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="106" x="455" y="468.2793">EnableSequence</text><polygon fill="#F1F1F1" points="429.5,487.1094,441.5,499.1094,429.5,511.1094,417.5,499.1094,429.5,487.1094" style="stroke:#181818;stroke-width:0.5;"/><line style="stroke:#181818;stroke-width:1.5;" x1="137.5" x2="429.5" y1="531.1094" y2="531.1094"/><ellipse cx="285" cy="562.1094" rx="11" ry="11" style="stroke:#222222;stroke-width:1.0;fill:none;"/><ellipse cx="285" cy="562.1094" fill="#222222" rx="6" ry="6" style="stroke:#111111;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="137.5" x2="137.5" y1="173.2656" y2="208.2656"/><polygon fill="#181818" points="133.5,198.2656,137.5,208.2656,141.5,198.2656,137.5,202.2656" style="stroke:#181818;st roke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="137.5" x2="137.5" y1="242.2344" y2="277.2344"/><polygon fill="#181818" points="133.5,267.2344,137.5,277.2344,141.5,267.2344,137.5,271.2344" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="137.5" x2="137.5" y1="311.2031" y2="333.2031"/><polygon fill="#181818" points="133.5,323.2031,137.5,333.2031,141.5,323.2031,137.5,327.2031" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="137.5" x2="137.5" y1="367.1719" y2="389.1719"/><polygon fill="#181818" points="133.5,379.1719,137.5,389.1719,141.5,379.1719,137.5,383.1719" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="137.5" x2="137.5" y1="423.1406" y2="445.1406"/><polygon fill="#181818" points="133.5,435.1406,137.5,445.1406,141.5,435.1406,137.5,439.1406" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="429.5" x2="429.5" y1="141.2656" y2="176.2656"/><polygon fill="#181818" points="425.5,166.2656,429.5,176.2656,433.5,166.2656,429.5,170.2656" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="351" x2="351" y1="313.2031" y2="335.2031"/><polygon fill="#181818" points="347,325.2031,351,335.2031,355,325.2031,351,329.2031" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="508" x2="508" y1="313.2031" y2="335.2031"/><polygon fill="#181818" points="504,325.2031,508,335.2031,512,325.2031,508,329.2031" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="508" x2="508" y1="369.1719" y2="391.1719"/><polygon fill="#181818" points="504,381.1719,508,391.1719,512,381.1719,508,385.1719" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="508" x2="508" y1="425.1406" y2="447.1406"/><polygon fill="#181818" points="504,437.1406,508,447.1 406,512,437.1406,508,441.1406" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="361" x2="351" y1="257.2344" y2="257.2344"/><line style="stroke:#181818;stroke-width:1.0;" x1="351" x2="351" y1="257.2344" y2="279.2344"/><polygon fill="#181818" points="347,269.2344,351,279.2344,355,269.2344,351,273.2344" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="498" x2="508" y1="257.2344" y2="257.2344"/><line style="stroke:#181818;stroke-width:1.0;" x1="508" x2="508" y1="257.2344" y2="279.2344"/><polygon fill="#181818" points="504,269.2344,508,279.2344,512,269.2344,508,273.2344" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="351" x2="351" y1="369.1719" y2="499.1094"/><line style="stroke:#181818;stroke-width:1.0;" x1="351" x2="417.5" y1="499.1094" y2="499.1094"/><polygon fill="#181818" points="407.5,495.1094,417.5,499.1094,407.5,503.1094,411.5,499.1094" style="stro ke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="508" x2="508" y1="481.1094" y2="499.1094"/><line style="stroke:#181818;stroke-width:1.0;" x1="508" x2="441.5" y1="499.1094" y2="499.1094"/><polygon fill="#181818" points="451.5,495.1094,441.5,499.1094,451.5,503.1094,447.5,499.1094" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="429.5" x2="429.5" y1="210.2344" y2="245.2344"/><polygon fill="#181818" points="425.5,235.2344,429.5,245.2344,433.5,235.2344,429.5,239.2344" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="137.5" x2="137.5" y1="88.7969" y2="139.2969"/><polygon fill="#181818" points="133.5,129.2969,137.5,139.2969,141.5,129.2969,137.5,133.2969" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="429.5" x2="429.5" y1="88.7969" y2="107.2969"/><polygon fill="#181818" points="425.5,97.2969,429.5,107.2969,433.5,97.2969,429. 5,101.2969" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="137.5" x2="137.5" y1="479.1094" y2="531.1094"/><polygon fill="#181818" points="133.5,521.1094,137.5,531.1094,141.5,521.1094,137.5,525.1094" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="429.5" x2="429.5" y1="511.1094" y2="531.1094"/><polygon fill="#181818" points="425.5,521.1094,429.5,531.1094,433.5,521.1094,429.5,525.1094" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="285" x2="285" y1="67.2969" y2="87.2969"/><polygon fill="#181818" points="281,77.2969,285,87.2969,289,77.2969,285,81.2969" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="285" x2="285" y1="532.6094" y2="551.1094"/><polygon fill="#181818" points="281,541.1094,285,551.1094,289,541.1094,285,545.1094" style="stroke:#181818;stroke-width:1.0;"/><!--MD5=[b20d35c68d0851020e52c93753caf6f4 ] +@startuml +title "UCM verb sequence graph" + + +start +split + :Enable verb; + :SectionDefaults sequence; + :EnableSequence; + + :Enable, use and disable verb devices; + + :Disable verb; + :DisableSequence; +split again + :Switch verb; + :Disable old verb; + if (TransitionSequence) then (present) + :TransitionSequence; + :Enable new verb; + else (not present) + :Disable old verb; + :DisableSequence; + :Enable new verb; + :EnableSequence; + endif +end split +stop + +@enduml + +PlantUML version 1.2022.5(Sat Apr 30 12:55:52 CEST 2022) +(LGPL source distribution) +Java Runtime: OpenJDK Runtime Environment +JVM: OpenJDK 64-Bit Server VM +Default Encoding: UTF-8 +Language: cs +Country: CZ +--></g></svg> \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/doc/pictures/ucm-volume.puml new/alsa-lib-1.2.8/doc/pictures/ucm-volume.puml --- old/alsa-lib-1.2.7.2/doc/pictures/ucm-volume.puml 1970-01-01 01:00:00.000000000 +0100 +++ new/alsa-lib-1.2.8/doc/pictures/ucm-volume.puml 2022-10-24 10:17:27.000000000 +0200 @@ -0,0 +1,19 @@ +@startuml +title "UCM volume" + +start +if (Card state (/var/lib/alsa/asound.state)) then (not present) + :UCM: BootSequence; +else (present) + :alsactl: Restore state (from asound.state); +endif +:UCM application:set device volume; +note right + The application uses (Playback|Capture)MixerElem or + (Playback/Capture)(Volume/Switch) values to get + the controls. +end note +:alsactl: Store state (to asound.state); +stop + +@enduml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/doc/pictures/ucm-volume.svg new/alsa-lib-1.2.8/doc/pictures/ucm-volume.svg --- old/alsa-lib-1.2.7.2/doc/pictures/ucm-volume.svg 1970-01-01 01:00:00.000000000 +0100 +++ new/alsa-lib-1.2.8/doc/pictures/ucm-volume.svg 2022-10-24 10:17:27.000000000 +0200 @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="357px" preserveAspectRatio="none" style="width:724px;height:357px;background:#FFFFFF;" version="1.1" viewBox="0 0 724 357" width="724px" zoomAndPan="magnify"><defs/><g><rect height="26.2969" style="stroke:#00000000;stroke-width:1.0;fill:none;" width="107" x="307.25" y="15"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="97" x="312.25" y="32.9951">UCM volume</text><ellipse cx="215.5" cy="57.2969" fill="#222222" rx="10" ry="10" style="stroke:#222222;stroke-width:1.0;"/><polygon fill="#F1F1F1" points="106.5,87.2969,324.5,87.2969,336.5,99.2969,324.5,111.2969,106.5,111.2969,94.5,99.2969,106.5,87.2969" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="218" x="106.5" y="103.105">Card state (/var/lib/alsa/asound.state)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="66" x="28.5" y="96.7026">not present</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="44" x="336.5" y="96.7026">present</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="147" x="11" y="121.2969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="127" x="21" y="142.4355">UCM: BootSequence</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="285" x="204" y="121.2969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="265" x="214" y="142.4355">alsactl: Restore state (from asound.state)</text><polygon fill="#F1F1F1" points="215.5,161.2656,227.5,173.2656,215.5,185.2656,203.5 ,173.2656,215.5,161.2656" style="stroke:#181818;stroke-width:0.5;"/><path d="M353.5,195.2656 L353.5,218.9648 L333.5,222.9648 L353.5,226.9648 L353.5,250.6641 A0,0 0 0 0 353.5,250.6641 L712.5,250.6641 A0,0 0 0 0 712.5,250.6641 L712.5,205.2656 L702.5,195.2656 L353.5,195.2656 A0,0 0 0 0 353.5,195.2656 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M702.5,195.2656 L702.5,205.2656 L712.5,205.2656 L702.5,195.2656 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="338" x="359.5" y="212.3325">The application uses (Playback|Capture)MixerElem or</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="312" x="359.5" y="227.4653">(Playback/Capture)(Volume/Switch) values to get</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="80" x="359.5" y="242.5981">the controls.</text><rec t fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="236" x="97.5" y="205.9805"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="216" x="107.5" y="227.1191">UCM application:set device volume</text><rect fill="#F1F1F1" height="33.9688" rx="12.5" ry="12.5" style="stroke:#181818;stroke-width:0.5;" width="255" x="88" y="270.6641"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="235" x="98" y="291.8027">alsactl: Store state (to asound.state)</text><ellipse cx="215.5" cy="335.6328" rx="11" ry="11" style="stroke:#222222;stroke-width:1.0;fill:none;"/><ellipse cx="215.5" cy="335.6328" fill="#222222" rx="6" ry="6" style="stroke:#111111;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="94.5" x2="84.5" y1="99.2969" y2="99.2969"/><line style="stroke:#181818;stroke-width:1.0;" x1="84.5" x2="84.5" y1="99.2969" y2="121.2969"/><polygon fill="#181818" points="80.5,111.2969,84.5,121.2969,88.5,111.2969,84.5,115.2969" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="336.5" x2="346.5" y1="99.2969" y2="99.2969"/><line style="stroke:#181818;stroke-width:1.0;" x1="346.5" x2="346.5" y1="99.2969" y2="121.2969"/><polygon fill="#181818" points="342.5,111.2969,346.5,121.2969,350.5,111.2969,346.5,115.2969" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="84.5" x2="84.5" y1="155.2656" y2="173.2656"/><line style="stroke:#181818;stroke-width:1.0;" x1="84.5" x2="203.5" y1="173.2656" y2="173.2656"/><polygon fill="#181818" points="193.5,169.2656,203.5,173.2656,193.5,177.2656,197.5,173.2656" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="346.5" x2="346.5" y1="155.2656" y2="173.2656"/><line style="stroke:#181818;stroke-width:1.0;" x1="346.5" x2="227.5" y1="173.2656" y2="173.2656"/><polygon fill="#181818" points="237.5,169.2656,227.5,173.2656,237.5,177.2656,233.5,173.2656" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="215.5" x2="215.5" y1="67.2969" y2="87.2969"/><polygon fill="#181818" points="211.5,77.2969,215.5,87.2969,219.5,77.2969,215.5,81.2969" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="215.5" x2="215.5" y1="185.2656" y2="205.9805"/><polygon fill="#181818" points="211.5,195.9805,215.5,205.9805,219.5,195.9805,215.5,199.9805" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="215.5" x2="215.5" y1="239.9492" y2="270.6641"/><polygon fill="#181818" points="211.5,260.6641,215.5,270.6641,219.5,260.6641,215.5,264.6641" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="215.5" x2="215.5" y1="304.6328" y2="324.6328"/><polygon fill="#181818" points="211.5,314.6328,215.5,324.6328,219.5,314.6328,215.5,318.6328" s tyle="stroke:#181818;stroke-width:1.0;"/><!--MD5=[3a7c61dd4ff8304ea95eeb2e154d1932] +@startuml +title "UCM volume" + +start +if (Card state (/var/lib/alsa/asound.state)) then (not present) + :UCM: BootSequence; +else (present) + :alsactl: Restore state (from asound.state); +endif +:UCM application:set device volume; +note right + The application uses (Playback|Capture)MixerElem or + (Playback/Capture)(Volume/Switch) values to get + the controls. +end note +:alsactl: Store state (to asound.state); +stop + +@enduml + +PlantUML version 1.2022.5(Sat Apr 30 12:55:52 CEST 2022) +(LGPL source distribution) +Java Runtime: OpenJDK Runtime Environment +JVM: OpenJDK 64-Bit Server VM +Default Encoding: UTF-8 +Language: cs +Country: CZ +--></g></svg> \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/include/bswap.h new/alsa-lib-1.2.8/include/bswap.h --- old/alsa-lib-1.2.7.2/include/bswap.h 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/include/bswap.h 2022-10-24 10:17:27.000000000 +0200 @@ -27,6 +27,11 @@ #define bswap_16 bswap16 #define bswap_32 bswap32 #define bswap_64 bswap64 +#elif defined(__OpenBSD__) +#include <sys/endian.h> +#define bswap_16 swap16 +#define bswap_32 swap32 +#define bswap_64 swap64 #elif defined (__sun) #include <sys/byteorder.h> #define bswap_16 BSWAP_16 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/include/config.h.in new/alsa-lib-1.2.8/include/config.h.in --- old/alsa-lib-1.2.7.2/include/config.h.in 2022-07-08 17:36:00.000000000 +0200 +++ new/alsa-lib-1.2.8/include/config.h.in 2022-10-24 10:19:17.000000000 +0200 @@ -90,6 +90,9 @@ /* Have librt */ #undef HAVE_LIBRT +/* Define to 1 if you have the <malloc.h> header file. */ +#undef HAVE_MALLOC_H + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/include/local.h new/alsa-lib-1.2.8/include/local.h --- old/alsa-lib-1.2.7.2/include/local.h 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/include/local.h 2022-10-24 10:17:27.000000000 +0200 @@ -34,6 +34,9 @@ #include <endian.h> #elif defined(HAVE_SYS_ENDIAN_H) #include <sys/endian.h> +#else +#error Header defining endianness not defined +#endif #ifndef __BYTE_ORDER #define __BYTE_ORDER BYTE_ORDER #endif @@ -43,9 +46,6 @@ #ifndef __BIG_ENDIAN #define __BIG_ENDIAN BIG_ENDIAN #endif -#else -#error Header defining endianness not defined -#endif #include <stdarg.h> #include <poll.h> #include <sys/types.h> @@ -85,6 +85,8 @@ #define versionsort64 versionsort #define alphasort64 alphasort #define ino64_t ino_t +#define fstat64 fstat +#define stat64 stat #endif #define _snd_config_iterator list_head diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/include/sound/type_compat.h new/alsa-lib-1.2.8/include/sound/type_compat.h --- old/alsa-lib-1.2.7.2/include/sound/type_compat.h 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/include/sound/type_compat.h 2022-10-24 10:17:27.000000000 +0200 @@ -3,7 +3,7 @@ #ifndef DOC_HIDDEN #include <stdint.h> -#ifdef __linux__ +#if defined(__linux__) #include <linux/types.h> #else typedef uint8_t __u8; @@ -15,8 +15,14 @@ typedef int32_t __s32; typedef int64_t __s64; -#include <endian.h> -#include <byteswap.h> +#if defined(__sun) +#include <sys/byteorder.h> +#define __cpu_to_le32 LE_32(x) +#define __cpu_to_be32 BE_32(x) +#define __cpu_to_le16 LE_16(x) +#define __cpu_to_be16 BE_16(x) +#else +#include <sys/endian.h> #if __BYTE_ORDER == __LITTLE_ENDIAN #define __cpu_to_le32(x) (x) #define __cpu_to_be32(x) bswap_32(x) @@ -28,20 +34,12 @@ #define __cpu_to_le16(x) bswap_16(x) #define __cpu_to_be16(x) (x) #endif +#endif #define __le32_to_cpu __cpu_to_le32 #define __be32_to_cpu __cpu_to_be32 #define __le16_to_cpu __cpu_to_le16 #define __be16_to_cpu __cpu_to_be16 - -#define __le64 __u64 -#define __le32 __u32 -#define __le16 __u16 -#define __le8 __u8 -#define __be64 __u64 -#define __be32 __u32 -#define __be16 __u16 -#define __be8 __u8 #endif #ifndef __kernel_long_t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/include/sound/uapi/asoc.h new/alsa-lib-1.2.8/include/sound/uapi/asoc.h --- old/alsa-lib-1.2.7.2/include/sound/uapi/asoc.h 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/include/sound/uapi/asoc.h 2022-10-24 10:17:27.000000000 +0200 @@ -16,7 +16,9 @@ #ifndef __LINUX_UAPI_SND_ASOC_H #define __LINUX_UAPI_SND_ASOC_H +#if defined(__linux__) #include <linux/types.h> +#endif /* * Maximum number of channels topology kcontrol can represent. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/include/sound/uapi/asound.h new/alsa-lib-1.2.8/include/sound/uapi/asound.h --- old/alsa-lib-1.2.7.2/include/sound/uapi/asound.h 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/include/sound/uapi/asound.h 2022-10-24 10:17:27.000000000 +0200 @@ -28,7 +28,7 @@ #include <linux/types.h> #include <asm/byteorder.h> #else -#include <endian.h> +#include <sys/endian.h> #include <sys/ioctl.h> #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/include/version.h new/alsa-lib-1.2.8/include/version.h --- old/alsa-lib-1.2.7.2/include/version.h 2022-07-08 17:36:16.000000000 +0200 +++ new/alsa-lib-1.2.8/include/version.h 2022-10-24 10:19:31.000000000 +0200 @@ -4,11 +4,11 @@ #define SND_LIB_MAJOR 1 /**< major number of library version */ #define SND_LIB_MINOR 2 /**< minor number of library version */ -#define SND_LIB_SUBMINOR 7 /**< subminor number of library version */ +#define SND_LIB_SUBMINOR 8 /**< subminor number of library version */ #define SND_LIB_EXTRAVER 1000000 /**< extra version number, used mainly for betas */ /** library version */ #define SND_LIB_VER(maj, min, sub) (((maj)<<16)|((min)<<8)|(sub)) #define SND_LIB_VERSION SND_LIB_VER(SND_LIB_MAJOR, SND_LIB_MINOR, SND_LIB_SUBMINOR) /** library version (string) */ -#define SND_LIB_VERSION_STR "1.2.7.2" +#define SND_LIB_VERSION_STR "1.2.8" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/libtool new/alsa-lib-1.2.8/libtool --- old/alsa-lib-1.2.7.2/libtool 2022-07-08 17:36:15.000000000 +0200 +++ new/alsa-lib-1.2.8/libtool 2022-10-24 10:19:31.000000000 +0200 @@ -1,5 +1,5 @@ #! /bin/sh -# Generated automatically by config.status (alsa-lib) 1.2.7.2 +# Generated automatically by config.status (alsa-lib) 1.2.8 # Libtool was configured on host f420bc43a183: # NOTE: Changes made to this file will be lost: look at ltmain.sh. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/async.c new/alsa-lib-1.2.8/src/async.c --- old/alsa-lib-1.2.7.2/src/async.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/async.c 2022-10-24 10:17:27.000000000 +0200 @@ -54,6 +54,15 @@ static void snd_async_handler(int signo ATTRIBUTE_UNUSED, siginfo_t *siginfo, void *context ATTRIBUTE_UNUSED) { +#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__) + /* siginfo_t does not have si_fd */ + struct list_head *i; + list_for_each(i, &snd_async_handlers) { + snd_async_handler_t *h = list_entry(i, snd_async_handler_t, glist); + if (h->callback) + h->callback(h); + } +#else int fd; struct list_head *i; //assert(siginfo->si_code == SI_SIGIO); @@ -66,6 +75,7 @@ if (h->fd == fd && h->callback) h->callback(h); } +#endif } /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/conf/cards/USB-Audio.conf new/alsa-lib-1.2.8/src/conf/cards/USB-Audio.conf --- old/alsa-lib-1.2.7.2/src/conf/cards/USB-Audio.conf 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/conf/cards/USB-Audio.conf 2022-10-24 10:17:27.000000000 +0200 @@ -77,6 +77,7 @@ "USB Device 0x46d_0x992" 999 "WD15 Dock" 999 "WD19 Dock" 999 + "ThinkPad USB-C Dock Gen2 USB Au" 999 } # Second iec958 device number, if any. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/conf.c new/alsa-lib-1.2.8/src/conf.c --- old/alsa-lib-1.2.7.2/src/conf.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/conf.c 2022-10-24 10:17:27.000000000 +0200 @@ -4115,7 +4115,7 @@ if (!S_ISDIR(st.st_mode)) return config_file_open(root, fn); #ifndef DOC_HIDDEN -#if defined(_GNU_SOURCE) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__sun) && !defined(ANDROID) +#if defined(_GNU_SOURCE) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) && !defined(__sun) && !defined(ANDROID) #define SORTFUNC versionsort64 #else #define SORTFUNC alphasort64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/control/eld.c new/alsa-lib-1.2.8/src/control/eld.c --- old/alsa-lib-1.2.7.2/src/control/eld.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/control/eld.c 2022-10-24 10:17:27.000000000 +0200 @@ -47,7 +47,7 @@ snd_ctl_elem_info_t cinfo = {0}; snd_ctl_elem_value_t value = {0}; unsigned char *eld; - unsigned int l; + unsigned int l, spc; char *s, c; int ret, valid; @@ -82,20 +82,23 @@ return 0; } s = alloca(l + 1); - s[l] = '\0'; /* sanitize */ valid = 0; + spc = 0; while (l > 0) { l--; c = eld[20 + l]; - if (c < ' ' || c >= 0x7f) { + if (c <= ' ' || c >= 0x7f) { s[l] = ' '; } else { valid += !!isalnum(c); s[l] = c; + if (spc == 0) + spc = l + 1; } } if (valid > 3) { + s[spc] = '\0'; snd_strlcpy((char *)info->name, s, sizeof(info->name)); } else { __present: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/control/namehint.c new/alsa-lib-1.2.8/src/control/namehint.c --- old/alsa-lib-1.2.7.2/src/control/namehint.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/control/namehint.c 2022-10-24 10:17:27.000000000 +0200 @@ -602,9 +602,7 @@ list.siface = iface; list.show_all = 0; list.cardname = NULL; - if (strcmp(iface, "card") == 0) - list.iface = SND_CTL_ELEM_IFACE_CARD; - else if (strcmp(iface, "pcm") == 0) + if (strcmp(iface, "pcm") == 0) list.iface = SND_CTL_ELEM_IFACE_PCM; else if (strcmp(iface, "rawmidi") == 0) list.iface = SND_CTL_ELEM_IFACE_RAWMIDI; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/pcm/pcm.c new/alsa-lib-1.2.8/src/pcm/pcm.c --- old/alsa-lib-1.2.7.2/src/pcm/pcm.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/pcm/pcm.c 2022-10-24 10:17:27.000000000 +0200 @@ -660,7 +660,9 @@ #include <stdio.h> #include <string.h> +#if HAVE_MALLOC_H #include <malloc.h> +#endif #include <stdarg.h> #include <signal.h> #include <ctype.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/pcm/pcm_direct.c new/alsa-lib-1.2.8/src/pcm/pcm_direct.c --- old/alsa-lib-1.2.7.2/src/pcm/pcm_direct.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/pcm/pcm_direct.c 2022-10-24 10:17:27.000000000 +0200 @@ -44,12 +44,16 @@ * */ +#if !defined(__OpenBSD__) && !defined(__DragonFly__) union semun { int val; /* Value for SETVAL */ struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */ unsigned short *array; /* Array for GETALL, SETALL */ +#if defined(__linux__) struct seminfo *__buf; /* Buffer for IPC_INFO (Linux specific) */ +#endif }; +#endif /* * FIXME: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/pcm/pcm_direct.h new/alsa-lib-1.2.8/src/pcm/pcm_direct.h --- old/alsa-lib-1.2.7.2/src/pcm/pcm_direct.h 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/pcm/pcm_direct.h 2022-10-24 10:17:27.000000000 +0200 @@ -224,6 +224,8 @@ snd1_pcm_direct_nonblock #define snd_pcm_direct_async \ snd1_pcm_direct_async +#define snd_pcm_direct_poll_descriptors \ + snd1_pcm_direct_poll_descriptors #define snd_pcm_direct_poll_revents \ snd1_pcm_direct_poll_revents #define snd_pcm_direct_info \ @@ -264,6 +266,10 @@ snd1_pcm_direct_set_chmap #define snd_pcm_direct_reset_slave_ptr \ snd1_pcm_direct_reset_slave_ptr +#define snd_pcm_direct_check_xrun \ + snd1_pcm_direct_check_xrun +#define snd_pcm_direct_slave_recover \ + snd1_pcm_direct_slave_recover int snd_pcm_direct_semaphore_create_or_connect(snd_pcm_direct_t *dmix); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/pcm/pcm_dshare.c new/alsa-lib-1.2.8/src/pcm/pcm_dshare.c --- old/alsa-lib-1.2.7.2/src/pcm/pcm_dshare.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/pcm/pcm_dshare.c 2022-10-24 10:17:27.000000000 +0200 @@ -229,7 +229,7 @@ case SNDRV_PCM_STATE_DRAINING: case SNDRV_PCM_STATE_RUNNING: snd_pcm_dshare_sync_ptr0(pcm, status->hw_ptr); - status->delay += snd_pcm_mmap_playback_delay(pcm); + status->delay = snd_pcm_mmap_playback_delay(pcm); break; default: break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/pcm/pcm_dsnoop.c new/alsa-lib-1.2.8/src/pcm/pcm_dsnoop.c --- old/alsa-lib-1.2.7.2/src/pcm/pcm_dsnoop.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/pcm/pcm_dsnoop.c 2022-10-24 10:17:27.000000000 +0200 @@ -215,7 +215,7 @@ /* Fall through */ case SNDRV_PCM_STATE_PREPARED: case SNDRV_PCM_STATE_SUSPENDED: - *delayp = snd_pcm_mmap_capture_avail(pcm); + *delayp = snd_pcm_mmap_capture_delay(pcm); return 0; case SNDRV_PCM_STATE_XRUN: return -EPIPE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/pcm/pcm_mmap.c new/alsa-lib-1.2.8/src/pcm/pcm_mmap.c --- old/alsa-lib-1.2.7.2/src/pcm/pcm_mmap.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/pcm/pcm_mmap.c 2022-10-24 10:17:27.000000000 +0200 @@ -20,7 +20,9 @@ #include "config.h" #include <stdio.h> +#if HAVE_MALLOC_H #include <malloc.h> +#endif #include <string.h> #include <poll.h> #include <sys/mman.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/pcm/pcm_params.c new/alsa-lib-1.2.8/src/pcm/pcm_params.c --- old/alsa-lib-1.2.7.2/src/pcm/pcm_params.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/pcm/pcm_params.c 2022-10-24 10:17:27.000000000 +0200 @@ -2407,6 +2407,8 @@ INTERNAL(snd_pcm_hw_params_get_subformat)(params, &pcm->subformat); INTERNAL(snd_pcm_hw_params_get_channels)(params, &pcm->channels); INTERNAL(snd_pcm_hw_params_get_rate)(params, &pcm->rate, 0); + snd_interval_copy(&pcm->periods, ¶ms->intervals[SND_PCM_HW_PARAM_PERIODS - SND_PCM_HW_PARAM_FIRST_INTERVAL]); + snd_interval_copy(&pcm->buffer_time, ¶ms->intervals[SND_PCM_HW_PARAM_BUFFER_TIME - SND_PCM_HW_PARAM_FIRST_INTERVAL]); INTERNAL(snd_pcm_hw_params_get_period_time)(params, &pcm->period_time, 0); INTERNAL(snd_pcm_hw_params_get_period_size)(params, &pcm->period_size, 0); INTERNAL(snd_pcm_hw_params_get_buffer_size)(params, &pcm->buffer_size); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/pcm/pcm_rate.c new/alsa-lib-1.2.8/src/pcm/pcm_rate.c --- old/alsa-lib-1.2.7.2/src/pcm/pcm_rate.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/pcm/pcm_rate.c 2022-10-24 10:17:27.000000000 +0200 @@ -770,7 +770,7 @@ static int snd_pcm_rate_commit_area(snd_pcm_t *pcm, snd_pcm_rate_t *rate, snd_pcm_uframes_t appl_offset, - snd_pcm_uframes_t size, + snd_pcm_uframes_t size ATTRIBUTE_UNUSED, snd_pcm_uframes_t slave_size) { snd_pcm_uframes_t cont = pcm->buffer_size - appl_offset; @@ -816,7 +816,7 @@ pcm->format); snd_pcm_areas_copy(rate->pareas, cont, areas, 0, - pcm->channels, size - cont, + pcm->channels, pcm->period_size - cont, pcm->format); snd_pcm_rate_write_areas1(pcm, rate->pareas, 0, rate->sareas, 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/seq/seq_midi_event.c new/alsa-lib-1.2.8/src/seq/seq_midi_event.c --- old/alsa-lib-1.2.7.2/src/seq/seq_midi_event.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/seq/seq_midi_event.c 2022-10-24 10:17:27.000000000 +0200 @@ -28,7 +28,9 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#if HAVE_MALLOC_H #include <malloc.h> +#endif #include "local.h" #ifndef DOC_HIDDEN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/shmarea.c new/alsa-lib-1.2.8/src/shmarea.c --- old/alsa-lib-1.2.7.2/src/shmarea.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/shmarea.c 2022-10-24 10:17:27.000000000 +0200 @@ -24,7 +24,10 @@ #ifdef HAVE_SYS_SHM_H #include <stdio.h> +#include <stdlib.h> +#if HAVE_MALLOC_H #include <malloc.h> +#endif #include <string.h> #include <errno.h> #include <poll.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/ucm/main.c new/alsa-lib-1.2.8/src/ucm/main.c --- old/alsa-lib-1.2.7.2/src/ucm/main.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/ucm/main.c 2022-10-24 10:17:27.000000000 +0200 @@ -1481,8 +1481,8 @@ goto skip; } - snd_config_delete(cfg); skip: + snd_config_delete(cfg); return end + 3; } @@ -1518,7 +1518,7 @@ mgr->suppress_nodev_errors = 1; } - if (card_name[0] == '<' && card_name[1] == '<' && card_name[2] == '<') + if (card_name && card_name[0] == '<' && card_name[1] == '<' && card_name[2] == '<') card_name = parse_open_variables(mgr, card_name); err = uc_mgr_card_open(mgr); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/ucm/parser.c new/alsa-lib-1.2.8/src/ucm/parser.c --- old/alsa-lib-1.2.7.2/src/ucm/parser.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/ucm/parser.c 2022-10-24 10:17:27.000000000 +0200 @@ -247,6 +247,36 @@ } /* + * + */ +static int parse_syntax_field(snd_use_case_mgr_t *uc_mgr, + snd_config_t *cfg, const char *filename) +{ + snd_config_t *n; + long l; + int err; + + err = snd_config_search(cfg, "Syntax", &n); + if (err < 0) { + uc_error("Syntax field not found in %s", filename); + return -EINVAL; + } + err = snd_config_get_integer(n, &l); + if (err < 0) { + uc_error("Syntax field is invalid in %s", filename); + return err; + } + if (l < 2 || l > SYNTAX_VERSION_MAX) { + uc_error("Incompatible syntax %ld in %s", l, filename); + return -EINVAL; + } + /* delete this field to optimize strcmp() call in the parsing loop */ + snd_config_delete(n); + uc_mgr->conf_format = l; + return l; +} + +/* * Evaluate variable regex definitions (in-place delete) */ static int evaluate_regex(snd_use_case_mgr_t *uc_mgr, @@ -415,15 +445,15 @@ n = snd_config_iterator_entry(i); err = snd_config_get_id(n, &id); if (err < 0) - return err; + goto __err_path; err = snd_config_get_ascii(n, &var); if (err < 0) - return err; + goto __err_path; snprintf(name, sizeof(name), "__%s", id); err = uc_mgr_set_variable(uc_mgr, name, var); free(var); if (err < 0) - return err; + goto __err_path; } /* merge + substitute variables */ @@ -443,11 +473,11 @@ n = snd_config_iterator_entry(i); err = snd_config_get_id(n, &id); if (err < 0) - return err; + goto __err_path; snprintf(name, sizeof(name), "__%s", id); err = uc_mgr_delete_variable(uc_mgr, name); if (err < 0) - return err; + goto __err_path; } __err_path: @@ -2366,7 +2396,6 @@ snd_config_iterator_t i, next; snd_config_t *n; const char *id; - long l; int err; if (snd_config_get_type(cfg) != SND_CONFIG_TYPE_COMPOUND) { @@ -2375,23 +2404,9 @@ } if (uc_mgr->conf_format >= 2) { - err = snd_config_search(cfg, "Syntax", &n); - if (err < 0) { - uc_error("Syntax field not found in %s", uc_mgr->conf_file_name); - return -EINVAL; - } - err = snd_config_get_integer(n, &l); - if (err < 0) { - uc_error("Syntax field is invalid in %s", uc_mgr->conf_file_name); + err = parse_syntax_field(uc_mgr, cfg, uc_mgr->conf_file_name); + if (err < 0) return err; - } - if (l < 2 || l > SYNTAX_VERSION_MAX) { - uc_error("Incompatible syntax %d in %s", l, uc_mgr->conf_file_name); - return -EINVAL; - } - /* delete this field to avoid strcmp() call in the loop */ - snd_config_delete(n); - uc_mgr->conf_format = l; } /* in-place evaluation */ @@ -2473,6 +2488,10 @@ if (strcmp(id, "Error") == 0) return error_node(uc_mgr, n); + /* skip further Syntax value updates (Include) */ + if (strcmp(id, "Syntax") == 0) + continue; + uc_error("unknown master file field %s", id); } return 0; @@ -2701,7 +2720,6 @@ snd_config_iterator_t i, next; snd_config_t *n; const char *id; - long l; int err; if (snd_config_get_type(cfg) != SND_CONFIG_TYPE_COMPOUND) { @@ -2709,23 +2727,9 @@ return -EINVAL; } - err = snd_config_search(cfg, "Syntax", &n); - if (err < 0) { - uc_error("Syntax field not found in %s", filename); - return -EINVAL; - } - err = snd_config_get_integer(n, &l); - if (err < 0) { - uc_error("Syntax field is invalid in %s", filename); + err = parse_syntax_field(uc_mgr, cfg, filename); + if (err < 0) return err; - } - if (l < 2 || l > SYNTAX_VERSION_MAX) { - uc_error("Incompatible syntax %d in %s", l, filename); - return -EINVAL; - } - /* delete this field to avoid strcmp() call in the loop */ - snd_config_delete(n); - uc_mgr->conf_format = l; /* in-place evaluation */ err = uc_mgr_evaluate_inplace(uc_mgr, cfg); @@ -2756,6 +2760,10 @@ continue; } + /* skip further Syntax value updates (Include) */ + if (strcmp(id, "Syntax") == 0) + continue; + uc_error("unknown toplevel field %s", id); } @@ -2907,7 +2915,7 @@ snprintf(filename, sizeof(filename), "%s/ucm2/conf.virt.d", snd_config_topdir()); -#if defined(_GNU_SOURCE) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__sun) && !defined(ANDROID) +#if defined(_GNU_SOURCE) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) && !defined(__sun) && !defined(ANDROID) #define SORTFUNC versionsort64 #else #define SORTFUNC alphasort64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/ucm/ucm_confdoc.h new/alsa-lib-1.2.8/src/ucm/ucm_confdoc.h --- old/alsa-lib-1.2.7.2/src/ucm/ucm_confdoc.h 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/ucm/ucm_confdoc.h 2022-10-24 10:17:27.000000000 +0200 @@ -63,6 +63,8 @@ # Example master file for blah sound card # By Joe Blogs <j...@bloggs.org> +Syntax 6 + # Use Case name for user interface Comment "Nice Abstracted Soundcard" @@ -91,7 +93,11 @@ # ALSA card controls which may be modified by user after initial settings. BootSequence [ - cset "name='My control' on" + cset "name='Master Playback Switch',index=2 0,0" + cset "name='Master Playback Volume',index=2 25,25" + msleep 50 + cset "name='Master Playback Switch',index=2 1,1" + cset "name='Master Playback Volume',index=2 50,50" ] # Define fixed boot sequence @@ -117,23 +123,16 @@ # enable and disable sequences are compulsory EnableSequence [ - cset "name='Master Playback Switch',index=2 0,0" - cset "name='Master Playback Volume',index=2 25,25" - msleep 50 - cset "name='Master Playback Switch',index=2 1,1" - cset "name='Master Playback Volume',index=2 50,50" + disdevall "" # run DisableSequence for all devices ] DisableSequence [ - cset "name='Master Playback Switch',index=2 0,0" - cset "name='Master Playback Volume',index=2 25,25" - msleep 50 - cset "name='Master Playback Switch',index=2 1,1" - cset "name='Master Playback Volume',index=2 50,50" + cset "name='Power Save' on" ] # Optional transition verb TransitionSequence."ToCaseName" [ + disdevall "" # run DisableSequence for all devices msleep 1 ] @@ -212,12 +211,18 @@ Value { TQ Voice CapturePCM "hw:${CardId},11" + PlaybackMixerElem "Master" PlaybackVolume "name='Master Playback Volume',index=2" PlaybackSwitch "name='Master Playback Switch',index=2" } } ~~~ +### Sequence graphs + +\image html ucm-seq-verb.svg +\image html ucm-seq-device.svg + ### Sequence commands Command name | Description @@ -278,12 +283,25 @@ the state of the controls to the /var tree and loads the previous state in the next boot). +\image html ucm-seq-boot.svg + ### Device volume It is expected that the applications handle the volume settings. It is not recommended -to set the fixed values for the volume settings to the Enable / Disable sequences for +to set the fixed values for the volume settings in the Enable / Disable sequences for verbs or devices, if the device exports the hardware volume (MixerElem or Volume/Switch -values). The default volume settings should be set in the *BootSequence*. +values). The default volume settings should be set in the *BootSequence*. The purpose +for this scheme is to allow users to override defaults using the alsactl sound card +state management. + +Checklist: + +1. Set default volume in BootSequence +2. Verb's EnableSequence should ensure that all devices are turned off (mixer paths) + to avoid simultaneous device use - the previous state is unknown (see *disdevall* + and *disdev2* commands or create a new custom command sequence) + +\image html ucm-volume.svg ### Dynamic configuration tree diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/src/ucm/ucm_exec.c new/alsa-lib-1.2.8/src/ucm/ucm_exec.c --- old/alsa-lib-1.2.7.2/src/ucm/ucm_exec.c 2022-07-08 17:34:30.000000000 +0200 +++ new/alsa-lib-1.2.8/src/ucm/ucm_exec.c 2022-10-24 10:17:27.000000000 +0200 @@ -33,6 +33,15 @@ #include <limits.h> #include <dirent.h> +#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) +#include <signal.h> +#if defined(__DragonFly__) +#define environ NULL /* XXX */ +#else +extern char **environ; +#endif +#endif + static pthread_mutex_t fork_lock = PTHREAD_MUTEX_INITIALIZER; /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/alsa-lib-1.2.7.2/version new/alsa-lib-1.2.8/version --- old/alsa-lib-1.2.7.2/version 2022-07-08 17:36:11.000000000 +0200 +++ new/alsa-lib-1.2.8/version 2022-10-24 10:19:27.000000000 +0200 @@ -1 +1 @@ -1.2.7.2 +1.2.8