File: //usr/share/doc/alsa-lib-devel-1.0.17/lib64/html/group___config.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>ALSA project - the C library reference: Configuration Interface</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>Configuration Interface</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structsnd__devname.html">snd_devname</a></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9e54658816748f6ac04aa3d3b7d8f1ed"></a><!-- doxytag: member="Config::SND_CONFIG_DLSYM_VERSION_EVALUATE" ref="g9e54658816748f6ac04aa3d3b7d8f1ed" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g9e54658816748f6ac04aa3d3b7d8f1ed">SND_CONFIG_DLSYM_VERSION_EVALUATE</a> _dlsym_config_evaluate_001</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight"><code>dlsym</code> version for the config evaluate callback. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g83354acaaadb369b1a2658a006884658"></a><!-- doxytag: member="Config::SND_CONFIG_DLSYM_VERSION_HOOK" ref="g83354acaaadb369b1a2658a006884658" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g83354acaaadb369b1a2658a006884658">SND_CONFIG_DLSYM_VERSION_HOOK</a> _dlsym_config_hook_001</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight"><code>dlsym</code> version for the config hook callback. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga88720136c87ae8364c38bf02676ee78">snd_config_for_each</a>(pos, next, node) for (pos = snd_config_iterator_first(node), next = snd_config_iterator_next(pos); pos != snd_config_iterator_end(node); pos = next, next = snd_config_iterator_next(pos))</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Helper macro to iterate over the children of a compound node. <a href="#ga88720136c87ae8364c38bf02676ee78"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef enum <a class="el" href="group___config.html#gce01b8348f3811a775e028618d20f1d8">_snd_config_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gc42c013d7b46e861523546eaeb99c157">snd_config_type_t</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef _snd_config </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal structure for a configuration node object. <a href="#gb7dc173feea5bedcd999bba678eb53a7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef _snd_config_iterator * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Type for a configuration compound iterator. <a href="#ged5eac13f37db13382430a4aab472d4f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef _snd_config_update </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g780abf6a2d06086e8069aa2b186cb906">snd_config_update_t</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal structure for a configuration private update object. <a href="#g780abf6a2d06086e8069aa2b186cb906"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structsnd__devname.html">snd_devname</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g5df7ac061bb365a7cc722828cc131414">snd_devname_t</a></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gce01b8348f3811a775e028618d20f1d8">_snd_config_type</a> { <br>
<a class="el" href="group___config.html#ggce01b8348f3811a775e028618d20f1d8d04eb2d6cb0a838bc792f7192e678f75">SND_CONFIG_TYPE_INTEGER</a>,
<a class="el" href="group___config.html#ggce01b8348f3811a775e028618d20f1d808253c7401bd4dc70e07c9b007c4185c">SND_CONFIG_TYPE_INTEGER64</a>,
<a class="el" href="group___config.html#ggce01b8348f3811a775e028618d20f1d86112d89d8bd31dcb1d42a5ba36e37c3d">SND_CONFIG_TYPE_REAL</a>,
<a class="el" href="group___config.html#ggce01b8348f3811a775e028618d20f1d8340eec6d62ecb69f2b00c168143c3914">SND_CONFIG_TYPE_STRING</a>,
<br>
<a class="el" href="group___config.html#ggce01b8348f3811a775e028618d20f1d87faa3066d190ae0fad8bedb8793a77f0">SND_CONFIG_TYPE_POINTER</a>,
<a class="el" href="group___config.html#ggce01b8348f3811a775e028618d20f1d8ffc65192b898f9020ebd782c49c6f633">SND_CONFIG_TYPE_COMPOUND</a> = 1024
<br>
}</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g39b5c1aa214df5a4a35df6d5c490ae4f">snd_config_top</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a top level configuration node. <a href="#g39b5c1aa214df5a4a35df6d5c490ae4f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g0743418194fd9570fe9ff4bdee687349">snd_config_load</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, <a class="el" href="group___input.html#g942229a624fb1eaccc9d61d537b9d94d">snd_input_t</a> *in)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Loads a configuration tree. <a href="#g0743418194fd9570fe9ff4bdee687349"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gd0590cb27d1353d4711dc7a69e3f84d6">snd_config_load_override</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, <a class="el" href="group___input.html#g942229a624fb1eaccc9d61d537b9d94d">snd_input_t</a> *in)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Loads a configuration tree and overrides existing configuration nodes. <a href="#gd0590cb27d1353d4711dc7a69e3f84d6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g05dcdc7eaa2cc4c7ab0f72103f7a903f">snd_config_save</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, <a class="el" href="group___output.html#gfcb4f6ed600e8daf18d5d5d8623dda50">snd_output_t</a> *out)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Dumps the contents of a configuration node or tree. <a href="#g05dcdc7eaa2cc4c7ab0f72103f7a903f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gb0d033dc9c10b9b3e692329d1a680c3d">snd_config_update</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Updates <a class="el" href="group___config.html#g755686d6fb9a58b671abcf61e6724b9b">snd_config</a> by rereading the global configuration files (if needed). <a href="#gb0d033dc9c10b9b3e692329d1a680c3d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gf04eda9c4290e0ca7ede9f0e6bd97309">snd_config_update_r</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **top, <a class="el" href="group___config.html#g780abf6a2d06086e8069aa2b186cb906">snd_config_update_t</a> **update, const char *path)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Updates a configuration tree by rereading the configuration files (if needed). <a href="#gf04eda9c4290e0ca7ede9f0e6bd97309"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gd4fa0eb48a90f9c083afeeaa42637654">snd_config_update_free</a> (<a class="el" href="group___config.html#g780abf6a2d06086e8069aa2b186cb906">snd_config_update_t</a> *update)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees a private update structure. <a href="#gd4fa0eb48a90f9c083afeeaa42637654"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gf5dbd99a2e3134df7ca536c9a70617b9">snd_config_update_free_global</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees the global configuration tree in <a class="el" href="group___config.html#g755686d6fb9a58b671abcf61e6724b9b">snd_config</a>. <a href="#gf5dbd99a2e3134df7ca536c9a70617b9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g5967fe5576ae9ae019aeb9b0f08236fc">snd_config_search</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree. <a href="#g5967fe5576ae9ae019aeb9b0f08236fc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gfa4d93ea6e7a1f6384f910eaa1233a06">snd_config_searchv</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **result,...)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree. <a href="#gfa4d93ea6e7a1f6384f910eaa1233a06"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g68105b1c22045f00a4aa77329f2ba0d8">snd_config_search_definition</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, const char *base, const char *key, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a definition in a configuration tree, using aliases and expanding hooks and arguments. <a href="#g68105b1c22045f00a4aa77329f2ba0d8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g0fa2bd75cb2a6eb9f9120ecf0c9270b4">snd_config_expand</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *root, const char *args, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *private_data, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Expands a configuration node applying arguments and functions. <a href="#g0fa2bd75cb2a6eb9f9120ecf0c9270b4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gd854bd9c808636842259a22797ffdb9a">snd_config_evaluate</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *root, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *private_data, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **result)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Evaluates a configuration node at runtime. <a href="#gd854bd9c808636842259a22797ffdb9a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g81237f16471ef0ce5f433dfdc3eacd9d">snd_config_add</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *leaf)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a child to a compound configuration node. <a href="#g81237f16471ef0ce5f433dfdc3eacd9d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g0d7bef8a31a6575a9cd82b04b1879906">snd_config_delete</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes a configuration node (freeing all its related resources). <a href="#g0d7bef8a31a6575a9cd82b04b1879906"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gc06e5444e3d13f5ea1c06d8771bfd5eb">snd_config_delete_compound_members</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes the children of a compound configuration node (freeing all its related resources). <a href="#gc06e5444e3d13f5ea1c06d8771bfd5eb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g98a80e991a2f72ca0a47edc6c3a5de40">snd_config_copy</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **dst, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *src)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a copy of a configuration node. <a href="#g98a80e991a2f72ca0a47edc6c3a5de40"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g8a5ee7e22ad4102921559ba36ccecb6f">snd_config_make</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key, <a class="el" href="group___config.html#gc42c013d7b46e861523546eaeb99c157">snd_config_type_t</a> type)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a configuration node. <a href="#g8a5ee7e22ad4102921559ba36ccecb6f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g87975363d8e09ea6fbb9210a8594212a">snd_config_make_integer</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates an integer configuration node. <a href="#g87975363d8e09ea6fbb9210a8594212a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g3b3a5f1c9829332a006c11183930ec36">snd_config_make_integer64</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates an integer64 configuration node. <a href="#g3b3a5f1c9829332a006c11183930ec36"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gd6f16dd2181144bfe83994f1f42ce81a">snd_config_make_real</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a real configuration node. <a href="#gd6f16dd2181144bfe83994f1f42ce81a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g2042209dd20f7c56ea494d84aacb7cf0">snd_config_make_string</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a string configuration node. <a href="#g2042209dd20f7c56ea494d84aacb7cf0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g56b5596a4224590e91540d54e6a33cae">snd_config_make_pointer</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a pointer configuration node. <a href="#g56b5596a4224590e91540d54e6a33cae"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g4bcbb431ca9f62ed4079aeb274a051b7">snd_config_make_compound</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key, int join)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates an empty compound configuration node. <a href="#g4bcbb431ca9f62ed4079aeb274a051b7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gf2c3c47d87fa67bfae5d5b8f64ea9bff">snd_config_imake_integer</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key, const long value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates an integer configuration node with the given initial value. <a href="#gf2c3c47d87fa67bfae5d5b8f64ea9bff"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gdf917ac19a1fbc1ae76bd3a5b6fb4d5e">snd_config_imake_integer64</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key, const long long value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates an integer configuration node with the given initial value. <a href="#gdf917ac19a1fbc1ae76bd3a5b6fb4d5e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g3fb6f4ecf737da99bdfeb0ea9534dd63">snd_config_imake_real</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key, const double value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a real configuration node with the given initial value. <a href="#g3fb6f4ecf737da99bdfeb0ea9534dd63"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g79a839cebbc1615c17f2ff0651ff1593">snd_config_imake_string</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key, const char *ascii)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a string configuration node with the given initial value. <a href="#g79a839cebbc1615c17f2ff0651ff1593"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g1d0447fa3d1e8fd93ec0c9505cd0fbb1">snd_config_imake_pointer</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> **config, const char *key, const void *ptr)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a pointer configuration node with the given initial value. <a href="#g1d0447fa3d1e8fd93ec0c9505cd0fbb1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___config.html#gc42c013d7b46e861523546eaeb99c157">snd_config_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gecf5efb3139d67c2a8dc0aac8bb1f6c4">snd_config_get_type</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the type of a configuration node. <a href="#gecf5efb3139d67c2a8dc0aac8bb1f6c4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g18f902a6249f9b8a81f24d44fa19e0bc">snd_config_set_id</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, const char *id)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the id of a configuration node. <a href="#g18f902a6249f9b8a81f24d44fa19e0bc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g4907b7dbd13e5ed36b9c1b2698173d43">snd_config_set_integer</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, long value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of an integer configuration node. <a href="#g4907b7dbd13e5ed36b9c1b2698173d43"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gd0c736c9c107f24a5c822b62dde9fbed">snd_config_set_integer64</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, long long value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of an integer64 configuration node. <a href="#gd0c736c9c107f24a5c822b62dde9fbed"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g518fc7ff50e1e19c412e8616e1391ed3">snd_config_set_real</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, double value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a real configuration node. <a href="#g518fc7ff50e1e19c412e8616e1391ed3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gda8fd5e334c27fff51a381dd8e6ca5dc">snd_config_set_string</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, const char *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a string configuration node. <a href="#gda8fd5e334c27fff51a381dd8e6ca5dc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g2b8f63af51ea8f21b187104d5324ce51">snd_config_set_ascii</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, const char *ascii)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a configuration node. <a href="#g2b8f63af51ea8f21b187104d5324ce51"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ge75b05cb2fb8b038f262b2e628603733">snd_config_set_pointer</a> (<a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, const void *ptr)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a pointer configuration node. <a href="#ge75b05cb2fb8b038f262b2e628603733"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gcca465ec933a023e5397001167f4c963">snd_config_get_id</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, const char **value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the id of a configuration node. <a href="#gcca465ec933a023e5397001167f4c963"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g7df651f6e8b924c983af4e93604c2c2f">snd_config_get_integer</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, long *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of an integer configuration node. <a href="#g7df651f6e8b924c983af4e93604c2c2f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g672e2fa82b926205e528f74c6333e4c8">snd_config_get_integer64</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, long long *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of an integer64 configuration node. <a href="#g672e2fa82b926205e528f74c6333e4c8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g6f967e712bb455b7c6f05cc58ddae9c0">snd_config_get_real</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, double *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a real configuration node. <a href="#g6f967e712bb455b7c6f05cc58ddae9c0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g4bc8e9de890accae0cac827920342922">snd_config_get_ireal</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, double *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a real or integer configuration node. <a href="#g4bc8e9de890accae0cac827920342922"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g8c064893611fe6d0b79aa341b2e0c605">snd_config_get_string</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, const char **value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a string configuration node. <a href="#g8c064893611fe6d0b79aa341b2e0c605"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gec70a6219973233c2487d7172c318769">snd_config_get_ascii</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, char **value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a configuration node as a string. <a href="#gec70a6219973233c2487d7172c318769"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g46064461921b3b0639968a485989dfb5">snd_config_get_pointer</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, const void **value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a pointer configuration node. <a href="#g46064461921b3b0639968a485989dfb5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g6aa6fa3bce82d35bb16fdf05d343d7d1">snd_config_test_id</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *config, const char *id)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compares the id of a configuration node to a given string. <a href="#g6aa6fa3bce82d35bb16fdf05d343d7d1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gd34192f9c5b999bbedc459d1bb4a6fd9">snd_config_iterator_first</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *node)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns an iterator pointing to the first child of a compound configuration node. <a href="#gd34192f9c5b999bbedc459d1bb4a6fd9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g56fe9291280f6209e2b03e7685ef1af5">snd_config_iterator_next</a> (const <a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a> iterator)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns an iterator pointing to the next sibling. <a href="#g56fe9291280f6209e2b03e7685ef1af5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g7dddf5c33dd3d7adf3fc67ff045c8bf7">snd_config_iterator_end</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *node)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns an iterator pointing past the last child of a compound configuration node. <a href="#g7dddf5c33dd3d7adf3fc67ff045c8bf7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g0ffcdab6b5f43391ca823d83a3d84f60">snd_config_iterator_entry</a> (const <a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a> iterator)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the configuration node handle pointed to by an iterator. <a href="#g0ffcdab6b5f43391ca823d83a3d84f60"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g12afc2d09e2cb85e5550799814fb2ad6">snd_config_get_bool_ascii</a> (const char *ascii)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the boolean value from the given ASCII string. <a href="#g12afc2d09e2cb85e5550799814fb2ad6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gf4553d6ba94b2253a42fd1a4ca154b5f">snd_config_get_bool</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *conf)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the boolean value from a configuration node. <a href="#gf4553d6ba94b2253a42fd1a4ca154b5f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g2d6845f40caa7daa1dea626521689ea7">snd_config_get_ctl_iface_ascii</a> (const char *ascii)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the control interface index from the given ASCII string. <a href="#g2d6845f40caa7daa1dea626521689ea7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gb34b094eac61023dbb0cb2f62ad83cd6">snd_config_get_ctl_iface</a> (const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> *conf)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the control interface index from a configuration node. <a href="#gb34b094eac61023dbb0cb2f62ad83cd6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gc5f001a31ea45c0defd86abba5170943">snd_names_list</a> (const char *iface, <a class="el" href="structsnd__devname.html">snd_devname_t</a> **list)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Give a list of device names and associated comments for selected interface. <a href="#gc5f001a31ea45c0defd86abba5170943"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g0af5ffc7a477afb27f0a2729f972dd60">snd_names_list_free</a> (<a class="el" href="structsnd__devname.html">snd_devname_t</a> *list)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Release the list of device names. <a href="#g0af5ffc7a477afb27f0a2729f972dd60"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g755686d6fb9a58b671abcf61e6724b9b">snd_config</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#g755686d6fb9a58b671abcf61e6724b9b">snd_config</a> = NULL</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The configuration functions and types allow you to read, enumerate, modify and write the contents of ALSA configuration files. <hr><h2>Define Documentation</h2>
<a class="anchor" name="ga88720136c87ae8364c38bf02676ee78"></a><!-- doxytag: member="conf.h::snd_config_for_each" ref="ga88720136c87ae8364c38bf02676ee78" args="(pos, next, node)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define snd_config_for_each </td>
<td>(</td>
<td class="paramtype">pos, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">next, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">node </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> for (pos = snd_config_iterator_first(node), next = snd_config_iterator_next(pos); pos != snd_config_iterator_end(node); pos = next, next = snd_config_iterator_next(pos))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Helper macro to iterate over the children of a compound node.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>pos</em> </td><td>Iterator variable for the current node. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>next</em> </td><td>Iterator variable for the next node. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>node</em> </td><td>Handle to the compound configuration node to iterate over.</td></tr>
</table>
</dl>
This macro is designed to permit the removal of the current node.
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="ged5eac13f37db13382430a4aab472d4f"></a><!-- doxytag: member="conf.h::snd_config_iterator_t" ref="ged5eac13f37db13382430a4aab472d4f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct _snd_config_iterator* <a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Type for a configuration compound iterator.
<p>
The ALSA library uses this pointer type as a handle to a configuration compound iterator. Applications don't directly access the contents of the structure pointed to by this type.
</div>
</div><p>
<a class="anchor" name="gb7dc173feea5bedcd999bba678eb53a7"></a><!-- doxytag: member="conf.h::snd_config_t" ref="gb7dc173feea5bedcd999bba678eb53a7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct _snd_config <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Internal structure for a configuration node object.
<p>
The ALSA library uses a pointer to this structure as a handle to a configuration node. Applications don't access its contents directly.
</div>
</div><p>
<a class="anchor" name="gc42c013d7b46e861523546eaeb99c157"></a><!-- doxytag: member="conf.h::snd_config_type_t" ref="gc42c013d7b46e861523546eaeb99c157" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="group___config.html#gce01b8348f3811a775e028618d20f1d8">_snd_config_type</a> <a class="el" href="group___config.html#gc42c013d7b46e861523546eaeb99c157">snd_config_type_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Configuration node type.
</div>
</div><p>
<a class="anchor" name="g780abf6a2d06086e8069aa2b186cb906"></a><!-- doxytag: member="conf.h::snd_config_update_t" ref="g780abf6a2d06086e8069aa2b186cb906" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct _snd_config_update <a class="el" href="group___config.html#g780abf6a2d06086e8069aa2b186cb906">snd_config_update_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Internal structure for a configuration private update object.
<p>
The ALSA library uses this structure to save private update information.
</div>
</div><p>
<a class="anchor" name="g5df7ac061bb365a7cc722828cc131414"></a><!-- doxytag: member="conf.h::snd_devname_t" ref="g5df7ac061bb365a7cc722828cc131414" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structsnd__devname.html">snd_devname</a> <a class="el" href="structsnd__devname.html">snd_devname_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Device-name list element
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="gce01b8348f3811a775e028618d20f1d8"></a><!-- doxytag: member="conf.h::_snd_config_type" ref="gce01b8348f3811a775e028618d20f1d8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group___config.html#gce01b8348f3811a775e028618d20f1d8">_snd_config_type</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Configuration node type. <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="ggce01b8348f3811a775e028618d20f1d8d04eb2d6cb0a838bc792f7192e678f75"></a><!-- doxytag: member="SND_CONFIG_TYPE_INTEGER" ref="ggce01b8348f3811a775e028618d20f1d8d04eb2d6cb0a838bc792f7192e678f75" args="" -->SND_CONFIG_TYPE_INTEGER</em> </td><td>
Integer number. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggce01b8348f3811a775e028618d20f1d808253c7401bd4dc70e07c9b007c4185c"></a><!-- doxytag: member="SND_CONFIG_TYPE_INTEGER64" ref="ggce01b8348f3811a775e028618d20f1d808253c7401bd4dc70e07c9b007c4185c" args="" -->SND_CONFIG_TYPE_INTEGER64</em> </td><td>
64 bit Integer number. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggce01b8348f3811a775e028618d20f1d86112d89d8bd31dcb1d42a5ba36e37c3d"></a><!-- doxytag: member="SND_CONFIG_TYPE_REAL" ref="ggce01b8348f3811a775e028618d20f1d86112d89d8bd31dcb1d42a5ba36e37c3d" args="" -->SND_CONFIG_TYPE_REAL</em> </td><td>
Real number. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggce01b8348f3811a775e028618d20f1d8340eec6d62ecb69f2b00c168143c3914"></a><!-- doxytag: member="SND_CONFIG_TYPE_STRING" ref="ggce01b8348f3811a775e028618d20f1d8340eec6d62ecb69f2b00c168143c3914" args="" -->SND_CONFIG_TYPE_STRING</em> </td><td>
Character string. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggce01b8348f3811a775e028618d20f1d87faa3066d190ae0fad8bedb8793a77f0"></a><!-- doxytag: member="SND_CONFIG_TYPE_POINTER" ref="ggce01b8348f3811a775e028618d20f1d87faa3066d190ae0fad8bedb8793a77f0" args="" -->SND_CONFIG_TYPE_POINTER</em> </td><td>
Pointer (runtime only, cannot be saved). </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggce01b8348f3811a775e028618d20f1d8ffc65192b898f9020ebd782c49c6f633"></a><!-- doxytag: member="SND_CONFIG_TYPE_COMPOUND" ref="ggce01b8348f3811a775e028618d20f1d8ffc65192b898f9020ebd782c49c6f633" args="" -->SND_CONFIG_TYPE_COMPOUND</em> </td><td>
Compound node. </td></tr>
</table>
</dl>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g81237f16471ef0ce5f433dfdc3eacd9d"></a><!-- doxytag: member="conf.h::snd_config_add" ref="g81237f16471ef0ce5f433dfdc3eacd9d" args="(snd_config_t *config, snd_config_t *leaf)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_add </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>father</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>leaf</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>father</em> </td><td>Handle to the compound configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g98a80e991a2f72ca0a47edc6c3a5de40"></a><!-- doxytag: member="conf.h::snd_config_copy" ref="g98a80e991a2f72ca0a47edc6c3a5de40" args="(snd_config_t **dst, snd_config_t *src)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_copy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>src</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g0d7bef8a31a6575a9cd82b04b1879906"></a><!-- doxytag: member="conf.h::snd_config_delete" ref="g0d7bef8a31a6575a9cd82b04b1879906" args="(snd_config_t *config)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_delete </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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.</dd></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.
</div>
</div><p>
<a class="anchor" name="gc06e5444e3d13f5ea1c06d8771bfd5eb"></a><!-- doxytag: member="conf.h::snd_config_delete_compound_members" ref="gc06e5444e3d13f5ea1c06d8771bfd5eb" args="(const snd_config_t *config)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_delete_compound_members </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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.</dd></dl>
Any compound nodes among the children of <code>config</code> are deleted recursively.
</div>
</div><p>
<a class="anchor" name="gd854bd9c808636842259a22797ffdb9a"></a><!-- doxytag: member="conf.h::snd_config_evaluate" ref="gd854bd9c808636842259a22797ffdb9a" args="(snd_config_t *config, snd_config_t *root, snd_config_t *private_data, snd_config_t **result)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_evaluate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>root</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>private_data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>result</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the source configuration node. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>root</em> </td><td>Handle to the root of the source configuration. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>private_data</em> </td><td>Handle to the private data node for runtime evaluation. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>Only in-place evaluation is currently implemented. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g0fa2bd75cb2a6eb9f9120ecf0c9270b4"></a><!-- doxytag: member="conf.h::snd_config_expand" ref="g0fa2bd75cb2a6eb9f9120ecf0c9270b4" args="(snd_config_t *config, snd_config_t *root, const char *args, snd_config_t *private_data, snd_config_t **result)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_expand </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>root</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>args</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>private_data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>result</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>root</em> </td><td>Handle to the root configuration node. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>args</em> </td><td>Arguments string (optional). </td></tr>
<tr><td valign="top"></td><td valign="top"><em>private_data</em> </td><td>Handle to the private data node for functions. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gec70a6219973233c2487d7172c318769"></a><!-- doxytag: member="conf.h::snd_config_get_ascii" ref="gec70a6219973233c2487d7172c318769" args="(const snd_config_t *config, char **value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_ascii </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"> <em>ascii</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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.</dd></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.
</div>
</div><p>
<a class="anchor" name="gf4553d6ba94b2253a42fd1a4ca154b5f"></a><!-- doxytag: member="conf.h::snd_config_get_bool" ref="gf4553d6ba94b2253a42fd1a4ca154b5f" args="(const snd_config_t *conf)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_bool </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>conf</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the boolean value from a configuration node.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>conf</em> </td><td>Handle to the configuration node to be parsed. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 or 1 if successful, otherwise a negative error code. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g12afc2d09e2cb85e5550799814fb2ad6"></a><!-- doxytag: member="conf.h::snd_config_get_bool_ascii" ref="g12afc2d09e2cb85e5550799814fb2ad6" args="(const char *ascii)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_bool_ascii </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>ascii</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the boolean value from the given ASCII string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ascii</em> </td><td>The string to be parsed. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 or 1 if successful, otherwise a negative error code. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gb34b094eac61023dbb0cb2f62ad83cd6"></a><!-- doxytag: member="conf.h::snd_config_get_ctl_iface" ref="gb34b094eac61023dbb0cb2f62ad83cd6" args="(const snd_config_t *conf)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_ctl_iface </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>conf</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the control interface index from a configuration node.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>conf</em> </td><td>Handle to the configuration node to be parsed. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The control interface index if successful, otherwise a negative error code. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g2d6845f40caa7daa1dea626521689ea7"></a><!-- doxytag: member="conf.h::snd_config_get_ctl_iface_ascii" ref="g2d6845f40caa7daa1dea626521689ea7" args="(const char *ascii)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_ctl_iface_ascii </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>ascii</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the control interface index from the given ASCII string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ascii</em> </td><td>The string to be parsed. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The control interface index if successful, otherwise a negative error code. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gcca465ec933a023e5397001167f4c963"></a><!-- doxytag: member="conf.h::snd_config_get_id" ref="gcca465ec933a023e5397001167f4c963" args="(const snd_config_t *config, const char **value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_id </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ** </td>
<td class="paramname"> <em>id</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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.</dd></dl>
The returned string is owned by the configuration node; the application must not modify or delete it.
</div>
</div><p>
<a class="anchor" name="g7df651f6e8b924c983af4e93604c2c2f"></a><!-- doxytag: member="conf.h::snd_config_get_integer" ref="g7df651f6e8b924c983af4e93604c2c2f" args="(const snd_config_t *config, long *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_integer </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">long * </td>
<td class="paramname"> <em>ptr</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g672e2fa82b926205e528f74c6333e4c8"></a><!-- doxytag: member="conf.h::snd_config_get_integer64" ref="g672e2fa82b926205e528f74c6333e4c8" args="(const snd_config_t *config, long long *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_integer64 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">long long * </td>
<td class="paramname"> <em>ptr</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g4bc8e9de890accae0cac827920342922"></a><!-- doxytag: member="conf.h::snd_config_get_ireal" ref="g4bc8e9de890accae0cac827920342922" args="(const snd_config_t *config, double *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_ireal </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double * </td>
<td class="paramname"> <em>ptr</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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.</dd></dl>
If the node's type is integer or integer64, the value is converted to the <code>double</code> type on the fly.
</div>
</div><p>
<a class="anchor" name="g46064461921b3b0639968a485989dfb5"></a><!-- doxytag: member="conf.h::snd_config_get_pointer" ref="g46064461921b3b0639968a485989dfb5" args="(const snd_config_t *config, const void **value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_pointer </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void ** </td>
<td class="paramname"> <em>ptr</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g6f967e712bb455b7c6f05cc58ddae9c0"></a><!-- doxytag: member="conf.h::snd_config_get_real" ref="g6f967e712bb455b7c6f05cc58ddae9c0" args="(const snd_config_t *config, double *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_real </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double * </td>
<td class="paramname"> <em>ptr</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g8c064893611fe6d0b79aa341b2e0c605"></a><!-- doxytag: member="conf.h::snd_config_get_string" ref="g8c064893611fe6d0b79aa341b2e0c605" args="(const snd_config_t *config, const char **value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_get_string </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ** </td>
<td class="paramname"> <em>ptr</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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.</dd></dl>
The returned string is owned by the configuration node; the application must not modify or delete it.
</div>
</div><p>
<a class="anchor" name="gecf5efb3139d67c2a8dc0aac8bb1f6c4"></a><!-- doxytag: member="conf.h::snd_config_get_type" ref="gecf5efb3139d67c2a8dc0aac8bb1f6c4" args="(const snd_config_t *config)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___config.html#gc42c013d7b46e861523546eaeb99c157">snd_config_type_t</a> snd_config_get_type </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gf2c3c47d87fa67bfae5d5b8f64ea9bff"></a><!-- doxytag: member="conf.h::snd_config_imake_integer" ref="gf2c3c47d87fa67bfae5d5b8f64ea9bff" args="(snd_config_t **config, const char *key, const long value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_imake_integer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const long </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><td valign="top"><em>id</em> </td><td>The id of the new node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gdf917ac19a1fbc1ae76bd3a5b6fb4d5e"></a><!-- doxytag: member="conf.h::snd_config_imake_integer64" ref="gdf917ac19a1fbc1ae76bd3a5b6fb4d5e" args="(snd_config_t **config, const char *key, const long long value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_imake_integer64 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const long long </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><td valign="top"><em>id</em> </td><td>The id of the new node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g1d0447fa3d1e8fd93ec0c9505cd0fbb1"></a><!-- doxytag: member="conf.h::snd_config_imake_pointer" ref="g1d0447fa3d1e8fd93ec0c9505cd0fbb1" args="(snd_config_t **config, const char *key, const void *ptr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_imake_pointer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><td valign="top"><em>id</em> </td><td>The id of the new node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g3fb6f4ecf737da99bdfeb0ea9534dd63"></a><!-- doxytag: member="conf.h::snd_config_imake_real" ref="g3fb6f4ecf737da99bdfeb0ea9534dd63" args="(snd_config_t **config, const char *key, const double value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_imake_real </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><td valign="top"><em>id</em> </td><td>The id of the new node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g79a839cebbc1615c17f2ff0651ff1593"></a><!-- doxytag: member="conf.h::snd_config_imake_string" ref="g79a839cebbc1615c17f2ff0651ff1593" args="(snd_config_t **config, const char *key, const char *ascii)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_imake_string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><td valign="top"><em>id</em> </td><td>The id of the new node. </td></tr>
<tr><td valign="top"></td><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.</dd></dl>
This function creates the new node with its own copy of the passed string.
</div>
</div><p>
<a class="anchor" name="g7dddf5c33dd3d7adf3fc67ff045c8bf7"></a><!-- doxytag: member="conf.h::snd_config_iterator_end" ref="g7dddf5c33dd3d7adf3fc67ff045c8bf7" args="(const snd_config_t *node)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a> snd_config_iterator_end </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>node</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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>. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g0ffcdab6b5f43391ca823d83a3d84f60"></a><!-- doxytag: member="conf.h::snd_config_iterator_entry" ref="g0ffcdab6b5f43391ca823d83a3d84f60" args="(const snd_config_iterator_t iterator)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a>* snd_config_iterator_entry </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a> </td>
<td class="paramname"> <em>iterator</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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>. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gd34192f9c5b999bbedc459d1bb4a6fd9"></a><!-- doxytag: member="conf.h::snd_config_iterator_first" ref="gd34192f9c5b999bbedc459d1bb4a6fd9" args="(const snd_config_t *node)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a> snd_config_iterator_first </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>node</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g56fe9291280f6209e2b03e7685ef1af5"></a><!-- doxytag: member="conf.h::snd_config_iterator_next" ref="g56fe9291280f6209e2b03e7685ef1af5" args="(const snd_config_iterator_t iterator)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a> snd_config_iterator_next </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#ged5eac13f37db13382430a4aab472d4f">snd_config_iterator_t</a> </td>
<td class="paramname"> <em>iterator</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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="group___config.html#g7dddf5c33dd3d7adf3fc67ff045c8bf7">snd_config_iterator_end</a> on the father of the nodes. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g0743418194fd9570fe9ff4bdee687349"></a><!-- doxytag: member="conf.h::snd_config_load" ref="g0743418194fd9570fe9ff4bdee687349" args="(snd_config_t *config, snd_input_t *in)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_load </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___input.html#g942229a624fb1eaccc9d61d537b9d94d">snd_input_t</a> * </td>
<td class="paramname"> <em>in</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to a top level configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gd0590cb27d1353d4711dc7a69e3f84d6"></a><!-- doxytag: member="conf.h::snd_config_load_override" ref="gd0590cb27d1353d4711dc7a69e3f84d6" args="(snd_config_t *config, snd_input_t *in)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_load_override </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___input.html#g942229a624fb1eaccc9d61d537b9d94d">snd_input_t</a> * </td>
<td class="paramname"> <em>in</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to a top level configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g8a5ee7e22ad4102921559ba36ccecb6f"></a><!-- doxytag: member="conf.h::snd_config_make" ref="g8a5ee7e22ad4102921559ba36ccecb6f" args="(snd_config_t **config, const char *key, snd_config_type_t type)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_make </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gc42c013d7b46e861523546eaeb99c157">snd_config_type_t</a> </td>
<td class="paramname"> <em>type</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><td valign="top"><em>id</em> </td><td>The id of the new node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g4bcbb431ca9f62ed4079aeb274a051b7"></a><!-- doxytag: member="conf.h::snd_config_make_compound" ref="g4bcbb431ca9f62ed4079aeb274a051b7" args="(snd_config_t **config, const char *key, int join)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_make_compound </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>join</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><td valign="top"><em>id</em> </td><td>The id of the new node. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>join</em> </td><td>Join flag. This is checked in <a class="el" href="group___config.html#g05dcdc7eaa2cc4c7ab0f72103f7a903f">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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g87975363d8e09ea6fbb9210a8594212a"></a><!-- doxytag: member="conf.h::snd_config_make_integer" ref="g87975363d8e09ea6fbb9210a8594212a" args="(snd_config_t **config, const char *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_make_integer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><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.</dd></dl>
The value of the new node is 0.
</div>
</div><p>
<a class="anchor" name="g3b3a5f1c9829332a006c11183930ec36"></a><!-- doxytag: member="conf.h::snd_config_make_integer64" ref="g3b3a5f1c9829332a006c11183930ec36" args="(snd_config_t **config, const char *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_make_integer64 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><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.</dd></dl>
The value of the new node is 0.
</div>
</div><p>
<a class="anchor" name="g56b5596a4224590e91540d54e6a33cae"></a><!-- doxytag: member="conf.h::snd_config_make_pointer" ref="g56b5596a4224590e91540d54e6a33cae" args="(snd_config_t **config, const char *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_make_pointer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><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.</dd></dl>
The value of the new node is <code>NULL</code>.
</div>
</div><p>
<a class="anchor" name="gd6f16dd2181144bfe83994f1f42ce81a"></a><!-- doxytag: member="conf.h::snd_config_make_real" ref="gd6f16dd2181144bfe83994f1f42ce81a" args="(snd_config_t **config, const char *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_make_real </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><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.</dd></dl>
The value of the new node is 0.0.
</div>
</div><p>
<a class="anchor" name="g2042209dd20f7c56ea494d84aacb7cf0"></a><!-- doxytag: member="conf.h::snd_config_make_string" ref="g2042209dd20f7c56ea494d84aacb7cf0" args="(snd_config_t **config, const char *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_make_string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><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.</dd></dl>
The value of the new node is <code>NULL</code>.
</div>
</div><p>
<a class="anchor" name="g05dcdc7eaa2cc4c7ab0f72103f7a903f"></a><!-- doxytag: member="conf.h::snd_config_save" ref="g05dcdc7eaa2cc4c7ab0f72103f7a903f" args="(snd_config_t *config, snd_output_t *out)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_save </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___output.html#gfcb4f6ed600e8daf18d5d5d8623dda50">snd_output_t</a> * </td>
<td class="paramname"> <em>out</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the (root) configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g5967fe5576ae9ae019aeb9b0f08236fc"></a><!-- doxytag: member="conf.h::snd_config_search" ref="g5967fe5576ae9ae019aeb9b0f08236fc" args="(snd_config_t *config, const char *key, snd_config_t **result)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_search </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>result</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><td valign="top"><em>key</em> </td><td>Search key: one or more node keys, separated with dots. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g68105b1c22045f00a4aa77329f2ba0d8"></a><!-- doxytag: member="conf.h::snd_config_search_definition" ref="g68105b1c22045f00a4aa77329f2ba0d8" args="(snd_config_t *config, const char *base, const char *key, snd_config_t **result)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_search_definition </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>result</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration (sub)tree to search. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>base</em> </td><td>Implicit key base, or <code>NULL</code> for none. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>Key suffix. </td></tr>
<tr><td valign="top"></td><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>A non-negative value if successful, otherwise a negative error code.</dd></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>.
</div>
</div><p>
<a class="anchor" name="gfa4d93ea6e7a1f6384f910eaa1233a06"></a><!-- doxytag: member="conf.h::snd_config_searchv" ref="gfa4d93ea6e7a1f6384f910eaa1233a06" args="(snd_config_t *config, snd_config_t **result,...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_searchv </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>result</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname"> <em>...</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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"></td><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"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g2b8f63af51ea8f21b187104d5324ce51"></a><!-- doxytag: member="conf.h::snd_config_set_ascii" ref="g2b8f63af51ea8f21b187104d5324ce51" args="(snd_config_t *config, const char *ascii)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_set_ascii </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>ascii</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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.</dd></dl>
The node must have a simple type, and the new value must have the same type.
</div>
</div><p>
<a class="anchor" name="g18f902a6249f9b8a81f24d44fa19e0bc"></a><!-- doxytag: member="conf.h::snd_config_set_id" ref="g18f902a6249f9b8a81f24d44fa19e0bc" args="(snd_config_t *config, const char *id)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_set_id </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g4907b7dbd13e5ed36b9c1b2698173d43"></a><!-- doxytag: member="conf.h::snd_config_set_integer" ref="g4907b7dbd13e5ed36b9c1b2698173d43" args="(snd_config_t *config, long value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_set_integer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">long </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gd0c736c9c107f24a5c822b62dde9fbed"></a><!-- doxytag: member="conf.h::snd_config_set_integer64" ref="gd0c736c9c107f24a5c822b62dde9fbed" args="(snd_config_t *config, long long value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_set_integer64 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">long long </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="ge75b05cb2fb8b038f262b2e628603733"></a><!-- doxytag: member="conf.h::snd_config_set_pointer" ref="ge75b05cb2fb8b038f262b2e628603733" args="(snd_config_t *config, const void *ptr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_set_pointer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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.</dd></dl>
This function does not free the old pointer in the node.
</div>
</div><p>
<a class="anchor" name="g518fc7ff50e1e19c412e8616e1391ed3"></a><!-- doxytag: member="conf.h::snd_config_set_real" ref="g518fc7ff50e1e19c412e8616e1391ed3" args="(snd_config_t *config, double value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_set_real </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gda8fd5e334c27fff51a381dd8e6ca5dc"></a><!-- doxytag: member="conf.h::snd_config_set_string" ref="gda8fd5e334c27fff51a381dd8e6ca5dc" args="(snd_config_t *config, const char *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_set_string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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.</dd></dl>
This function deletes the old string in the node and stores a copy of the passed string in the node.
</div>
</div><p>
<a class="anchor" name="g6aa6fa3bce82d35bb16fdf05d343d7d1"></a><!-- doxytag: member="conf.h::snd_config_test_id" ref="g6aa6fa3bce82d35bb16fdf05d343d7d1" args="(const snd_config_t *config, const char *id)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_test_id </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> * </td>
<td class="paramname"> <em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>id</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="g39b5c1aa214df5a4a35df6d5c490ae4f"></a><!-- doxytag: member="conf.h::snd_config_top" ref="g39b5c1aa214df5a4a35df6d5c490ae4f" args="(snd_config_t **config)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_top </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>config</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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.</dd></dl>
The returned node is a compound node.
</div>
</div><p>
<a class="anchor" name="gb0d033dc9c10b9b3e692329d1a680c3d"></a><!-- doxytag: member="conf.h::snd_config_update" ref="gb0d033dc9c10b9b3e692329d1a680c3d" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_update </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Updates <a class="el" href="group___config.html#g755686d6fb9a58b671abcf61e6724b9b">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. </dd></dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>No action is needed. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gd4fa0eb48a90f9c083afeeaa42637654"></a><!-- doxytag: member="conf.h::snd_config_update_free" ref="gd4fa0eb48a90f9c083afeeaa42637654" args="(snd_config_update_t *update)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_update_free </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#g780abf6a2d06086e8069aa2b186cb906">snd_config_update_t</a> * </td>
<td class="paramname"> <em>update</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gf5dbd99a2e3134df7ca536c9a70617b9"></a><!-- doxytag: member="conf.h::snd_config_update_free_global" ref="gf5dbd99a2e3134df7ca536c9a70617b9" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_update_free_global </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Frees the global configuration tree in <a class="el" href="group___config.html#g755686d6fb9a58b671abcf61e6724b9b">snd_config</a>.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gf04eda9c4290e0ca7ede9f0e6bd97309"></a><!-- doxytag: member="conf.h::snd_config_update_r" ref="gf04eda9c4290e0ca7ede9f0e6bd97309" args="(snd_config_t **top, snd_config_update_t **update, const char *path)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_config_update_r </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a> ** </td>
<td class="paramname"> <em>_top</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___config.html#g780abf6a2d06086e8069aa2b186cb906">snd_config_update_t</a> ** </td>
<td class="paramname"> <em>_update</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>cfgs</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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"></td><td valign="top"><em>_top</em> </td><td>Address of the handle to the top level node. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>_update</em> </td><td>Address of a pointer to private update information. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
<dl compact><dt><b>Return values:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>0</em> </td><td>No action is needed. </td></tr>
<tr><td valign="top"></td><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. </dd></dl>
</div>
</div><p>
<a class="anchor" name="gc5f001a31ea45c0defd86abba5170943"></a><!-- doxytag: member="conf.h::snd_names_list" ref="gc5f001a31ea45c0defd86abba5170943" args="(const char *iface, snd_devname_t **list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int snd_names_list </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>iface</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsnd__devname.html">snd_devname_t</a> ** </td>
<td class="paramname"> <em>list</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Give a list of device names and associated comments for selected interface.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iface</em> </td><td>a string identifying interface ("pcm", "ctl", "seq", "rawmidi") </td></tr>
<tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>result - a pointer to list </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>A non-negative value if successful, otherwise a negative error code. </dd></dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Since 1.0.14</dd></dl>
The global configuration files are specified in the environment variable <code>ALSA_NAMES_FILE</code>.
</div>
</div><p>
<a class="anchor" name="g0af5ffc7a477afb27f0a2729f972dd60"></a><!-- doxytag: member="conf.h::snd_names_list_free" ref="g0af5ffc7a477afb27f0a2729f972dd60" args="(snd_devname_t *list)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void snd_names_list_free </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structsnd__devname.html">snd_devname_t</a> * </td>
<td class="paramname"> <em>list</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Release the list of device names.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the name list to release </td></tr>
</table>
</dl>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Since 1.0.14</dd></dl>
Releases the list of device names allocated via <a class="el" href="group___config.html#gc5f001a31ea45c0defd86abba5170943">snd_names_list()</a>.
</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="g755686d6fb9a58b671abcf61e6724b9b"></a><!-- doxytag: member="conf.c::snd_config" ref="g755686d6fb9a58b671abcf61e6724b9b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a>* <a class="el" href="group___config.html#g755686d6fb9a58b671abcf61e6724b9b">snd_config</a> = NULL </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Configuration top level node (the global configuration).
</div>
</div><p>
<a class="anchor" name="g755686d6fb9a58b671abcf61e6724b9b"></a><!-- doxytag: member="conf.h::snd_config" ref="g755686d6fb9a58b671abcf61e6724b9b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">snd_config_t</a>* <a class="el" href="group___config.html#g755686d6fb9a58b671abcf61e6724b9b">snd_config</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Configuration top level node (the global configuration).
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Tue Jan 20 22:42:10 2009 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"></a> 1.4.7 </small></address>
</body>
</html>