<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>ZVBI Library: Internal export module interface</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="examples.html"><span>Examples</span></a></li> </ul> </div> </div> <div class="contents"> <h1>Internal export module interface<br> <small> [<a class="el" href="group__Export.html">Exporting formatted Teletext and Closed Caption pages</a>]</small> </h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Data Structures</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__export.html">vbi_export</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__export__class.html">vbi_export_class</a></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5b50ed49bc27e89408e98c946060178d"></a><!-- doxytag: member="Exmod::VBI_OPTION_BOUNDS_INITIALIZER_" ref="g5b50ed49bc27e89408e98c946060178d" args="(type_, def_, min_, max_, step_)" --> #define </td><td class="memItemRight" valign="bottom"><b>VBI_OPTION_BOUNDS_INITIALIZER_</b>(type_, def_, min_, max_, step_) { type_ = def_ }, { type_ = min_ }, { type_ = max_ }, { type_ = step_ }</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#g5294e6bb3862d3e8deb85712bcc896ec">VBI_OPTION_BOOL_INITIALIZER</a>(key_, label_, def_, tip_)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#gcf6a0783eaa62ceb56c2f799770a099b">VBI_OPTION_INT_RANGE_INITIALIZER</a>(key_, label_, def_, min_, max_, step_, tip_)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#g44d7cca3a31209ab6ba9503974517f40">VBI_OPTION_INT_MENU_INITIALIZER</a>(key_, label_, def_,menu_, entries_, tip_)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#g87a153cf058e601deb83c29533254e6b">VBI_OPTION_REAL_RANGE_INITIALIZER</a>(key_, label_, def_, min_, max_, step_, tip_)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#g42a27eee38c0dfcf27c8900dc32c6d44">VBI_OPTION_REAL_MENU_INITIALIZER</a>(key_, label_, def_,menu_, entries_, tip_)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#g0cc437cd7d695b9a4a44b7fb773443f3">VBI_OPTION_STRING_INITIALIZER</a>(key_, label_, def_, tip_)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#g2b356ca1ed98a47efa8b85a135405c60">VBI_OPTION_STRING_MENU_INITIALIZER</a>(key_, label_, def_,menu_, entries_, tip_)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#ga15784af5f2ffc133575079bfb98adeb">VBI_OPTION_MENU_INITIALIZER</a>(key_, label_, def_, menu_,entries_, tip_)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#gc39fe176dadc4d377e693192e2018a38">VBI_AUTOREG_EXPORT_MODULE</a>(name)</td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#g2d9b079846530561a525b66bbec0d364">vbi_register_export_module</a> (<a class="el" href="structvbi__export__class.html">vbi_export_class</a> *)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcff845394aeffa1e2c0de6d449f72a15"></a><!-- doxytag: member="Exmod::_vbi_export_malloc_error" ref="gcff845394aeffa1e2c0de6d449f72a15" args="(vbi_export *e)" --> void </td><td class="memItemRight" valign="bottom"><b>_vbi_export_malloc_error</b> (<a class="el" href="structvbi__export.html">vbi_export</a> *e)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#g87337e3f477ab0c65d1d81ed0c874664">vbi_export_write_error</a> (<a class="el" href="structvbi__export.html">vbi_export</a> *)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#g9ff019ade9574fae5cbf5af605709d41">vbi_export_unknown_option</a> (<a class="el" href="structvbi__export.html">vbi_export</a> *, const char *keyword)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#gcbceab3a49fc720f1df144e399dffb76">vbi_export_invalid_option</a> (<a class="el" href="structvbi__export.html">vbi_export</a> *, const char *keyword,...)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#gfe535f80c12fa1371386aa20239c89dc">vbi_export_strdup</a> (<a class="el" href="structvbi__export.html">vbi_export</a> *, char **d, const char *s)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#gfd2e28d5996b997d5387791023fe7748">vbi_export_error_printf</a> (<a class="el" href="structvbi__export.html">vbi_export</a> *, const char *templ,...)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Exmod.html#gd9cdf8de954cf01dbdc385ecd922e314">vbi_ucs2be</a> (void)</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> This is the private interface between the public libzvbi export functions and export modules. libzvbi client applications don't use this.<p> Export modules include <code>"export.h"</code> to get these definitions. See example module exp-templ.c. <hr><h2>Define Documentation</h2> <a class="anchor" name="g5294e6bb3862d3e8deb85712bcc896ec"></a><!-- doxytag: member="export.h::VBI_OPTION_BOOL_INITIALIZER" ref="g5294e6bb3862d3e8deb85712bcc896ec" args="(key_, label_, def_, tip_)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VBI_OPTION_BOOL_INITIALIZER </td> <td>(</td> <td class="paramtype">key_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">label_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">def_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tip_ </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment">{ <a class="code" href="group__Export.html#gg962c6347c02825825c4dc57cef624e18c52bcaa99bba52bb01ca08261fbde02a">VBI_OPTION_BOOL</a>, key_, label_, VBI_OPTION_BOUNDS_INITIALIZER_( \ .num, def_, 0, 1, 1), { .num = NULL }, tip_ } </pre></div>Helper macro for export modules to build option lists. Use like this:<p> <div class="fragment"><pre class="fragment"> <a class="code" href="structvbi__option__info.html" title="Information about an export option.">vbi_option_info</a> myinfo = <a class="code" href="group__Exmod.html#g5294e6bb3862d3e8deb85712bcc896ec">VBI_OPTION_BOOL_INITIALIZER</a> (<span class="stringliteral">"mute"</span>, N_(<span class="stringliteral">"Switch sound on/off"</span>), FALSE, N_(<span class="stringliteral">"I am a tooltip"</span>)); </pre></div><p> N_() marks the string for i18n, see info gettext for details. <dl compact><dt><b>Examples: </b></dt><dd> <a class="el" href="src_2exp-templ_8c-example.html#a2">src/exp-templ.c</a>.</dl> </div> </div><p> <a class="anchor" name="gcf6a0783eaa62ceb56c2f799770a099b"></a><!-- doxytag: member="export.h::VBI_OPTION_INT_RANGE_INITIALIZER" ref="gcf6a0783eaa62ceb56c2f799770a099b" args="(key_, label_, def_, min_, max_, step_, tip_)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VBI_OPTION_INT_RANGE_INITIALIZER </td> <td>(</td> <td class="paramtype">key_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">label_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">def_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">min_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">max_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">step_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tip_ </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment">{ <a class="code" href="group__Export.html#gg962c6347c02825825c4dc57cef624e18e6270b87e1f1ad504a2f9f4b08831c72">VBI_OPTION_INT</a>, key_, label_, \ VBI_OPTION_BOUNDS_INITIALIZER_(.num, def_, min_, max_, step_), \ { .num = NULL }, tip_ } </pre></div>Helper macro for export modules to build option lists. Use like this:<p> <div class="fragment"><pre class="fragment"> <a class="code" href="structvbi__option__info.html" title="Information about an export option.">vbi_option_info</a> myinfo = <a class="code" href="group__Exmod.html#gcf6a0783eaa62ceb56c2f799770a099b">VBI_OPTION_INT_RANGE_INITIALIZER</a> (<span class="stringliteral">"sampling"</span>, N_(<span class="stringliteral">"Sampling rate"</span>), 44100, 8000, 48000, 100, NULL); </pre></div><p> Here we have no tooltip (<code>NULL</code>). <dl compact><dt><b>Examples: </b></dt><dd> <a class="el" href="src_2exp-templ_8c-example.html#a3">src/exp-templ.c</a>.</dl> </div> </div><p> <a class="anchor" name="g44d7cca3a31209ab6ba9503974517f40"></a><!-- doxytag: member="export.h::VBI_OPTION_INT_MENU_INITIALIZER" ref="g44d7cca3a31209ab6ba9503974517f40" args="(key_, label_, def_,menu_, entries_, tip_)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VBI_OPTION_INT_MENU_INITIALIZER </td> <td>(</td> <td class="paramtype">key_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">label_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">def_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">menu_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">entries_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tip_ </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment">{ <a class="code" href="group__Export.html#gg962c6347c02825825c4dc57cef624e18e6270b87e1f1ad504a2f9f4b08831c72">VBI_OPTION_INT</a>, key_, label_, \ VBI_OPTION_BOUNDS_INITIALIZER_(.num, def_, 0, (entries_) - 1, 1), \ { .num = menu_ }, tip_ } </pre></div>Helper macro for export modules to build option lists. Use like this:<p> <div class="fragment"><pre class="fragment"> <span class="keywordtype">int</span> mymenu[] = { 29, 30, 31 }; <a class="code" href="structvbi__option__info.html" title="Information about an export option.">vbi_option_info</a> myinfo = <a class="code" href="group__Exmod.html#g44d7cca3a31209ab6ba9503974517f40">VBI_OPTION_INT_MENU_INITIALIZER</a> (<span class="stringliteral">"days"</span>, NULL, 1, mymenu, 3, NULL); </pre></div><p> No label and tooltip (<code>NULL</code>), i. e. this option is not to be listed in the user interface. Default is entry 1 ("30") of 3 entries. <dl compact><dt><b>Examples: </b></dt><dd> <a class="el" href="src_2exp-templ_8c-example.html#a4">src/exp-templ.c</a>.</dl> </div> </div><p> <a class="anchor" name="g87a153cf058e601deb83c29533254e6b"></a><!-- doxytag: member="export.h::VBI_OPTION_REAL_RANGE_INITIALIZER" ref="g87a153cf058e601deb83c29533254e6b" args="(key_, label_, def_, min_, max_, step_, tip_)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VBI_OPTION_REAL_RANGE_INITIALIZER </td> <td>(</td> <td class="paramtype">key_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">label_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">def_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">min_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">max_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">step_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tip_ </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment">{ <a class="code" href="group__Export.html#gg962c6347c02825825c4dc57cef624e18a6db7cf160c1028967ee90a6a69de6a9">VBI_OPTION_REAL</a>, key_, label_, \ VBI_OPTION_BOUNDS_INITIALIZER_(.dbl, def_, min_, max_, step_), \ { .dbl = NULL }, tip_ } </pre></div>Helper macro for export modules to build option lists. Use like <a class="el" href="group__Exmod.html#gcf6a0783eaa62ceb56c2f799770a099b">VBI_OPTION_INT_RANGE_INITIALIZER()</a>, just with doubles but ints. <dl compact><dt><b>Examples: </b></dt><dd> <a class="el" href="src_2exp-templ_8c-example.html#a5">src/exp-templ.c</a>.</dl> </div> </div><p> <a class="anchor" name="g42a27eee38c0dfcf27c8900dc32c6d44"></a><!-- doxytag: member="export.h::VBI_OPTION_REAL_MENU_INITIALIZER" ref="g42a27eee38c0dfcf27c8900dc32c6d44" args="(key_, label_, def_,menu_, entries_, tip_)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VBI_OPTION_REAL_MENU_INITIALIZER </td> <td>(</td> <td class="paramtype">key_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">label_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">def_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">menu_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">entries_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tip_ </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment">{ <a class="code" href="group__Export.html#gg962c6347c02825825c4dc57cef624e18a6db7cf160c1028967ee90a6a69de6a9">VBI_OPTION_REAL</a>, key_, label_, \ VBI_OPTION_BOUNDS_INITIALIZER_(.num, def_, 0, (entries_) - 1, 1), \ { .dbl = menu_ }, tip_ } </pre></div>Helper macro for export modules to build option lists. Use like <a class="el" href="group__Exmod.html#g44d7cca3a31209ab6ba9503974517f40">VBI_OPTION_INT_MENU_INITIALIZER()</a>, just with an array of doubles but ints. </div> </div><p> <a class="anchor" name="g0cc437cd7d695b9a4a44b7fb773443f3"></a><!-- doxytag: member="export.h::VBI_OPTION_STRING_INITIALIZER" ref="g0cc437cd7d695b9a4a44b7fb773443f3" args="(key_, label_, def_, tip_)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VBI_OPTION_STRING_INITIALIZER </td> <td>(</td> <td class="paramtype">key_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">label_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">def_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tip_ </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment">{ <a class="code" href="group__Export.html#gg962c6347c02825825c4dc57cef624e186ae6c1b73bc8ac53169cd947b3840f4e">VBI_OPTION_STRING</a>, key_, label_, VBI_OPTION_BOUNDS_INITIALIZER_( \ .str, def_, NULL, NULL, NULL), { .str = NULL }, tip_ } </pre></div>Helper macro for export modules to build option lists. Use like this:<p> <div class="fragment"><pre class="fragment"> <a class="code" href="structvbi__option__info.html" title="Information about an export option.">vbi_option_info</a> myinfo = <a class="code" href="group__Exmod.html#g0cc437cd7d695b9a4a44b7fb773443f3">VBI_OPTION_STRING_INITIALIZER</a> (<span class="stringliteral">"comment"</span>, N_(<span class="stringliteral">"Comment"</span>), <span class="stringliteral">"bububaba"</span>, <span class="stringliteral">"Please enter a string"</span>); </pre></div> <dl compact><dt><b>Examples: </b></dt><dd> <a class="el" href="src_2exp-templ_8c-example.html#a6">src/exp-templ.c</a>.</dl> </div> </div><p> <a class="anchor" name="g2b356ca1ed98a47efa8b85a135405c60"></a><!-- doxytag: member="export.h::VBI_OPTION_STRING_MENU_INITIALIZER" ref="g2b356ca1ed98a47efa8b85a135405c60" args="(key_, label_, def_,menu_, entries_, tip_)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VBI_OPTION_STRING_MENU_INITIALIZER </td> <td>(</td> <td class="paramtype">key_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">label_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">def_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">menu_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">entries_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tip_ </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment">{ <a class="code" href="group__Export.html#gg962c6347c02825825c4dc57cef624e186ae6c1b73bc8ac53169cd947b3840f4e">VBI_OPTION_STRING</a>, key_, label_, \ VBI_OPTION_BOUNDS_INITIALIZER_(.str, def_, 0, (entries_) - 1, 1), \ { .str = menu_ }, tip_ } </pre></div>Helper macro for export modules to build option lists. Use like this:<p> <div class="fragment"><pre class="fragment"> <span class="keywordtype">char</span> *mymenu[] = { <span class="stringliteral">"txt"</span>, <span class="stringliteral">"html"</span> }; <a class="code" href="structvbi__option__info.html" title="Information about an export option.">vbi_option_info</a> myinfo = <a class="code" href="group__Exmod.html#g2b356ca1ed98a47efa8b85a135405c60">VBI_OPTION_STRING_MENU_INITIALIZER</a> (<span class="stringliteral">"extension"</span>, <span class="stringliteral">"Ext"</span>, 0, mymenu, 2, N_(<span class="stringliteral">"Select an extension"</span>)); </pre></div><p> Remember this is like <a class="el" href="group__Exmod.html#g0cc437cd7d695b9a4a44b7fb773443f3">VBI_OPTION_STRING_INITIALIZER()</a> in the sense that the vbi client can pass any string as option value, not just those proposed in the menu. In contrast a plain menu option as with <a class="el" href="group__Exmod.html#ga15784af5f2ffc133575079bfb98adeb">VBI_OPTION_MENU_INITIALIZER()</a> expects menu indices as input. </div> </div><p> <a class="anchor" name="ga15784af5f2ffc133575079bfb98adeb"></a><!-- doxytag: member="export.h::VBI_OPTION_MENU_INITIALIZER" ref="ga15784af5f2ffc133575079bfb98adeb" args="(key_, label_, def_, menu_,entries_, tip_)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VBI_OPTION_MENU_INITIALIZER </td> <td>(</td> <td class="paramtype">key_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">label_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">def_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">menu_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">entries_, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tip_ </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> <b>Value:</b><div class="fragment"><pre class="fragment">{ <a class="code" href="group__Export.html#gg962c6347c02825825c4dc57cef624e186025de4d3bdf673ca38e727e7978adf3">VBI_OPTION_MENU</a>, key_, label_, \ VBI_OPTION_BOUNDS_INITIALIZER_(.num, def_, 0, (entries_) - 1, 1), \ { .str = (<span class="keywordtype">char</span> **)(menu_) }, tip_ } </pre></div>Helper macro for export modules to build option lists. Use like this:<p> <div class="fragment"><pre class="fragment"> <span class="keywordtype">char</span> *mymenu[] = { N_(<span class="stringliteral">"Monday"</span>), N_(<span class="stringliteral">"Tuesday"</span>) }; <a class="code" href="structvbi__option__info.html" title="Information about an export option.">vbi_option_info</a> myinfo = <a class="code" href="group__Exmod.html#ga15784af5f2ffc133575079bfb98adeb">VBI_OPTION_MENU_INITIALIZER</a> (<span class="stringliteral">"weekday"</span>, <span class="stringliteral">"Weekday"</span>, 0, mymenu, 2, N_(<span class="stringliteral">"Select a weekday"</span>)); </pre></div> <dl compact><dt><b>Examples: </b></dt><dd> <a class="el" href="src_2exp-templ_8c-example.html#a7">src/exp-templ.c</a>.</dl> </div> </div><p> <a class="anchor" name="gc39fe176dadc4d377e693192e2018a38"></a><!-- doxytag: member="export.h::VBI_AUTOREG_EXPORT_MODULE" ref="gc39fe176dadc4d377e693192e2018a38" args="(name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VBI_AUTOREG_EXPORT_MODULE </td> <td>(</td> <td class="paramtype">name </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Doesn't work, sigh. <dl compact><dt><b>Examples: </b></dt><dd> <a class="el" href="src_2exp-templ_8c-example.html#a21">src/exp-templ.c</a>.</dl> </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="g2d9b079846530561a525b66bbec0d364"></a><!-- doxytag: member="export.h::vbi_register_export_module" ref="g2d9b079846530561a525b66bbec0d364" args="(vbi_export_class *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void vbi_register_export_module </td> <td>(</td> <td class="paramtype"><a class="el" href="structvbi__export__class.html">vbi_export_class</a> * </td> <td class="paramname"> <em>new_module</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <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>new_module</em> </td><td>Static pointer to initialized <a class="el" href="structvbi__export__class.html">vbi_export_class</a> structure.</td></tr> </table> </dl> Registers a new export module. </div> </div><p> <a class="anchor" name="g87337e3f477ab0c65d1d81ed0c874664"></a><!-- doxytag: member="export.h::vbi_export_write_error" ref="g87337e3f477ab0c65d1d81ed0c874664" args="(vbi_export *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void vbi_export_write_error </td> <td>(</td> <td class="paramtype"><a class="el" href="structvbi__export.html">vbi_export</a> * </td> <td class="paramname"> <em>export</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <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>export</em> </td><td>Pointer to a initialized <a class="el" href="structvbi__export.html">vbi_export</a> object.</td></tr> </table> </dl> Similar to vbi_export_error_printf this function stores an error description in the <em>export</em> object, after examining the errno variable and choosing an appropriate message. Only export modules call this function. </div> </div><p> <a class="anchor" name="g9ff019ade9574fae5cbf5af605709d41"></a><!-- doxytag: member="export.h::vbi_export_unknown_option" ref="g9ff019ade9574fae5cbf5af605709d41" args="(vbi_export *, const char *keyword)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void vbi_export_unknown_option </td> <td>(</td> <td class="paramtype"><a class="el" href="structvbi__export.html">vbi_export</a> * </td> <td class="paramname"> <em>export</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>keyword</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <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>export</em> </td><td>Pointer to a initialized <a class="el" href="structvbi__export.html">vbi_export</a> object. </td></tr> <tr><td valign="top"></td><td valign="top"><em>keyword</em> </td><td>Name of the unknown option.</td></tr> </table> </dl> Store an error description in the <em>export</em> object. </div> </div><p> <a class="anchor" name="gcbceab3a49fc720f1df144e399dffb76"></a><!-- doxytag: member="export.h::vbi_export_invalid_option" ref="gcbceab3a49fc720f1df144e399dffb76" args="(vbi_export *, const char *keyword,...)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void vbi_export_invalid_option </td> <td>(</td> <td class="paramtype"><a class="el" href="structvbi__export.html">vbi_export</a> * </td> <td class="paramname"> <em>export</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>keyword</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> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>export</em> </td><td>Pointer to a initialized <a class="el" href="structvbi__export.html">vbi_export</a> object. </td></tr> <tr><td valign="top"></td><td valign="top"><em>keyword</em> </td><td>Name of the unknown option. </td></tr> <tr><td valign="top"></td><td valign="top"><em>...</em> </td><td>Invalid value, type depending on the option.</td></tr> </table> </dl> Store an error description in the <em>export</em> object. </div> </div><p> <a class="anchor" name="gfe535f80c12fa1371386aa20239c89dc"></a><!-- doxytag: member="export.h::vbi_export_strdup" ref="gfe535f80c12fa1371386aa20239c89dc" args="(vbi_export *, char **d, const char *s)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* vbi_export_strdup </td> <td>(</td> <td class="paramtype"><a class="el" href="structvbi__export.html">vbi_export</a> * </td> <td class="paramname"> <em>export</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"> <em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>s</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <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>export</em> </td><td>Pointer to a initialized <a class="el" href="structvbi__export.html">vbi_export</a> object. </td></tr> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>If non-zero, store pointer to allocated string here. When *d is non-zero, free(*d) the old string first. </td></tr> <tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>String to be duplicated.</td></tr> </table> </dl> Helper function for export modules.<p> Same as the libc strdup(), except for <em>d</em> argument and setting the <em>export</em> error string on failure.<p> <dl class="return" compact><dt><b>Returns:</b></dt><dd><code>NULL</code> on failure, pointer to malloc()ed string otherwise. </dd></dl> </div> </div><p> <a class="anchor" name="gfd2e28d5996b997d5387791023fe7748"></a><!-- doxytag: member="export.h::vbi_export_error_printf" ref="gfd2e28d5996b997d5387791023fe7748" args="(vbi_export *, const char *templ,...)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void vbi_export_error_printf </td> <td>(</td> <td class="paramtype"><a class="el" href="structvbi__export.html">vbi_export</a> * </td> <td class="paramname"> <em>export</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>templ</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> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>export</em> </td><td>Pointer to a initialized <a class="el" href="structvbi__export.html">vbi_export</a> object. </td></tr> <tr><td valign="top"></td><td valign="top"><em>templ</em> </td><td>See printf(). </td></tr> <tr><td valign="top"></td><td valign="top"><em>...</em> </td><td>See printf().</td></tr> </table> </dl> Store an error description in the <em>export</em> object. Including the current error description (to append or prepend) is safe. </div> </div><p> <a class="anchor" name="gd9cdf8de954cf01dbdc385ecd922e314"></a><!-- doxytag: member="export.h::vbi_ucs2be" ref="gd9cdf8de954cf01dbdc385ecd922e314" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int vbi_ucs2be </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Helper function for export modules, since iconv seems undecided what it really wants (not every iconv supports UCS-2LE/BE).<p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if iconv "UCS-2" is BE on this machine, 0 if LE, -1 if unknown. </dd></dl> </div> </div><p> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Wed May 27 04:47:58 2009 for ZVBI Library 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>