Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > updates > by-pkgid > 18785641029f14f23cccc82925607ace > files > 15

libalsa2-docs-0.9.0-0.14rc7.1mdk.ppc.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>conf.c File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.18 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; <a class="qindex" href="examples.html">Examples</a> &nbsp; </center>
<hr><h1>conf.c File Reference</h1>Configuration helper functions. 
<a href="#_details">More...</a>
<p>
<table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><b>_snd_config_update</b></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><b>finfo</b></td></tr>
<tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a0">ALSA_CONFIG_PATH_VAR</a>&nbsp;&nbsp;&nbsp;"ALSA_CONFIG_PATH"</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a1">ALSA_CONFIG_PATH_DEFAULT</a>&nbsp;&nbsp;&nbsp;DATADIR "/alsa/alsa.conf"</td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a5">snd_config_substitute</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *dst, <a class="el" href="group___config.html#a1">snd_config_t</a> *src)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Substitutes one configuration node to another.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a6">snd_config_get_type_ascii</a> (const char *ascii, <a class="el" href="group___config.html#a0">snd_config_type_t</a> *type)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Converts an ASCII string to a configuration node type.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group___config.html#a0">snd_config_type_t</a>&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a7">snd_config_get_type</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *config)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the type of a configuration node.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a8">snd_config_get_id</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char **id)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the id of a configuration node.</em> <a href="#a8"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a9">snd_config_set_id</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char *id)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets the id of a configuration node.</em> <a href="#a9"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a10">snd_config_top</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a top level configuration node.</em> <a href="#a10"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a12">snd_config_load</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, <a class="el" href="group___input.html#a0">snd_input_t</a> *in)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Loads a configuration tree.</em> <a href="#a12"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a13">snd_config_load_override</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, <a class="el" href="group___input.html#a0">snd_input_t</a> *in)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Loads a configuration tree and overrides existing configuration nodes.</em> <a href="#a13"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a14">snd_config_add</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *father, <a class="el" href="group___config.html#a1">snd_config_t</a> *leaf)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Adds a child to a compound configuration node.</em> <a href="#a14"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a15">snd_config_remove</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Removes a configuration node from its tree.</em> <a href="#a15"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a16">snd_config_delete</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Deletes a configuration node (freeing all its related resources).</em> <a href="#a16"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a17">snd_config_delete_compound_members</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *config)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Deletes the children of a compound configuration node (freeing all its related resources).</em> <a href="#a17"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a18">snd_config_make</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id, <a class="el" href="group___config.html#a0">snd_config_type_t</a> type)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a configuration node.</em> <a href="#a18"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a19">snd_config_make_integer</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates an integer configuration node.</em> <a href="#a19"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a20">snd_config_make_integer64</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates an integer64 configuration node.</em> <a href="#a20"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a21">snd_config_make_real</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a real configuration node.</em> <a href="#a21"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a22">snd_config_make_string</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a string configuration node.</em> <a href="#a22"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a23">snd_config_make_pointer</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a pointer configuration node.</em> <a href="#a23"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a24">snd_config_make_compound</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id, int join)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates an empty compound configuration node.</em> <a href="#a24"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a25">snd_config_imake_integer</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id, const long value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates an integer configuration node with the given initial value.</em> <a href="#a25"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a26">snd_config_imake_integer64</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id, const long long value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates an integer configuration node with the given initial value.</em> <a href="#a26"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a27">snd_config_imake_real</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id, const double value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a real configuration node with the given initial value.</em> <a href="#a27"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a28">snd_config_imake_string</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id, const char *value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a string configuration node with the given initial value.</em> <a href="#a28"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a29">snd_config_imake_pointer</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **config, const char *id, const void *value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a pointer configuration node with the given initial value.</em> <a href="#a29"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a30">snd_config_set_integer</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, long value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Changes the value of an integer configuration node.</em> <a href="#a30"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a31">snd_config_set_integer64</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, long long value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Changes the value of an integer64 configuration node.</em> <a href="#a31"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a32">snd_config_set_real</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, double value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Changes the value of a real configuration node.</em> <a href="#a32"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a33">snd_config_set_string</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char *value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Changes the value of a string configuration node.</em> <a href="#a33"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a34">snd_config_set_pointer</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, const void *value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Changes the value of a pointer configuration node.</em> <a href="#a34"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a35">snd_config_set_ascii</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char *ascii)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Changes the value of a configuration node.</em> <a href="#a35"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a36">snd_config_get_integer</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *config, long *ptr)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the value of an integer configuration node.</em> <a href="#a36"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a37">snd_config_get_integer64</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *config, long long *ptr)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the value of an integer64 configuration node.</em> <a href="#a37"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a38">snd_config_get_real</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *config, double *ptr)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the value of a real configuration node.</em> <a href="#a38"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a39">snd_config_get_ireal</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *config, double *ptr)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the value of a real or integer configuration node.</em> <a href="#a39"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a40">snd_config_get_string</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char **ptr)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the value of a string configuration node.</em> <a href="#a40"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a41">snd_config_get_pointer</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *config, const void **ptr)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the value of a pointer configuration node.</em> <a href="#a41"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a42">snd_config_get_ascii</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *config, char **ascii)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the value of a configuration node as a string.</em> <a href="#a42"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a43">snd_config_test_id</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char *id)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Compares the id of a configuration node to a given string.</em> <a href="#a43"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a44">snd_config_save</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, <a class="el" href="group___output.html#a0">snd_output_t</a> *out)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Dumps the contents of a configuration node or tree.</em> <a href="#a44"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a45">snd_config_search</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#a1">snd_config_t</a> **result)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Searches for a node in a configuration tree.</em> <a href="#a45"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a46">snd_config_searcha</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *root, <a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#a1">snd_config_t</a> **result)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Searches for a node in a configuration tree, expanding aliases.</em> <a href="#a46"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a47">snd_config_searchv</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, <a class="el" href="group___config.html#a1">snd_config_t</a> **result,...)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Searches for a node in a configuration tree.</em> <a href="#a47"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a48">snd_config_searchva</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *root, <a class="el" href="group___config.html#a1">snd_config_t</a> *config, <a class="el" href="group___config.html#a1">snd_config_t</a> **result,...)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Searches for a node in a configuration tree, expanding aliases.</em> <a href="#a48"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a49">snd_config_search_alias</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char *base, const char *key, <a class="el" href="group___config.html#a1">snd_config_t</a> **result)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Searches for a node in a configuration tree, using an alias.</em> <a href="#a49"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a50">snd_config_search_hooks</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#a1">snd_config_t</a> **result)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Searches for a node in a configuration tree and expands hooks.</em> <a href="#a50"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a51">snd_config_searcha_hooks</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *root, <a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#a1">snd_config_t</a> **result)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Searches for a node in a configuration tree, expanding aliases and hooks.</em> <a href="#a51"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a52">snd_config_searchva_hooks</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *root, <a class="el" href="group___config.html#a1">snd_config_t</a> *config, <a class="el" href="group___config.html#a1">snd_config_t</a> **result,...)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Searches for a node in a configuration tree, expanding aliases and hooks.</em> <a href="#a52"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a53">snd_config_search_alias_hooks</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char *base, const char *key, <a class="el" href="group___config.html#a1">snd_config_t</a> **result)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Searches for a node in a configuration tree, using an alias and expanding hooks.</em> <a href="#a53"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a56">snd_config_hook_load</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *root, <a class="el" href="group___config.html#a1">snd_config_t</a> *config, <a class="el" href="group___config.html#a1">snd_config_t</a> **dst, <a class="el" href="group___config.html#a1">snd_config_t</a> *private_data)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Loads and parses the given configurations files.</em> <a href="#a56"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a57">snd_config_hook_load_for_all_cards</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *root, <a class="el" href="group___config.html#a1">snd_config_t</a> *config, <a class="el" href="group___config.html#a1">snd_config_t</a> **dst, <a class="el" href="group___config.html#a1">snd_config_t</a> *private_data ATTRIBUTE_UNUSED)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Loads and parses the given configurations files for each installed sound card.</em> <a href="#a57"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a58">snd_config_update_r</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **_top, <a class="el" href="group___config.html#a3">snd_config_update_t</a> **_update, const char *cfgs)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Updates a configuration tree by rereading the configuration files (if needed).</em> <a href="#a58"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a59">snd_config_update</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Updates <a class="el" href="conf_8c.html#a2">snd_config</a> by rereading the global configuration files (if needed).</em> <a href="#a59"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a60">snd_config_update_free</a> (<a class="el" href="group___config.html#a3">snd_config_update_t</a> *update)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Frees a private update structure.</em> <a href="#a60"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a61">snd_config_update_free_global</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Frees the global configuration tree in <a class="el" href="conf_8c.html#a2">snd_config</a>.</em> <a href="#a61"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group___config.html#a2">snd_config_iterator_t</a>&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a62">snd_config_iterator_first</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *node)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns an iterator pointing to the first child of a compound configuration node.</em> <a href="#a62"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group___config.html#a2">snd_config_iterator_t</a>&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a63">snd_config_iterator_next</a> (const <a class="el" href="group___config.html#a2">snd_config_iterator_t</a> iterator)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns an iterator pointing to the next sibling.</em> <a href="#a63"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group___config.html#a2">snd_config_iterator_t</a>&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a64">snd_config_iterator_end</a> (const <a class="el" href="group___config.html#a1">snd_config_t</a> *node)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns an iterator pointing past the last child of a compound configuration node.</em> <a href="#a64"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a65">snd_config_iterator_entry</a> (const <a class="el" href="group___config.html#a2">snd_config_iterator_t</a> iterator)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the configuration node handle pointed to by an iterator.</em> <a href="#a65"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a68">snd_config_copy</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> **dst, <a class="el" href="group___config.html#a1">snd_config_t</a> *src)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a copy of a configuration node.</em> <a href="#a68"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a71">snd_config_evaluate</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, <a class="el" href="group___config.html#a1">snd_config_t</a> *root, <a class="el" href="group___config.html#a1">snd_config_t</a> *private_data, <a class="el" href="group___config.html#a1">snd_config_t</a> **result)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Evaluates a configuration node at runtime.</em> <a href="#a71"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a79">snd_config_expand</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, <a class="el" href="group___config.html#a1">snd_config_t</a> *root, const char *args, <a class="el" href="group___config.html#a1">snd_config_t</a> *private_data, <a class="el" href="group___config.html#a1">snd_config_t</a> **result)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expands a configuration node applying arguments and functions.</em> <a href="#a79"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a80">snd_config_search_definition</a> (<a class="el" href="group___config.html#a1">snd_config_t</a> *config, const char *base, const char *name, <a class="el" href="group___config.html#a1">snd_config_t</a> **result)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Searches for a definition in a configuration tree, using aliases and expanding hooks and arguments.</em> <a href="#a80"></a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Variables</h2></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td><td valign=bottom><a class="el" href="conf_8c.html#a2">snd_config</a> = NULL</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Configuration helper functions.
<p>

