<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>gmerlin: Parameter description</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.9 --> <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><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> </div> <div class="contents"> <h1>Parameter description</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">union </td><td class="memItemRight" valign="bottom"><a class="el" href="unionbg__parameter__value__t.html">bg_parameter_value_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Container for a parameter value. <a href="unionbg__parameter__value__t.html#_details">More...</a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_s</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parmeter description. <a href="structbg__parameter__info__s.html#_details">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parameter.html#g29d6b1f41653160fc8f7f0be0cbe9d9e">BG_PARAMETER_SYNC</a> (1<<0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Apply the value whenever the widgets value changes. <a href="#g29d6b1f41653160fc8f7f0be0cbe9d9e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parameter.html#g2293456ab6e3f3b332642e1f8561d559">BG_PARAMETER_HIDE_DIALOG</a> (1<<1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Don't make a configuration widget (for objects, which change values themselves). <a href="#g2293456ab6e3f3b332642e1f8561d559"></a><br></td></tr> <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_s</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parameter.html#g2acc6d9b0c4b04b8983128d3b7f54b01">bg_parameter_info_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Typedef for parmeter description. <a href="#g2acc6d9b0c4b04b8983128d3b7f54b01"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parameter.html#g2938a274fb8dd11ccb09b2443e21d9ab">bg_set_parameter_func_t</a> )(void *data, const char *name, const <a class="el" href="unionbg__parameter__value__t.html">bg_parameter_value_t</a> *v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generic prototype for setting parameters in a module. <a href="#g2938a274fb8dd11ccb09b2443e21d9ab"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parameter.html#g55a1c10315002062e6072aaab50f0e82">bg_get_parameter_func_t</a> )(void *data, const char *name, <a class="el" href="unionbg__parameter__value__t.html">bg_parameter_value_t</a> *v)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generic prototype for getting parameters from a module. <a href="#g55a1c10315002062e6072aaab50f0e82"></a><br></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__parameter.html#g485cb1ae1f850f1d28241425e9555a2c">bg_parameter_type_t</a> { <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c25092139aa62c72322d6af45010988eb">BG_PARAMETER_SECTION</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2cebdf145ac02247281276038831853660">BG_PARAMETER_CHECKBUTTON</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c51190e0dc82927424c40b5f61065e9b5">BG_PARAMETER_INT</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c6d86c0ec6f5b546d466e03592164e50d">BG_PARAMETER_FLOAT</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2cef38d41b53ab4ce303724f2d46d73589">BG_PARAMETER_SLIDER_INT</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c52a7773f9a37d77d697331c9d3cf3c31">BG_PARAMETER_SLIDER_FLOAT</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2cbea75f0e743bba8872db286945d4a48c">BG_PARAMETER_STRING</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c6dd38a507e5c0d970a7b5221432457f8">BG_PARAMETER_STRING_HIDDEN</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c68a1ee4db8dddfb2b330292a9a4b57f0">BG_PARAMETER_STRINGLIST</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c51fc0d7b0f71970831a751cf6f972735">BG_PARAMETER_COLOR_RGB</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c2b24485d870b7d3f7cd78830cb1a85b5">BG_PARAMETER_COLOR_RGBA</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2cd370b957575639c91d0d0bbc9b7875fa">BG_PARAMETER_FONT</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c98aedec58df3ff6f4ea62ae6b6e3812a">BG_PARAMETER_DEVICE</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c5a342226a50a884e83a35d5f6be7c380">BG_PARAMETER_FILE</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2ceb5c2655cdb61bf69e972d58f0754143">BG_PARAMETER_DIRECTORY</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c812906528e74bdea167c526522798635">BG_PARAMETER_MULTI_MENU</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2cad31fcd30df8574b4cdead5a35868df9">BG_PARAMETER_MULTI_LIST</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2cea2d16d14ae816ee5ed471f86624a23c">BG_PARAMETER_MULTI_CHAIN</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c5c75b46116ea6ac57fbd068c8c3e26d3">BG_PARAMETER_TIME</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2cf9c597ad57ab289dfd9ea5eccc6669cf">BG_PARAMETER_POSITION</a>, <br> <a class="el" href="group__parameter.html#gg485cb1ae1f850f1d28241425e9555a2c2fa9bd874ced11134614ebd57ca11b82">BG_PARAMETER_BUTTON</a> <br> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parameter type. <a href="group__parameter.html#g485cb1ae1f850f1d28241425e9555a2c">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parameter.html#g9a239948bcaf809ecb797851fd9f14d8">bg_parameter_info_copy_array</a> (const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> *src)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy a NULL terminated parameter array. <a href="#g9a239948bcaf809ecb797851fd9f14d8"></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__parameter.html#g6775e05f6960267b839b1a9ce9e03f22">bg_parameter_info_set_const_ptrs</a> (<a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> *info)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the const pointers of a dynamically allocated parameter info. <a href="#g6775e05f6960267b839b1a9ce9e03f22"></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__parameter.html#g811d088d112d402b4f1ef398b35164e9">bg_parameter_info_copy</a> (<a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> *dst, const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> *src)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy a single parameter description. <a href="#g811d088d112d402b4f1ef398b35164e9"></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__parameter.html#g394bbc66cc56d03f762fd53d1b55cca9">bg_parameter_info_destroy_array</a> (<a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> *info)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free a NULL terminated parameter array. <a href="#g394bbc66cc56d03f762fd53d1b55cca9"></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__parameter.html#g0f97ab6754e8064506bec87d3fdd2b66">bg_parameter_value_copy</a> (<a class="el" href="unionbg__parameter__value__t.html">bg_parameter_value_t</a> *dst, const <a class="el" href="unionbg__parameter__value__t.html">bg_parameter_value_t</a> *src, const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> *info)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy a parameter value. <a href="#g0f97ab6754e8064506bec87d3fdd2b66"></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__parameter.html#g1722917f8a346c5a8dae7178a5e84522">bg_parameter_value_free</a> (<a class="el" href="unionbg__parameter__value__t.html">bg_parameter_value_t</a> *val, <a class="el" href="group__parameter.html#g485cb1ae1f850f1d28241425e9555a2c">bg_parameter_type_t</a> type)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free a parameter value. <a href="#g1722917f8a346c5a8dae7178a5e84522"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parameter.html#g16c7a1ac408ea8840018c627d742bd51">bg_parameter_info_concat_arrays</a> (<a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> const **srcs)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Concatenate multiple arrays into one. <a href="#g16c7a1ac408ea8840018c627d742bd51"></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__parameter.html#g38d92459a765c23f59a754bc1386cd83">bg_parameter_get_selected</a> (const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> *info, const char *val)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the index for a multi-options parameter. <a href="#g38d92459a765c23f59a754bc1386cd83"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parameter.html#g39f54bd272e557b5d55e6b7290a5dcb4">bg_parameter_find</a> (const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> *info, const char *name)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Find a parameter info. <a href="#g39f54bd272e557b5d55e6b7290a5dcb4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__parameter.html#gf79bfb7a44e89f9882cd99d6123066ec">bg_xml_2_parameters</a> (xmlDocPtr xml_doc, xmlNodePtr xml_parameters)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert a libxml2 node into a parameter array. <a href="#gf79bfb7a44e89f9882cd99d6123066ec"></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__parameter.html#g8efd0779e8c6e3425bc345a0d99e3374">bg_parameters_2_xml</a> (const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> *info, xmlNodePtr xml_parameters)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert a parameter array into a libxml2 node. <a href="#g8efd0779e8c6e3425bc345a0d99e3374"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Parameters are universal data containers, which are the basis for all configuration mechanisms.<p> A configurable module foo, should provide at least 2 functions. One, which lets the application get a null-terminated array of parameter description and one of type <a class="el" href="group__parameter.html#g2938a274fb8dd11ccb09b2443e21d9ab">bg_set_parameter_func_t</a>. It's up to the module, if the parameter array is allocated per instance or if it's just a static array. Some parameters (e.g. window coordinates) are not configured by a dialog. Instead, they are changed by the module. For these parameters, set <a class="el" href="group__parameter.html#g2293456ab6e3f3b332642e1f8561d559">BG_PARAMETER_HIDE_DIALOG</a> for the flags and provide another function of type <a class="el" href="group__parameter.html#g55a1c10315002062e6072aaab50f0e82">bg_get_parameter_func_t</a>, which lets the core read the updated value. <hr><h2>Define Documentation</h2> <a class="anchor" name="g29d6b1f41653160fc8f7f0be0cbe9d9e"></a><!-- doxytag: member="parameter.h::BG_PARAMETER_SYNC" ref="g29d6b1f41653160fc8f7f0be0cbe9d9e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define BG_PARAMETER_SYNC (1<<0) </td> </tr> </table> </div> <div class="memdoc"> <p> Apply the value whenever the widgets value changes. <p> </div> </div><p> <a class="anchor" name="g2293456ab6e3f3b332642e1f8561d559"></a><!-- doxytag: member="parameter.h::BG_PARAMETER_HIDE_DIALOG" ref="g2293456ab6e3f3b332642e1f8561d559" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define BG_PARAMETER_HIDE_DIALOG (1<<1) </td> </tr> </table> </div> <div class="memdoc"> <p> Don't make a configuration widget (for objects, which change values themselves). <p> </div> </div><p> <hr><h2>Typedef Documentation</h2> <a class="anchor" name="g2acc6d9b0c4b04b8983128d3b7f54b01"></a><!-- doxytag: member="parameter.h::bg_parameter_info_t" ref="g2acc6d9b0c4b04b8983128d3b7f54b01" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_s</a> <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Typedef for parmeter description. <p> </div> </div><p> <a class="anchor" name="g2938a274fb8dd11ccb09b2443e21d9ab"></a><!-- doxytag: member="parameter.h::bg_set_parameter_func_t" ref="g2938a274fb8dd11ccb09b2443e21d9ab" args=")(void *data, const char *name, const bg_parameter_value_t *v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef void(* <a class="el" href="group__parameter.html#g2938a274fb8dd11ccb09b2443e21d9ab">bg_set_parameter_func_t</a>)(void *data, const char *name, const <a class="el" href="unionbg__parameter__value__t.html">bg_parameter_value_t</a> *v) </td> </tr> </table> </div> <div class="memdoc"> <p> Generic prototype for setting parameters in a module. <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>data</em> </td><td>Instance </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>Name of the parameter </td></tr> <tr><td valign="top"></td><td valign="top"><em>v</em> </td><td>Value</td></tr> </table> </dl> This function is usually called from "Apply" buttons in config dialogs. It's called subsequently for all defined püarameters. After that, it *must* be called with a NULL argument for the name to signal, that all parameters are set. Modules can do some additional setup stuff then. If not, the name == NULL case must be handled nevertheless. </div> </div><p> <a class="anchor" name="g55a1c10315002062e6072aaab50f0e82"></a><!-- doxytag: member="parameter.h::bg_get_parameter_func_t" ref="g55a1c10315002062e6072aaab50f0e82" args=")(void *data, const char *name, bg_parameter_value_t *v)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef int(* <a class="el" href="group__parameter.html#g55a1c10315002062e6072aaab50f0e82">bg_get_parameter_func_t</a>)(void *data, const char *name, <a class="el" href="unionbg__parameter__value__t.html">bg_parameter_value_t</a> *v) </td> </tr> </table> </div> <div class="memdoc"> <p> Generic prototype for getting parameters from a module. <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>data</em> </td><td>Instance </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>Name of the parameter </td></tr> <tr><td valign="top"></td><td valign="top"><em>v</em> </td><td>Value</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if a parameter was found and set, 0 else.</dd></dl> Provide this function, if your module changes parameters by itself. Set the <a class="el" href="group__parameter.html#g2293456ab6e3f3b332642e1f8561d559">BG_PARAMETER_HIDE_DIALOG</a> to prevent building config dialogs for those parameters. </div> </div><p> <hr><h2>Enumeration Type Documentation</h2> <a class="anchor" name="g485cb1ae1f850f1d28241425e9555a2c"></a><!-- doxytag: member="parameter.h::bg_parameter_type_t" ref="g485cb1ae1f850f1d28241425e9555a2c" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="group__parameter.html#g485cb1ae1f850f1d28241425e9555a2c">bg_parameter_type_t</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Parameter type. <p> These define both the data type and the appearance of an eventual configuration widget. <dl compact><dt><b>Enumerator: </b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c25092139aa62c72322d6af45010988eb"></a><!-- doxytag: member="BG_PARAMETER_SECTION" ref="gg485cb1ae1f850f1d28241425e9555a2c25092139aa62c72322d6af45010988eb" args="" -->BG_PARAMETER_SECTION</em> </td><td> Dummy type. It contains no data but acts as a separator in notebook style configuration windows. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2cebdf145ac02247281276038831853660"></a><!-- doxytag: member="BG_PARAMETER_CHECKBUTTON" ref="gg485cb1ae1f850f1d28241425e9555a2cebdf145ac02247281276038831853660" args="" -->BG_PARAMETER_CHECKBUTTON</em> </td><td> Bool. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c51190e0dc82927424c40b5f61065e9b5"></a><!-- doxytag: member="BG_PARAMETER_INT" ref="gg485cb1ae1f850f1d28241425e9555a2c51190e0dc82927424c40b5f61065e9b5" args="" -->BG_PARAMETER_INT</em> </td><td> Integer spinbutton. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c6d86c0ec6f5b546d466e03592164e50d"></a><!-- doxytag: member="BG_PARAMETER_FLOAT" ref="gg485cb1ae1f850f1d28241425e9555a2c6d86c0ec6f5b546d466e03592164e50d" args="" -->BG_PARAMETER_FLOAT</em> </td><td> Float spinbutton. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2cef38d41b53ab4ce303724f2d46d73589"></a><!-- doxytag: member="BG_PARAMETER_SLIDER_INT" ref="gg485cb1ae1f850f1d28241425e9555a2cef38d41b53ab4ce303724f2d46d73589" args="" -->BG_PARAMETER_SLIDER_INT</em> </td><td> Integer slider. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c52a7773f9a37d77d697331c9d3cf3c31"></a><!-- doxytag: member="BG_PARAMETER_SLIDER_FLOAT" ref="gg485cb1ae1f850f1d28241425e9555a2c52a7773f9a37d77d697331c9d3cf3c31" args="" -->BG_PARAMETER_SLIDER_FLOAT</em> </td><td> Float slider. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2cbea75f0e743bba8872db286945d4a48c"></a><!-- doxytag: member="BG_PARAMETER_STRING" ref="gg485cb1ae1f850f1d28241425e9555a2cbea75f0e743bba8872db286945d4a48c" args="" -->BG_PARAMETER_STRING</em> </td><td> String (one line only). </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c6dd38a507e5c0d970a7b5221432457f8"></a><!-- doxytag: member="BG_PARAMETER_STRING_HIDDEN" ref="gg485cb1ae1f850f1d28241425e9555a2c6dd38a507e5c0d970a7b5221432457f8" args="" -->BG_PARAMETER_STRING_HIDDEN</em> </td><td> Encrypted string (displays as ***). </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c68a1ee4db8dddfb2b330292a9a4b57f0"></a><!-- doxytag: member="BG_PARAMETER_STRINGLIST" ref="gg485cb1ae1f850f1d28241425e9555a2c68a1ee4db8dddfb2b330292a9a4b57f0" args="" -->BG_PARAMETER_STRINGLIST</em> </td><td> Popdown menu with string values. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c51fc0d7b0f71970831a751cf6f972735"></a><!-- doxytag: member="BG_PARAMETER_COLOR_RGB" ref="gg485cb1ae1f850f1d28241425e9555a2c51fc0d7b0f71970831a751cf6f972735" args="" -->BG_PARAMETER_COLOR_RGB</em> </td><td> RGB Color. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c2b24485d870b7d3f7cd78830cb1a85b5"></a><!-- doxytag: member="BG_PARAMETER_COLOR_RGBA" ref="gg485cb1ae1f850f1d28241425e9555a2c2b24485d870b7d3f7cd78830cb1a85b5" args="" -->BG_PARAMETER_COLOR_RGBA</em> </td><td> RGBA Color. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2cd370b957575639c91d0d0bbc9b7875fa"></a><!-- doxytag: member="BG_PARAMETER_FONT" ref="gg485cb1ae1f850f1d28241425e9555a2cd370b957575639c91d0d0bbc9b7875fa" args="" -->BG_PARAMETER_FONT</em> </td><td> Font (contains fontconfig compatible fontname). </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c98aedec58df3ff6f4ea62ae6b6e3812a"></a><!-- doxytag: member="BG_PARAMETER_DEVICE" ref="gg485cb1ae1f850f1d28241425e9555a2c98aedec58df3ff6f4ea62ae6b6e3812a" args="" -->BG_PARAMETER_DEVICE</em> </td><td> Device. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c5a342226a50a884e83a35d5f6be7c380"></a><!-- doxytag: member="BG_PARAMETER_FILE" ref="gg485cb1ae1f850f1d28241425e9555a2c5a342226a50a884e83a35d5f6be7c380" args="" -->BG_PARAMETER_FILE</em> </td><td> File. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2ceb5c2655cdb61bf69e972d58f0754143"></a><!-- doxytag: member="BG_PARAMETER_DIRECTORY" ref="gg485cb1ae1f850f1d28241425e9555a2ceb5c2655cdb61bf69e972d58f0754143" args="" -->BG_PARAMETER_DIRECTORY</em> </td><td> Directory. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c812906528e74bdea167c526522798635"></a><!-- doxytag: member="BG_PARAMETER_MULTI_MENU" ref="gg485cb1ae1f850f1d28241425e9555a2c812906528e74bdea167c526522798635" args="" -->BG_PARAMETER_MULTI_MENU</em> </td><td> Menu with config- and infobutton. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2cad31fcd30df8574b4cdead5a35868df9"></a><!-- doxytag: member="BG_PARAMETER_MULTI_LIST" ref="gg485cb1ae1f850f1d28241425e9555a2cad31fcd30df8574b4cdead5a35868df9" args="" -->BG_PARAMETER_MULTI_LIST</em> </td><td> List with config- and infobutton. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2cea2d16d14ae816ee5ed471f86624a23c"></a><!-- doxytag: member="BG_PARAMETER_MULTI_CHAIN" ref="gg485cb1ae1f850f1d28241425e9555a2cea2d16d14ae816ee5ed471f86624a23c" args="" -->BG_PARAMETER_MULTI_CHAIN</em> </td><td> Several subitems (including suboptions) can be arranged in a chain. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c5c75b46116ea6ac57fbd068c8c3e26d3"></a><!-- doxytag: member="BG_PARAMETER_TIME" ref="gg485cb1ae1f850f1d28241425e9555a2c5c75b46116ea6ac57fbd068c8c3e26d3" args="" -->BG_PARAMETER_TIME</em> </td><td> Time. </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2cf9c597ad57ab289dfd9ea5eccc6669cf"></a><!-- doxytag: member="BG_PARAMETER_POSITION" ref="gg485cb1ae1f850f1d28241425e9555a2cf9c597ad57ab289dfd9ea5eccc6669cf" args="" -->BG_PARAMETER_POSITION</em> </td><td> Position (x/y coordinates, scaled 0..1). </td></tr> <tr><td valign="top"><em><a class="anchor" name="gg485cb1ae1f850f1d28241425e9555a2c2fa9bd874ced11134614ebd57ca11b82"></a><!-- doxytag: member="BG_PARAMETER_BUTTON" ref="gg485cb1ae1f850f1d28241425e9555a2c2fa9bd874ced11134614ebd57ca11b82" args="" -->BG_PARAMETER_BUTTON</em> </td><td> Pressing the button causes set_parameter to be called with NULL value. </td></tr> </table> </dl> </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="g9a239948bcaf809ecb797851fd9f14d8"></a><!-- doxytag: member="parameter.h::bg_parameter_info_copy_array" ref="g9a239948bcaf809ecb797851fd9f14d8" args="(const bg_parameter_info_t *src)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a>* bg_parameter_info_copy_array </td> <td>(</td> <td class="paramtype">const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td> <td class="paramname"> <em>src</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Copy a NULL terminated parameter array. <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>src</em> </td><td>Source array</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>A newly allocated parameter array, whose contents are copied from src.</dd></dl> Use <a class="el" href="group__parameter.html#g394bbc66cc56d03f762fd53d1b55cca9">bg_parameter_info_destroy_array</a> to free the returned array. </div> </div><p> <a class="anchor" name="g6775e05f6960267b839b1a9ce9e03f22"></a><!-- doxytag: member="parameter.h::bg_parameter_info_set_const_ptrs" ref="g6775e05f6960267b839b1a9ce9e03f22" args="(bg_parameter_info_t *info)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void bg_parameter_info_set_const_ptrs </td> <td>(</td> <td class="paramtype"><a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td> <td class="paramname"> <em>info</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Set the const pointers of a dynamically allocated parameter info. <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>info</em> </td><td>A parameter info</td></tr> </table> </dl> This copied the adresses of the *_nc pointers to their constant equivalents. Use this for each parameter in routines, which dynamically allocate parameter infos. </div> </div><p> <a class="anchor" name="g811d088d112d402b4f1ef398b35164e9"></a><!-- doxytag: member="parameter.h::bg_parameter_info_copy" ref="g811d088d112d402b4f1ef398b35164e9" args="(bg_parameter_info_t *dst, const bg_parameter_info_t *src)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void bg_parameter_info_copy </td> <td>(</td> <td class="paramtype"><a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td> <td class="paramname"> <em>dst</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_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> Copy a single parameter description. <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>Destination parameter description </td></tr> <tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Source parameter description</td></tr> </table> </dl> Make sure, that src is memset to 0 before calling this. </div> </div><p> <a class="anchor" name="g394bbc66cc56d03f762fd53d1b55cca9"></a><!-- doxytag: member="parameter.h::bg_parameter_info_destroy_array" ref="g394bbc66cc56d03f762fd53d1b55cca9" args="(bg_parameter_info_t *info)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void bg_parameter_info_destroy_array </td> <td>(</td> <td class="paramtype"><a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td> <td class="paramname"> <em>info</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Free a NULL terminated parameter array. <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>info</em> </td><td>Parameter array </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="g0f97ab6754e8064506bec87d3fdd2b66"></a><!-- doxytag: member="parameter.h::bg_parameter_value_copy" ref="g0f97ab6754e8064506bec87d3fdd2b66" args="(bg_parameter_value_t *dst, const bg_parameter_value_t *src, const bg_parameter_info_t *info)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void bg_parameter_value_copy </td> <td>(</td> <td class="paramtype"><a class="el" href="unionbg__parameter__value__t.html">bg_parameter_value_t</a> * </td> <td class="paramname"> <em>dst</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="unionbg__parameter__value__t.html">bg_parameter_value_t</a> * </td> <td class="paramname"> <em>src</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td> <td class="paramname"> <em>info</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Copy a parameter 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>dst</em> </td><td>Destination </td></tr> <tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Source </td></tr> <tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>Parameter description</td></tr> </table> </dl> Make sure, that dst is either memset to 0 or contains data, which was created by <a class="el" href="group__parameter.html#g0f97ab6754e8064506bec87d3fdd2b66">bg_parameter_value_copy</a> </div> </div><p> <a class="anchor" name="g1722917f8a346c5a8dae7178a5e84522"></a><!-- doxytag: member="parameter.h::bg_parameter_value_free" ref="g1722917f8a346c5a8dae7178a5e84522" args="(bg_parameter_value_t *val, bg_parameter_type_t type)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void bg_parameter_value_free </td> <td>(</td> <td class="paramtype"><a class="el" href="unionbg__parameter__value__t.html">bg_parameter_value_t</a> * </td> <td class="paramname"> <em>val</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__parameter.html#g485cb1ae1f850f1d28241425e9555a2c">bg_parameter_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> Free a parameter 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>val</em> </td><td>A parameter value </td></tr> <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>Type of the parameter </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="g16c7a1ac408ea8840018c627d742bd51"></a><!-- doxytag: member="parameter.h::bg_parameter_info_concat_arrays" ref="g16c7a1ac408ea8840018c627d742bd51" args="(bg_parameter_info_t const **srcs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a>* bg_parameter_info_concat_arrays </td> <td>(</td> <td class="paramtype"><a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> const ** </td> <td class="paramname"> <em>srcs</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Concatenate multiple arrays into one. <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>srcs</em> </td><td>NULL terminated array of source arrays </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>A newly allocated array </dd></dl> </div> </div><p> <a class="anchor" name="g38d92459a765c23f59a754bc1386cd83"></a><!-- doxytag: member="parameter.h::bg_parameter_get_selected" ref="g38d92459a765c23f59a754bc1386cd83" args="(const bg_parameter_info_t *info, const char *val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int bg_parameter_get_selected </td> <td>(</td> <td class="paramtype">const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td> <td class="paramname"> <em>info</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>val</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Get the index for a multi-options parameter. <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>info</em> </td><td>A parameter info </td></tr> <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>The value </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The index of val in the multi_names array</dd></dl> If val does not occur in the multi_names[] array, try the default value. If that fails as well, return 0. </div> </div><p> <a class="anchor" name="g39f54bd272e557b5d55e6b7290a5dcb4"></a><!-- doxytag: member="parameter.h::bg_parameter_find" ref="g39f54bd272e557b5d55e6b7290a5dcb4" args="(const bg_parameter_info_t *info, const char *name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a>* bg_parameter_find </td> <td>(</td> <td class="paramtype">const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td> <td class="paramname"> <em>info</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>name</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Find a parameter info. <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>info</em> </td><td>A parameter info </td></tr> <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>The name of the the parameter </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Parameter info matching name or NULL</dd></dl> This function looks for a parameter info with the given name in an array or parameters. Sub-parameters are also searched. </div> </div><p> <a class="anchor" name="gf79bfb7a44e89f9882cd99d6123066ec"></a><!-- doxytag: member="parameter.h::bg_xml_2_parameters" ref="gf79bfb7a44e89f9882cd99d6123066ec" args="(xmlDocPtr xml_doc, xmlNodePtr xml_parameters)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a>* bg_xml_2_parameters </td> <td>(</td> <td class="paramtype">xmlDocPtr </td> <td class="paramname"> <em>xml_doc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">xmlNodePtr </td> <td class="paramname"> <em>xml_parameters</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Convert a libxml2 node into a parameter array. <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>xml_doc</em> </td><td>Pointer to the xml document </td></tr> <tr><td valign="top"></td><td valign="top"><em>xml_parameters</em> </td><td>Pointer to the xml node containing the parameters </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>A newly allocated array</dd></dl> See the libxml2 documentation for more infos </div> </div><p> <a class="anchor" name="g8efd0779e8c6e3425bc345a0d99e3374"></a><!-- doxytag: member="parameter.h::bg_parameters_2_xml" ref="g8efd0779e8c6e3425bc345a0d99e3374" args="(const bg_parameter_info_t *info, xmlNodePtr xml_parameters)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void bg_parameters_2_xml </td> <td>(</td> <td class="paramtype">const <a class="el" href="structbg__parameter__info__s.html">bg_parameter_info_t</a> * </td> <td class="paramname"> <em>info</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">xmlNodePtr </td> <td class="paramname"> <em>xml_parameters</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Convert a parameter array into a libxml2 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>info</em> </td><td>Parameter array </td></tr> <tr><td valign="top"></td><td valign="top"><em>xml_parameters</em> </td><td>Pointer to the xml node for the parameters</td></tr> </table> </dl> See the libxml2 documentation for more infos </div> </div><p> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Sat Aug 22 01:28:05 2009 for gmerlin by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> </body> </html>