From fc18811e9969f08c3eff71d31dd45f05a6d84ffb438eb8e5486a4629e30fb337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 28 Dec 2016 15:33:22 +0000 Subject: [PATCH] Accepting request 448000 from home:tiwai:branches:multimedia:libs - Update to alsa-utils 1.1.3: * a couple of amidi fixes * a few alsabat extensions * alsaloop cpu hog fix, * a fix for suspend/resume with aplay * fix chmap selection in speaker-test WAV mode * alsaucm man pages, * fix potential NULL dereferences in alsactl daemon mode - Add python-docutils to build dependency (for rst2man) - Fix missing alsaucm man page file in the 1.1.3 tarball OBS-URL: https://build.opensuse.org/request/show/448000 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa-utils?expand=0&rev=134 --- alsa-utils-1.1.2.tar.bz2 | 3 - alsa-utils-1.1.3.tar.bz2 | 3 + alsa-utils.changes | 14 +++ alsa-utils.spec | 8 +- alsaucm.rst | 235 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 259 insertions(+), 4 deletions(-) delete mode 100644 alsa-utils-1.1.2.tar.bz2 create mode 100644 alsa-utils-1.1.3.tar.bz2 create mode 100644 alsaucm.rst diff --git a/alsa-utils-1.1.2.tar.bz2 b/alsa-utils-1.1.2.tar.bz2 deleted file mode 100644 index 7361f4d..0000000 --- a/alsa-utils-1.1.2.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7af603c0877d1251599d65b4fbc372e63a54371b888f5c26c6a86ac1d0519071 -size 1193140 diff --git a/alsa-utils-1.1.3.tar.bz2 b/alsa-utils-1.1.3.tar.bz2 new file mode 100644 index 0000000..a76cd4d --- /dev/null +++ b/alsa-utils-1.1.3.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:127217a54eea0f9a49700a2f239a2d4f5384aa094d68df04a8eb80132eb6167c +size 1201424 diff --git a/alsa-utils.changes b/alsa-utils.changes index 766549b..5b4457f 100644 --- a/alsa-utils.changes +++ b/alsa-utils.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Wed Dec 28 12:51:53 CET 2016 - tiwai@suse.de + +- Update to alsa-utils 1.1.3: + * a couple of amidi fixes + * a few alsabat extensions + * alsaloop cpu hog fix, + * a fix for suspend/resume with aplay + * fix chmap selection in speaker-test WAV mode + * alsaucm man pages, + * fix potential NULL dereferences in alsactl daemon mode +- Add python-docutils to build dependency (for rst2man) +- Fix missing alsaucm man page file in the 1.1.3 tarball + ------------------------------------------------------------------- Wed Aug 3 11:23:36 CEST 2016 - tiwai@suse.de diff --git a/alsa-utils.spec b/alsa-utils.spec index 36bf7f6..67a885a 100644 --- a/alsa-utils.spec +++ b/alsa-utils.spec @@ -16,7 +16,7 @@ # -%define package_version 1.1.2 +%define package_version 1.1.3 # %if 0%{?suse_version} > 1130 %define use_systemd 1 @@ -43,6 +43,7 @@ Group: Productivity/Multimedia/Sound/Players Url: http://www.alsa-project.org/ Source: ftp://ftp.alsa-project.org/pub/utils/alsa-utils-%{package_version}.tar.bz2 Source1: 01beep.conf +Source2: alsaucm.rst # Patch: alsa-utils-git-fixes.diff Patch99: alsa-utils-gettext-version-removal.diff BuildRequires: alsa-devel @@ -51,6 +52,9 @@ BuildRequires: fftw3-devel BuildRequires: libsamplerate-devel BuildRequires: ncurses-devel BuildRequires: pkgconfig +%if 0%{?suse_version} > 1200 +BuildRequires: python-docutils +%endif BuildRequires: xmlto Requires: alsa Requires: dialog @@ -87,6 +91,8 @@ sed -i -e's/EXTRA_DIST= config.rpath /EXTRA_DIST=/' Makefile.am %if 0%{?suse_version} < 1020 %patch99 -p1 %endif +# copy the missing file +cp %{S:2} alsaucm/ %build export AUTOMAKE_JOBS="%{?_smp_mflags}" diff --git a/alsaucm.rst b/alsaucm.rst new file mode 100644 index 0000000..8ae6261 --- /dev/null +++ b/alsaucm.rst @@ -0,0 +1,235 @@ +========= + alsaucm +========= + +--------------------- +ALSA Use Case Manager +--------------------- + +:Author: Antonio Ospite +:Date: 2016-09-22 +:Copyright: GPLv2+ +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +*alsaucm* [command] + +DESCRIPTION +=========== + +alsaucm (ALSA Use Case Manager) is a program to use the ALSA `Use Case +Interface`_ from the command line. + +On complex sound cards, setting up audio routes is not trivial and mixer +settings can conflict one another preventing the audio card to work at all. + +The ALSA Use Case Manager is a mechanism for controlling complex audio +hardware establishing a relationship between hardware configurations and +meaningful use cases that the end-user can relate with. + +The use case manager can also be used to switch between use cases when +necessary, in a consistent way. + +At a lower level, the use case manager works by configuring the sound card +ALSA kcontrols to change the hardware digital and analog audio routing to +match the requested device use case. + +The use case manager kcontrol configurations are stored in easy to modify text +files. An audio use case can be defined by a **verb** and **device** parameter. + +The verb describes the use case action i.e. a phone call, listening to music, +recording a conversation etc. The device describes the physical audio capture +and playback hardware i.e. headphones, phone handset, bluetooth headset, etc. + + +OPTIONS +======= + +Available options: + + **-h**, **--help** + this help + + **-c**, **--card** `NAME` + open card NAME + + **-i**, **--interactive** + interactive mode + + **-b**, **--batch** `FILE` + batch mode (use ``'-'`` for the stdin input) + + **-n**, **--no-open** + do not open first card found + + +Available commands: + + ``open`` `NAME` + open card NAME. + + valid names are sound card names as listed in ``/usr/share/alsa/ucm``. + + ``reset`` + reset sound card to default state. + + ``reload`` + reload configuration. + + ``listcards`` + list available cards. + + ``list`` `IDENTIFIER` + list command, for items returning two entries (value+comment). + + the value of the `IDENTIFIER` argument can can be: + + - ``_verbs`` - get verb list (in pair verb+comment) + - ``_devices[/{verb}]`` - get list of supported devices (in pair device+comment) + - ``_modifiers[/{verb}]`` - get list of supported modifiers (in pair modifier+comment) + + The forms without the trailing ``/{verb}`` are valid only after a specific + verb has been set. + + ``list1`` `IDENTIFIER` + list command, for lists returning one item per entry. + + the value of the `IDENTIFIER` argument can vary depending on the context, + it can be: + + - ``TQ[/{verb}]`` - get list of Tone Quality identifiers + - ``_enadevs`` - get list of enabled devices + - ``_enamods`` - get list of enabled modifiers + - ``_supporteddevs/{modifier}|{device}[/{verb}]`` - list of supported devices + - ``_conflictingdevs/{modifier}|{device}[/{verb}]`` - list of conflicting devices + + ``get`` `IDENTIFIER` + get string value. + + the value of the `IDENTIFIER` argument can can be: + + - ``_verb`` - return current verb + - ``[=]{NAME}[/[{modifier}|{/device}][/{verb}]]`` (For valid NAMEs look at the + ALSA `Use Case Interface`_) + + + ``geti`` `IDENTIFIER` + get integer value. + + the value of the `IDENTIFIER` argument can can be: + + - ``_devstatus/{device}`` + - ``_modtstaus/{device}`` + + ``set`` `IDENTIFIER` `VALUE` + set string value + + The value of the `IDENTIFIER` argument can can be: + + - ``_verb`` - set the verb to `VALUE` + - ``_enadev`` - enable the device specified by `VALUE` + - ``_disdev`` - disable the device specified by `VALUE` + - ``_swdev/{old_device}`` - switche device: + + - disable `old_device` and then enable the device specified by + `VALUE` + - if no device was enabled just return + + - ``_enamod`` - enable the modifier specified by `VALUE` + - ``_dismod`` - disable the modifier specified by `VALUE` + - ``_swmod/{old_modifier}`` - switch modifier: + + - disable `old_modifier` and then enable the modifier specified by + `VALUE` + - if no modifier was enabled just return + + Note that the identifiers referring to devices and modifiers are valid + only after setting a verb. + + ``h``, ``help`` + help + + ``q``, ``quit`` + quit + + +FILES +===== + +The master use case files for each supported sound card are in ``/usr/share/alsa/ucm``. + +For example, the master use case file for the `Pandaboard` card is in +``/usr/share/alsa/ucm/PandaBoard/PandaBoard.conf``, this file lists all the +supported use cases, e.g. + +:: + + SectionUseCase."HiFi" { + File "hifi" + Comment "Play HiFi quality Music." + } + ... + + +Each use case defines a _verb, which is described in the file specified in +the ``File`` directive, like above. + +The ``HiFi`` verb above is described in +``/usr/share/alsa/ucm/PandaBoard/hifi``. + +For more details on the syntax of UCM files, see the alsa-lib source code: +http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/ucm/parser.c + + +EXAMPLES OF USE +=============== + +Some commands, like for instance ``list _devices``, +can only work after setting a ``_verb`` in the **same execution**, for +instance this sequence doesn't work: + +:: + + # alsaucm -c bytcr-rt5640 set _verb HiFi + # alsaucm -c bytcr-rt5640 list _devices + + +However this command does: + +:: + + # alsaucm -n -b - <