Blame alsactl/alsactl_init.xml

Packit Service a9274b
Packit Service a9274b
Packit Service a9274b
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
Packit Service a9274b
Packit Service a9274b
<article>
Packit Service a9274b
  <section>
Packit Service a9274b
    <title>alsactl init</title>
Packit Service a9274b
    <refentry>
Packit Service a9274b
      <refentryinfo>
Packit Service a9274b
        <title>alsactl init</title>
Packit Service a9274b
        <date>July 2008</date>
Packit Service a9274b
        <productname>alsactl</productname>
Packit Service a9274b
      </refentryinfo>
Packit Service a9274b
Packit Service a9274b
      <refmeta>
Packit Service a9274b
        <refentrytitle>alsactl_init</refentrytitle>
Packit Service a9274b
        <manvolnum>7</manvolnum>
Packit Service a9274b
        <refmiscinfo class="version"></refmiscinfo>
Packit Service a9274b
      </refmeta>
Packit Service a9274b
Packit Service a9274b
      <refnamediv>
Packit Service a9274b
        <refname>alsactl init</refname>
Packit Service a9274b
        <refpurpose>alsa control management - initialization</refpurpose>
Packit Service a9274b
      </refnamediv>
Packit Service a9274b
Packit Service a9274b
      <refsect1><title>DESCRIPTION</title>
Packit Service a9274b
        <para>"alsactl init" provides soundcard specific initialization.</para>
Packit Service a9274b
      </refsect1>
Packit Service a9274b
Packit Service a9274b
      <refsect1><title>CONFIGURATION</title>
Packit Service a9274b
        <para>All "alsactl init" configuration files are placed in
Packit Service a9274b
        <filename>/usr/share/alsa/init/</filename> directory. The top level
Packit Service a9274b
        configuration file is <filename>/usr/share/alsa/init/00main</filename>.
Packit Service a9274b
	The default top-level file can be also specified using -i or
Packit Service a9274b
	--initfile parameter for the alsactl tool.
Packit Service a9274b
	Every file consists of a set of lines of text. All empty lines or
Packit Service a9274b
        lines beginning with '#' will be ignored.</para>
Packit Service a9274b
Packit Service a9274b
        <refsect2><title>Rules files</title>
Packit Service a9274b
          <para>The "alsactl init" rules are read from the files located