<p>
<dl compact><dt><b>Author: </b></dt><dd>
Abramo Bagnara &lt;<a href="mailto:abramo@alsa-project.org">abramo@alsa-project.org</a>&gt; , Jaroslav Kysela &lt;<a href="mailto:perex@suse.cz">perex@suse.cz</a>&gt; </dl><dl compact><dt><b>Date: </b></dt><dd>
2000-2001</dl>Tree based, full nesting configuration functions.
<p>
See the <a href="conf.html#conf">Configuration files</a> page for more details.
<p>
<hr><h2>Define Documentation</h2>
<a name="a1" doxytag="conf.c::ALSA_CONFIG_PATH_DEFAULT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define ALSA_CONFIG_PATH_DEFAULT&nbsp;&nbsp;&nbsp;DATADIR "/alsa/alsa.conf"
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The name of the default files used by <a class="el" href="conf_8c.html#a59">snd_config_update</a>.     </td>
  </tr>
</table>
<a name="a0" doxytag="conf.c::ALSA_CONFIG_PATH_VAR"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define ALSA_CONFIG_PATH_VAR&nbsp;&nbsp;&nbsp;"ALSA_CONFIG_PATH"
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The name of the environment variable containing the files list for <a class="el" href="conf_8c.html#a59">snd_config_update</a>.     </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a name="a14" doxytag="conf.c::snd_config_add"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_add </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>father</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>leaf</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Adds a child to a compound configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>father</em>&nbsp;</td><td>
Handle to the compound configuration node. </td></tr>
<tr><td valign=top><em>leaf</em>&nbsp;</td><td>
Handle to the configuration node to be added to <code>father</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a68" doxytag="conf.c::snd_config_copy"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_copy </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dst</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>src</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a copy of a configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>dst</em>&nbsp;</td><td>
The function puts the handle to the new configuration node at the address specified by <code>dst</code>. </td></tr>
<tr><td valign=top><em>src</em>&nbsp;</td><td>
Handle to the source configuration node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A non-negative value if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a16" doxytag="conf.c::snd_config_delete"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_delete </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>config</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Deletes a configuration node (freeing all its related resources).
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node to be deleted. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>If the node is a child node, it is removed from the tree before being deleted. If the node is a compound node, all children are deleted recursively.     </td>
  </tr>
