Sophie

Sophie

distrib > Mandriva > 2010.1 > i586 > by-pkgid > 34546d63baef3ab2a7675f37737b66ab > files > 20

libalsa2-docs-1.0.23-2.1mdv2010.1.i586.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ALSA project - the C library reference: /home/qateam/rpm/BUILD/alsa-lib-1.0.23/src/conf.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>/home/qateam/rpm/BUILD/alsa-lib-1.0.23/src/conf.c File Reference</h1>
<p>Configuration helper functions.  
<a href="#_details">More...</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a8b857484628b5b4cbd2ac60503d4f80e">ALSA_CONFIG_PATH_VAR</a>&nbsp;&nbsp;&nbsp;&quot;ALSA_CONFIG_PATH&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#aa7ae5d3b32a1ec3a9aa0456a5a2f9091">ALSA_CONFIG_PATH_DEFAULT</a>&nbsp;&nbsp;&nbsp;ALSA_CONFIG_DIR &quot;/alsa.conf&quot;</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a0c4acd2de7999ad6e477d398662485c2">snd_config_substitute</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *dst, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *src)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Substitutes one configuration node to another.  <a href="#a0c4acd2de7999ad6e477d398662485c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a281182963641e7cd5975f56faad6ff14">snd_config_get_type_ascii</a> (const char *ascii, <a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> *type)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts an ASCII string to a configuration node type.  <a href="#a281182963641e7cd5975f56faad6ff14"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6def4c43ce325abaa3ddfba5a4f4d138">snd_config_get_type</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the type of a configuration node.  <a href="group___config.html#ga6def4c43ce325abaa3ddfba5a4f4d138"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gae366751e8ea98aeb69f9ef876f7b949c">snd_config_get_id</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char **id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the id of a configuration node.  <a href="group___config.html#gae366751e8ea98aeb69f9ef876f7b949c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga550948931d44695b6d8e8f148f87cb54">snd_config_set_id</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the id of a configuration node.  <a href="group___config.html#ga550948931d44695b6d8e8f148f87cb54"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaf563d57ea9d576a94578368a3d2382c3">snd_config_top</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a top level configuration node.  <a href="group___config.html#gaf563d57ea9d576a94578368a3d2382c3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga51f79d1f24a519e126415c72210525b0">snd_config_load</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___input.html#ga39165553a2907c5a27f325e3ce4e8301">snd_input_t</a> *in)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Loads a configuration tree.  <a href="group___config.html#ga51f79d1f24a519e126415c72210525b0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga27334922bab8391aa2ef1813f48f4d70">snd_config_load_override</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___input.html#ga39165553a2907c5a27f325e3ce4e8301">snd_input_t</a> *in)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Loads a configuration tree and overrides existing configuration nodes.  <a href="group___config.html#ga27334922bab8391aa2ef1813f48f4d70"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaf62dd825828c05f1d63a62eee7046080">snd_config_add</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *parent, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *child)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a child to a compound configuration node.  <a href="group___config.html#gaf62dd825828c05f1d63a62eee7046080"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#ad4d69b003662e09e8206a7892e849d27">snd_config_remove</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes a configuration node from its tree.  <a href="#ad4d69b003662e09e8206a7892e849d27"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga2a006b942faa3335a958a7df7bcea17e">snd_config_delete</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees a configuration node.  <a href="group___config.html#ga2a006b942faa3335a958a7df7bcea17e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaec120883e56ecb510e064151e0b11d51">snd_config_delete_compound_members</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deletes the children of a node.  <a href="group___config.html#gaec120883e56ecb510e064151e0b11d51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac570ecbaba611ccc12bc235a1f4d0181">snd_config_make</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, <a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> type)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a configuration node.  <a href="group___config.html#gac570ecbaba611ccc12bc235a1f4d0181"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga838fac581e115574acc3711cad9f5877">snd_config_make_integer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an integer configuration node.  <a href="group___config.html#ga838fac581e115574acc3711cad9f5877"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga2c27175c162fe5027e3f1b3d5420afbb">snd_config_make_integer64</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a 64-bit-integer configuration node.  <a href="group___config.html#ga2c27175c162fe5027e3f1b3d5420afbb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga8f175813bfc2556bd08fd580f05d36e6">snd_config_make_real</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a real number configuration node.  <a href="group___config.html#ga8f175813bfc2556bd08fd580f05d36e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6764115f489629be027b434c4e323cff">snd_config_make_string</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a string configuration node.  <a href="group___config.html#ga6764115f489629be027b434c4e323cff"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gadbcce71d8d3a78709fc2a78d6f543584">snd_config_make_pointer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a pointer configuration node.  <a href="group___config.html#gadbcce71d8d3a78709fc2a78d6f543584"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga2ce24133c1d6828e2afe366284c61e01">snd_config_make_compound</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, int join)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an empty compound configuration node.  <a href="group___config.html#ga2ce24133c1d6828e2afe366284c61e01"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gafeb0552cbed09a3badbb5e74c7a7973d">snd_config_imake_integer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, const long value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an integer configuration node with the given initial value.  <a href="group___config.html#gafeb0552cbed09a3badbb5e74c7a7973d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga04cfbfda89dc17c19a5a4076271a4d07">snd_config_imake_integer64</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, const long long value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a 64-bit-integer configuration node with the given initial value.  <a href="group___config.html#ga04cfbfda89dc17c19a5a4076271a4d07"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga968e5bb773dfea922b5272636b26e9c2">snd_config_imake_real</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, const double value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a real number configuration node with the given initial value.  <a href="group___config.html#ga968e5bb773dfea922b5272636b26e9c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaa83035f79027a464bf9d5d31e0a20547">snd_config_imake_string</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, const char *value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a string configuration node with the given initial value.  <a href="group___config.html#gaa83035f79027a464bf9d5d31e0a20547"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac7c6ce28a676169fff594aa4222705b2">snd_config_imake_pointer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, const void *value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a pointer configuration node with the given initial value.  <a href="group___config.html#gac7c6ce28a676169fff594aa4222705b2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6fd3be48221cae9cee9c7245a0804d73">snd_config_set_integer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Changes the value of an integer configuration node.  <a href="group___config.html#ga6fd3be48221cae9cee9c7245a0804d73"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gafdb63c78c07e11194a28d591b0fbffc4">snd_config_set_integer64</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long long value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Changes the value of a 64-bit-integer configuration node.  <a href="group___config.html#gafdb63c78c07e11194a28d591b0fbffc4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga46c71d5d36c64f0a06ceae956a39fedc">snd_config_set_real</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, double value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Changes the value of a real-number configuration node.  <a href="group___config.html#ga46c71d5d36c64f0a06ceae956a39fedc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga0f76f8ad47dce7f90580c8d59c6e44f8">snd_config_set_string</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Changes the value of a string configuration node.  <a href="group___config.html#ga0f76f8ad47dce7f90580c8d59c6e44f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga037c3bf96326bb6f5dfd340475b34fbf">snd_config_set_pointer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const void *value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Changes the value of a pointer configuration node.  <a href="group___config.html#ga037c3bf96326bb6f5dfd340475b34fbf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac1810a11f576fe339074502f4fed4a91">snd_config_set_ascii</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *ascii)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Changes the value of a configuration node.  <a href="group___config.html#gac1810a11f576fe339074502f4fed4a91"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gabfbc36060fd4f5d1d929938443f95559">snd_config_get_integer</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long *ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of an integer configuration node.  <a href="group___config.html#gabfbc36060fd4f5d1d929938443f95559"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaf4d9e68918f7d49d7b4b14ffbe94afc1">snd_config_get_integer64</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long long *ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a 64-bit-integer configuration node.  <a href="group___config.html#gaf4d9e68918f7d49d7b4b14ffbe94afc1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gad4d23c0bf941527d80aeb6f991bf88c9">snd_config_get_real</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, double *ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a real-number configuration node.  <a href="group___config.html#gad4d23c0bf941527d80aeb6f991bf88c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga79738baffa6fa7722b1027ab84ac61bb">snd_config_get_ireal</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, double *ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a real or integer configuration node.  <a href="group___config.html#ga79738baffa6fa7722b1027ab84ac61bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga5ab99983d1d93ddbcde9bb69a1e4f9fb">snd_config_get_string</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char **ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a string configuration node.  <a href="group___config.html#ga5ab99983d1d93ddbcde9bb69a1e4f9fb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga54868e0fa30458ef1c259772a8e7c6d7">snd_config_get_pointer</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const void **ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a pointer configuration node.  <a href="group___config.html#ga54868e0fa30458ef1c259772a8e7c6d7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaa26f97e098a0dd2cd5e28299b6b6c132">snd_config_get_ascii</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, char **ascii)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a configuration node as a string.  <a href="group___config.html#gaa26f97e098a0dd2cd5e28299b6b6c132"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaeec157fd161a138e402c9bd243bbd408">snd_config_test_id</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *id)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compares the id of a configuration node to a given string.  <a href="group___config.html#gaeec157fd161a138e402c9bd243bbd408"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gafac08a29a1e04b03a22028a8c70f78bd">snd_config_save</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___output.html#ga49729cc6454539495c1f5b6e95cd474a">snd_output_t</a> *out)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dumps the contents of a configuration node or tree.  <a href="group___config.html#gafac08a29a1e04b03a22028a8c70f78bd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gabafb8cac2181c4c1e34b99f54421d1c6">snd_config_search</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for a node in a configuration tree.  <a href="group___config.html#gabafb8cac2181c4c1e34b99f54421d1c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#af0f5cf4dde9399e3aadc53b4ab1d5059">snd_config_searcha</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for a node in a configuration tree, expanding aliases.  <a href="#af0f5cf4dde9399e3aadc53b4ab1d5059"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga7b2f5723e44a1b69f2a8555d469803d1">snd_config_searchv</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result,...)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for a node in a configuration tree.  <a href="group___config.html#ga7b2f5723e44a1b69f2a8555d469803d1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a11646339b1555e9a36a3da3327a0bd6a">snd_config_searchva</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result,...)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for a node in a configuration tree, expanding aliases.  <a href="#a11646339b1555e9a36a3da3327a0bd6a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a95836105fb9cdb3ff6fb674d3a297fdb">snd_config_search_alias</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *base, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for a node in a configuration tree, expanding aliases.  <a href="#a95836105fb9cdb3ff6fb674d3a297fdb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#ad6a8a7b3b67b8f755ab60073bec5fd48">snd_config_search_hooks</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for a node in a configuration tree and expands hooks.  <a href="#ad6a8a7b3b67b8f755ab60073bec5fd48"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a28f17e8e4133a46c4d366d1e234df974">snd_config_searcha_hooks</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for a node in a configuration tree, expanding aliases and hooks.  <a href="#a28f17e8e4133a46c4d366d1e234df974"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a017faa0f6768a9481989b4f38d4514b1">snd_config_searchva_hooks</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result,...)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for a node in a configuration tree, expanding aliases and hooks.  <a href="#a017faa0f6768a9481989b4f38d4514b1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a1f86a23e559213fb07097637feeac70f">snd_config_search_alias_hooks</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *base, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for a node in a configuration tree, using an alias and expanding hooks.  <a href="#a1f86a23e559213fb07097637feeac70f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a4008d77ad63047366463350b7726a5ec">snd_config_hook_load</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **dst, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *private_data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Loads and parses the given configurations files.  <a href="#a4008d77ad63047366463350b7726a5ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#ac64a8c73293ee35ed3f3958d47bdc721">snd_config_hook_load_for_all_cards</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **dst, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *private_data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Loads and parses the given configurations files for each installed sound card.  <a href="#ac64a8c73293ee35ed3f3958d47bdc721"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga06e80976c3c00fdc786f9b213e5c40f7">snd_config_update_r</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **_top, <a class="el" href="group___config.html#gab10b229189a94e3fcbac7f6ca5794cc0">snd_config_update_t</a> **_update, const char *cfgs)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates a configuration tree by rereading the configuration files (if needed).  <a href="group___config.html#ga06e80976c3c00fdc786f9b213e5c40f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c">snd_config_update</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration).">snd_config</a> by rereading the global configuration files (if needed).  <a href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga8f781ac635a0233fb2f58766a83d65cd">snd_config_update_free</a> (<a class="el" href="group___config.html#gab10b229189a94e3fcbac7f6ca5794cc0">snd_config_update_t</a> *update)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees a private update structure.  <a href="group___config.html#ga8f781ac635a0233fb2f58766a83d65cd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga51dbc0ff1d9b34d753706d09d768116b">snd_config_update_free_global</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees the global configuration tree in <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration).">snd_config</a>.  <a href="group___config.html#ga51dbc0ff1d9b34d753706d09d768116b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac8965466674c10b9a119d591ed484cef">snd_config_iterator_first</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an iterator pointing to a node's first child.  <a href="group___config.html#gac8965466674c10b9a119d591ed484cef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga10c27ddc83c78680d91a167dd2f0a3cb">snd_config_iterator_next</a> (const <a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> iterator)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an iterator pointing to the next sibling.  <a href="group___config.html#ga10c27ddc83c78680d91a167dd2f0a3cb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac08a30bc630481f69feb2170fed4afda">snd_config_iterator_end</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns an iterator that ends a node's children list.  <a href="group___config.html#gac08a30bc630481f69feb2170fed4afda"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaa91fe1d926d88041ed516a6a7293f606">snd_config_iterator_entry</a> (const <a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> iterator)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the configuration node handle pointed to by an iterator.  <a href="group___config.html#gaa91fe1d926d88041ed516a6a7293f606"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga30f30bd27d13fbb3527270b3fc9e1676">snd_config_copy</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **dst, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *src)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a copy of a configuration node.  <a href="group___config.html#ga30f30bd27d13fbb3527270b3fc9e1676"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga1a51645a07e204d4e814d890452da558">snd_config_evaluate</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *private_data, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluates a configuration node at runtime.  <a href="group___config.html#ga1a51645a07e204d4e814d890452da558"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga7759f41c3757ce72ee9bd118976071c2">snd_config_expand</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, const char *args, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *private_data, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Expands a configuration node, applying arguments and functions.  <a href="group___config.html#ga7759f41c3757ce72ee9bd118976071c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gad7c23084ee4052ad33d77db6278db46f">snd_config_search_definition</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *base, const char *name, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for a definition in a configuration tree, using aliases and expanding hooks and arguments.  <a href="group___config.html#gad7c23084ee4052ad33d77db6278db46f"></a><br/></td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831">snd_config</a> = NULL</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Configuration top-level node (the global configuration).  <a href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Configuration helper functions. </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Abramo Bagnara &lt;<a href="mailto:abramo@alsa-project.org">abramo@alsa-project.org</a>&gt; </dd>
<dd>
Jaroslav Kysela &lt;<a href="mailto:perex@perex.cz">perex@perex.cz</a>&gt; </dd></dl>
<dl class="date"><dt><b>Date:</b></dt><dd>2000-2001</dd></dl>
<p>Tree based, full nesting configuration functions.</p>
<p>See the <a class="el" href="conf.html">Configuration files</a> page for more details. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="aa7ae5d3b32a1ec3a9aa0456a5a2f9091"></a><!-- doxytag: member="conf.c::ALSA_CONFIG_PATH_DEFAULT" ref="aa7ae5d3b32a1ec3a9aa0456a5a2f9091" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ALSA_CONFIG_PATH_DEFAULT&nbsp;&nbsp;&nbsp;ALSA_CONFIG_DIR &quot;/alsa.conf&quot;</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The name of the default files used by <a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c" title="Updates snd_config by rereading the global configuration files (if needed).">snd_config_update</a>. </p>