Packit Service a9274b
          in the <filename>/usr/share/alsa/init/*</filename>. The top
Packit Service a9274b
          level configuration file is <filename>/usr/share/alsa/init/00main</filename>.
Packit Service a9274b
          Every line in the rules file contains at least one key value pair.
Packit Service a9274b
          There are two kind of keys, match and assignment keys. If all match
Packit Service a9274b
          keys are matching against its value, the rule gets applied and the
Packit Service a9274b
          assign keys get the specified value assigned.</para>
Packit Service a9274b
          
Packit Service a9274b
          <para>A rule may consists of a list of one or more key value pairs
Packit Service a9274b
          separated by a comma. Each key has a distinct operation, depending
Packit Service a9274b
          on the used operator. Valid operators are:</para>
Packit Service a9274b
          <variablelist>
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>==</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Compare for equality.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>!=</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Compare for non-equality.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>=</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Assign a value to a key. Keys that represent a list,
Packit Service a9274b
                are reset and only this single value is assigned.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>+=</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Add the value to a key that holds a list
Packit Service a9274b
                of entries.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>:=</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Assign  a  value  to  a key finally; disallow any
Packit Service a9274b
                later changes, which may be used to prevent changes by
Packit Service a9274b
                any later rules.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
          </variablelist>
Packit Service a9274b
Packit Service a9274b
          <para>The following key names can be used to match against device
Packit Service a9274b
          properties:</para>
Packit Service a9274b
          <variablelist>
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>CARDINDEX</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Match the card index of the ALSA driver.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>CTL{<replaceable>attribute</replaceable>}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Set or test universal control attribute. Possible
Packit Service a9274b
		attributes:</para>
Packit Service a9274b
                <variablelist>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>numid</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Numeric control identification.</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>iface</option>, <option>interface</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Control interface name (CARD, HWEDEP, MIXER, PCM, RAWMIDI, TIMER, SEQUENCER)</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>subdev</option>, <option>subdevice</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Subdevice number.</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>name</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Control name</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>index</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Control index</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>type</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Control type (BOOLEAN, INTEGER, INTEGER64, ENUMERATED, BYTES, IEC958)</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>attr</option>, <option>attribute</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Attributes (stored in a string - use match characters * and ?):</para>
Packit Service a9274b
	              <variablelist>
Packit Service a9274b
	                <varlistentry>
Packit Service a9274b
	                  <term><option>r</option></term>
Packit Service a9274b
	                  <listitem>
Packit Service a9274b
	                    <para>control is readable</para>
Packit Service a9274b
	                  </listitem>
Packit Service a9274b
	                </varlistentry>
Packit Service a9274b
	                <varlistentry>
Packit Service a9274b
	                  <term><option>w</option></term>
Packit Service a9274b
	                  <listitem>
Packit Service a9274b
	                    <para>control is writable</para>
Packit Service a9274b
	                  </listitem>
Packit Service a9274b
	                </varlistentry>
Packit Service a9274b
	                <varlistentry>
Packit Service a9274b
	                  <term><option>v</option></term>
Packit Service a9274b
	                  <listitem>
Packit Service a9274b
	                    <para>control is volatile</para>
Packit Service a9274b
	                  </listitem>
Packit Service a9274b
	                </varlistentry>
Packit Service a9274b
	                <varlistentry>
Packit Service a9274b
	                  <term><option>i</option></term>
Packit Service a9274b
	                  <listitem>
Packit Service a9274b
	                    <para>control is inactive</para>
Packit Service a9274b
	                  </listitem>
Packit Service a9274b
	                </varlistentry>
Packit Service a9274b
	                <varlistentry>
Packit Service a9274b
	                  <term><option>l</option></term>
Packit Service a9274b
	                  <listitem>
Packit Service a9274b
	                    <para>control is locked</para>
Packit Service a9274b
	                  </listitem>
Packit Service a9274b
	                </varlistentry>
Packit Service a9274b
	                <varlistentry>
Packit Service a9274b
	                  <term><option>R</option></term>
Packit Service a9274b
	                  <listitem>
Packit Service a9274b
	                    <para>control is TLV readable</para>
Packit Service a9274b
	                  </listitem>
Packit Service a9274b
	                </varlistentry>
Packit Service a9274b
	                <varlistentry>
Packit Service a9274b
	                  <term><option>W</option></term>
Packit Service a9274b
	                  <listitem>
Packit Service a9274b
	                    <para>control is TLV writable</para>
Packit Service a9274b
	                  </listitem>
Packit Service a9274b
	                </varlistentry>
Packit Service a9274b
	                <varlistentry>
Packit Service a9274b
	                  <term><option>C</option></term>
Packit Service a9274b
	                  <listitem>
Packit Service a9274b
	                    <para>control is TLV commandable</para>
Packit Service a9274b
	                  </listitem>
Packit Service a9274b
	                </varlistentry>
Packit Service a9274b
	                <varlistentry>
Packit Service a9274b
	                  <term><option>o</option></term>
Packit Service a9274b
	                  <listitem>
Packit Service a9274b
	                    <para>process is owner of this control</para>
Packit Service a9274b
	                  </listitem>
Packit Service a9274b
	                </varlistentry>
Packit Service a9274b
	                <varlistentry>
Packit Service a9274b
	                  <term><option>u</option></term>
Packit Service a9274b
	                  <listitem>
Packit Service a9274b
	                    <para>control created in user space</para>
Packit Service a9274b
	                  </listitem>
Packit Service a9274b
	                </varlistentry>
Packit Service a9274b
	              </variablelist>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>owner</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Control owner process PID number</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>count</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Control count of values</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>min</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Value range - minimum value</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>max</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Value range - maximum value</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>step</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Value range - step value</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>dBmin</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Value range - minimum dB value</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>dBmax</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Value range - maximum dB value</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>items</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Enumerated value - number of text items</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>enums</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Enumerated value - list of text names stored between '|' character</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>value</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Value of control stored to a string delimited by
Packit Service a9274b
                      comma (,).</para>
Packit Service a9274b
                    </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>do_search</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Search for a control. Value "1" is returned
Packit Service a9274b
                      if a control was found. The CTL{name} key might
Packit Service a9274b
		      contain match characters * and ?. An control index
Packit Service a9274b
		      might be specified as first argument starting from
Packit Service a9274b
		      zero (e.g. CTL{do_search 2}="1").</para>
Packit Service a9274b
                     </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>do_count</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Search for a controls and return total count
Packit Service a9274b
                      of matched ones. The CTL{name} key might contain match
Packit Service a9274b
                      characters * and ?.</para>
Packit Service a9274b
                     </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                </variablelist>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>CONFIG{sysfs_device}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>The relative path to sysfs subsystem specifying
Packit Service a9274b
                the root directory of a soundcard device. Usually,
Packit Service a9274b
                it should be set to "/class/sound/card$cardinfo{card}/device".
Packit Service a9274b
                </para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>ATTR{<replaceable>filename</replaceable>}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Match sysfs attribute values of the soundcard device.
Packit Service a9274b
                The relative path to sysfs tree must be defined by
Packit Service a9274b
		CONFIG{sysfs_device} key. Trailing whitespace in the attribute
Packit Service a9274b
		values is ignored, if the specified match value does
Packit Service a9274b
		not contain trailing whitespace itself. Depending on
Packit Service a9274b
		the type of operator, this key is also used to set
Packit Service a9274b
		the value of a sysfs attribute.
Packit Service a9274b
                </para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>ENV{<replaceable>key</replaceable>}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Match against the value of an environment variable. Up
Packit Service a9274b
                to five <option>ENV</option> keys can be specified per rule.
Packit Service a9274b
                Depending on the type of operator, this key is also used
Packit Service a9274b
                to export a variable to the environment.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>PROGRAM</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Execute external program. The key is true, if
Packit Service a9274b
                the program returns without exit code zero. The whole event
Packit Service a9274b
                environment is available to the executed program. The
Packit Service a9274b
                program's output printed to stdout is available for
Packit Service a9274b
                the RESULT key.</para>
Packit Service a9274b
                <para>Several buildin commands are available:</para>
Packit Service a9274b
                <variablelist>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>__ctl_search</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Search for a control. The CTL{name} key might
Packit Service a9274b
		      contain match characters * and ?. An control index
Packit Service a9274b
		      might be specified as first argument starting from
Packit Service a9274b
		      zero (e.g. PROGRAM="__ctl_search 2").</para>
Packit Service a9274b
                     </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
                  <varlistentry>
Packit Service a9274b
                    <term><option>__ctl_count</option></term>
Packit Service a9274b
                    <listitem>
Packit Service a9274b
                      <para>Search for a controls and return total count
Packit Service a9274b
                      of matched ones. The CTL{name} key might contain match
Packit Service a9274b
                      characters * and ?.</para>
Packit Service a9274b
                     </listitem>
Packit Service a9274b
                  </varlistentry>
Packit Service a9274b
		</variablelist>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>RESULT</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Match the returned string of the last PROGRAM call.
Packit Service a9274b
                This key can be used in the same or in any later rule
Packit Service a9274b
                after a PROGRAM call.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
          </variablelist>
Packit Service a9274b
Packit Service a9274b
          <para>Most of the fields support a shell style pattern matching.
Packit Service a9274b
          The following pattern characters are supported:</para>
Packit Service a9274b
          <variablelist>
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>*</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Matches zero, or any number of characters.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>?</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Matches any single character.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>[]</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Matches any single character specified within
Packit Service a9274b
                the brackets. For example, the pattern string 'tty[SR]'
Packit Service a9274b
                would match either 'ttyS' or 'ttyR'. Ranges are also
Packit Service a9274b
                supported within this match with the '-' character.
Packit Service a9274b
      		For example, to match on the range of all digits,
Packit Service a9274b
      		the pattern [0-9] would be used. If the first character
Packit Service a9274b
      		following the '[' is a '!', any characters
Packit Service a9274b
                not enclosed are matched.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
          </variablelist>
Packit Service a9274b
Packit Service a9274b
          <para>The following keys can get values assigned:</para>
Packit Service a9274b
          <variablelist>
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>CTL{numid}</option>, <option>CTL{iface}</option>,
Packit Service a9274b
		    <option>CTL{device}</option>, <option>CTL{subdev}</option>, 
Packit Service a9274b
		    <option>CTL{name}</option>,  <option>CTL{index}</option>, 
Packit Service a9274b
	      </term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
              	 <para>Select universal control element.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>CTL{value}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
              	 <para>Value is set (written) also to soundcard's control
Packit Service a9274b
              	 device and RESULT key is set to errno code. The result of
Packit Service a9274b
                 set operation is always true (it means continue with
Packit Service a9274b
                 next key on line).</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>CTL{values}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
              	 <para>Value is set (written) also to soundcard's control
Packit Service a9274b
              	 device (all control values are set to specified value) and
Packit Service a9274b
              	 RESULT key is set to errno code. The result of
Packit Service a9274b
                 set operation is always true (it means continue with
Packit Service a9274b
                 next key on line).</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>CTL{write}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
              	 <para>Value is set (written) also to soundcard's control
Packit Service a9274b
              	 device (all control values are set to specified value).
Packit Service a9274b
              	 The result of set operation is true when operation
Packit Service a9274b
              	 succeed (it means continue with next key on line).</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>ENV{<replaceable>key</replaceable>}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Export a variable to the environment. Depending on the type of operator,
Packit Service a9274b
                this key is also to match against an environment variable.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>RESULT</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Set RESULT variable. Note that PROGRAM also sets
Packit Service a9274b
                this variable, but setting this variable manually
Packit Service a9274b
                might be useful to change code execution order (included
Packit Service a9274b
                files).</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>LABEL</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Named label where a GOTO can jump to.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>GOTO</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Jumps to the next LABEL with a matching name.
Packit Service a9274b
                      The goto cannot jump backward.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>INCLUDE</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Include the specified filename or files in specified directory.
Packit Service a9274b
		</para>
Packit Service a9274b
		<para>
Packit Service a9274b
		When a directory is specified, only the files with the
Packit Service a9274b
		extension ".conf" are read.
Packit Service a9274b
		Also they are read in the alphabetical order.
Packit Service a9274b
		Thus it's highly recommended to use some number prefix
Packit Service a9274b
		(e.g. "01-something.conf") to assure the order of execucions.
Packit Service a9274b
		</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>ACCESS</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Check if specified file or directory exists</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>CONFIG{sysfs_device}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>The relative path to sysfs subsystem specifying
Packit Service a9274b
                the root directory of a soundcard device. Usually,
Packit Service a9274b
                it should be set to "/class/sound/card$cardinfo{card}/device".
Packit Service a9274b
                </para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>PRINT</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>PRINT value to stdout.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>ERROR</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>PRINT value to stderr.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>EXIT</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Exit immediately and set program exit code to value
Packit Service a9274b
                (should be integer). If value is "return" string,
Packit Service a9274b
                parser leaves current included file and returns to parent
Packit Service a9274b
                configuration file.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
          </variablelist>
Packit Service a9274b
Packit Service a9274b
          <para>The <option>PROGRAM</option>, <option>RESULT</option>,
Packit Service a9274b
          <option>CTL{value}</option>,
Packit Service a9274b
	  <option>PRINT</option>, <option>ERROR</option>,
Packit Service a9274b
	  <option>EXIT</option>, <option>CONFIG{}</option>
Packit Service a9274b
	  fields support simple printf-like string substitutions.
Packit Service a9274b
          It allows the use of the complete environment set by earlier matching
Packit Service a9274b
          rules. For all other fields, substitutions are applied while the individual rule is
Packit Service a9274b
          being processed. The available substitutions are:</para>
Packit Service a9274b
          <variablelist>
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
	      <term><option>$cardinfo{<replaceable>attribute</replaceable>}</option>, <option>%i{<replaceable>attribute</replaceable>}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>See CARDINFO{} for more details.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>$ctl{<replaceable>attribute</replaceable>}</option>, <option>%C{<replaceable>attribute</replaceable>}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>See CTL{} for more details.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>$attr{<replaceable>file</replaceable>}</option>, <option>%s{<replaceable>file</replaceable>}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>The value of a sysfs attribute found at the device, where
Packit Service a9274b
                all keys of the rule have matched.
Packit Service a9274b
                If the attribute is a symlink, the last element of the symlink target is
Packit Service a9274b
                returned as the value.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>$env{<replaceable>key</replaceable>}</option>, <option>%E{<replaceable>key</replaceable>}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>The value of an environment variable.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>$result</option>, <option>%c</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>The string returned by the external program requested with PROGRAM.
Packit Service a9274b
                A single part of the string, separated by a space character may be selected
Packit Service a9274b
                by specifying the part number as an attribute: <option>%c{N}</option>.
Packit Service a9274b
                If the number is followed by the '+' char this part plus all remaining parts
Packit Service a9274b
                of the result string are substituted: <option>%c{N+}</option></para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>$sysfsroot</option>, <option>%r</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>Root directory where sysfs file-system is mounted.
Packit Service a9274b
                Ususally, this value is just "/sys".</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>$config{<replaceable>key</replaceable>}</option>, <option>%g{<replaceable>key</replaceable>}</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
                <para>The value of a configuration variable. See CONFIG{} for more details.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>%%</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
              <para>The '%' character itself.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
Packit Service a9274b
            <varlistentry>
Packit Service a9274b
              <term><option>$$</option></term>
Packit Service a9274b
              <listitem>
Packit Service a9274b
              <para>The '$' character itself.</para>
Packit Service a9274b
              </listitem>
Packit Service a9274b
            </varlistentry>
Packit Service a9274b
          </variablelist>
Packit Service a9274b
          <para>The count of characters to be substituted may be limited
Packit Service a9274b
          by specifying the format length value. For example, '%3s{file}'
Packit Service a9274b
          will only insert the first three characters of the sysfs
Packit Service a9274b
          attribute</para>
Packit Service a9274b
        </refsect2>
Packit Service a9274b
      </refsect1>
Packit Service a9274b
Packit Service a9274b
      <refsect1><title>AUTHOR</title>
Packit Service a9274b
        <para>Written by Jaroslav Kysela <email>perex@perex.cz</email></para>
Packit Service a9274b
        <para>Some portions are written by Greg Kroah-Hartman <email>greg@kroah.com</email> and
Packit Service a9274b
        Kay Sievers <email>kay.sievers@vrfy.org</email>.</para>
Packit Service a9274b
      </refsect1>
Packit Service a9274b
Packit Service a9274b
      <refsect1>
Packit Service a9274b
        <title>SEE ALSO</title>
Packit Service a9274b
        <para><citerefentry>
Packit Service a9274b
            <refentrytitle>alsactl</refentrytitle><manvolnum>1</manvolnum>
Packit Service a9274b
          </citerefentry></para>
Packit Service a9274b
      </refsect1>
Packit Service a9274b
    </refentry>
Packit Service a9274b
  </section>
Packit Service a9274b
</article>