</table>
<a name="a17" doxytag="conf.c::snd_config_delete_compound_members"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_delete_compound_members </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>config</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Deletes the children of a compound configuration node (freeing all its related resources).
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the compound configuration node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>Any compound nodes among the children of <code>config</code> are deleted recursively.     </td>
  </tr>
</table>
<a name="a71" doxytag="conf.c::snd_config_evaluate"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_evaluate </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>root</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>private_data</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Evaluates a configuration node at runtime.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the source configuration node. </td></tr>
<tr><td valign=top><em>root</em>&nbsp;</td><td>
Handle to the root of the source configuration. </td></tr>
<tr><td valign=top><em>private_data</em>&nbsp;</td><td>
Handle to the private data node for runtime evaluation. </td></tr>
<tr><td valign=top><em>result</em>&nbsp;</td><td>
The function puts the handle to the result node at the address specified by <code>result</code>. <code>result</code> is <code>NULL</code> for in-place evaluation. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A non-negative value if successful, otherwise a negative error code. </dl><dl compact><dt><b>Note: </b></dt><dd>
Only in-place evaluation is currently implemented. </dl>    </td>
  </tr>
</table>
<a name="a79" doxytag="conf.c::snd_config_expand"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_expand </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>root</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>args</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>private_data</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Expands a configuration node applying arguments and functions.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>root</em>&nbsp;</td><td>
Handle to the root configuration node. </td></tr>
<tr><td valign=top><em>args</em>&nbsp;</td><td>
Arguments string (optional). </td></tr>
<tr><td valign=top><em>private_data</em>&nbsp;</td><td>
Handle to the private data node for functions. </td></tr>
<tr><td valign=top><em>result</em>&nbsp;</td><td>
The function puts the handle to the result configuration node at the address specified by <code>result</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A non-negative value if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a42" doxytag="conf.c::snd_config_get_ascii"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_get_ascii </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ascii</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the value of a configuration node as a string.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>ascii</em>&nbsp;</td><td>
The function puts the pointer to the returned string at the address specified by <code>ascii</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>This function dynamically allocates the returned string. The application is responsible for deleting it with <code>free()</code> when it is no longer used.     </td>
  </tr>
