Blame alsactl/alsactl_init.xml

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