annotate doc/html/class_onset_detection_function.html @ 114:d6d9df2db3e1

Update documentation
author Adam Stark <adamstark.uk@gmail.com>
date Fri, 18 Aug 2023 10:48:26 +0200
parents ae3ec9b14092
children
rev   line source
adamstark@114 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
adamstark@114 2 <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
adamstark@60 3 <head>
adamstark@60 4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
adamstark@114 5 <meta http-equiv="X-UA-Compatible" content="IE=11"/>
adamstark@114 6 <meta name="generator" content="Doxygen 1.9.7"/>
adamstark@114 7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
adamstark@60 8 <title>BTrack - A Real-Time Beat Tracker: OnsetDetectionFunction Class Reference</title>
adamstark@60 9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
adamstark@60 10 <script type="text/javascript" src="jquery.js"></script>
adamstark@60 11 <script type="text/javascript" src="dynsections.js"></script>
adamstark@60 12 <link href="search/search.css" rel="stylesheet" type="text/css"/>
adamstark@114 13 <script type="text/javascript" src="search/searchdata.js"></script>
adamstark@60 14 <script type="text/javascript" src="search/search.js"></script>
adamstark@60 15 <link href="doxygen.css" rel="stylesheet" type="text/css" />
adamstark@60 16 </head>
adamstark@60 17 <body>
adamstark@60 18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
adamstark@60 19 <div id="titlearea">
adamstark@60 20 <table cellspacing="0" cellpadding="0">
adamstark@60 21 <tbody>
adamstark@114 22 <tr id="projectrow">
adamstark@114 23 <td id="projectalign">
adamstark@60 24 <div id="projectname">BTrack - A Real-Time Beat Tracker
adamstark@60 25 </div>
adamstark@60 26 </td>
adamstark@60 27 </tr>
adamstark@60 28 </tbody>
adamstark@60 29 </table>
adamstark@60 30 </div>
adamstark@60 31 <!-- end header part -->
adamstark@114 32 <!-- Generated by Doxygen 1.9.7 -->
adamstark@60 33 <script type="text/javascript">
adamstark@114 34 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
adamstark@114 35 var searchBox = new SearchBox("searchBox", "search/",'.html');
adamstark@114 36 /* @license-end */
adamstark@60 37 </script>
adamstark@114 38 <script type="text/javascript" src="menudata.js"></script>
adamstark@114 39 <script type="text/javascript" src="menu.js"></script>
adamstark@114 40 <script type="text/javascript">
adamstark@114 41 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
adamstark@114 42 $(function() {
adamstark@114 43 initMenu('',true,false,'search.php','Search');
adamstark@114 44 $(document).ready(function() { init_search(); });
adamstark@114 45 });
adamstark@114 46 /* @license-end */
adamstark@114 47 </script>
adamstark@114 48 <div id="main-nav"></div>
adamstark@60 49 <!-- window showing the filter options -->
adamstark@60 50 <div id="MSearchSelectWindow"
adamstark@60 51 onmouseover="return searchBox.OnSearchSelectShow()"
adamstark@60 52 onmouseout="return searchBox.OnSearchSelectHide()"
adamstark@60 53 onkeydown="return searchBox.OnSearchSelectKey(event)">
adamstark@114 54 </div>
adamstark@60 55
adamstark@60 56 <!-- iframe showing the search results (closed by default) -->
adamstark@60 57 <div id="MSearchResultsWindow">
adamstark@114 58 <div id="MSearchResults">
adamstark@114 59 <div class="SRPage">
adamstark@114 60 <div id="SRIndex">
adamstark@114 61 <div id="SRResults"></div>
adamstark@114 62 <div class="SRStatus" id="Loading">Loading...</div>
adamstark@114 63 <div class="SRStatus" id="Searching">Searching...</div>
adamstark@114 64 <div class="SRStatus" id="NoMatches">No Matches</div>
adamstark@114 65 </div>
adamstark@114 66 </div>
adamstark@114 67 </div>
adamstark@60 68 </div>
adamstark@60 69
adamstark@60 70 </div><!-- top -->
adamstark@60 71 <div class="header">
adamstark@60 72 <div class="summary">
adamstark@60 73 <a href="#pub-methods">Public Member Functions</a> &#124;
adamstark@60 74 <a href="class_onset_detection_function-members.html">List of all members</a> </div>
adamstark@114 75 <div class="headertitle"><div class="title">OnsetDetectionFunction Class Reference</div></div>
adamstark@60 76 </div><!--header-->
adamstark@60 77 <div class="contents">
adamstark@61 78
adamstark@61 79 <p><code>#include &lt;<a class="el" href="_onset_detection_function_8h_source.html">OnsetDetectionFunction.h</a>&gt;</code></p>
adamstark@60 80 <table class="memberdecls">
adamstark@114 81 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
adamstark@60 82 Public Member Functions</h2></td></tr>
adamstark@114 83 <tr class="memitem:a507e6258c5e703c989a6a58d2d8f4dcb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#a507e6258c5e703c989a6a58d2d8f4dcb">OnsetDetectionFunction</a> (int hopSize, int frameSize)</td></tr>
adamstark@114 84 <tr class="separator:a507e6258c5e703c989a6a58d2d8f4dcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
adamstark@114 85 <tr class="memitem:a89f96562c098e118eb879672b43d4ed0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#a89f96562c098e118eb879672b43d4ed0">OnsetDetectionFunction</a> (int hopSize, int frameSize, int onsetDetectionFunctionType, int windowType)</td></tr>
adamstark@114 86 <tr class="separator:a89f96562c098e118eb879672b43d4ed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
adamstark@60 87 <tr class="memitem:aa01f8125c950f3def45154878107e503"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#aa01f8125c950f3def45154878107e503">~OnsetDetectionFunction</a> ()</td></tr>
adamstark@60 88 <tr class="separator:aa01f8125c950f3def45154878107e503"><td class="memSeparator" colspan="2">&#160;</td></tr>
adamstark@114 89 <tr class="memitem:a527d4f433d4f7bcd098b54190ee89297"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#a527d4f433d4f7bcd098b54190ee89297">initialise</a> (int hopSize, int frameSize)</td></tr>
adamstark@114 90 <tr class="separator:a527d4f433d4f7bcd098b54190ee89297"><td class="memSeparator" colspan="2">&#160;</td></tr>
adamstark@114 91 <tr class="memitem:a3fb3c827993aa854b85f4d4c44460a29"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#a3fb3c827993aa854b85f4d4c44460a29">initialise</a> (int hopSize, int frameSize, int onsetDetectionFunctionType, int windowType)</td></tr>
adamstark@114 92 <tr class="separator:a3fb3c827993aa854b85f4d4c44460a29"><td class="memSeparator" colspan="2">&#160;</td></tr>
adamstark@60 93 <tr class="memitem:a7b8fffe6221d3bd4f6cac82c17db0e92"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#a7b8fffe6221d3bd4f6cac82c17db0e92">calculateOnsetDetectionFunctionSample</a> (double *buffer)</td></tr>
adamstark@60 94 <tr class="separator:a7b8fffe6221d3bd4f6cac82c17db0e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
adamstark@114 95 <tr class="memitem:ac607feee669f3d3f4015662eec717f6a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#ac607feee669f3d3f4015662eec717f6a">setOnsetDetectionFunctionType</a> (int onsetDetectionFunctionType)</td></tr>
adamstark@114 96 <tr class="separator:ac607feee669f3d3f4015662eec717f6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
adamstark@60 97 </table>
adamstark@61 98 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
adamstark@61 99 <div class="textblock"><p>A class for calculating onset detection functions. </p>
adamstark@61 100 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
adamstark@114 101 <a id="a507e6258c5e703c989a6a58d2d8f4dcb" name="a507e6258c5e703c989a6a58d2d8f4dcb"></a>
adamstark@114 102 <h2 class="memtitle"><span class="permalink"><a href="#a507e6258c5e703c989a6a58d2d8f4dcb">&#9670;&#160;</a></span>OnsetDetectionFunction() <span class="overload">[1/2]</span></h2>
adamstark@114 103
adamstark@67 104 <div class="memitem">
adamstark@67 105 <div class="memproto">
adamstark@67 106 <table class="memname">
adamstark@67 107 <tr>
adamstark@67 108 <td class="memname">OnsetDetectionFunction::OnsetDetectionFunction </td>
adamstark@67 109 <td>(</td>
adamstark@67 110 <td class="paramtype">int&#160;</td>
adamstark@114 111 <td class="paramname"><em>hopSize</em>, </td>
adamstark@67 112 </tr>
adamstark@67 113 <tr>
adamstark@67 114 <td class="paramkey"></td>
adamstark@67 115 <td></td>
adamstark@67 116 <td class="paramtype">int&#160;</td>
adamstark@114 117 <td class="paramname"><em>frameSize</em>&#160;</td>
adamstark@67 118 </tr>
adamstark@67 119 <tr>
adamstark@67 120 <td></td>
adamstark@67 121 <td>)</td>
adamstark@67 122 <td></td><td></td>
adamstark@67 123 </tr>
adamstark@67 124 </table>
adamstark@67 125 </div><div class="memdoc">
adamstark@114 126 <p>Constructor that defaults the onset detection function type to ComplexSpectralDifferenceHWR and the window type to HanningWindow </p><dl class="params"><dt>Parameters</dt><dd>
adamstark@67 127 <table class="params">
adamstark@67 128 <tr><td class="paramname">hopSize_</td><td>the hop size in audio samples </td></tr>
adamstark@67 129 <tr><td class="paramname">frameSize_</td><td>the frame size in audio samples </td></tr>
adamstark@67 130 </table>
adamstark@67 131 </dd>
adamstark@67 132 </dl>
adamstark@67 133
adamstark@67 134 </div>
adamstark@67 135 </div>
adamstark@114 136 <a id="a89f96562c098e118eb879672b43d4ed0" name="a89f96562c098e118eb879672b43d4ed0"></a>
adamstark@114 137 <h2 class="memtitle"><span class="permalink"><a href="#a89f96562c098e118eb879672b43d4ed0">&#9670;&#160;</a></span>OnsetDetectionFunction() <span class="overload">[2/2]</span></h2>
adamstark@114 138
adamstark@60 139 <div class="memitem">
adamstark@60 140 <div class="memproto">
adamstark@60 141 <table class="memname">
adamstark@60 142 <tr>
adamstark@60 143 <td class="memname">OnsetDetectionFunction::OnsetDetectionFunction </td>
adamstark@60 144 <td>(</td>
adamstark@60 145 <td class="paramtype">int&#160;</td>
adamstark@114 146 <td class="paramname"><em>hopSize</em>, </td>
adamstark@60 147 </tr>
adamstark@60 148 <tr>
adamstark@60 149 <td class="paramkey"></td>
adamstark@60 150 <td></td>
adamstark@60 151 <td class="paramtype">int&#160;</td>
adamstark@114 152 <td class="paramname"><em>frameSize</em>, </td>
adamstark@60 153 </tr>
adamstark@60 154 <tr>
adamstark@60 155 <td class="paramkey"></td>
adamstark@60 156 <td></td>
adamstark@60 157 <td class="paramtype">int&#160;</td>
adamstark@114 158 <td class="paramname"><em>onsetDetectionFunctionType</em>, </td>
adamstark@60 159 </tr>
adamstark@60 160 <tr>
adamstark@60 161 <td class="paramkey"></td>
adamstark@60 162 <td></td>
adamstark@60 163 <td class="paramtype">int&#160;</td>
adamstark@114 164 <td class="paramname"><em>windowType</em>&#160;</td>
adamstark@60 165 </tr>
adamstark@60 166 <tr>
adamstark@60 167 <td></td>
adamstark@60 168 <td>)</td>
adamstark@60 169 <td></td><td></td>
adamstark@60 170 </tr>
adamstark@60 171 </table>
adamstark@60 172 </div><div class="memdoc">
adamstark@114 173 <p>Constructor </p><dl class="params"><dt>Parameters</dt><dd>
adamstark@60 174 <table class="params">
adamstark@60 175 <tr><td class="paramname">hopSize_</td><td>the hop size in audio samples </td></tr>
adamstark@60 176 <tr><td class="paramname">frameSize_</td><td>the frame size in audio samples </td></tr>
adamstark@60 177 <tr><td class="paramname">onsetDetectionFunctionType_</td><td>the type of onset detection function to use - (see OnsetDetectionFunctionType) </td></tr>
adamstark@60 178 <tr><td class="paramname">windowType</td><td>the type of window to use (see WindowType) </td></tr>
adamstark@60 179 </table>
adamstark@60 180 </dd>
adamstark@60 181 </dl>
adamstark@60 182
adamstark@60 183 </div>
adamstark@60 184 </div>
adamstark@114 185 <a id="aa01f8125c950f3def45154878107e503" name="aa01f8125c950f3def45154878107e503"></a>
adamstark@114 186 <h2 class="memtitle"><span class="permalink"><a href="#aa01f8125c950f3def45154878107e503">&#9670;&#160;</a></span>~OnsetDetectionFunction()</h2>
adamstark@114 187
adamstark@60 188 <div class="memitem">
adamstark@60 189 <div class="memproto">
adamstark@60 190 <table class="memname">
adamstark@60 191 <tr>
adamstark@60 192 <td class="memname">OnsetDetectionFunction::~OnsetDetectionFunction </td>
adamstark@60 193 <td>(</td>
adamstark@60 194 <td class="paramname"></td><td>)</td>
adamstark@60 195 <td></td>
adamstark@60 196 </tr>
adamstark@60 197 </table>
adamstark@60 198 </div><div class="memdoc">
adamstark@60 199 <p>Destructor </p>
adamstark@60 200
adamstark@60 201 </div>
adamstark@60 202 </div>
adamstark@60 203 <h2 class="groupheader">Member Function Documentation</h2>
adamstark@114 204 <a id="a7b8fffe6221d3bd4f6cac82c17db0e92" name="a7b8fffe6221d3bd4f6cac82c17db0e92"></a>
adamstark@114 205 <h2 class="memtitle"><span class="permalink"><a href="#a7b8fffe6221d3bd4f6cac82c17db0e92">&#9670;&#160;</a></span>calculateOnsetDetectionFunctionSample()</h2>
adamstark@114 206
adamstark@60 207 <div class="memitem">
adamstark@60 208 <div class="memproto">
adamstark@60 209 <table class="memname">
adamstark@60 210 <tr>
adamstark@60 211 <td class="memname">double OnsetDetectionFunction::calculateOnsetDetectionFunctionSample </td>
adamstark@60 212 <td>(</td>
adamstark@60 213 <td class="paramtype">double *&#160;</td>
adamstark@60 214 <td class="paramname"><em>buffer</em></td><td>)</td>
adamstark@60 215 <td></td>
adamstark@60 216 </tr>
adamstark@60 217 </table>
adamstark@60 218 </div><div class="memdoc">
adamstark@114 219 <p>Process input frame and calculate detection function sample </p><dl class="params"><dt>Parameters</dt><dd>
adamstark@61 220 <table class="params">
adamstark@61 221 <tr><td class="paramname">buffer</td><td>a pointer to an array containing the audio samples to be processed </td></tr>
adamstark@61 222 </table>
adamstark@61 223 </dd>
adamstark@61 224 </dl>
adamstark@61 225 <dl class="section return"><dt>Returns</dt><dd>the onset detection function sample </dd></dl>
adamstark@60 226
adamstark@60 227 </div>
adamstark@60 228 </div>
adamstark@114 229 <a id="a527d4f433d4f7bcd098b54190ee89297" name="a527d4f433d4f7bcd098b54190ee89297"></a>
adamstark@114 230 <h2 class="memtitle"><span class="permalink"><a href="#a527d4f433d4f7bcd098b54190ee89297">&#9670;&#160;</a></span>initialise() <span class="overload">[1/2]</span></h2>
adamstark@114 231
adamstark@67 232 <div class="memitem">
adamstark@67 233 <div class="memproto">
adamstark@67 234 <table class="memname">
adamstark@67 235 <tr>
adamstark@67 236 <td class="memname">void OnsetDetectionFunction::initialise </td>
adamstark@67 237 <td>(</td>
adamstark@67 238 <td class="paramtype">int&#160;</td>
adamstark@114 239 <td class="paramname"><em>hopSize</em>, </td>
adamstark@67 240 </tr>
adamstark@67 241 <tr>
adamstark@67 242 <td class="paramkey"></td>
adamstark@67 243 <td></td>
adamstark@67 244 <td class="paramtype">int&#160;</td>
adamstark@114 245 <td class="paramname"><em>frameSize</em>&#160;</td>
adamstark@67 246 </tr>
adamstark@67 247 <tr>
adamstark@67 248 <td></td>
adamstark@67 249 <td>)</td>
adamstark@67 250 <td></td><td></td>
adamstark@67 251 </tr>
adamstark@67 252 </table>
adamstark@67 253 </div><div class="memdoc">
adamstark@114 254 <p>Initialisation function for only updating hop size and frame size (and not window type or onset detection function type </p><dl class="params"><dt>Parameters</dt><dd>
adamstark@67 255 <table class="params">
adamstark@67 256 <tr><td class="paramname">hopSize_</td><td>the hop size in audio samples </td></tr>
adamstark@67 257 <tr><td class="paramname">frameSize_</td><td>the frame size in audio samples </td></tr>
adamstark@67 258 </table>
adamstark@67 259 </dd>
adamstark@67 260 </dl>
adamstark@67 261
adamstark@67 262 </div>
adamstark@67 263 </div>
adamstark@114 264 <a id="a3fb3c827993aa854b85f4d4c44460a29" name="a3fb3c827993aa854b85f4d4c44460a29"></a>
adamstark@114 265 <h2 class="memtitle"><span class="permalink"><a href="#a3fb3c827993aa854b85f4d4c44460a29">&#9670;&#160;</a></span>initialise() <span class="overload">[2/2]</span></h2>
adamstark@114 266
adamstark@60 267 <div class="memitem">
adamstark@60 268 <div class="memproto">
adamstark@60 269 <table class="memname">
adamstark@60 270 <tr>
adamstark@60 271 <td class="memname">void OnsetDetectionFunction::initialise </td>
adamstark@60 272 <td>(</td>
adamstark@60 273 <td class="paramtype">int&#160;</td>
adamstark@114 274 <td class="paramname"><em>hopSize</em>, </td>
adamstark@60 275 </tr>
adamstark@60 276 <tr>
adamstark@60 277 <td class="paramkey"></td>
adamstark@60 278 <td></td>
adamstark@60 279 <td class="paramtype">int&#160;</td>
adamstark@114 280 <td class="paramname"><em>frameSize</em>, </td>
adamstark@60 281 </tr>
adamstark@60 282 <tr>
adamstark@60 283 <td class="paramkey"></td>
adamstark@60 284 <td></td>
adamstark@60 285 <td class="paramtype">int&#160;</td>
adamstark@114 286 <td class="paramname"><em>onsetDetectionFunctionType</em>, </td>
adamstark@60 287 </tr>
adamstark@60 288 <tr>
adamstark@60 289 <td class="paramkey"></td>
adamstark@60 290 <td></td>
adamstark@60 291 <td class="paramtype">int&#160;</td>
adamstark@114 292 <td class="paramname"><em>windowType</em>&#160;</td>
adamstark@60 293 </tr>
adamstark@60 294 <tr>
adamstark@60 295 <td></td>
adamstark@60 296 <td>)</td>
adamstark@60 297 <td></td><td></td>
adamstark@60 298 </tr>
adamstark@60 299 </table>
adamstark@60 300 </div><div class="memdoc">
adamstark@114 301 <p>Initialisation Function </p><dl class="params"><dt>Parameters</dt><dd>
adamstark@61 302 <table class="params">
adamstark@61 303 <tr><td class="paramname">hopSize_</td><td>the hop size in audio samples </td></tr>
adamstark@61 304 <tr><td class="paramname">frameSize_</td><td>the frame size in audio samples </td></tr>
adamstark@61 305 <tr><td class="paramname">onsetDetectionFunctionType_</td><td>the type of onset detection function to use - (see OnsetDetectionFunctionType) </td></tr>
adamstark@61 306 <tr><td class="paramname">windowType</td><td>the type of window to use (see WindowType) </td></tr>
adamstark@61 307 </table>
adamstark@61 308 </dd>
adamstark@61 309 </dl>
adamstark@60 310
adamstark@60 311 </div>
adamstark@60 312 </div>
adamstark@114 313 <a id="ac607feee669f3d3f4015662eec717f6a" name="ac607feee669f3d3f4015662eec717f6a"></a>
adamstark@114 314 <h2 class="memtitle"><span class="permalink"><a href="#ac607feee669f3d3f4015662eec717f6a">&#9670;&#160;</a></span>setOnsetDetectionFunctionType()</h2>
adamstark@114 315
adamstark@60 316 <div class="memitem">
adamstark@60 317 <div class="memproto">
adamstark@60 318 <table class="memname">
adamstark@60 319 <tr>
adamstark@60 320 <td class="memname">void OnsetDetectionFunction::setOnsetDetectionFunctionType </td>
adamstark@60 321 <td>(</td>
adamstark@60 322 <td class="paramtype">int&#160;</td>
adamstark@114 323 <td class="paramname"><em>onsetDetectionFunctionType</em></td><td>)</td>
adamstark@60 324 <td></td>
adamstark@60 325 </tr>
adamstark@60 326 </table>
adamstark@60 327 </div><div class="memdoc">
adamstark@114 328 <p>Set the detection function type </p><dl class="params"><dt>Parameters</dt><dd>
adamstark@61 329 <table class="params">
adamstark@61 330 <tr><td class="paramname">onsetDetectionFunctionType_</td><td>the type of onset detection function to use - (see OnsetDetectionFunctionType) </td></tr>
adamstark@61 331 </table>
adamstark@61 332 </dd>
adamstark@61 333 </dl>
adamstark@60 334
adamstark@60 335 </div>
adamstark@60 336 </div>
adamstark@60 337 <hr/>The documentation for this class was generated from the following files:<ul>
adamstark@60 338 <li>src/<a class="el" href="_onset_detection_function_8h_source.html">OnsetDetectionFunction.h</a></li>
adamstark@60 339 <li>src/<a class="el" href="_onset_detection_function_8cpp.html">OnsetDetectionFunction.cpp</a></li>
adamstark@60 340 </ul>
adamstark@60 341 </div><!-- contents -->
adamstark@60 342 <!-- start footer part -->
adamstark@60 343 <hr class="footer"/><address class="footer"><small>
adamstark@114 344 Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
adamstark@60 345 </small></address>
adamstark@60 346 </body>
adamstark@60 347 </html>