</table>
<a name="a8" doxytag="conf.c::snd_config_get_id"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_get_id </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the id of a configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The function puts the pointer to the id string at the address specified by <code>id</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>The returned string is owned by the configuration node; the application must not modify or delete it.     </td>
  </tr>
</table>
<a name="a36" doxytag="conf.c::snd_config_get_integer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_get_integer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>long *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ptr</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the value of an integer configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
The function puts the node's value at the address specified by <code>ptr</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a37" doxytag="conf.c::snd_config_get_integer64"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_get_integer64 </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>long long *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ptr</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the value of an integer64 configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
The function puts the node's value at the address specified by <code>ptr</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a39" doxytag="conf.c::snd_config_get_ireal"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_get_ireal </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>double *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ptr</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the value of a real or integer configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
The function puts the node's value at the address specified by <code>ptr</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>If the node's type is integer or integer64, the value is converted to the <code>double</code> type on the fly.     </td>
  </tr>
</table>
<a name="a41" doxytag="conf.c::snd_config_get_pointer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_get_pointer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const void **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ptr</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the value of a pointer configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
The function puts the node's value at the address specified by <code>ptr</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a38" doxytag="conf.c::snd_config_get_real"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_get_real </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>double *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ptr</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the value of a real configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
The function puts the node's value at the address specified by <code>ptr</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a40" doxytag="conf.c::snd_config_get_string"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_get_string </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ptr</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the value of a string configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>ptr</em>&nbsp;</td><td>
The function puts the node's value at the address specified by <code>ptr</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>The returned string is owned by the configuration node; the application must not modify or delete it.     </td>
  </tr>
</table>
<a name="a7" doxytag="conf.c::snd_config_get_type"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group___config.html#a0">snd_config_type_t</a> snd_config_get_type </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>config</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the type of a configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
The node's type. </dl>    </td>
  </tr>
