1c72fcc34Sopenharmony_ci<?xml version='1.0'?> 2c72fcc34Sopenharmony_ci<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" 3c72fcc34Sopenharmony_ci "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> 4c72fcc34Sopenharmony_ci 5c72fcc34Sopenharmony_ci<article> 6c72fcc34Sopenharmony_ci <section> 7c72fcc34Sopenharmony_ci <title>alsactl init</title> 8c72fcc34Sopenharmony_ci <refentry> 9c72fcc34Sopenharmony_ci <refentryinfo> 10c72fcc34Sopenharmony_ci <title>alsactl init</title> 11c72fcc34Sopenharmony_ci <date>July 2008</date> 12c72fcc34Sopenharmony_ci <productname>alsactl</productname> 13c72fcc34Sopenharmony_ci </refentryinfo> 14c72fcc34Sopenharmony_ci 15c72fcc34Sopenharmony_ci <refmeta> 16c72fcc34Sopenharmony_ci <refentrytitle>alsactl_init</refentrytitle> 17c72fcc34Sopenharmony_ci <manvolnum>7</manvolnum> 18c72fcc34Sopenharmony_ci <refmiscinfo class="version"></refmiscinfo> 19c72fcc34Sopenharmony_ci </refmeta> 20c72fcc34Sopenharmony_ci 21c72fcc34Sopenharmony_ci <refnamediv> 22c72fcc34Sopenharmony_ci <refname>alsactl init</refname> 23c72fcc34Sopenharmony_ci <refpurpose>alsa control management - initialization</refpurpose> 24c72fcc34Sopenharmony_ci </refnamediv> 25c72fcc34Sopenharmony_ci 26c72fcc34Sopenharmony_ci <refsect1><title>DESCRIPTION</title> 27c72fcc34Sopenharmony_ci <para>"alsactl init" provides soundcard specific initialization.</para> 28c72fcc34Sopenharmony_ci </refsect1> 29c72fcc34Sopenharmony_ci 30c72fcc34Sopenharmony_ci <refsect1><title>CONFIGURATION</title> 31c72fcc34Sopenharmony_ci <para>All "alsactl init" configuration files are placed in 32c72fcc34Sopenharmony_ci <filename>/usr/share/alsa/init/</filename> directory. The top level 33c72fcc34Sopenharmony_ci configuration file is <filename>/usr/share/alsa/init/00main</filename>. 34c72fcc34Sopenharmony_ci The default top-level file can be also specified using -i or 35c72fcc34Sopenharmony_ci --initfile parameter for the alsactl tool. 36c72fcc34Sopenharmony_ci Every file consists of a set of lines of text. All empty lines or 37c72fcc34Sopenharmony_ci lines beginning with '#' will be ignored.</para> 38c72fcc34Sopenharmony_ci 39c72fcc34Sopenharmony_ci <refsect2><title>Rules files</title> 40c72fcc34Sopenharmony_ci <para>The "alsactl init" rules are read from the files located 41c72fcc34Sopenharmony_ci in the <filename>/usr/share/alsa/init/*</filename>. The top 42c72fcc34Sopenharmony_ci level configuration file is <filename>/usr/share/alsa/init/00main</filename>. 43c72fcc34Sopenharmony_ci Every line in the rules file contains at least one key value pair. 44c72fcc34Sopenharmony_ci There are two kind of keys, match and assignment keys. If all match 45c72fcc34Sopenharmony_ci keys are matching against its value, the rule gets applied and the 46c72fcc34Sopenharmony_ci assign keys get the specified value assigned.</para> 47c72fcc34Sopenharmony_ci 48c72fcc34Sopenharmony_ci <para>A rule may consists of a list of one or more key value pairs 49c72fcc34Sopenharmony_ci separated by a comma. Each key has a distinct operation, depending 50c72fcc34Sopenharmony_ci on the used operator. Valid operators are:</para> 51c72fcc34Sopenharmony_ci <variablelist> 52c72fcc34Sopenharmony_ci <varlistentry> 53c72fcc34Sopenharmony_ci <term><option>==</option></term> 54c72fcc34Sopenharmony_ci <listitem> 55c72fcc34Sopenharmony_ci <para>Compare for equality.</para> 56c72fcc34Sopenharmony_ci </listitem> 57c72fcc34Sopenharmony_ci </varlistentry> 58c72fcc34Sopenharmony_ci 59c72fcc34Sopenharmony_ci <varlistentry> 60c72fcc34Sopenharmony_ci <term><option>!=</option></term> 61c72fcc34Sopenharmony_ci <listitem> 62c72fcc34Sopenharmony_ci <para>Compare for non-equality.</para> 63c72fcc34Sopenharmony_ci </listitem> 64c72fcc34Sopenharmony_ci </varlistentry> 65c72fcc34Sopenharmony_ci 66c72fcc34Sopenharmony_ci <varlistentry> 67c72fcc34Sopenharmony_ci <term><option>=</option></term> 68c72fcc34Sopenharmony_ci <listitem> 69c72fcc34Sopenharmony_ci <para>Assign a value to a key. Keys that represent a list, 70c72fcc34Sopenharmony_ci are reset and only this single value is assigned.</para> 71c72fcc34Sopenharmony_ci </listitem> 72c72fcc34Sopenharmony_ci </varlistentry> 73c72fcc34Sopenharmony_ci 74c72fcc34Sopenharmony_ci <varlistentry> 75c72fcc34Sopenharmony_ci <term><option>+=</option></term> 76c72fcc34Sopenharmony_ci <listitem> 77c72fcc34Sopenharmony_ci <para>Add the value to a key that holds a list 78c72fcc34Sopenharmony_ci of entries.</para> 79c72fcc34Sopenharmony_ci </listitem> 80c72fcc34Sopenharmony_ci </varlistentry> 81c72fcc34Sopenharmony_ci 82c72fcc34Sopenharmony_ci <varlistentry> 83c72fcc34Sopenharmony_ci <term><option>:=</option></term> 84c72fcc34Sopenharmony_ci <listitem> 85c72fcc34Sopenharmony_ci <para>Assign a value to a key finally; disallow any 86c72fcc34Sopenharmony_ci later changes, which may be used to prevent changes by 87c72fcc34Sopenharmony_ci any later rules.</para> 88c72fcc34Sopenharmony_ci </listitem> 89c72fcc34Sopenharmony_ci </varlistentry> 90c72fcc34Sopenharmony_ci </variablelist> 91c72fcc34Sopenharmony_ci 92c72fcc34Sopenharmony_ci <para>The following key names can be used to match against device 93c72fcc34Sopenharmony_ci properties:</para> 94c72fcc34Sopenharmony_ci <variablelist> 95c72fcc34Sopenharmony_ci <varlistentry> 96c72fcc34Sopenharmony_ci <term><option>CARDINDEX</option></term> 97c72fcc34Sopenharmony_ci <listitem> 98c72fcc34Sopenharmony_ci <para>Match the card index of the ALSA driver.</para> 99c72fcc34Sopenharmony_ci </listitem> 100c72fcc34Sopenharmony_ci </varlistentry> 101c72fcc34Sopenharmony_ci 102c72fcc34Sopenharmony_ci <varlistentry> 103c72fcc34Sopenharmony_ci <term><option>CTL{<replaceable>attribute</replaceable>}</option></term> 104c72fcc34Sopenharmony_ci <listitem> 105c72fcc34Sopenharmony_ci <para>Set or test universal control attribute. Possible 106c72fcc34Sopenharmony_ci attributes:</para> 107c72fcc34Sopenharmony_ci <variablelist> 108c72fcc34Sopenharmony_ci <varlistentry> 109c72fcc34Sopenharmony_ci <term><option>numid</option></term> 110c72fcc34Sopenharmony_ci <listitem> 111c72fcc34Sopenharmony_ci <para>Numeric control identification.</para> 112c72fcc34Sopenharmony_ci </listitem> 113c72fcc34Sopenharmony_ci </varlistentry> 114c72fcc34Sopenharmony_ci <varlistentry> 115c72fcc34Sopenharmony_ci <term><option>iface</option>, <option>interface</option></term> 116c72fcc34Sopenharmony_ci <listitem> 117c72fcc34Sopenharmony_ci <para>Control interface name (CARD, HWEDEP, MIXER, PCM, RAWMIDI, TIMER, SEQUENCER)</para> 118c72fcc34Sopenharmony_ci </listitem> 119c72fcc34Sopenharmony_ci </varlistentry> 120c72fcc34Sopenharmony_ci <varlistentry> 121c72fcc34Sopenharmony_ci <term><option>subdev</option>, <option>subdevice</option></term> 122c72fcc34Sopenharmony_ci <listitem> 123c72fcc34Sopenharmony_ci <para>Subdevice number.</para> 124c72fcc34Sopenharmony_ci </listitem> 125c72fcc34Sopenharmony_ci </varlistentry> 126c72fcc34Sopenharmony_ci <varlistentry> 127c72fcc34Sopenharmony_ci <term><option>name</option></term> 128c72fcc34Sopenharmony_ci <listitem> 129c72fcc34Sopenharmony_ci <para>Control name</para> 130c72fcc34Sopenharmony_ci </listitem> 131c72fcc34Sopenharmony_ci </varlistentry> 132c72fcc34Sopenharmony_ci <varlistentry> 133c72fcc34Sopenharmony_ci <term><option>index</option></term> 134c72fcc34Sopenharmony_ci <listitem> 135c72fcc34Sopenharmony_ci <para>Control index</para> 136c72fcc34Sopenharmony_ci </listitem> 137c72fcc34Sopenharmony_ci </varlistentry> 138c72fcc34Sopenharmony_ci <varlistentry> 139c72fcc34Sopenharmony_ci <term><option>type</option></term> 140c72fcc34Sopenharmony_ci <listitem> 141c72fcc34Sopenharmony_ci <para>Control type (BOOLEAN, INTEGER, INTEGER64, ENUMERATED, BYTES, IEC958)</para> 142c72fcc34Sopenharmony_ci </listitem> 143c72fcc34Sopenharmony_ci </varlistentry> 144c72fcc34Sopenharmony_ci <varlistentry> 145c72fcc34Sopenharmony_ci <term><option>attr</option>, <option>attribute</option></term> 146c72fcc34Sopenharmony_ci <listitem> 147c72fcc34Sopenharmony_ci <para>Attributes (stored in a string - use match characters * and ?):</para> 148c72fcc34Sopenharmony_ci <variablelist> 149c72fcc34Sopenharmony_ci <varlistentry> 150c72fcc34Sopenharmony_ci <term><option>r</option></term> 151c72fcc34Sopenharmony_ci <listitem> 152c72fcc34Sopenharmony_ci <para>control is readable</para> 153c72fcc34Sopenharmony_ci </listitem> 154c72fcc34Sopenharmony_ci </varlistentry> 155c72fcc34Sopenharmony_ci <varlistentry> 156c72fcc34Sopenharmony_ci <term><option>w</option></term> 157c72fcc34Sopenharmony_ci <listitem> 158c72fcc34Sopenharmony_ci <para>control is writable</para> 159c72fcc34Sopenharmony_ci </listitem> 160c72fcc34Sopenharmony_ci </varlistentry> 161c72fcc34Sopenharmony_ci <varlistentry> 162c72fcc34Sopenharmony_ci <term><option>v</option></term> 163c72fcc34Sopenharmony_ci <listitem> 164c72fcc34Sopenharmony_ci <para>control is volatile</para> 165c72fcc34Sopenharmony_ci </listitem> 166c72fcc34Sopenharmony_ci </varlistentry> 167c72fcc34Sopenharmony_ci <varlistentry> 168c72fcc34Sopenharmony_ci <term><option>i</option></term> 169c72fcc34Sopenharmony_ci <listitem> 170c72fcc34Sopenharmony_ci <para>control is inactive</para> 171c72fcc34Sopenharmony_ci </listitem> 172c72fcc34Sopenharmony_ci </varlistentry> 173c72fcc34Sopenharmony_ci <varlistentry> 174c72fcc34Sopenharmony_ci <term><option>l</option></term> 175c72fcc34Sopenharmony_ci <listitem> 176c72fcc34Sopenharmony_ci <para>control is locked</para> 177c72fcc34Sopenharmony_ci </listitem> 178c72fcc34Sopenharmony_ci </varlistentry> 179c72fcc34Sopenharmony_ci <varlistentry> 180c72fcc34Sopenharmony_ci <term><option>R</option></term> 181c72fcc34Sopenharmony_ci <listitem> 182c72fcc34Sopenharmony_ci <para>control is TLV readable</para> 183c72fcc34Sopenharmony_ci </listitem> 184c72fcc34Sopenharmony_ci </varlistentry> 185c72fcc34Sopenharmony_ci <varlistentry> 186c72fcc34Sopenharmony_ci <term><option>W</option></term> 187c72fcc34Sopenharmony_ci <listitem> 188c72fcc34Sopenharmony_ci <para>control is TLV writable</para> 189c72fcc34Sopenharmony_ci </listitem> 190c72fcc34Sopenharmony_ci </varlistentry> 191c72fcc34Sopenharmony_ci <varlistentry> 192c72fcc34Sopenharmony_ci <term><option>C</option></term> 193c72fcc34Sopenharmony_ci <listitem> 194c72fcc34Sopenharmony_ci <para>control is TLV commandable</para> 195c72fcc34Sopenharmony_ci </listitem> 196c72fcc34Sopenharmony_ci </varlistentry> 197c72fcc34Sopenharmony_ci <varlistentry> 198c72fcc34Sopenharmony_ci <term><option>o</option></term> 199c72fcc34Sopenharmony_ci <listitem> 200c72fcc34Sopenharmony_ci <para>process is owner of this control</para> 201c72fcc34Sopenharmony_ci </listitem> 202c72fcc34Sopenharmony_ci </varlistentry> 203c72fcc34Sopenharmony_ci <varlistentry> 204c72fcc34Sopenharmony_ci <term><option>u</option></term> 205c72fcc34Sopenharmony_ci <listitem> 206c72fcc34Sopenharmony_ci <para>control created in user space</para> 207c72fcc34Sopenharmony_ci </listitem> 208c72fcc34Sopenharmony_ci </varlistentry> 209c72fcc34Sopenharmony_ci </variablelist> 210c72fcc34Sopenharmony_ci </listitem> 211c72fcc34Sopenharmony_ci </varlistentry> 212c72fcc34Sopenharmony_ci <varlistentry> 213c72fcc34Sopenharmony_ci <term><option>owner</option></term> 214c72fcc34Sopenharmony_ci <listitem> 215c72fcc34Sopenharmony_ci <para>Control owner process PID number</para> 216c72fcc34Sopenharmony_ci </listitem> 217c72fcc34Sopenharmony_ci </varlistentry> 218c72fcc34Sopenharmony_ci <varlistentry> 219c72fcc34Sopenharmony_ci <term><option>count</option></term> 220c72fcc34Sopenharmony_ci <listitem> 221c72fcc34Sopenharmony_ci <para>Control count of values</para> 222c72fcc34Sopenharmony_ci </listitem> 223c72fcc34Sopenharmony_ci </varlistentry> 224c72fcc34Sopenharmony_ci <varlistentry> 225c72fcc34Sopenharmony_ci <term><option>min</option></term> 226c72fcc34Sopenharmony_ci <listitem> 227c72fcc34Sopenharmony_ci <para>Value range - minimum value</para> 228c72fcc34Sopenharmony_ci </listitem> 229c72fcc34Sopenharmony_ci </varlistentry> 230c72fcc34Sopenharmony_ci <varlistentry> 231c72fcc34Sopenharmony_ci <term><option>max</option></term> 232c72fcc34Sopenharmony_ci <listitem> 233c72fcc34Sopenharmony_ci <para>Value range - maximum value</para> 234c72fcc34Sopenharmony_ci </listitem> 235c72fcc34Sopenharmony_ci </varlistentry> 236c72fcc34Sopenharmony_ci <varlistentry> 237c72fcc34Sopenharmony_ci <term><option>step</option></term> 238c72fcc34Sopenharmony_ci <listitem> 239c72fcc34Sopenharmony_ci <para>Value range - step value</para> 240c72fcc34Sopenharmony_ci </listitem> 241c72fcc34Sopenharmony_ci </varlistentry> 242c72fcc34Sopenharmony_ci <varlistentry> 243c72fcc34Sopenharmony_ci <term><option>dBmin</option></term> 244c72fcc34Sopenharmony_ci <listitem> 245c72fcc34Sopenharmony_ci <para>Value range - minimum dB value</para> 246c72fcc34Sopenharmony_ci </listitem> 247c72fcc34Sopenharmony_ci </varlistentry> 248c72fcc34Sopenharmony_ci <varlistentry> 249c72fcc34Sopenharmony_ci <term><option>dBmax</option></term> 250c72fcc34Sopenharmony_ci <listitem> 251c72fcc34Sopenharmony_ci <para>Value range - maximum dB value</para> 252c72fcc34Sopenharmony_ci </listitem> 253c72fcc34Sopenharmony_ci </varlistentry> 254c72fcc34Sopenharmony_ci <varlistentry> 255c72fcc34Sopenharmony_ci <term><option>items</option></term> 256c72fcc34Sopenharmony_ci <listitem> 257c72fcc34Sopenharmony_ci <para>Enumerated value - number of text items</para> 258c72fcc34Sopenharmony_ci </listitem> 259c72fcc34Sopenharmony_ci </varlistentry> 260c72fcc34Sopenharmony_ci <varlistentry> 261c72fcc34Sopenharmony_ci <term><option>enums</option></term> 262c72fcc34Sopenharmony_ci <listitem> 263c72fcc34Sopenharmony_ci <para>Enumerated value - list of text names stored between '|' character</para> 264c72fcc34Sopenharmony_ci </listitem> 265c72fcc34Sopenharmony_ci </varlistentry> 266c72fcc34Sopenharmony_ci <varlistentry> 267c72fcc34Sopenharmony_ci <term><option>value</option></term> 268c72fcc34Sopenharmony_ci <listitem> 269c72fcc34Sopenharmony_ci <para>Value of control stored to a string delimited by 270c72fcc34Sopenharmony_ci comma (,).</para> 271c72fcc34Sopenharmony_ci </listitem> 272c72fcc34Sopenharmony_ci </varlistentry> 273c72fcc34Sopenharmony_ci <varlistentry> 274c72fcc34Sopenharmony_ci <term><option>do_search</option></term> 275c72fcc34Sopenharmony_ci <listitem> 276c72fcc34Sopenharmony_ci <para>Search for a control. Value "1" is returned 277c72fcc34Sopenharmony_ci if a control was found. The CTL{name} key might 278c72fcc34Sopenharmony_ci contain match characters * and ?. An control index 279c72fcc34Sopenharmony_ci might be specified as first argument starting from 280c72fcc34Sopenharmony_ci zero (e.g. CTL{do_search 2}="1").</para> 281c72fcc34Sopenharmony_ci </listitem> 282c72fcc34Sopenharmony_ci </varlistentry> 283c72fcc34Sopenharmony_ci <varlistentry> 284c72fcc34Sopenharmony_ci <term><option>do_count</option></term> 285c72fcc34Sopenharmony_ci <listitem> 286c72fcc34Sopenharmony_ci <para>Search for a controls and return total count 287c72fcc34Sopenharmony_ci of matched ones. The CTL{name} key might contain match 288c72fcc34Sopenharmony_ci characters * and ?.</para> 289c72fcc34Sopenharmony_ci </listitem> 290c72fcc34Sopenharmony_ci </varlistentry> 291c72fcc34Sopenharmony_ci </variablelist> 292c72fcc34Sopenharmony_ci </listitem> 293c72fcc34Sopenharmony_ci </varlistentry> 294c72fcc34Sopenharmony_ci 295c72fcc34Sopenharmony_ci <varlistentry> 296c72fcc34Sopenharmony_ci <term><option>CONFIG{sysfs_device}</option></term> 297c72fcc34Sopenharmony_ci <listitem> 298c72fcc34Sopenharmony_ci <para>The relative path to sysfs subsystem specifying 299c72fcc34Sopenharmony_ci the root directory of a soundcard device. Usually, 300c72fcc34Sopenharmony_ci it should be set to "/class/sound/card$cardinfo{card}/device". 301c72fcc34Sopenharmony_ci </para> 302c72fcc34Sopenharmony_ci </listitem> 303c72fcc34Sopenharmony_ci </varlistentry> 304c72fcc34Sopenharmony_ci 305c72fcc34Sopenharmony_ci <varlistentry> 306c72fcc34Sopenharmony_ci <term><option>ATTR{<replaceable>filename</replaceable>}</option></term> 307c72fcc34Sopenharmony_ci <listitem> 308c72fcc34Sopenharmony_ci <para>Match sysfs attribute values of the soundcard device. 309c72fcc34Sopenharmony_ci The relative path to sysfs tree must be defined by 310c72fcc34Sopenharmony_ci CONFIG{sysfs_device} key. Trailing whitespace in the attribute 311c72fcc34Sopenharmony_ci values is ignored, if the specified match value does 312c72fcc34Sopenharmony_ci not contain trailing whitespace itself. Depending on 313c72fcc34Sopenharmony_ci the type of operator, this key is also used to set 314c72fcc34Sopenharmony_ci the value of a sysfs attribute. 315c72fcc34Sopenharmony_ci </para> 316c72fcc34Sopenharmony_ci </listitem> 317c72fcc34Sopenharmony_ci </varlistentry> 318c72fcc34Sopenharmony_ci 319c72fcc34Sopenharmony_ci <varlistentry> 320c72fcc34Sopenharmony_ci <term><option>ENV{<replaceable>key</replaceable>}</option></term> 321c72fcc34Sopenharmony_ci <listitem> 322c72fcc34Sopenharmony_ci <para>Match against the value of an environment variable. Up 323c72fcc34Sopenharmony_ci to five <option>ENV</option> keys can be specified per rule. 324c72fcc34Sopenharmony_ci Depending on the type of operator, this key is also used 325c72fcc34Sopenharmony_ci to export a variable to the environment.</para> 326c72fcc34Sopenharmony_ci </listitem> 327c72fcc34Sopenharmony_ci </varlistentry> 328c72fcc34Sopenharmony_ci 329c72fcc34Sopenharmony_ci <varlistentry> 330c72fcc34Sopenharmony_ci <term><option>PROGRAM</option></term> 331c72fcc34Sopenharmony_ci <listitem> 332c72fcc34Sopenharmony_ci <para>Execute external program. The key is true, if 333c72fcc34Sopenharmony_ci the program returns without exit code zero. The whole event 334c72fcc34Sopenharmony_ci environment is available to the executed program. The 335c72fcc34Sopenharmony_ci program's output printed to stdout is available for 336c72fcc34Sopenharmony_ci the RESULT key.</para> 337c72fcc34Sopenharmony_ci <para>Several buildin commands are available:</para> 338c72fcc34Sopenharmony_ci <variablelist> 339c72fcc34Sopenharmony_ci <varlistentry> 340c72fcc34Sopenharmony_ci <term><option>__ctl_search</option></term> 341c72fcc34Sopenharmony_ci <listitem> 342c72fcc34Sopenharmony_ci <para>Search for a control. The CTL{name} key might 343c72fcc34Sopenharmony_ci contain match characters * and ?. An control index 344c72fcc34Sopenharmony_ci might be specified as first argument starting from 345c72fcc34Sopenharmony_ci zero (e.g. PROGRAM="__ctl_search 2").</para> 346c72fcc34Sopenharmony_ci </listitem> 347c72fcc34Sopenharmony_ci </varlistentry> 348c72fcc34Sopenharmony_ci <varlistentry> 349c72fcc34Sopenharmony_ci <term><option>__ctl_count</option></term> 350c72fcc34Sopenharmony_ci <listitem> 351c72fcc34Sopenharmony_ci <para>Search for a controls and return total count 352c72fcc34Sopenharmony_ci of matched ones. The CTL{name} key might contain match 353c72fcc34Sopenharmony_ci characters * and ?.</para> 354c72fcc34Sopenharmony_ci </listitem> 355c72fcc34Sopenharmony_ci </varlistentry> 356c72fcc34Sopenharmony_ci </variablelist> 357c72fcc34Sopenharmony_ci </listitem> 358c72fcc34Sopenharmony_ci </varlistentry> 359c72fcc34Sopenharmony_ci 360c72fcc34Sopenharmony_ci <varlistentry> 361c72fcc34Sopenharmony_ci <term><option>RESULT</option></term> 362c72fcc34Sopenharmony_ci <listitem> 363c72fcc34Sopenharmony_ci <para>Match the returned string of the last PROGRAM call. 364c72fcc34Sopenharmony_ci This key can be used in the same or in any later rule 365c72fcc34Sopenharmony_ci after a PROGRAM call.</para> 366c72fcc34Sopenharmony_ci </listitem> 367c72fcc34Sopenharmony_ci </varlistentry> 368c72fcc34Sopenharmony_ci 369c72fcc34Sopenharmony_ci </variablelist> 370c72fcc34Sopenharmony_ci 371c72fcc34Sopenharmony_ci <para>Most of the fields support a shell style pattern matching. 372c72fcc34Sopenharmony_ci The following pattern characters are supported:</para> 373c72fcc34Sopenharmony_ci <variablelist> 374c72fcc34Sopenharmony_ci <varlistentry> 375c72fcc34Sopenharmony_ci <term><option>*</option></term> 376c72fcc34Sopenharmony_ci <listitem> 377c72fcc34Sopenharmony_ci <para>Matches zero, or any number of characters.</para> 378c72fcc34Sopenharmony_ci </listitem> 379c72fcc34Sopenharmony_ci </varlistentry> 380c72fcc34Sopenharmony_ci <varlistentry> 381c72fcc34Sopenharmony_ci <term><option>?</option></term> 382c72fcc34Sopenharmony_ci <listitem> 383c72fcc34Sopenharmony_ci <para>Matches any single character.</para> 384c72fcc34Sopenharmony_ci </listitem> 385c72fcc34Sopenharmony_ci </varlistentry> 386c72fcc34Sopenharmony_ci <varlistentry> 387c72fcc34Sopenharmony_ci <term><option>[]</option></term> 388c72fcc34Sopenharmony_ci <listitem> 389c72fcc34Sopenharmony_ci <para>Matches any single character specified within 390c72fcc34Sopenharmony_ci the brackets. For example, the pattern string 'tty[SR]' 391c72fcc34Sopenharmony_ci would match either 'ttyS' or 'ttyR'. Ranges are also 392c72fcc34Sopenharmony_ci supported within this match with the '-' character. 393c72fcc34Sopenharmony_ci For example, to match on the range of all digits, 394c72fcc34Sopenharmony_ci the pattern [0-9] would be used. If the first character 395c72fcc34Sopenharmony_ci following the '[' is a '!', any characters 396c72fcc34Sopenharmony_ci not enclosed are matched.</para> 397c72fcc34Sopenharmony_ci </listitem> 398c72fcc34Sopenharmony_ci </varlistentry> 399c72fcc34Sopenharmony_ci </variablelist> 400c72fcc34Sopenharmony_ci 401c72fcc34Sopenharmony_ci <para>The following keys can get values assigned:</para> 402c72fcc34Sopenharmony_ci <variablelist> 403c72fcc34Sopenharmony_ci <varlistentry> 404c72fcc34Sopenharmony_ci <term><option>CTL{numid}</option>, <option>CTL{iface}</option>, 405c72fcc34Sopenharmony_ci <option>CTL{device}</option>, <option>CTL{subdev}</option>, 406c72fcc34Sopenharmony_ci <option>CTL{name}</option>, <option>CTL{index}</option>, 407c72fcc34Sopenharmony_ci </term> 408c72fcc34Sopenharmony_ci <listitem> 409c72fcc34Sopenharmony_ci <para>Select universal control element.</para> 410c72fcc34Sopenharmony_ci </listitem> 411c72fcc34Sopenharmony_ci </varlistentry> 412c72fcc34Sopenharmony_ci <varlistentry> 413c72fcc34Sopenharmony_ci <term><option>CTL{value}</option></term> 414c72fcc34Sopenharmony_ci <listitem> 415c72fcc34Sopenharmony_ci <para>Value is set (written) also to soundcard's control 416c72fcc34Sopenharmony_ci device and RESULT key is set to errno code. The result of 417c72fcc34Sopenharmony_ci set operation is always true (it means continue with 418c72fcc34Sopenharmony_ci next key on line).</para> 419c72fcc34Sopenharmony_ci </listitem> 420c72fcc34Sopenharmony_ci </varlistentry> 421c72fcc34Sopenharmony_ci <varlistentry> 422c72fcc34Sopenharmony_ci <term><option>CTL{values}</option></term> 423c72fcc34Sopenharmony_ci <listitem> 424c72fcc34Sopenharmony_ci <para>Value is set (written) also to soundcard's control 425c72fcc34Sopenharmony_ci device (all control values are set to specified value) and 426c72fcc34Sopenharmony_ci RESULT key is set to errno code. The result of 427c72fcc34Sopenharmony_ci set operation is always true (it means continue with 428c72fcc34Sopenharmony_ci next key on line).</para> 429c72fcc34Sopenharmony_ci </listitem> 430c72fcc34Sopenharmony_ci </varlistentry> 431c72fcc34Sopenharmony_ci <varlistentry> 432c72fcc34Sopenharmony_ci <term><option>CTL{write}</option></term> 433c72fcc34Sopenharmony_ci <listitem> 434c72fcc34Sopenharmony_ci <para>Value is set (written) also to soundcard's control 435c72fcc34Sopenharmony_ci device (all control values are set to specified value). 436c72fcc34Sopenharmony_ci The result of set operation is true when operation 437c72fcc34Sopenharmony_ci succeed (it means continue with next key on line).</para> 438c72fcc34Sopenharmony_ci </listitem> 439c72fcc34Sopenharmony_ci </varlistentry> 440c72fcc34Sopenharmony_ci 441c72fcc34Sopenharmony_ci <varlistentry> 442c72fcc34Sopenharmony_ci <term><option>ENV{<replaceable>key</replaceable>}</option></term> 443c72fcc34Sopenharmony_ci <listitem> 444c72fcc34Sopenharmony_ci <para>Export a variable to the environment. Depending on the type of operator, 445c72fcc34Sopenharmony_ci this key is also to match against an environment variable.</para> 446c72fcc34Sopenharmony_ci </listitem> 447c72fcc34Sopenharmony_ci </varlistentry> 448c72fcc34Sopenharmony_ci 449c72fcc34Sopenharmony_ci <varlistentry> 450c72fcc34Sopenharmony_ci <term><option>RESULT</option></term> 451c72fcc34Sopenharmony_ci <listitem> 452c72fcc34Sopenharmony_ci <para>Set RESULT variable. Note that PROGRAM also sets 453c72fcc34Sopenharmony_ci this variable, but setting this variable manually 454c72fcc34Sopenharmony_ci might be useful to change code execution order (included 455c72fcc34Sopenharmony_ci files).</para> 456c72fcc34Sopenharmony_ci </listitem> 457c72fcc34Sopenharmony_ci </varlistentry> 458c72fcc34Sopenharmony_ci 459c72fcc34Sopenharmony_ci <varlistentry> 460c72fcc34Sopenharmony_ci <term><option>LABEL</option></term> 461c72fcc34Sopenharmony_ci <listitem> 462c72fcc34Sopenharmony_ci <para>Named label where a GOTO can jump to.</para> 463c72fcc34Sopenharmony_ci </listitem> 464c72fcc34Sopenharmony_ci </varlistentry> 465c72fcc34Sopenharmony_ci 466c72fcc34Sopenharmony_ci <varlistentry> 467c72fcc34Sopenharmony_ci <term><option>GOTO</option></term> 468c72fcc34Sopenharmony_ci <listitem> 469c72fcc34Sopenharmony_ci <para>Jumps to the next LABEL with a matching name. 470c72fcc34Sopenharmony_ci The goto cannot jump backward.</para> 471c72fcc34Sopenharmony_ci </listitem> 472c72fcc34Sopenharmony_ci </varlistentry> 473c72fcc34Sopenharmony_ci 474c72fcc34Sopenharmony_ci <varlistentry> 475c72fcc34Sopenharmony_ci <term><option>INCLUDE</option></term> 476c72fcc34Sopenharmony_ci <listitem> 477c72fcc34Sopenharmony_ci <para>Include the specified filename or files in specified directory. 478c72fcc34Sopenharmony_ci </para> 479c72fcc34Sopenharmony_ci <para> 480c72fcc34Sopenharmony_ci When a directory is specified, only the files with the 481c72fcc34Sopenharmony_ci extension ".conf" are read. 482c72fcc34Sopenharmony_ci Also they are read in the alphabetical order. 483c72fcc34Sopenharmony_ci Thus it's highly recommended to use some number prefix 484c72fcc34Sopenharmony_ci (e.g. "01-something.conf") to assure the order of execucions. 485c72fcc34Sopenharmony_ci </para> 486c72fcc34Sopenharmony_ci </listitem> 487c72fcc34Sopenharmony_ci </varlistentry> 488c72fcc34Sopenharmony_ci 489c72fcc34Sopenharmony_ci <varlistentry> 490c72fcc34Sopenharmony_ci <term><option>ACCESS</option></term> 491c72fcc34Sopenharmony_ci <listitem> 492c72fcc34Sopenharmony_ci <para>Check if specified file or directory exists</para> 493c72fcc34Sopenharmony_ci </listitem> 494c72fcc34Sopenharmony_ci </varlistentry> 495c72fcc34Sopenharmony_ci 496c72fcc34Sopenharmony_ci <varlistentry> 497c72fcc34Sopenharmony_ci <term><option>CONFIG{sysfs_device}</option></term> 498c72fcc34Sopenharmony_ci <listitem> 499c72fcc34Sopenharmony_ci <para>The relative path to sysfs subsystem specifying 500c72fcc34Sopenharmony_ci the root directory of a soundcard device. Usually, 501c72fcc34Sopenharmony_ci it should be set to "/class/sound/card$cardinfo{card}/device". 502c72fcc34Sopenharmony_ci </para> 503c72fcc34Sopenharmony_ci </listitem> 504c72fcc34Sopenharmony_ci </varlistentry> 505c72fcc34Sopenharmony_ci 506c72fcc34Sopenharmony_ci <varlistentry> 507c72fcc34Sopenharmony_ci <term><option>PRINT</option></term> 508c72fcc34Sopenharmony_ci <listitem> 509c72fcc34Sopenharmony_ci <para>PRINT value to stdout.</para> 510c72fcc34Sopenharmony_ci </listitem> 511c72fcc34Sopenharmony_ci </varlistentry> 512c72fcc34Sopenharmony_ci 513c72fcc34Sopenharmony_ci <varlistentry> 514c72fcc34Sopenharmony_ci <term><option>ERROR</option></term> 515c72fcc34Sopenharmony_ci <listitem> 516c72fcc34Sopenharmony_ci <para>PRINT value to stderr.</para> 517c72fcc34Sopenharmony_ci </listitem> 518c72fcc34Sopenharmony_ci </varlistentry> 519c72fcc34Sopenharmony_ci 520c72fcc34Sopenharmony_ci <varlistentry> 521c72fcc34Sopenharmony_ci <term><option>EXIT</option></term> 522c72fcc34Sopenharmony_ci <listitem> 523c72fcc34Sopenharmony_ci <para>Exit immediately and set program exit code to value 524c72fcc34Sopenharmony_ci (should be integer). If value is "return" string, 525c72fcc34Sopenharmony_ci parser leaves current included file and returns to parent 526c72fcc34Sopenharmony_ci configuration file.</para> 527c72fcc34Sopenharmony_ci </listitem> 528c72fcc34Sopenharmony_ci </varlistentry> 529c72fcc34Sopenharmony_ci 530c72fcc34Sopenharmony_ci </variablelist> 531c72fcc34Sopenharmony_ci 532c72fcc34Sopenharmony_ci <para>The <option>PROGRAM</option>, <option>RESULT</option>, 533c72fcc34Sopenharmony_ci <option>CTL{value}</option>, 534c72fcc34Sopenharmony_ci <option>PRINT</option>, <option>ERROR</option>, 535c72fcc34Sopenharmony_ci <option>EXIT</option>, <option>CONFIG{}</option> 536c72fcc34Sopenharmony_ci fields support simple printf-like string substitutions. 537c72fcc34Sopenharmony_ci It allows the use of the complete environment set by earlier matching 538c72fcc34Sopenharmony_ci rules. For all other fields, substitutions are applied while the individual rule is 539c72fcc34Sopenharmony_ci being processed. The available substitutions are:</para> 540c72fcc34Sopenharmony_ci <variablelist> 541c72fcc34Sopenharmony_ci <varlistentry> 542c72fcc34Sopenharmony_ci <term><option>$cardinfo{<replaceable>attribute</replaceable>}</option>, <option>%i{<replaceable>attribute</replaceable>}</option></term> 543c72fcc34Sopenharmony_ci <listitem> 544c72fcc34Sopenharmony_ci <para>See CARDINFO{} for more details.</para> 545c72fcc34Sopenharmony_ci </listitem> 546c72fcc34Sopenharmony_ci </varlistentry> 547c72fcc34Sopenharmony_ci 548c72fcc34Sopenharmony_ci <varlistentry> 549c72fcc34Sopenharmony_ci <term><option>$ctl{<replaceable>attribute</replaceable>}</option>, <option>%C{<replaceable>attribute</replaceable>}</option></term> 550c72fcc34Sopenharmony_ci <listitem> 551c72fcc34Sopenharmony_ci <para>See CTL{} for more details.</para> 552c72fcc34Sopenharmony_ci </listitem> 553c72fcc34Sopenharmony_ci </varlistentry> 554c72fcc34Sopenharmony_ci 555c72fcc34Sopenharmony_ci <varlistentry> 556c72fcc34Sopenharmony_ci <term><option>$attr{<replaceable>file</replaceable>}</option>, <option>%s{<replaceable>file</replaceable>}</option></term> 557c72fcc34Sopenharmony_ci <listitem> 558c72fcc34Sopenharmony_ci <para>The value of a sysfs attribute found at the device, where 559c72fcc34Sopenharmony_ci all keys of the rule have matched. 560c72fcc34Sopenharmony_ci If the attribute is a symlink, the last element of the symlink target is 561c72fcc34Sopenharmony_ci returned as the value.</para> 562c72fcc34Sopenharmony_ci </listitem> 563c72fcc34Sopenharmony_ci </varlistentry> 564c72fcc34Sopenharmony_ci 565c72fcc34Sopenharmony_ci <varlistentry> 566c72fcc34Sopenharmony_ci <term><option>$env{<replaceable>key</replaceable>}</option>, <option>%E{<replaceable>key</replaceable>}</option></term> 567c72fcc34Sopenharmony_ci <listitem> 568c72fcc34Sopenharmony_ci <para>The value of an environment variable.</para> 569c72fcc34Sopenharmony_ci </listitem> 570c72fcc34Sopenharmony_ci </varlistentry> 571c72fcc34Sopenharmony_ci 572c72fcc34Sopenharmony_ci <varlistentry> 573c72fcc34Sopenharmony_ci <term><option>$result</option>, <option>%c</option></term> 574c72fcc34Sopenharmony_ci <listitem> 575c72fcc34Sopenharmony_ci <para>The string returned by the external program requested with PROGRAM. 576c72fcc34Sopenharmony_ci A single part of the string, separated by a space character may be selected 577c72fcc34Sopenharmony_ci by specifying the part number as an attribute: <option>%c{N}</option>. 578c72fcc34Sopenharmony_ci If the number is followed by the '+' char this part plus all remaining parts 579c72fcc34Sopenharmony_ci of the result string are substituted: <option>%c{N+}</option></para> 580c72fcc34Sopenharmony_ci </listitem> 581c72fcc34Sopenharmony_ci </varlistentry> 582c72fcc34Sopenharmony_ci 583c72fcc34Sopenharmony_ci <varlistentry> 584c72fcc34Sopenharmony_ci <term><option>$sysfsroot</option>, <option>%r</option></term> 585c72fcc34Sopenharmony_ci <listitem> 586c72fcc34Sopenharmony_ci <para>Root directory where sysfs file-system is mounted. 587c72fcc34Sopenharmony_ci Ususally, this value is just "/sys".</para> 588c72fcc34Sopenharmony_ci </listitem> 589c72fcc34Sopenharmony_ci </varlistentry> 590c72fcc34Sopenharmony_ci 591c72fcc34Sopenharmony_ci <varlistentry> 592c72fcc34Sopenharmony_ci <term><option>$config{<replaceable>key</replaceable>}</option>, <option>%g{<replaceable>key</replaceable>}</option></term> 593c72fcc34Sopenharmony_ci <listitem> 594c72fcc34Sopenharmony_ci <para>The value of a configuration variable. See CONFIG{} for more details.</para> 595c72fcc34Sopenharmony_ci </listitem> 596c72fcc34Sopenharmony_ci </varlistentry> 597c72fcc34Sopenharmony_ci 598c72fcc34Sopenharmony_ci <varlistentry> 599c72fcc34Sopenharmony_ci <term><option>%%</option></term> 600c72fcc34Sopenharmony_ci <listitem> 601c72fcc34Sopenharmony_ci <para>The '%' character itself.</para> 602c72fcc34Sopenharmony_ci </listitem> 603c72fcc34Sopenharmony_ci </varlistentry> 604c72fcc34Sopenharmony_ci 605c72fcc34Sopenharmony_ci <varlistentry> 606c72fcc34Sopenharmony_ci <term><option>$$</option></term> 607c72fcc34Sopenharmony_ci <listitem> 608c72fcc34Sopenharmony_ci <para>The '$' character itself.</para> 609c72fcc34Sopenharmony_ci </listitem> 610c72fcc34Sopenharmony_ci </varlistentry> 611c72fcc34Sopenharmony_ci </variablelist> 612c72fcc34Sopenharmony_ci <para>The count of characters to be substituted may be limited 613c72fcc34Sopenharmony_ci by specifying the format length value. For example, '%3s{file}' 614c72fcc34Sopenharmony_ci will only insert the first three characters of the sysfs 615c72fcc34Sopenharmony_ci attribute</para> 616c72fcc34Sopenharmony_ci </refsect2> 617c72fcc34Sopenharmony_ci </refsect1> 618c72fcc34Sopenharmony_ci 619c72fcc34Sopenharmony_ci <refsect1><title>AUTHOR</title> 620c72fcc34Sopenharmony_ci <para>Written by Jaroslav Kysela <email>perex@perex.cz</email></para> 621c72fcc34Sopenharmony_ci <para>Some portions are written by Greg Kroah-Hartman <email>greg@kroah.com</email> and 622c72fcc34Sopenharmony_ci Kay Sievers <email>kay.sievers@vrfy.org</email>.</para> 623c72fcc34Sopenharmony_ci </refsect1> 624c72fcc34Sopenharmony_ci 625c72fcc34Sopenharmony_ci <refsect1> 626c72fcc34Sopenharmony_ci <title>SEE ALSO</title> 627c72fcc34Sopenharmony_ci <para><citerefentry> 628c72fcc34Sopenharmony_ci <refentrytitle>alsactl</refentrytitle><manvolnum>1</manvolnum> 629c72fcc34Sopenharmony_ci </citerefentry></para> 630c72fcc34Sopenharmony_ci </refsect1> 631c72fcc34Sopenharmony_ci </refentry> 632c72fcc34Sopenharmony_ci </section> 633c72fcc34Sopenharmony_ci</article> 634