<!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> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> <a class="qindex" href="pages.html">Related Pages</a> <a class="qindex" href="examples.html">Examples</a> </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 </td><td valign=bottom><b>_snd_config_update</b></td></tr> <tr><td nowrap align=right valign=top>struct </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 </td><td valign=bottom><a class="el" href="conf_8c.html#a0">ALSA_CONFIG_PATH_VAR</a> "ALSA_CONFIG_PATH"</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="conf_8c.html#a1">ALSA_CONFIG_PATH_DEFAULT</a> DATADIR "/alsa/alsa.conf"</td></tr> <tr><td colspan=2><br><h2>Functions</h2></td></tr> <tr><td nowrap align=right valign=top>int </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> </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 </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> </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> </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </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> </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 </td><td valign=bottom><a class="el" href="conf_8c.html#a59">snd_config_update</a> (void)</td></tr> <tr><td> </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 </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> </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 </td><td valign=bottom><a class="el" href="conf_8c.html#a61">snd_config_update_free_global</a> (void)</td></tr> <tr><td> </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> </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> </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> </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> </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> </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> </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> * </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> </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 </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> </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 </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> </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 </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> </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 </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> </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> * </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 <<a href="mailto:abramo@alsa-project.org">abramo@alsa-project.org</a>> , Jaroslav Kysela <<a href="mailto:perex@suse.cz">perex@suse.cz</a>> </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 DATADIR "/alsa/alsa.conf" </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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 "ALSA_CONFIG_PATH" </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <em>leaf</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the compound configuration node. </td></tr> <tr><td valign=top><em>leaf</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <em>src</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>config</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>config</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the source configuration node. </td></tr> <tr><td valign=top><em>root</em> </td><td> Handle to the root of the source configuration. </td></tr> <tr><td valign=top><em>private_data</em> </td><td> Handle to the private data node for runtime evaluation. </td></tr> <tr><td valign=top><em>result</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <em>root</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>root</em> </td><td> Handle to the root configuration node. </td></tr> <tr><td valign=top><em>args</em> </td><td> Arguments string (optional). </td></tr> <tr><td valign=top><em>private_data</em> </td><td> Handle to the private data node for functions. </td></tr> <tr><td valign=top><em>result</em> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>char ** </td> <td class="mdname" nowrap> <em>ascii</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>ascii</em> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char ** </td> <td class="mdname" nowrap> <em>id</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>id</em> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>long * </td> <td class="mdname" nowrap> <em>ptr</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>ptr</em> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>long long * </td> <td class="mdname" nowrap> <em>ptr</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>ptr</em> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>double * </td> <td class="mdname" nowrap> <em>ptr</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>ptr</em> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const void ** </td> <td class="mdname" nowrap> <em>ptr</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>ptr</em> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>double * </td> <td class="mdname" nowrap> <em>ptr</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>ptr</em> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char ** </td> <td class="mdname" nowrap> <em>ptr</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>ptr</em> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>config</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">const char * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <em>type</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> A string containing a configuration node type. </td></tr> <tr><td valign=top><em>type</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <em>private_data</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the root configuration node. </td></tr> <tr><td valign=top><em>config</em> </td><td> Handle to the configuration node for this hook. </td></tr> <tr><td valign=top><em>dst</em> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <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 </td> <td class="mdname" nowrap> <em>ATTRIBUTE_UNUSED</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the root configuration node. </td></tr> <tr><td valign=top><em>config</em> </td><td> Handle to the configuration node for this hook. </td></tr> <tr><td valign=top><em>dst</em> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const long </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </td><td> The id of the new node. </td></tr> <tr><td valign=top><em>value</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const long long </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </td><td> The id of the new node. </td></tr> <tr><td valign=top><em>value</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const void * </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </td><td> The id of the new node. </td></tr> <tr><td valign=top><em>value</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const double </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </td><td> The id of the new node. </td></tr> <tr><td valign=top><em>value</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </td><td> The id of the new node. </td></tr> <tr><td valign=top><em>value</em> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>node</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a2">snd_config_iterator_t</a> </td> <td class="mdname1" valign="top" nowrap> <em>iterator</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>node</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a2">snd_config_iterator_t</a> </td> <td class="mdname1" valign="top" nowrap> <em>iterator</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <em>in</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to a top level configuration node. </td></tr> <tr><td valign=top><em>in</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <em>in</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to a top level configuration node. </td></tr> <tr><td valign=top><em>in</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <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> </td> <td class="mdname" nowrap> <em>type</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </td><td> The id of the new node. </td></tr> <tr><td valign=top><em>type</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>join</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </td><td> The id of the new node. </td></tr> <tr><td valign=top><em>join</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>config</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <em>out</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the (root) configuration node. </td></tr> <tr><td valign=top><em>out</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the root of the configuration (sub)tree to search. </td></tr> <tr><td valign=top><em>key</em> </td><td> Search key: one or more node keys, separated with dots. </td></tr> <tr><td valign=top><em>result</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>base</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the root of the configuration (sub)tree to search. </td></tr> <tr><td valign=top><em>base</em> </td><td> Search key base, or <code>NULL</code>. </td></tr> <tr><td valign=top><em>key</em> </td><td> Search key suffix. </td></tr> <tr><td valign=top><em>result</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>base</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the root of the configuration (sub)tree to search. </td></tr> <tr><td valign=top><em>base</em> </td><td> Search key base, or <code>NULL</code>. </td></tr> <tr><td valign=top><em>key</em> </td><td> Search key suffix. </td></tr> <tr><td valign=top><em>result</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>base</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration (sub)tree to search. </td></tr> <tr><td valign=top><em>base</em> </td><td> Implicit key base, or <code>NULL</code> for none. </td></tr> <tr><td valign=top><em>key</em> </td><td> Key suffix. </td></tr> <tr><td valign=top><em>result</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the root of the configuration (sub)tree to search. </td></tr> <tr><td valign=top><em>key</em> </td><td> Search key: one or more node keys, separated with dots. </td></tr> <tr><td valign=top><em>result</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the root configuration node containing alias definitions. </td></tr> <tr><td valign=top><em>config</em> </td><td> Handle to the root of the configuration (sub)tree to search. </td></tr> <tr><td valign=top><em>key</em> </td><td> Search key: one or more node keys, separated with dots. </td></tr> <tr><td valign=top><em>result</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the root configuration node containing alias definitions. </td></tr> <tr><td valign=top><em>config</em> </td><td> Handle to the root of the configuration (sub)tree to search. </td></tr> <tr><td valign=top><em>key</em> </td><td> Search key: one or more node keys, separated with dots. </td></tr> <tr><td valign=top><em>result</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>... </td> <td class="mdname" nowrap> </td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the root of the configuration (sub)tree to search. </td></tr> <tr><td valign=top><em>result</em> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>... </td> <td class="mdname" nowrap> </td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the root configuration node containing alias definitions. </td></tr> <tr><td valign=top><em>config</em> </td><td> Handle to the root of the configuration (sub)tree to search. </td></tr> <tr><td valign=top><em>result</em> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>result</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>... </td> <td class="mdname" nowrap> </td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the root configuration node containing alias definitions. </td></tr> <tr><td valign=top><em>config</em> </td><td> Handle to the root of the configuration (sub)tree to search. </td></tr> <tr><td valign=top><em>result</em> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>ascii</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>ascii</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>id</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>long </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>value</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>long long </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>value</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const void * </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>value</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>double </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>value</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>value</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <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> * </td> <td class="mdname" nowrap> <em>src</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the destination node. </td></tr> <tr><td valign=top><em>src</em> </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">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___config.html#a1">snd_config_t</a> * </td> <td class="mdname" nowrap> <em>config</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>id</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Handle to the configuration node. </td></tr> <tr><td valign=top><em>id</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname1" valign="top" nowrap> <em>config</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> No action is needed. </td></tr> <tr><td valign=top><em>1</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a3">snd_config_update_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>update</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___config.html#a1">snd_config_t</a> ** </td> <td class="mdname" nowrap> <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> ** </td> <td class="mdname" nowrap> <em>_update</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>cfgs</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </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> </td><td> Address of the handle to the top level node. </td></tr> <tr><td valign=top><em>update</em> </td><td> Address of a pointer to private update information. </td></tr> <tr><td valign=top><em>cfgs</em> </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> </td><td> No action is needed. </td></tr> <tr><td valign=top><em>1</em> </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> </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>