</table>
<a name="a6" doxytag="conf.c::snd_config_get_type_ascii"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_get_type_ascii </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ascii</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a0">snd_config_type_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>type</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Converts an ASCII string to a configuration node type.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>ascii</em>&nbsp;</td><td>
A string containing a configuration node type. </td></tr>
<tr><td valign=top><em>type</em>&nbsp;</td><td>
The function puts the node type at the address specified by <code>type</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successgul, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a56" doxytag="conf.c::snd_config_hook_load"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_hook_load </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>root</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dst</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>private_data</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Loads and parses the given configurations files.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>root</em>&nbsp;</td><td>
Handle to the root configuration node. </td></tr>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node for this hook. </td></tr>
<tr><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 <code>dst</code>. </td></tr>
<tr><td valign=top><em>private_data</em>&nbsp;</td><td>
Handle to the private data configuration node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a57" doxytag="conf.c::snd_config_hook_load_for_all_cards"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_hook_load_for_all_cards </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>root</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dst</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *private_data&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ATTRIBUTE_UNUSED</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Loads and parses the given configurations files for each installed sound card.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>root</em>&nbsp;</td><td>
Handle to the root configuration node. </td></tr>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node for this hook. </td></tr>
<tr><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 <code>dst</code>. </td></tr>
<tr><td valign=top><em>private_data</em>&nbsp;</td><td>
Handle to the private data configuration node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a25" doxytag="conf.c::snd_config_imake_integer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_imake_integer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const long&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates an integer configuration node with the given initial value.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
The initial value of the new node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a26" doxytag="conf.c::snd_config_imake_integer64"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_imake_integer64 </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const long long&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates an integer configuration node with the given initial value.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
The initial value of the new node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a29" doxytag="conf.c::snd_config_imake_pointer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_imake_pointer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const void *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a pointer configuration node with the given initial value.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
The initial value of the new node. May be <code>NULL</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a27" doxytag="conf.c::snd_config_imake_real"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_imake_real </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const double&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a real configuration node with the given initial value.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
The initial value of the new node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a28" doxytag="conf.c::snd_config_imake_string"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_imake_string </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a string configuration node with the given initial value.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
The initial value of the new node. May be <code>NULL</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>This function creates the new node with its own copy of the passed string.     </td>
  </tr>
</table>
<a name="a64" doxytag="conf.c::snd_config_iterator_end"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group___config.html#a2">snd_config_iterator_t</a> snd_config_iterator_end </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>node</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns an iterator pointing past the last child of a compound configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>node</em>&nbsp;</td><td>
Handle to the compound configuration node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
An iterator pointing past the last child of <code>node</code>. </dl>    </td>
  </tr>
</table>
<a name="a65" doxytag="conf.c::snd_config_iterator_entry"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group___config.html#a1">snd_config_t</a>* snd_config_iterator_entry </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a2">snd_config_iterator_t</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>iterator</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the configuration node handle pointed to by an iterator.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>iterator</em>&nbsp;</td><td>
A configuration node iterator. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
The configuration node handle pointed to by <code>iterator</code>. </dl>    </td>
  </tr>
</table>
<a name="a62" doxytag="conf.c::snd_config_iterator_first"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group___config.html#a2">snd_config_iterator_t</a> snd_config_iterator_first </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>node</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns an iterator pointing to the first child of a compound configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>node</em>&nbsp;</td><td>
Handle to the compound configuration node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
An iterator pointing to the first child. </dl>    </td>
  </tr>
</table>
<a name="a63" doxytag="conf.c::snd_config_iterator_next"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group___config.html#a2">snd_config_iterator_t</a> snd_config_iterator_next </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a2">snd_config_iterator_t</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>iterator</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns an iterator pointing to the next sibling.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>iterator</em>&nbsp;</td><td>
An iterator pointing to a child configuration node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
An iterator pointing to the next sibling of <code>iterator</code>. If <code>iterator</code> is the last sibling, the returned value is the same as the result of calling <a class="el" href="conf_8c.html#a64">snd_config_iterator_end</a> on the father of the nodes. </dl>    </td>
  </tr>
</table>
<a name="a12" doxytag="conf.c::snd_config_load"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_load </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___input.html#a0">snd_input_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>in</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Loads a configuration tree.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to a top level configuration node. </td></tr>
<tr><td valign=top><em>in</em>&nbsp;</td><td>
Input handle to read the configuration from. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a13" doxytag="conf.c::snd_config_load_override"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_load_override </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___input.html#a0">snd_input_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>in</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Loads a configuration tree and overrides existing configuration nodes.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to a top level configuration node. </td></tr>
<tr><td valign=top><em>in</em>&nbsp;</td><td>
Input handle to read the configuration from. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a18" doxytag="conf.c::snd_config_make"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_make </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a0">snd_config_type_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>type</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
<tr><td valign=top><em>type</em>&nbsp;</td><td>
The type of the new node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a24" doxytag="conf.c::snd_config_make_compound"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_make_compound </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>join</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates an empty compound configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
<tr><td valign=top><em>join</em>&nbsp;</td><td>
Join flag. This is checked in <a class="el" href="conf_8c.html#a44">snd_config_save</a> to change look. (Huh?) </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a19" doxytag="conf.c::snd_config_make_integer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_make_integer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates an integer configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>The value of the new node is 0.     </td>
  </tr>