</div>
</div>
<a class="anchor" id="a8b857484628b5b4cbd2ac60503d4f80e"></a><!-- doxytag: member="conf.c::ALSA_CONFIG_PATH_VAR" ref="a8b857484628b5b4cbd2ac60503d4f80e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ALSA_CONFIG_PATH_VAR&nbsp;&nbsp;&nbsp;&quot;ALSA_CONFIG_PATH&quot;</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The name of the environment variable containing the files list for <a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c" title="Updates snd_config by rereading the global configuration files (if needed).">snd_config_update</a>. </p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a281182963641e7cd5975f56faad6ff14"></a><!-- doxytag: member="conf.c::snd_config_get_type_ascii" ref="a281182963641e7cd5975f56faad6ff14" args="(const char *ascii, snd_config_type_t *type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_get_type_ascii </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>ascii</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> *&nbsp;</td>
          <td class="paramname"> <em>type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts an ASCII string to a configuration node type. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>ascii</em>&nbsp;</td><td>A string containing a configuration node type. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>type</em>&nbsp;</td><td>The node type corresponding to <em>ascii</em>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>This function recognizes at least the following node types: </p>
<dl>
<dt><a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887aaa9d6e02cd0eb42db96122c925c023e7">integer&lt;dt&gt;::SND_CONFIG_TYPE_INTEGER</a> </dt>
<dd></dd>
<dt><a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a710f962ebb93e3824ddee2d833f735a2">integer64&lt;dt&gt;::SND_CONFIG_TYPE_INTEGER64</a> </dt>
<dd></dd>
<dt><a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a0a938daae4006e204150082ab9c73508">real&lt;dt&gt;::SND_CONFIG_TYPE_REAL</a> </dt>
<dd></dd>
<dt><a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a99eed49f50d4f62a7fc0c95301918f49">string&lt;dt&gt;::SND_CONFIG_TYPE_STRING</a> </dt>
<dd></dd>
<dt><a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a82b5c1a9dbadaa4e36815fc1f01fc2f7">compound&lt;dt&gt;::SND_CONFIG_TYPE_COMPOUND</a> </dt>
<dd></dd>
</dl>
<dl class="user"><dt><b>Errors:</b></dt><dd><dl>
<dt>-EINVAL</dt>
<dd>Unknown note type in <em>type</em>. </dd>
</dl>
</dd></dl>

</div>
</div>
<a class="anchor" id="a4008d77ad63047366463350b7726a5ec"></a><!-- doxytag: member="conf.c::snd_config_hook_load" ref="a4008d77ad63047366463350b7726a5ec" args="(snd_config_t *root, snd_config_t *config, snd_config_t **dst, snd_config_t *private_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_hook_load </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>root</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **&nbsp;</td>
          <td class="paramname"> <em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>private_data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads and parses the given configurations files. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>root</em>&nbsp;</td><td>Handle to the root configuration node. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>config</em>&nbsp;</td><td>Handle to the configuration node for this hook. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>dst</em>&nbsp;</td><td>The function puts the handle to the configuration node loaded from the file(s) at the address specified by <em>dst</em>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>private_data</em>&nbsp;</td><td>Handle to the private data configuration node. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>See <a class="el" href="confhooks.html">Hooks in configuration files</a> for an example. </p>

</div>
</div>
<a class="anchor" id="ac64a8c73293ee35ed3f3958d47bdc721"></a><!-- doxytag: member="conf.c::snd_config_hook_load_for_all_cards" ref="ac64a8c73293ee35ed3f3958d47bdc721" args="(snd_config_t *root, snd_config_t *config, snd_config_t **dst, snd_config_t *private_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_hook_load_for_all_cards </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>root</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **&nbsp;</td>
          <td class="paramname"> <em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>private_data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads and parses the given configurations files for each installed sound card. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>root</em>&nbsp;</td><td>Handle to the root configuration node. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>config</em>&nbsp;</td><td>Handle to the configuration node for this hook. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>dst</em>&nbsp;</td><td>The function puts the handle to the configuration node loaded from the file(s) at the address specified by <em>dst</em>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>private_data</em>&nbsp;</td><td>Handle to the private data configuration node. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>This function works like <a class="el" href="conf_8c.html#a4008d77ad63047366463350b7726a5ec" title="Loads and parses the given configurations files.">snd_config_hook_load</a>, but the files are loaded once for each sound card. The driver name is available with the <code>private_string</code> function to customize the file name. </p>

</div>
</div>
<a class="anchor" id="ad4d69b003662e09e8206a7892e849d27"></a><!-- doxytag: member="conf.c::snd_config_remove" ref="ad4d69b003662e09e8206a7892e849d27" args="(snd_config_t *config)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_remove </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>config</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes a configuration node from its tree. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>config</em>&nbsp;</td><td>Handle to the configuration node to be removed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>This function makes <em>config</em> a top-level node, i.e., if <em>config</em> has a parent, then <em>config</em> is removed from the list of the parent's children.</p>
<p>This functions does <em>not</em> free the removed node.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___config.html#ga2a006b942faa3335a958a7df7bcea17e" title="Frees a configuration node.">snd_config_delete</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a95836105fb9cdb3ff6fb674d3a297fdb"></a><!-- doxytag: member="conf.c::snd_config_search_alias" ref="a95836105fb9cdb3ff6fb674d3a297fdb" args="(snd_config_t *config, const char *base, const char *key, snd_config_t **result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_search_alias </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Searches for a node in a configuration tree, expanding aliases. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>config</em>&nbsp;</td><td>Handle to the root of the configuration (sub)tree to search. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>base</em>&nbsp;</td><td>Search key base, or <code>NULL</code>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>key</em>&nbsp;</td><td>Search key suffix. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>result</em>&nbsp;</td><td>When <em>result</em> != <code>NULL</code>, the function puts the handle to the node found at the address specified by <em>result</em>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>This functions searches for a child node of <em>config</em>, allowing aliases, like <a class="el" href="conf_8c.html#af0f5cf4dde9399e3aadc53b4ab1d5059" title="Searches for a node in a configuration tree, expanding aliases.">snd_config_searcha</a>. However, alias definitions are searched below <em>config</em> (there is no separate <em>root</em> parameter), and <em>base</em> specifies a seach key that identifies a compound node that is used to search for an alias definitions that is not found directly below <em>config</em> and that does not contain a period. In other words, when <code>"id"</code> is not found in <em>config</em>, this function also tries <code>"base.id"</code>.</p>
<dl class="user"><dt><b>Errors:</b></dt><dd><dl>
<dt>-ENOENT</dt>
<dd>An id in <em>key</em> or an alias id does not exist. </dd>
<dt>-ENOENT</dt>
<dd><em>config</em> or one of its child nodes to be searched is not a compound or string node. </dd>
</dl>
</dd></dl>

</div>
</div>
<a class="anchor" id="a1f86a23e559213fb07097637feeac70f"></a><!-- doxytag: member="conf.c::snd_config_search_alias_hooks" ref="a1f86a23e559213fb07097637feeac70f" args="(snd_config_t *config, const char *base, const char *key, snd_config_t **result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_search_alias_hooks </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Searches for a node in a configuration tree, using an alias and expanding hooks. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>config</em>&nbsp;</td><td>Handle to the root of the configuration (sub)tree to search. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>base</em>&nbsp;</td><td>Search key base, or <code>NULL</code>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>key</em>&nbsp;</td><td>Search key suffix. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>result</em>&nbsp;</td><td>The function puts the handle to the node found at the address specified by <em>result</em>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>This functions searches for a child node of <em>config</em>, allowing aliases, like <a class="el" href="conf_8c.html#a95836105fb9cdb3ff6fb674d3a297fdb" title="Searches for a node in a configuration tree, expanding aliases.">snd_config_search_alias</a>, and expanding hooks, like <a class="el" href="conf_8c.html#ad6a8a7b3b67b8f755ab60073bec5fd48" title="Searches for a node in a configuration tree and expands hooks.">snd_config_search_hooks</a>.</p>
<dl class="user"><dt><b>Errors:</b></dt><dd><dl>
<dt>-ENOENT</dt>
<dd>An id in <em>key</em> or an alias id does not exist. </dd>
<dt>-ENOENT</dt>
<dd><em>config</em> or one of its child nodes to be searched is not a compound node. </dd>
</dl>
Additionally, any errors encountered when parsing the hook definitions or returned by the hook functions. </dd></dl>

</div>
</div>
<a class="anchor" id="ad6a8a7b3b67b8f755ab60073bec5fd48"></a><!-- doxytag: member="conf.c::snd_config_search_hooks" ref="ad6a8a7b3b67b8f755ab60073bec5fd48" args="(snd_config_t *config, const char *key, snd_config_t **result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_search_hooks </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Searches for a node in a configuration tree and expands hooks. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>config</em>&nbsp;</td><td>Handle to the root of the configuration (sub)tree to search. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>key</em>&nbsp;</td><td>Search key: one or more node keys, separated with dots. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>result</em>&nbsp;</td><td>The function puts the handle to the node found at the address specified by <em>result</em>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>This functions searches for a child node of <em>config</em> like <a class="el" href="group___config.html#gabafb8cac2181c4c1e34b99f54421d1c6" title="Searches for a node in a configuration tree.">snd_config_search</a>, but any compound nodes to be searched that contain hooks are modified by the respective hook functions.</p>
<dl class="user"><dt><b>Errors:</b></dt><dd><dl>
<dt>-ENOENT</dt>
<dd>An id in <em>key</em> does not exist. </dd>
<dt>-ENOENT</dt>
<dd><em>config</em> or one of its child nodes to be searched is not a compound node. </dd>
</dl>
Additionally, any errors encountered when parsing the hook definitions or returned by the hook functions. </dd></dl>

</div>
</div>
<a class="anchor" id="af0f5cf4dde9399e3aadc53b4ab1d5059"></a><!-- doxytag: member="conf.c::snd_config_searcha" ref="af0f5cf4dde9399e3aadc53b4ab1d5059" args="(snd_config_t *root, snd_config_t *config, const char *key, snd_config_t **result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_searcha </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>root</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Searches for a node in a configuration tree, expanding aliases. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>root</em>&nbsp;</td><td>Handle to the root configuration node containing alias definitions. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>config</em>&nbsp;</td><td>Handle to the root of the configuration (sub)tree to search. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>key</em>&nbsp;</td><td>Search key: one or more node keys, separated with dots. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>result</em>&nbsp;</td><td>When <em>result</em> != <code>NULL</code>, the function puts the handle to the node found at the address specified by <em>result</em>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>This functions searches for a child node of <em>config</em> like <a class="el" href="group___config.html#gabafb8cac2181c4c1e34b99f54421d1c6" title="Searches for a node in a configuration tree.">snd_config_search</a>. However, any compound node can also be identified by an alias, which is a string node whose value is taken as the id of a compound node below <em>root</em>.</p>
<p><em>root</em> must be a compound node. <em>root</em> and <em>config</em> may be the same node.</p>
<p>For example, with the following configuration, the call </p>
<div class="fragment"><pre class="fragment"> <a class="code" href="conf_8c.html#af0f5cf4dde9399e3aadc53b4ab1d5059" title="Searches for a node in a configuration tree, expanding aliases.">snd_config_searcha</a>(root, config, <span class="stringliteral">&quot;a.b.c.d&quot;</span>, &amp;result);
</pre></div><p> would return the node with id <code>d:</code> </p>
<div class="fragment"><pre class="fragment"> config {
     a {
         b bb
     }
 }
 root {
     bb {
         c cc
     }
     cc ccc
     ccc {
         d {
             x <span class="stringliteral">&quot;icks&quot;</span>
         }
     }
 }
</pre></div><dl class="user"><dt><b>Errors:</b></dt><dd><dl>
<dt>-ENOENT</dt>
<dd>An id in <em>key</em> or an alias id does not exist. </dd>
<dt>-ENOENT</dt>
<dd><em>config</em> or one of its child nodes to be searched is not a compound or string node. </dd>
</dl>
</dd></dl>

</div>
</div>
<a class="anchor" id="a28f17e8e4133a46c4d366d1e234df974"></a><!-- doxytag: member="conf.c::snd_config_searcha_hooks" ref="a28f17e8e4133a46c4d366d1e234df974" args="(snd_config_t *root, snd_config_t *config, const char *key, snd_config_t **result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_searcha_hooks </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>root</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Searches for a node in a configuration tree, expanding aliases and hooks. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>root</em>&nbsp;</td><td>Handle to the root configuration node containing alias definitions. </td></tr>
    <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>config</em>&nbsp;</td><td>Handle to the root of the configuration (sub)tree to search. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>key</em>&nbsp;</td><td>Search key: one or more node keys, separated with dots. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>result</em>&nbsp;</td><td>The function puts the handle to the node found at the address specified by <em>result</em>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>This function searches for a child node of <em>config</em>, allowing aliases, like <a class="el" href="conf_8c.html#af0f5cf4dde9399e3aadc53b4ab1d5059" title="Searches for a node in a configuration tree, expanding aliases.">snd_config_searcha</a>, and expanding hooks, like <a class="el" href="conf_8c.html#ad6a8a7b3b67b8f755ab60073bec5fd48" title="Searches for a node in a configuration tree and expands hooks.">snd_config_search_hooks</a>.</p>
<dl class="user"><dt><b>Errors:</b></dt><dd><dl>
<dt>-ENOENT</dt>
<dd>An id in <em>key</em> or an alias id does not exist. </dd>
<dt>-ENOENT</dt>
<dd><em>config</em> or one of its child nodes to be searched is not a compound node. </dd>
</dl>
Additionally, any errors encountered when parsing the hook definitions or returned by the hook functions. </dd></dl>

</div>
</div>
<a class="anchor" id="a11646339b1555e9a36a3da3327a0bd6a"></a><!-- doxytag: member="conf.c::snd_config_searchva" ref="a11646339b1555e9a36a3da3327a0bd6a" args="(snd_config_t *root, snd_config_t *config, snd_config_t **result,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_searchva </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>root</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **&nbsp;</td>
          <td class="paramname"> <em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Searches for a node in a configuration tree, expanding aliases. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>root</em>&nbsp;</td><td>Handle to the root configuration node containing alias definitions. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>config</em>&nbsp;</td><td>Handle to the root of the configuration (sub)tree to search. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>result</em>&nbsp;</td><td>When <em>result</em> != <code>NULL</code>, the function puts the handle to the node found at the address specified by <em>result</em>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>...</em>&nbsp;</td><td>One or more concatenated dot separated search keys, terminated with <code>NULL</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>This function searches for a child node of <em>config</em>, allowing aliases, like <a class="el" href="conf_8c.html#af0f5cf4dde9399e3aadc53b4ab1d5059" title="Searches for a node in a configuration tree, expanding aliases.">snd_config_searcha</a>, but the search key is the concatenation of all passed seach key strings, like with <a class="el" href="group___config.html#ga7b2f5723e44a1b69f2a8555d469803d1" title="Searches for a node in a configuration tree.">snd_config_searchv</a>.</p>
<dl class="user"><dt><b>Errors:</b></dt><dd><dl>
<dt>-ENOENT</dt>
<dd>An id in a search key does not exist. </dd>
<dt>-ENOENT</dt>
<dd><em>config</em> or one of its child nodes to be searched is not a compound or string node. </dd>
</dl>
</dd></dl>

</div>
</div>
<a class="anchor" id="a017faa0f6768a9481989b4f38d4514b1"></a><!-- doxytag: member="conf.c::snd_config_searchva_hooks" ref="a017faa0f6768a9481989b4f38d4514b1" args="(snd_config_t *root, snd_config_t *config, snd_config_t **result,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_searchva_hooks </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>root</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **&nbsp;</td>
          <td class="paramname"> <em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Searches for a node in a configuration tree, expanding aliases and hooks. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>root</em>&nbsp;</td><td>Handle to the root configuration node containing alias definitions. </td></tr>
    <tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>config</em>&nbsp;</td><td>Handle to the root of the configuration (sub)tree to search. </td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>result</em>&nbsp;</td><td>The function puts the handle to the node found at the address specified by <em>result</em>. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>...</em>&nbsp;</td><td>One or more concatenated dot separated search keys, terminated with <code>NULL</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>This function searches for a child node of <em>config</em>, allowing aliases and expanding hooks like <a class="el" href="conf_8c.html#a28f17e8e4133a46c4d366d1e234df974" title="Searches for a node in a configuration tree, expanding aliases and hooks.">snd_config_searcha_hooks</a>, but the search key is the concatenation of all passed seach key strings, like with <a class="el" href="group___config.html#ga7b2f5723e44a1b69f2a8555d469803d1" title="Searches for a node in a configuration tree.">snd_config_searchv</a>.</p>
<dl class="user"><dt><b>Errors:</b></dt><dd><dl>
<dt>-ENOENT</dt>
<dd>An id in <em>key</em> or an alias id does not exist. </dd>
<dt>-ENOENT</dt>
<dd><em>config</em> or one of its child nodes to be searched is not a compound node. </dd>
</dl>
Additionally, any errors encountered when parsing the hook definitions or returned by the hook functions. </dd></dl>

</div>
</div>
<a class="anchor" id="a0c4acd2de7999ad6e477d398662485c2"></a><!-- doxytag: member="conf.c::snd_config_substitute" ref="a0c4acd2de7999ad6e477d398662485c2" args="(snd_config_t *dst, snd_config_t *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_config_substitute </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>src</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Substitutes one configuration node to another. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dst</em>&nbsp;</td><td>Handle to the destination node. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>Handle to the source node. Must not be the same as <em>dst</em>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl>
<p>If both nodes are compounds, the source compound node members are appended to the destination compound node.</p>
<p>If the destination node is a compound and the source node is an ordinary type, the compound members are deleted (including their contents).</p>
<p>Otherwise, the source node's value replaces the destination node's value.</p>
<p>In any case, a successful call to this function frees the source node. </p>

</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Nov 20 07:42:23 2010 for ALSA project - the C library reference by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>