|
- <!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"/>
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
- <meta name="generator" content="Doxygen 1.8.8"/>
- <title>DISTRHO Plugin Framework: Plugin Macros</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/search.js"></script>
- <script type="text/javascript">
- $(document).ready(function() { searchBox.OnSelectItem(0); });
- </script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">DISTRHO Plugin Framework
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.8 -->
- <script type="text/javascript">
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
- </script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.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)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- </div><!-- top -->
- <!-- 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>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Modules</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Pages</a></div>
-
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
- </iframe>
- </div>
-
- <div class="header">
- <div class="summary">
- <a href="#define-members">Macros</a> </div>
- <div class="headertitle">
- <div class="title">Plugin Macros</div> </div>
- </div><!--header-->
- <div class="contents">
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
- Macros</h2></td></tr>
- <tr class="memitem:ga888482a9f695c2ca2f433e5f3172dcc4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#ga888482a9f695c2ca2f433e5f3172dcc4">DISTRHO_PLUGIN_NAME</a>   "Plugin Name"</td></tr>
- <tr class="separator:ga888482a9f695c2ca2f433e5f3172dcc4"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga5f4f3d9a5dc3c23882d158e636319998"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#ga5f4f3d9a5dc3c23882d158e636319998">DISTRHO_PLUGIN_NUM_INPUTS</a>   2</td></tr>
- <tr class="separator:ga5f4f3d9a5dc3c23882d158e636319998"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga917195804ebcb2bb48c9fad52b20b3ca"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#ga917195804ebcb2bb48c9fad52b20b3ca">DISTRHO_PLUGIN_NUM_OUTPUTS</a>   2</td></tr>
- <tr class="separator:ga917195804ebcb2bb48c9fad52b20b3ca"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga9cc186448134e6a1956474b3878c97a8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#ga9cc186448134e6a1956474b3878c97a8">DISTRHO_PLUGIN_URI</a>   "urn:distrho:name"</td></tr>
- <tr class="separator:ga9cc186448134e6a1956474b3878c97a8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gacf8a1af679c09637ba0bdc5f4f8e37dd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#gacf8a1af679c09637ba0bdc5f4f8e37dd">DISTRHO_PLUGIN_HAS_UI</a>   1</td></tr>
- <tr class="separator:gacf8a1af679c09637ba0bdc5f4f8e37dd"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga82546dd199fcea338b113f2f6da84ced"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#ga82546dd199fcea338b113f2f6da84ced">DISTRHO_PLUGIN_IS_RT_SAFE</a>   1</td></tr>
- <tr class="separator:ga82546dd199fcea338b113f2f6da84ced"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga854bde6b6fdb0d47182149dbab0fed72"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#ga854bde6b6fdb0d47182149dbab0fed72">DISTRHO_PLUGIN_IS_SYNTH</a>   1</td></tr>
- <tr class="separator:ga854bde6b6fdb0d47182149dbab0fed72"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gac6873a3950f52f3fde8e386af63b69a1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#gac6873a3950f52f3fde8e386af63b69a1">DISTRHO_PLUGIN_WANT_DIRECT_ACCESS</a>   0</td></tr>
- <tr class="separator:gac6873a3950f52f3fde8e386af63b69a1"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gad6b0ebf10e048f4742f29735da4d4930"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#gad6b0ebf10e048f4742f29735da4d4930">DISTRHO_PLUGIN_WANT_LATENCY</a>   1</td></tr>
- <tr class="separator:gad6b0ebf10e048f4742f29735da4d4930"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gadf2e2eb7550e4116001c816adfb04a70"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#gadf2e2eb7550e4116001c816adfb04a70">DISTRHO_PLUGIN_WANT_MIDI_INPUT</a>   1</td></tr>
- <tr class="separator:gadf2e2eb7550e4116001c816adfb04a70"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga548522eb91344a45841a5a95ff4f8073"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#ga548522eb91344a45841a5a95ff4f8073">DISTRHO_PLUGIN_WANT_MIDI_OUTPUT</a>   1</td></tr>
- <tr class="separator:ga548522eb91344a45841a5a95ff4f8073"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gad95e24b17f196260cee15255fdb5b677"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#gad95e24b17f196260cee15255fdb5b677">DISTRHO_PLUGIN_WANT_PROGRAMS</a>   1</td></tr>
- <tr class="separator:gad95e24b17f196260cee15255fdb5b677"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga255f43cc0997af8b56abcca260c875e0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#ga255f43cc0997af8b56abcca260c875e0">DISTRHO_PLUGIN_WANT_STATE</a>   1</td></tr>
- <tr class="separator:ga255f43cc0997af8b56abcca260c875e0"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga496610b956d931b1940d07da48d123f2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#ga496610b956d931b1940d07da48d123f2">DISTRHO_PLUGIN_WANT_TIMEPOS</a>   1</td></tr>
- <tr class="separator:ga496610b956d931b1940d07da48d123f2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gad49e79936a2aa5afa089cbc051426ccd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#gad49e79936a2aa5afa089cbc051426ccd">DISTRHO_UI_USE_NANOVG</a>   1</td></tr>
- <tr class="separator:gad49e79936a2aa5afa089cbc051426ccd"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga420a88022da249b9f38a6046998dbd7c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__PluginMacros.html#ga420a88022da249b9f38a6046998dbd7c">DISTRHO_UI_URI</a>   <a class="el" href="group__PluginMacros.html#ga9cc186448134e6a1956474b3878c97a8">DISTRHO_PLUGIN_URI</a> "#UI"</td></tr>
- <tr class="separator:ga420a88022da249b9f38a6046998dbd7c"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <p>C Macros that describe your plugin. (defined in the "DistrhoPluginInfo.h" file)</p>
- <p>With these macros you can tell the host what features your plugin requires.<br />
- Depending on which macros you enable, new functions will be available to call and/or override.</p>
- <p>All values are either integer or strings.<br />
- For boolean-like values 1 means 'on' and 0 means 'off'.</p>
- <p>The values defined in this file are for documentation purposes only.<br />
- All macros are disabled by default.</p>
- <p>Only 4 macros are required, they are:</p><ul>
- <li><a class="el" href="group__PluginMacros.html#ga888482a9f695c2ca2f433e5f3172dcc4">DISTRHO_PLUGIN_NAME</a></li>
- <li><a class="el" href="group__PluginMacros.html#ga5f4f3d9a5dc3c23882d158e636319998">DISTRHO_PLUGIN_NUM_INPUTS</a></li>
- <li><a class="el" href="group__PluginMacros.html#ga917195804ebcb2bb48c9fad52b20b3ca">DISTRHO_PLUGIN_NUM_OUTPUTS</a></li>
- <li><a class="el" href="group__PluginMacros.html#ga9cc186448134e6a1956474b3878c97a8">DISTRHO_PLUGIN_URI</a> </li>
- </ul>
- <h2 class="groupheader">Macro Definition Documentation</h2>
- <a class="anchor" id="ga888482a9f695c2ca2f433e5f3172dcc4"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_NAME   "Plugin Name"</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>The plugin name.<br />
- This is used to identify your plugin before a <a class="el" href="classPlugin.html">Plugin</a> instance can be created. </p><dl class="section note"><dt>Note</dt><dd>This macro is required. </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="ga5f4f3d9a5dc3c23882d158e636319998"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_NUM_INPUTS   2</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Number of audio inputs the plugin has. </p><dl class="section note"><dt>Note</dt><dd>This macro is required. </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="ga917195804ebcb2bb48c9fad52b20b3ca"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_NUM_OUTPUTS   2</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Number of audio outputs the plugin has. </p><dl class="section note"><dt>Note</dt><dd>This macro is required. </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="ga9cc186448134e6a1956474b3878c97a8"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_URI   "urn:distrho:name"</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>The plugin URI when exporting in LV2 format. </p><dl class="section note"><dt>Note</dt><dd>This macro is required. </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="gacf8a1af679c09637ba0bdc5f4f8e37dd"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_HAS_UI   1</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Wherever the plugin has a custom UI. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__PluginMacros.html#gad49e79936a2aa5afa089cbc051426ccd">DISTRHO_UI_USE_NANOVG</a> </dd>
- <dd>
- <a class="el" href="classUI.html">UI</a> </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="ga82546dd199fcea338b113f2f6da84ced"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_IS_RT_SAFE   1</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Wherever the plugin processing is realtime-safe.<br />
- TODO - list rtsafe requirements </p>
-
- </div>
- </div>
- <a class="anchor" id="ga854bde6b6fdb0d47182149dbab0fed72"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_IS_SYNTH   1</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Wherever the plugin is a synth.<br />
- <a class="el" href="group__PluginMacros.html#gadf2e2eb7550e4116001c816adfb04a70">DISTRHO_PLUGIN_WANT_MIDI_INPUT</a> is automatically enabled when this is too. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__PluginMacros.html#gadf2e2eb7550e4116001c816adfb04a70">DISTRHO_PLUGIN_WANT_MIDI_INPUT</a> </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="gac6873a3950f52f3fde8e386af63b69a1"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS   0</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Enable direct access between the UI and plugin code. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classUI.html#a5393f505fc8702905c15c70c9fcf0d48">UI::d_getPluginInstancePointer()</a> </dd></dl>
- <dl class="section note"><dt>Note</dt><dd>DO NOT USE THIS UNLESS STRICTLY NECESSARY!! Try to avoid it at all costs! </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="gad6b0ebf10e048f4742f29735da4d4930"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_WANT_LATENCY   1</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Wherever the plugin introduces latency during audio or midi processing. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#a7816b45ffb52b0a6308cabb792b1a56f">Plugin::d_setLatency(uint32_t)</a> </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="gadf2e2eb7550e4116001c816adfb04a70"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_WANT_MIDI_INPUT   1</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Wherever the plugin wants MIDI input.<br />
- This is automatically enabled if <a class="el" href="group__PluginMacros.html#ga854bde6b6fdb0d47182149dbab0fed72">DISTRHO_PLUGIN_IS_SYNTH</a> is true. </p>
-
- </div>
- </div>
- <a class="anchor" id="ga548522eb91344a45841a5a95ff4f8073"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT   1</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Wherever the plugin wants MIDI output. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#afa10aea18e4036b4a7487f2779d92e0f">Plugin::d_writeMidiEvent(const MidiEvent&)</a> </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="gad95e24b17f196260cee15255fdb5b677"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_WANT_PROGRAMS   1</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Wherever the plugin provides its own internal programs. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#a8a1792b7c5c6a3fd9cd626c7156ec3b6">Plugin::d_initProgramName(uint32_t, d_string&)</a> </dd>
- <dd>
- <a class="el" href="classPlugin.html#a1d001e50781b35df23f6d9a218f5f804">Plugin::d_setProgram(uint32_t)</a> </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="ga255f43cc0997af8b56abcca260c875e0"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_WANT_STATE   1</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Wherever the plugin uses internal non-parameter data. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#a65f9f9d4a30b0a56dfa42703c0b4db76">Plugin::d_initState(uint32_t, d_string&, d_string&)</a> </dd>
- <dd>
- <a class="el" href="classPlugin.html#ad9c46a36cab96f52a0370043093bca68">Plugin::d_setState(const char*, const char*)</a> </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="ga496610b956d931b1940d07da48d123f2"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_PLUGIN_WANT_TIMEPOS   1</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Wherever the plugin wants time position information from the host. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classPlugin.html#ade0a082a3a2936286537a04f4b972225">Plugin::d_getTimePosition()</a> </dd></dl>
-
- </div>
- </div>
- <a class="anchor" id="gad49e79936a2aa5afa089cbc051426ccd"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_UI_USE_NANOVG   1</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Wherever the UI uses NanoVG for drawing instead of the default raw OpenGL calls.<br />
- When enabled your UI instance will subclass NanoWidget instead of Widget. </p>
-
- </div>
- </div>
- <a class="anchor" id="ga420a88022da249b9f38a6046998dbd7c"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define DISTRHO_UI_URI   <a class="el" href="group__PluginMacros.html#ga9cc186448134e6a1956474b3878c97a8">DISTRHO_PLUGIN_URI</a> "#UI"</td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>The UI URI when exporting in LV2 format.<br />
- By default this is set to <a class="el" href="group__PluginMacros.html#ga9cc186448134e6a1956474b3878c97a8">DISTRHO_PLUGIN_URI</a> with "#UI" as suffix. </p>
-
- </div>
- </div>
- </div><!-- contents -->
- <!-- start footer part -->
- <hr class="footer"/><address class="footer"><small>
- Generated on Tue Apr 21 2015 15:18:54 for DISTRHO Plugin Framework by  <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/>
- </a> 1.8.8
- </small></address>
- </body>
- </html>
|