</table>
<a name="a20" doxytag="conf.c::snd_config_make_integer64"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_make_integer64 </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates an integer64 configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>The value of the new node is 0.     </td>
  </tr>
</table>
<a name="a23" doxytag="conf.c::snd_config_make_pointer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_make_pointer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a pointer configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>The value of the new node is <code>NULL</code>.     </td>
  </tr>
</table>
<a name="a21" doxytag="conf.c::snd_config_make_real"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_make_real </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a real configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>The value of the new node is 0.0.     </td>
  </tr>
</table>
<a name="a22" doxytag="conf.c::snd_config_make_string"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_make_string </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a string configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The id of the new node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>The value of the new node is <code>NULL</code>.     </td>
  </tr>
</table>
<a name="a15" doxytag="conf.c::snd_config_remove"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_remove </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>config</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Removes a configuration node from its tree.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node to be removed. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>This functions does <em>not</em> delete the removed node.     </td>
  </tr>
</table>
<a name="a44" doxytag="conf.c::snd_config_save"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_save </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___output.html#a0">snd_output_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>out</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Dumps the contents of a configuration node or tree.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the (root) configuration node. </td></tr>
<tr><td valign=top><em>out</em>&nbsp;</td><td>
Output handle. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a45" doxytag="conf.c::snd_config_search"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_search </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>key</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Searches for a node in a configuration tree.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><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><em>key</em>&nbsp;</td><td>
Search key: one or more node keys, separated with dots. </td></tr>
<tr><td valign=top><em>result</em>&nbsp;</td><td>
The function puts the handle to the node found at the address specified by <code>result</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a49" doxytag="conf.c::snd_config_search_alias"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_search_alias </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>base</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>key</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Searches for a node in a configuration tree, using an alias.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><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><em>base</em>&nbsp;</td><td>
Search key base, or <code>NULL</code>. </td></tr>
<tr><td valign=top><em>key</em>&nbsp;</td><td>
Search key suffix. </td></tr>
<tr><td valign=top><em>result</em>&nbsp;</td><td>
The function puts the handle to the node found at the address specified by <code>result</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>First <code>key</code> is tried, then, if nothing is found, <code>base.key</code> is tried. If the value found is a string, this is recursively tried in the same way.     </td>
  </tr>
</table>
<a name="a53" doxytag="conf.c::snd_config_search_alias_hooks"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_search_alias_hooks </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>base</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>key</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Searches for a node in a configuration tree, using an alias and expanding hooks.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><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><em>base</em>&nbsp;</td><td>
Search key base, or <code>NULL</code>. </td></tr>
<tr><td valign=top><em>key</em>&nbsp;</td><td>
Search key suffix. </td></tr>
<tr><td valign=top><em>result</em>&nbsp;</td><td>
The function puts the handle to the node found at the address specified by <code>result</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>First <code>key</code> is tried, then, if nothing is found, <code>base.key</code> is tried. If the value found is a string, this is recursively tried in the same way.     </td>
  </tr>
</table>
<a name="a80" doxytag="conf.c::snd_config_search_definition"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_search_definition </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>base</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>name</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Searches for a definition in a configuration tree, using aliases and expanding hooks and arguments.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration (sub)tree to search. </td></tr>
<tr><td valign=top><em>base</em>&nbsp;</td><td>
Implicit key base, or <code>NULL</code> for none. </td></tr>
<tr><td valign=top><em>key</em>&nbsp;</td><td>
Key suffix. </td></tr>
<tr><td valign=top><em>result</em>&nbsp;</td><td>
The function puts the handle to the expanded found node at the address specified by <code>result</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>First the key is tried, then, if nothing is found, base.key is tried. If the value found is a string, this is recursively tried in the same way.
<p>
If <code>key</code> contains a dot (.), the implicit base is ignored and the key starts from the root given by <code>config</code>.     </td>
  </tr>
