<!-- This comment will put IE 6, 7 and 8 in quirks mode --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>ALSA project - the C library reference: /home/qateam/rpm/BUILD/alsa-lib-1.0.23/src/conf.c File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javaScript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body onload='searchBox.OnSelectItem(0);'> <!-- Generated by Doxygen 1.6.3 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</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 class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <img id="MSearchSelect" src="search/search.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </div> </li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="contents"> <h1>/home/qateam/rpm/BUILD/alsa-lib-1.0.23/src/conf.c File Reference</h1> <p>Configuration helper functions. <a href="#_details">More...</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a8b857484628b5b4cbd2ac60503d4f80e">ALSA_CONFIG_PATH_VAR</a> "ALSA_CONFIG_PATH"</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#aa7ae5d3b32a1ec3a9aa0456a5a2f9091">ALSA_CONFIG_PATH_DEFAULT</a> ALSA_CONFIG_DIR "/alsa.conf"</td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a0c4acd2de7999ad6e477d398662485c2">snd_config_substitute</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *dst, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *src)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Substitutes one configuration node to another. <a href="#a0c4acd2de7999ad6e477d398662485c2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a281182963641e7cd5975f56faad6ff14">snd_config_get_type_ascii</a> (const char *ascii, <a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> *type)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Converts an ASCII string to a configuration node type. <a href="#a281182963641e7cd5975f56faad6ff14"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6def4c43ce325abaa3ddfba5a4f4d138">snd_config_get_type</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the type of a configuration node. <a href="group___config.html#ga6def4c43ce325abaa3ddfba5a4f4d138"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gae366751e8ea98aeb69f9ef876f7b949c">snd_config_get_id</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char **id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the id of a configuration node. <a href="group___config.html#gae366751e8ea98aeb69f9ef876f7b949c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga550948931d44695b6d8e8f148f87cb54">snd_config_set_id</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the id of a configuration node. <a href="group___config.html#ga550948931d44695b6d8e8f148f87cb54"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaf563d57ea9d576a94578368a3d2382c3">snd_config_top</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a top level configuration node. <a href="group___config.html#gaf563d57ea9d576a94578368a3d2382c3"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga51f79d1f24a519e126415c72210525b0">snd_config_load</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___input.html#ga39165553a2907c5a27f325e3ce4e8301">snd_input_t</a> *in)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Loads a configuration tree. <a href="group___config.html#ga51f79d1f24a519e126415c72210525b0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga27334922bab8391aa2ef1813f48f4d70">snd_config_load_override</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___input.html#ga39165553a2907c5a27f325e3ce4e8301">snd_input_t</a> *in)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Loads a configuration tree and overrides existing configuration nodes. <a href="group___config.html#ga27334922bab8391aa2ef1813f48f4d70"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaf62dd825828c05f1d63a62eee7046080">snd_config_add</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *parent, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *child)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a child to a compound configuration node. <a href="group___config.html#gaf62dd825828c05f1d63a62eee7046080"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#ad4d69b003662e09e8206a7892e849d27">snd_config_remove</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Removes a configuration node from its tree. <a href="#ad4d69b003662e09e8206a7892e849d27"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga2a006b942faa3335a958a7df7bcea17e">snd_config_delete</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Frees a configuration node. <a href="group___config.html#ga2a006b942faa3335a958a7df7bcea17e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaec120883e56ecb510e064151e0b11d51">snd_config_delete_compound_members</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes the children of a node. <a href="group___config.html#gaec120883e56ecb510e064151e0b11d51"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac570ecbaba611ccc12bc235a1f4d0181">snd_config_make</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, <a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> type)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a configuration node. <a href="group___config.html#gac570ecbaba611ccc12bc235a1f4d0181"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga838fac581e115574acc3711cad9f5877">snd_config_make_integer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates an integer configuration node. <a href="group___config.html#ga838fac581e115574acc3711cad9f5877"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga2c27175c162fe5027e3f1b3d5420afbb">snd_config_make_integer64</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a 64-bit-integer configuration node. <a href="group___config.html#ga2c27175c162fe5027e3f1b3d5420afbb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga8f175813bfc2556bd08fd580f05d36e6">snd_config_make_real</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a real number configuration node. <a href="group___config.html#ga8f175813bfc2556bd08fd580f05d36e6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6764115f489629be027b434c4e323cff">snd_config_make_string</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a string configuration node. <a href="group___config.html#ga6764115f489629be027b434c4e323cff"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gadbcce71d8d3a78709fc2a78d6f543584">snd_config_make_pointer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a pointer configuration node. <a href="group___config.html#gadbcce71d8d3a78709fc2a78d6f543584"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga2ce24133c1d6828e2afe366284c61e01">snd_config_make_compound</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, int join)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates an empty compound configuration node. <a href="group___config.html#ga2ce24133c1d6828e2afe366284c61e01"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gafeb0552cbed09a3badbb5e74c7a7973d">snd_config_imake_integer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, const long value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates an integer configuration node with the given initial value. <a href="group___config.html#gafeb0552cbed09a3badbb5e74c7a7973d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga04cfbfda89dc17c19a5a4076271a4d07">snd_config_imake_integer64</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, const long long value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a 64-bit-integer configuration node with the given initial value. <a href="group___config.html#ga04cfbfda89dc17c19a5a4076271a4d07"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga968e5bb773dfea922b5272636b26e9c2">snd_config_imake_real</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, const double value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a real number configuration node with the given initial value. <a href="group___config.html#ga968e5bb773dfea922b5272636b26e9c2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaa83035f79027a464bf9d5d31e0a20547">snd_config_imake_string</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, const char *value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a string configuration node with the given initial value. <a href="group___config.html#gaa83035f79027a464bf9d5d31e0a20547"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac7c6ce28a676169fff594aa4222705b2">snd_config_imake_pointer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *id, const void *value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a pointer configuration node with the given initial value. <a href="group___config.html#gac7c6ce28a676169fff594aa4222705b2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6fd3be48221cae9cee9c7245a0804d73">snd_config_set_integer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of an integer configuration node. <a href="group___config.html#ga6fd3be48221cae9cee9c7245a0804d73"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gafdb63c78c07e11194a28d591b0fbffc4">snd_config_set_integer64</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long long value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a 64-bit-integer configuration node. <a href="group___config.html#gafdb63c78c07e11194a28d591b0fbffc4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga46c71d5d36c64f0a06ceae956a39fedc">snd_config_set_real</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, double value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a real-number configuration node. <a href="group___config.html#ga46c71d5d36c64f0a06ceae956a39fedc"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga0f76f8ad47dce7f90580c8d59c6e44f8">snd_config_set_string</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a string configuration node. <a href="group___config.html#ga0f76f8ad47dce7f90580c8d59c6e44f8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga037c3bf96326bb6f5dfd340475b34fbf">snd_config_set_pointer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const void *value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a pointer configuration node. <a href="group___config.html#ga037c3bf96326bb6f5dfd340475b34fbf"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac1810a11f576fe339074502f4fed4a91">snd_config_set_ascii</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *ascii)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a configuration node. <a href="group___config.html#gac1810a11f576fe339074502f4fed4a91"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gabfbc36060fd4f5d1d929938443f95559">snd_config_get_integer</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long *ptr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of an integer configuration node. <a href="group___config.html#gabfbc36060fd4f5d1d929938443f95559"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaf4d9e68918f7d49d7b4b14ffbe94afc1">snd_config_get_integer64</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long long *ptr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a 64-bit-integer configuration node. <a href="group___config.html#gaf4d9e68918f7d49d7b4b14ffbe94afc1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gad4d23c0bf941527d80aeb6f991bf88c9">snd_config_get_real</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, double *ptr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a real-number configuration node. <a href="group___config.html#gad4d23c0bf941527d80aeb6f991bf88c9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga79738baffa6fa7722b1027ab84ac61bb">snd_config_get_ireal</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, double *ptr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a real or integer configuration node. <a href="group___config.html#ga79738baffa6fa7722b1027ab84ac61bb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga5ab99983d1d93ddbcde9bb69a1e4f9fb">snd_config_get_string</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char **ptr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a string configuration node. <a href="group___config.html#ga5ab99983d1d93ddbcde9bb69a1e4f9fb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga54868e0fa30458ef1c259772a8e7c6d7">snd_config_get_pointer</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const void **ptr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a pointer configuration node. <a href="group___config.html#ga54868e0fa30458ef1c259772a8e7c6d7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaa26f97e098a0dd2cd5e28299b6b6c132">snd_config_get_ascii</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, char **ascii)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a configuration node as a string. <a href="group___config.html#gaa26f97e098a0dd2cd5e28299b6b6c132"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaeec157fd161a138e402c9bd243bbd408">snd_config_test_id</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compares the id of a configuration node to a given string. <a href="group___config.html#gaeec157fd161a138e402c9bd243bbd408"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gafac08a29a1e04b03a22028a8c70f78bd">snd_config_save</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___output.html#ga49729cc6454539495c1f5b6e95cd474a">snd_output_t</a> *out)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Dumps the contents of a configuration node or tree. <a href="group___config.html#gafac08a29a1e04b03a22028a8c70f78bd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gabafb8cac2181c4c1e34b99f54421d1c6">snd_config_search</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree. <a href="group___config.html#gabafb8cac2181c4c1e34b99f54421d1c6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#af0f5cf4dde9399e3aadc53b4ab1d5059">snd_config_searcha</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree, expanding aliases. <a href="#af0f5cf4dde9399e3aadc53b4ab1d5059"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga7b2f5723e44a1b69f2a8555d469803d1">snd_config_searchv</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result,...)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree. <a href="group___config.html#ga7b2f5723e44a1b69f2a8555d469803d1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a11646339b1555e9a36a3da3327a0bd6a">snd_config_searchva</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result,...)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree, expanding aliases. <a href="#a11646339b1555e9a36a3da3327a0bd6a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a95836105fb9cdb3ff6fb674d3a297fdb">snd_config_search_alias</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *base, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree, expanding aliases. <a href="#a95836105fb9cdb3ff6fb674d3a297fdb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#ad6a8a7b3b67b8f755ab60073bec5fd48">snd_config_search_hooks</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree and expands hooks. <a href="#ad6a8a7b3b67b8f755ab60073bec5fd48"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a28f17e8e4133a46c4d366d1e234df974">snd_config_searcha_hooks</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree, expanding aliases and hooks. <a href="#a28f17e8e4133a46c4d366d1e234df974"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a017faa0f6768a9481989b4f38d4514b1">snd_config_searchva_hooks</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result,...)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree, expanding aliases and hooks. <a href="#a017faa0f6768a9481989b4f38d4514b1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a1f86a23e559213fb07097637feeac70f">snd_config_search_alias_hooks</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *base, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree, using an alias and expanding hooks. <a href="#a1f86a23e559213fb07097637feeac70f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#a4008d77ad63047366463350b7726a5ec">snd_config_hook_load</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **dst, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *private_data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Loads and parses the given configurations files. <a href="#a4008d77ad63047366463350b7726a5ec"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="conf_8c.html#ac64a8c73293ee35ed3f3958d47bdc721">snd_config_hook_load_for_all_cards</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **dst, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *private_data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Loads and parses the given configurations files for each installed sound card. <a href="#ac64a8c73293ee35ed3f3958d47bdc721"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga06e80976c3c00fdc786f9b213e5c40f7">snd_config_update_r</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **_top, <a class="el" href="group___config.html#gab10b229189a94e3fcbac7f6ca5794cc0">snd_config_update_t</a> **_update, const char *cfgs)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Updates a configuration tree by rereading the configuration files (if needed). <a href="group___config.html#ga06e80976c3c00fdc786f9b213e5c40f7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c">snd_config_update</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Updates <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration).">snd_config</a> by rereading the global configuration files (if needed). <a href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga8f781ac635a0233fb2f58766a83d65cd">snd_config_update_free</a> (<a class="el" href="group___config.html#gab10b229189a94e3fcbac7f6ca5794cc0">snd_config_update_t</a> *update)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Frees a private update structure. <a href="group___config.html#ga8f781ac635a0233fb2f58766a83d65cd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga51dbc0ff1d9b34d753706d09d768116b">snd_config_update_free_global</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Frees the global configuration tree in <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration).">snd_config</a>. <a href="group___config.html#ga51dbc0ff1d9b34d753706d09d768116b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac8965466674c10b9a119d591ed484cef">snd_config_iterator_first</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns an iterator pointing to a node's first child. <a href="group___config.html#gac8965466674c10b9a119d591ed484cef"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga10c27ddc83c78680d91a167dd2f0a3cb">snd_config_iterator_next</a> (const <a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> iterator)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns an iterator pointing to the next sibling. <a href="group___config.html#ga10c27ddc83c78680d91a167dd2f0a3cb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac08a30bc630481f69feb2170fed4afda">snd_config_iterator_end</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns an iterator that ends a node's children list. <a href="group___config.html#gac08a30bc630481f69feb2170fed4afda"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaa91fe1d926d88041ed516a6a7293f606">snd_config_iterator_entry</a> (const <a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> iterator)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the configuration node handle pointed to by an iterator. <a href="group___config.html#gaa91fe1d926d88041ed516a6a7293f606"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga30f30bd27d13fbb3527270b3fc9e1676">snd_config_copy</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **dst, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *src)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a copy of a configuration node. <a href="group___config.html#ga30f30bd27d13fbb3527270b3fc9e1676"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga1a51645a07e204d4e814d890452da558">snd_config_evaluate</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *private_data, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Evaluates a configuration node at runtime. <a href="group___config.html#ga1a51645a07e204d4e814d890452da558"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga7759f41c3757ce72ee9bd118976071c2">snd_config_expand</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, const char *args, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *private_data, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Expands a configuration node, applying arguments and functions. <a href="group___config.html#ga7759f41c3757ce72ee9bd118976071c2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gad7c23084ee4052ad33d77db6278db46f">snd_config_search_definition</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *base, const char *name, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for a definition in a configuration tree, using aliases and expanding hooks and arguments. <a href="group___config.html#gad7c23084ee4052ad33d77db6278db46f"></a><br/></td></tr> <tr><td colspan="2"><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831">snd_config</a> = NULL</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Configuration top-level node (the global configuration). <a href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Configuration helper functions. </p> <dl class="author"><dt><b>Author:</b></dt><dd>Abramo Bagnara <<a href="mailto:abramo@alsa-project.org">abramo@alsa-project.org</a>> </dd> <dd> Jaroslav Kysela <<a href="mailto:perex@perex.cz">perex@perex.cz</a>> </dd></dl> <dl class="date"><dt><b>Date:</b></dt><dd>2000-2001</dd></dl> <p>Tree based, full nesting configuration functions.</p> <p>See the <a class="el" href="conf.html">Configuration files</a> page for more details. </p> <hr/><h2>Define Documentation</h2> <a class="anchor" id="aa7ae5d3b32a1ec3a9aa0456a5a2f9091"></a><!-- doxytag: member="conf.c::ALSA_CONFIG_PATH_DEFAULT" ref="aa7ae5d3b32a1ec3a9aa0456a5a2f9091" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ALSA_CONFIG_PATH_DEFAULT ALSA_CONFIG_DIR "/alsa.conf"</td> </tr> </table> </div> <div class="memdoc"> <p>The name of the default files used by <a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c" title="Updates snd_config by rereading the global configuration files (if needed).">snd_config_update</a>. </p> </div> </div> <a class="anchor" id="a8b857484628b5b4cbd2ac60503d4f80e"></a><!-- doxytag: member="conf.c::ALSA_CONFIG_PATH_VAR" ref="a8b857484628b5b4cbd2ac60503d4f80e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ALSA_CONFIG_PATH_VAR "ALSA_CONFIG_PATH"</td> </tr> </table> </div> <div class="memdoc"> <p>The name of the environment variable containing the files list for <a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c" title="Updates snd_config by rereading the global configuration files (if needed).">snd_config_update</a>. </p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a281182963641e7cd5975f56faad6ff14"></a><!-- doxytag: member="conf.c::snd_config_get_type_ascii" ref="a281182963641e7cd5975f56faad6ff14" args="(const char *ascii, snd_config_type_t *type)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_type_ascii </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>ascii</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> * </td> <td class="paramname"> <em>type</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Converts an ASCII string to a configuration node type. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>ascii</em> </td><td>A string containing a configuration node type. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>type</em> </td><td>The node type corresponding to <em>ascii</em>. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function recognizes at least the following node types: </p> <dl> <dt><a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887aaa9d6e02cd0eb42db96122c925c023e7">integer<dt>::SND_CONFIG_TYPE_INTEGER</a> </dt> <dd></dd> <dt><a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a710f962ebb93e3824ddee2d833f735a2">integer64<dt>::SND_CONFIG_TYPE_INTEGER64</a> </dt> <dd></dd> <dt><a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a0a938daae4006e204150082ab9c73508">real<dt>::SND_CONFIG_TYPE_REAL</a> </dt> <dd></dd> <dt><a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a99eed49f50d4f62a7fc0c95301918f49">string<dt>::SND_CONFIG_TYPE_STRING</a> </dt> <dd></dd> <dt><a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a82b5c1a9dbadaa4e36815fc1f01fc2f7">compound<dt>::SND_CONFIG_TYPE_COMPOUND</a> </dt> <dd></dd> </dl> <dl class="user"><dt><b>Errors:</b></dt><dd><dl> <dt>-EINVAL</dt> <dd>Unknown note type in <em>type</em>. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="a4008d77ad63047366463350b7726a5ec"></a><!-- doxytag: member="conf.c::snd_config_hook_load" ref="a4008d77ad63047366463350b7726a5ec" args="(snd_config_t *root, snd_config_t *config, snd_config_t **dst, snd_config_t *private_data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_hook_load </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>root</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"> <em>dst</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>private_data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Loads and parses the given configurations files. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>root</em> </td><td>Handle to the root configuration node. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>config</em> </td><td>Handle to the configuration node for this hook. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>dst</em> </td><td>The function puts the handle to the configuration node loaded from the file(s) at the address specified by <em>dst</em>. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>private_data</em> </td><td>Handle to the private data configuration node. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>See <a class="el" href="confhooks.html">Hooks in configuration files</a> for an example. </p> </div> </div> <a class="anchor" id="ac64a8c73293ee35ed3f3958d47bdc721"></a><!-- doxytag: member="conf.c::snd_config_hook_load_for_all_cards" ref="ac64a8c73293ee35ed3f3958d47bdc721" args="(snd_config_t *root, snd_config_t *config, snd_config_t **dst, snd_config_t *private_data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_hook_load_for_all_cards </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>root</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"> <em>dst</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>private_data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Loads and parses the given configurations files for each installed sound card. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>root</em> </td><td>Handle to the root configuration node. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>config</em> </td><td>Handle to the configuration node for this hook. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>dst</em> </td><td>The function puts the handle to the configuration node loaded from the file(s) at the address specified by <em>dst</em>. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>private_data</em> </td><td>Handle to the private data configuration node. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function works like <a class="el" href="conf_8c.html#a4008d77ad63047366463350b7726a5ec" title="Loads and parses the given configurations files.">snd_config_hook_load</a>, but the files are loaded once for each sound card. The driver name is available with the <code>private_string</code> function to customize the file name. </p> </div> </div> <a class="anchor" id="ad4d69b003662e09e8206a7892e849d27"></a><!-- doxytag: member="conf.c::snd_config_remove" ref="ad4d69b003662e09e8206a7892e849d27" args="(snd_config_t *config)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_remove </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>config</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Removes a configuration node from its tree. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>config</em> </td><td>Handle to the configuration node to be removed. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function makes <em>config</em> a top-level node, i.e., if <em>config</em> has a parent, then <em>config</em> is removed from the list of the parent's children.</p> <p>This functions does <em>not</em> free the removed node.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___config.html#ga2a006b942faa3335a958a7df7bcea17e" title="Frees a configuration node.">snd_config_delete</a> </dd></dl> </div> </div> <a class="anchor" id="a95836105fb9cdb3ff6fb674d3a297fdb"></a><!-- doxytag: member="conf.c::snd_config_search_alias" ref="a95836105fb9cdb3ff6fb674d3a297fdb" args="(snd_config_t *config, const char *base, const char *key, snd_config_t **result)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_search_alias </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </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>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"> <em>result</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Searches for a node in a configuration tree, expanding aliases. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </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"><tt>[in]</tt> </td><td valign="top"><em>base</em> </td><td>Search key base, or <code>NULL</code>. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>key</em> </td><td>Search key suffix. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>result</em> </td><td>When <em>result</em> != <code>NULL</code>, the function puts the handle to the node found at the address specified by <em>result</em>. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This functions searches for a child node of <em>config</em>, allowing aliases, like <a class="el" href="conf_8c.html#af0f5cf4dde9399e3aadc53b4ab1d5059" title="Searches for a node in a configuration tree, expanding aliases.">snd_config_searcha</a>. However, alias definitions are searched below <em>config</em> (there is no separate <em>root</em> parameter), and <em>base</em> specifies a seach key that identifies a compound node that is used to search for an alias definitions that is not found directly below <em>config</em> and that does not contain a period. In other words, when <code>"id"</code> is not found in <em>config</em>, this function also tries <code>"base.id"</code>.</p> <dl class="user"><dt><b>Errors:</b></dt><dd><dl> <dt>-ENOENT</dt> <dd>An id in <em>key</em> or an alias id does not exist. </dd> <dt>-ENOENT</dt> <dd><em>config</em> or one of its child nodes to be searched is not a compound or string node. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="a1f86a23e559213fb07097637feeac70f"></a><!-- doxytag: member="conf.c::snd_config_search_alias_hooks" ref="a1f86a23e559213fb07097637feeac70f" args="(snd_config_t *config, const char *base, const char *key, snd_config_t **result)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_search_alias_hooks </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </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>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"> <em>result</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Searches for a node in a configuration tree, using an alias and expanding hooks. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </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"><tt>[in]</tt> </td><td valign="top"><em>base</em> </td><td>Search key base, or <code>NULL</code>. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>key</em> </td><td>Search key suffix. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>result</em> </td><td>The function puts the handle to the node found at the address specified by <em>result</em>. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This functions searches for a child node of <em>config</em>, allowing aliases, like <a class="el" href="conf_8c.html#a95836105fb9cdb3ff6fb674d3a297fdb" title="Searches for a node in a configuration tree, expanding aliases.">snd_config_search_alias</a>, and expanding hooks, like <a class="el" href="conf_8c.html#ad6a8a7b3b67b8f755ab60073bec5fd48" title="Searches for a node in a configuration tree and expands hooks.">snd_config_search_hooks</a>.</p> <dl class="user"><dt><b>Errors:</b></dt><dd><dl> <dt>-ENOENT</dt> <dd>An id in <em>key</em> or an alias id does not exist. </dd> <dt>-ENOENT</dt> <dd><em>config</em> or one of its child nodes to be searched is not a compound node. </dd> </dl> Additionally, any errors encountered when parsing the hook definitions or returned by the hook functions. </dd></dl> </div> </div> <a class="anchor" id="ad6a8a7b3b67b8f755ab60073bec5fd48"></a><!-- doxytag: member="conf.c::snd_config_search_hooks" ref="ad6a8a7b3b67b8f755ab60073bec5fd48" args="(snd_config_t *config, const char *key, snd_config_t **result)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_search_hooks </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </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#ga1c20905af775ae77d04d1a5696f67985">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></td> </tr> </table> </div> <div class="memdoc"> <p>Searches for a node in a configuration tree and expands hooks. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in,out]</tt> </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"><tt>[in]</tt> </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"><tt>[out]</tt> </td><td valign="top"><em>result</em> </td><td>The function puts the handle to the node found at the address specified by <em>result</em>. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This functions searches for a child node of <em>config</em> like <a class="el" href="group___config.html#gabafb8cac2181c4c1e34b99f54421d1c6" title="Searches for a node in a configuration tree.">snd_config_search</a>, but any compound nodes to be searched that contain hooks are modified by the respective hook functions.</p> <dl class="user"><dt><b>Errors:</b></dt><dd><dl> <dt>-ENOENT</dt> <dd>An id in <em>key</em> does not exist. </dd> <dt>-ENOENT</dt> <dd><em>config</em> or one of its child nodes to be searched is not a compound node. </dd> </dl> Additionally, any errors encountered when parsing the hook definitions or returned by the hook functions. </dd></dl> </div> </div> <a class="anchor" id="af0f5cf4dde9399e3aadc53b4ab1d5059"></a><!-- doxytag: member="conf.c::snd_config_searcha" ref="af0f5cf4dde9399e3aadc53b4ab1d5059" args="(snd_config_t *root, snd_config_t *config, const char *key, snd_config_t **result)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_searcha </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>root</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </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#ga1c20905af775ae77d04d1a5696f67985">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></td> </tr> </table> </div> <div class="memdoc"> <p>Searches for a node in a configuration tree, expanding aliases. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>root</em> </td><td>Handle to the root configuration node containing alias definitions. </td></tr> <tr><td valign="top"><tt>[in]</tt> </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"><tt>[in]</tt> </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"><tt>[out]</tt> </td><td valign="top"><em>result</em> </td><td>When <em>result</em> != <code>NULL</code>, the function puts the handle to the node found at the address specified by <em>result</em>. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This functions searches for a child node of <em>config</em> like <a class="el" href="group___config.html#gabafb8cac2181c4c1e34b99f54421d1c6" title="Searches for a node in a configuration tree.">snd_config_search</a>. However, any compound node can also be identified by an alias, which is a string node whose value is taken as the id of a compound node below <em>root</em>.</p> <p><em>root</em> must be a compound node. <em>root</em> and <em>config</em> may be the same node.</p> <p>For example, with the following configuration, the call </p> <div class="fragment"><pre class="fragment"> <a class="code" href="conf_8c.html#af0f5cf4dde9399e3aadc53b4ab1d5059" title="Searches for a node in a configuration tree, expanding aliases.">snd_config_searcha</a>(root, config, <span class="stringliteral">"a.b.c.d"</span>, &result); </pre></div><p> would return the node with id <code>d:</code> </p> <div class="fragment"><pre class="fragment"> config { a { b bb } } root { bb { c cc } cc ccc ccc { d { x <span class="stringliteral">"icks"</span> } } } </pre></div><dl class="user"><dt><b>Errors:</b></dt><dd><dl> <dt>-ENOENT</dt> <dd>An id in <em>key</em> or an alias id does not exist. </dd> <dt>-ENOENT</dt> <dd><em>config</em> or one of its child nodes to be searched is not a compound or string node. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="a28f17e8e4133a46c4d366d1e234df974"></a><!-- doxytag: member="conf.c::snd_config_searcha_hooks" ref="a28f17e8e4133a46c4d366d1e234df974" args="(snd_config_t *root, snd_config_t *config, const char *key, snd_config_t **result)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_searcha_hooks </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>root</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </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#ga1c20905af775ae77d04d1a5696f67985">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></td> </tr> </table> </div> <div class="memdoc"> <p>Searches for a node in a configuration tree, expanding aliases and hooks. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>root</em> </td><td>Handle to the root configuration node containing alias definitions. </td></tr> <tr><td valign="top"><tt>[in,out]</tt> </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"><tt>[in]</tt> </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"><tt>[out]</tt> </td><td valign="top"><em>result</em> </td><td>The function puts the handle to the node found at the address specified by <em>result</em>. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function searches for a child node of <em>config</em>, allowing aliases, like <a class="el" href="conf_8c.html#af0f5cf4dde9399e3aadc53b4ab1d5059" title="Searches for a node in a configuration tree, expanding aliases.">snd_config_searcha</a>, and expanding hooks, like <a class="el" href="conf_8c.html#ad6a8a7b3b67b8f755ab60073bec5fd48" title="Searches for a node in a configuration tree and expands hooks.">snd_config_search_hooks</a>.</p> <dl class="user"><dt><b>Errors:</b></dt><dd><dl> <dt>-ENOENT</dt> <dd>An id in <em>key</em> or an alias id does not exist. </dd> <dt>-ENOENT</dt> <dd><em>config</em> or one of its child nodes to be searched is not a compound node. </dd> </dl> Additionally, any errors encountered when parsing the hook definitions or returned by the hook functions. </dd></dl> </div> </div> <a class="anchor" id="a11646339b1555e9a36a3da3327a0bd6a"></a><!-- doxytag: member="conf.c::snd_config_searchva" ref="a11646339b1555e9a36a3da3327a0bd6a" args="(snd_config_t *root, snd_config_t *config, snd_config_t **result,...)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_searchva </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>root</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </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></td> </tr> </table> </div> <div class="memdoc"> <p>Searches for a node in a configuration tree, expanding aliases. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>root</em> </td><td>Handle to the root configuration node containing alias definitions. </td></tr> <tr><td valign="top"><tt>[in]</tt> </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"><tt>[out]</tt> </td><td valign="top"><em>result</em> </td><td>When <em>result</em> != <code>NULL</code>, the function puts the handle to the node found at the address specified by <em>result</em>. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>...</em> </td><td>One or more concatenated dot separated search keys, terminated with <code>NULL</code>. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function searches for a child node of <em>config</em>, allowing aliases, like <a class="el" href="conf_8c.html#af0f5cf4dde9399e3aadc53b4ab1d5059" title="Searches for a node in a configuration tree, expanding aliases.">snd_config_searcha</a>, but the search key is the concatenation of all passed seach key strings, like with <a class="el" href="group___config.html#ga7b2f5723e44a1b69f2a8555d469803d1" title="Searches for a node in a configuration tree.">snd_config_searchv</a>.</p> <dl class="user"><dt><b>Errors:</b></dt><dd><dl> <dt>-ENOENT</dt> <dd>An id in a search key does not exist. </dd> <dt>-ENOENT</dt> <dd><em>config</em> or one of its child nodes to be searched is not a compound or string node. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="a017faa0f6768a9481989b4f38d4514b1"></a><!-- doxytag: member="conf.c::snd_config_searchva_hooks" ref="a017faa0f6768a9481989b4f38d4514b1" args="(snd_config_t *root, snd_config_t *config, snd_config_t **result,...)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_searchva_hooks </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>root</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </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></td> </tr> </table> </div> <div class="memdoc"> <p>Searches for a node in a configuration tree, expanding aliases and hooks. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>root</em> </td><td>Handle to the root configuration node containing alias definitions. </td></tr> <tr><td valign="top"><tt>[in,out]</tt> </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"><tt>[out]</tt> </td><td valign="top"><em>result</em> </td><td>The function puts the handle to the node found at the address specified by <em>result</em>. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>...</em> </td><td>One or more concatenated dot separated search keys, terminated with <code>NULL</code>. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function searches for a child node of <em>config</em>, allowing aliases and expanding hooks like <a class="el" href="conf_8c.html#a28f17e8e4133a46c4d366d1e234df974" title="Searches for a node in a configuration tree, expanding aliases and hooks.">snd_config_searcha_hooks</a>, but the search key is the concatenation of all passed seach key strings, like with <a class="el" href="group___config.html#ga7b2f5723e44a1b69f2a8555d469803d1" title="Searches for a node in a configuration tree.">snd_config_searchv</a>.</p> <dl class="user"><dt><b>Errors:</b></dt><dd><dl> <dt>-ENOENT</dt> <dd>An id in <em>key</em> or an alias id does not exist. </dd> <dt>-ENOENT</dt> <dd><em>config</em> or one of its child nodes to be searched is not a compound node. </dd> </dl> Additionally, any errors encountered when parsing the hook definitions or returned by the hook functions. </dd></dl> </div> </div> <a class="anchor" id="a0c4acd2de7999ad6e477d398662485c2"></a><!-- doxytag: member="conf.c::snd_config_substitute" ref="a0c4acd2de7999ad6e477d398662485c2" args="(snd_config_t *dst, snd_config_t *src)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_substitute </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>dst</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"> <em>src</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Substitutes one configuration node to another. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>Handle to the destination node. </td></tr> <tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Handle to the source node. Must not be the same as <em>dst</em>. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>If both nodes are compounds, the source compound node members are appended to the destination compound node.</p> <p>If the destination node is a compound and the source node is an ordinary type, the compound members are deleted (including their contents).</p> <p>Otherwise, the source node's value replaces the destination node's value.</p> <p>In any case, a successful call to this function frees the source node. </p> </div> </div> </div> <!--- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Nov 20 07:42:23 2010 for ALSA project - the C library reference by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>