</table>
<a name="a50" doxytag="conf.c::snd_config_search_hooks"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_search_hooks </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>key</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Searches for a node in a configuration tree and expands hooks.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><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><em>key</em>&nbsp;</td><td>
Search key: one or more node keys, separated with dots. </td></tr>
<tr><td valign=top><em>result</em>&nbsp;</td><td>
The function puts the handle to the node found at the address specified by <code>result</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a46" doxytag="conf.c::snd_config_searcha"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_searcha </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>root</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>key</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Searches for a node in a configuration tree, expanding aliases.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>root</em>&nbsp;</td><td>
Handle to the root configuration node containing alias definitions. </td></tr>
<tr><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><em>key</em>&nbsp;</td><td>
Search key: one or more node keys, separated with dots. </td></tr>
<tr><td valign=top><em>result</em>&nbsp;</td><td>
The function puts the handle to the node found at the address specified by <code>result</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a51" doxytag="conf.c::snd_config_searcha_hooks"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_searcha_hooks </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>root</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>key</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Searches for a node in a configuration tree, expanding aliases and hooks.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>root</em>&nbsp;</td><td>
Handle to the root configuration node containing alias definitions. </td></tr>
<tr><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><em>key</em>&nbsp;</td><td>
Search key: one or more node keys, separated with dots. </td></tr>
<tr><td valign=top><em>result</em>&nbsp;</td><td>
The function puts the handle to the node found at the address specified by <code>result</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a47" doxytag="conf.c::snd_config_searchv"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_searchv </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>...&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Searches for a node in a configuration tree.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><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><em>result</em>&nbsp;</td><td>
The function puts the handle to the node found at the address specified by <code>result</code>. </td></tr>
<tr><td valign=top><em>...</em>&nbsp;</td><td>
One or more concatenated dot separated search keys, terminated with <code>NULL</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a48" doxytag="conf.c::snd_config_searchva"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_searchva </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>root</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>...&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Searches for a node in a configuration tree, expanding aliases.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>root</em>&nbsp;</td><td>
Handle to the root configuration node containing alias definitions. </td></tr>
<tr><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><em>result</em>&nbsp;</td><td>
The function puts the handle to the node found at the address specified by <code>result</code>. </td></tr>
<tr><td valign=top><em>...</em>&nbsp;</td><td>
One or more concatenated dot separated search keys, terminated with <code>NULL</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a52" doxytag="conf.c::snd_config_searchva_hooks"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_searchva_hooks </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>root</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>...&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Searches for a node in a configuration tree, expanding aliases and hooks.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>root</em>&nbsp;</td><td>
Handle to the root configuration node containing alias definitions. </td></tr>
<tr><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><em>result</em>&nbsp;</td><td>
The function puts the handle to the node found at the address specified by <code>result</code>. </td></tr>
<tr><td valign=top><em>...</em>&nbsp;</td><td>
One or more concatenated dot separated search keys, terminated with <code>NULL</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a35" doxytag="conf.c::snd_config_set_ascii"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_set_ascii </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ascii</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Changes the value of a configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>ascii</em>&nbsp;</td><td>
The new value for the node as an ASCII string. <code>ascii</code> must not be <code>NULL</code>, not even for a string node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>The node must have a simple type, and the new value must have the same type.
<p>
<dl compact><dt><b><a class="el" href="bug.html#_bug000004">Bug: </a></b></dt><dd>
 For string nodes, changing the length of the string doesn't work. </dl>     </td>
  </tr>
</table>
<a name="a9" doxytag="conf.c::snd_config_set_id"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_set_id </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the id of a configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
The new node id. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl><dl compact><dt><b><a class="el" href="bug.html#_bug000002">Bug: </a></b></dt><dd>
 <code>id</code> must not be a pointer to the node's current id. </dl>     </td>
  </tr>
</table>
<a name="a30" doxytag="conf.c::snd_config_set_integer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_set_integer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>long&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Changes the value of an integer configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
The new value for the node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a31" doxytag="conf.c::snd_config_set_integer64"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_set_integer64 </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>long long&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Changes the value of an integer64 configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
The new value for the node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a34" doxytag="conf.c::snd_config_set_pointer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_set_pointer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const void *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Changes the value of a pointer configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
The new value for the node. May be <code>NULL</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>This function does not free the old pointer in the node.     </td>
  </tr>
</table>
<a name="a32" doxytag="conf.c::snd_config_set_real"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_set_real </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Changes the value of a real configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
The new value for the node. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a33" doxytag="conf.c::snd_config_set_string"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_set_string </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Changes the value of a string configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
The new value for the node. May be <code>NULL</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>This function deletes the old string in the node and stores a copy of the passed string in the node.
<p>
<dl compact><dt><b><a class="el" href="bug.html#_bug000003">Bug: </a></b></dt><dd>
 <code>value</code> must not be a pointer to the node's current value. </dl>     </td>
  </tr>
</table>
<a name="a5" doxytag="conf.c::snd_config_substitute"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_substitute </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dst</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>src</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Substitutes one configuration node to another.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>dst</em>&nbsp;</td><td>
Handle to the destination node. </td></tr>
<tr><td valign=top><em>src</em>&nbsp;</td><td>
Handle to the source node. Must not be the same as <code>dst</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>If both nodes are compounds, the source compound node members are appended to the destination compound node.
<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>
A successful call to this function invalidates the source node.     </td>
  </tr>
</table>
<a name="a43" doxytag="conf.c::snd_config_test_id"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_test_id </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>config</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>id</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Compares the id of a configuration node to a given string.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
Handle to the configuration node. </td></tr>
<tr><td valign=top><em>id</em>&nbsp;</td><td>
ASCII id. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
The same value as the result of the <code>strcmp</code> function. </dl>    </td>
  </tr>
</table>
<a name="a10" doxytag="conf.c::snd_config_top"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_top </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>config</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a top level configuration node.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>config</em>&nbsp;</td><td>
The function puts the handle to the new node at the address specified by <code>config</code>. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code.</dl>The returned node is a compound node.     </td>
  </tr>
</table>
<a name="a59" doxytag="conf.c::snd_config_update"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_update </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Updates <a class="el" href="conf_8c.html#a2">snd_config</a> by rereading the global configuration files (if needed).
<p>
<dl compact><dt><b>Returns: </b></dt><dd>
A non-negative value if successful, otherwise a negative error code. </dl><dl compact><dt><b>Return values: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>0</em>&nbsp;</td><td>
No action is needed. </td></tr>
<tr><td valign=top><em>1</em>&nbsp;</td><td>
The configuration tree has been rebuilt.</td></tr>
</table>
</dl>The global configuration files are specified in the environment variable <code>ALSA_CONFIG_PATH</code>. If this is not set, the default value is "/usr/share/alsa/alsa.conf".
<p>
<dl compact><dt><b>Warning: </b></dt><dd>
If the configuration tree is reread, all string pointers and configuration node handles previously obtained from this tree become invalid. </dl>    </td>
  </tr>
</table>
<a name="a60" doxytag="conf.c::snd_config_update_free"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_update_free </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a3">snd_config_update_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>update</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Frees a private update structure.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>update</em>&nbsp;</td><td>
The private update structure to free. </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a61" doxytag="conf.c::snd_config_update_free_global"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_update_free_global </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Frees the global configuration tree in <a class="el" href="conf_8c.html#a2">snd_config</a>.
<p>
<dl compact><dt><b>Returns: </b></dt><dd>
Zero if successful, otherwise a negative error code. </dl>    </td>
  </tr>
</table>
<a name="a58" doxytag="conf.c::snd_config_update_r"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int snd_config_update_r </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>_top</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group___config.html#a3">snd_config_update_t</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>_update</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>cfgs</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Updates a configuration tree by rereading the configuration files (if needed).
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>top</em>&nbsp;</td><td>
Address of the handle to the top level node. </td></tr>
<tr><td valign=top><em>update</em>&nbsp;</td><td>
Address of a pointer to private update information. </td></tr>
<tr><td valign=top><em>cfgs</em>&nbsp;</td><td>
A list of configuration file names, delimited with ':'. If <code>cfgs</code> is set to <code>NULL</code>, the default global configuration file is used ("/usr/share/alsa/alsa.conf"). </td></tr>
</table>
</dl><dl compact><dt><b>Returns: </b></dt><dd>
A non-negative value if successful, otherwise a negative error code. </dl><dl compact><dt><b>Return values: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>0</em>&nbsp;</td><td>
No action is needed. </td></tr>
<tr><td valign=top><em>1</em>&nbsp;</td><td>
The configuration tree has been rebuilt.</td></tr>
</table>
</dl>The global configuration files are specified in the environment variable <code>ALSA_CONFIG_PATH</code>.
<p>
<dl compact><dt><b>Warning: </b></dt><dd>
If the configuration tree is reread, all string pointers and configuration node handles previously obtained from this tree become invalid. </dl>    </td>
  </tr>
</table>
<hr><h2>Variable Documentation</h2>
<a name="a2" doxytag="conf.c::snd_config"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group___config.html#a1">snd_config_t</a>* snd_config = NULL
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Configuration top level node (the global configuration).     </td>
  </tr>
</table>
<hr><address style="align: right;"><small>Generated on Wed Apr 2 16:06:33 2003 for ALSA project - the C library reference by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.18 </small></address>
</body>
</html>