<!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.5"/> <title>steghide: AudioDataImpl< Type, ValueType, SampleValueType > Class Template Reference</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="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">steghide  <span id="projectnumber">0.5.1</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pri-methods">Private Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> | <a href="classAudioDataImpl-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">AudioDataImpl< Type, ValueType, SampleValueType > Class Template Reference</div> </div> </div><!--header--> <div class="contents"> <p>implementation of the AudioData-Interface </p> <p><code>#include <<a class="el" href="AudioData_8h_source.html">AudioData.h</a>></code></p> <div class="dynheader"> Inheritance diagram for AudioDataImpl< Type, ValueType, SampleValueType >:</div> <div class="dyncontent"> <div class="center"> <img src="classAudioDataImpl.png" usemap="#AudioDataImpl< Type, ValueType, SampleValueType >_map" alt=""/> <map id="AudioDataImpl< Type, ValueType, SampleValueType >_map" name="AudioDataImpl< Type, ValueType, SampleValueType >_map"> <area href="classAudioData.html" title="interface definition for AudioData objects. " alt="AudioData" shape="rect" coords="0,56,326,80"/> <area href="classCvrStgObject.html" title="an object that can hold embedded data " alt="CvrStgObject" shape="rect" coords="0,0,326,24"/> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a5775d49843e1ab609610f6cf4efb178e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioDataImpl.html#a5775d49843e1ab609610f6cf4efb178e">AudioDataImpl</a> (<a class="el" href="classCvrStgFile.html">CvrStgFile</a> *f)</td></tr> <tr class="separator:a5775d49843e1ab609610f6cf4efb178e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a700d701bf616673b6f09d761ea31307d"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioDataImpl.html#a700d701bf616673b6f09d761ea31307d">~AudioDataImpl</a> (void)</td></tr> <tr class="separator:a700d701bf616673b6f09d761ea31307d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6c8105d5fceee538b423e8b137ecd3ab"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioDataImpl.html#a6c8105d5fceee538b423e8b137ecd3ab">read</a> (<a class="el" href="classBinaryIO.html">BinaryIO</a> *io, <a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> n=<a class="el" href="classAudioData.html#ae4e3f99d2d21a5982aa1f76d78367cf6">AudioData::NoLimit</a>)</td></tr> <tr class="separator:a6c8105d5fceee538b423e8b137ecd3ab"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a66671d9d8ee1c2322f4226dad81e257c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioDataImpl.html#a66671d9d8ee1c2322f4226dad81e257c">write</a> (<a class="el" href="classBinaryIO.html">BinaryIO</a> *io, <a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> n=<a class="el" href="classAudioData.html#ae4e3f99d2d21a5982aa1f76d78367cf6">AudioData::NoLimit</a>)</td></tr> <tr class="separator:a66671d9d8ee1c2322f4226dad81e257c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afb68cfcece32b31ffb29e15449edefca"><td class="memItemLeft" align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioDataImpl.html#afb68cfcece32b31ffb29e15449edefca">getNumSamples</a> (void) const </td></tr> <tr class="separator:afb68cfcece32b31ffb29e15449edefca"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a737bcaf96537b02278cba6ff92f8746d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSampleValue.html">SampleValue</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioDataImpl.html#a737bcaf96537b02278cba6ff92f8746d">getSampleValue</a> (const <a class="el" href="common_8h.html#a048401d1365616f5eef97e251096a02d">SamplePos</a> pos) const </td></tr> <tr class="separator:a737bcaf96537b02278cba6ff92f8746d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2522e8ff1588325b0fe93210a3c048f5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioDataImpl.html#a2522e8ff1588325b0fe93210a3c048f5">replaceSample</a> (const <a class="el" href="common_8h.html#a048401d1365616f5eef97e251096a02d">SamplePos</a> pos, const <a class="el" href="classSampleValue.html">SampleValue</a> *s)</td></tr> <tr class="separator:a2522e8ff1588325b0fe93210a3c048f5"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr class="memitem:ab420767cb6b791361ae9cc7b2a05dc5d"><td class="memItemLeft" align="right" valign="top">ValueType </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioDataImpl.html#ab420767cb6b791361ae9cc7b2a05dc5d">readValue</a> (<a class="el" href="classBinaryIO.html">BinaryIO</a> *io) const </td></tr> <tr class="separator:ab420767cb6b791361ae9cc7b2a05dc5d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0db2e7dad668f9abf5e2f7388ca547a2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioDataImpl.html#a0db2e7dad668f9abf5e2f7388ca547a2">writeValue</a> (<a class="el" href="classBinaryIO.html">BinaryIO</a> *io, ValueType v) const </td></tr> <tr class="separator:a0db2e7dad668f9abf5e2f7388ca547a2"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr class="memitem:a966787e5527fc0fd8a9513bcf3313941"><td class="memItemLeft" align="right" valign="top">std::vector< ValueType > </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioDataImpl.html#a966787e5527fc0fd8a9513bcf3313941">Data</a></td></tr> <tr class="separator:a966787e5527fc0fd8a9513bcf3313941"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae7e85812b02849f1f194aee11b0d30f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCvrStgFile.html">CvrStgFile</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioDataImpl.html#ae7e85812b02849f1f194aee11b0d30f9">TheCvrStgFile</a></td></tr> <tr class="separator:ae7e85812b02849f1f194aee11b0d30f9"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a> Additional Inherited Members</h2></td></tr> <tr class="inherit_header pub_static_attribs_classAudioData"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classAudioData')"><img src="closed.png" alt="-"/> Static Public Attributes inherited from <a class="el" href="classAudioData.html">AudioData</a></td></tr> <tr class="memitem:ae4e3f99d2d21a5982aa1f76d78367cf6 inherit pub_static_attribs_classAudioData"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classAudioData.html#ae4e3f99d2d21a5982aa1f76d78367cf6">NoLimit</a> = 0</td></tr> <tr class="memdesc:ae4e3f99d2d21a5982aa1f76d78367cf6 inherit pub_static_attribs_classAudioData"><td class="mdescLeft"> </td><td class="mdescRight">constant that can be used as parameter to read and write to indicate that there is no limit <a href="#ae4e3f99d2d21a5982aa1f76d78367cf6">More...</a><br/></td></tr> <tr class="separator:ae4e3f99d2d21a5982aa1f76d78367cf6 inherit pub_static_attribs_classAudioData"><td class="memSeparator" colspan="2"> </td></tr> </table> <h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a5775d49843e1ab609610f6cf4efb178e"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<AUDIOSAMPLETYPE Type, class ValueType , class SampleValueType = AudioSampleValue<Type,ValueType>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classAudioDataImpl.html">AudioDataImpl</a>< Type, ValueType, SampleValueType >::<a class="el" href="classAudioDataImpl.html">AudioDataImpl</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="classCvrStgFile.html">CvrStgFile</a> * </td> <td class="paramname"><em>f</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a700d701bf616673b6f09d761ea31307d"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<AUDIOSAMPLETYPE Type, class ValueType , class SampleValueType = AudioSampleValue<Type,ValueType>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="classAudioDataImpl.html">AudioDataImpl</a>< Type, ValueType, SampleValueType >::~<a class="el" href="classAudioDataImpl.html">AudioDataImpl</a> </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="afb68cfcece32b31ffb29e15449edefca"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<AUDIOSAMPLETYPE Type, class ValueType , class SampleValueType > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">unsigned long <a class="el" href="classAudioDataImpl.html">AudioDataImpl</a>< Type, ValueType, SampleValueType >::getNumSamples </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>get the number of samples in this <a class="el" href="classCvrStgObject.html" title="an object that can hold embedded data ">CvrStgObject</a> </p> <p>Implements <a class="el" href="classCvrStgObject.html#a80ae8f095b66683e5207adf8ff8265b4">CvrStgObject</a>.</p> </div> </div> <a class="anchor" id="a737bcaf96537b02278cba6ff92f8746d"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<AUDIOSAMPLETYPE Type, class ValueType , class SampleValueType > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classSampleValue.html">SampleValue</a> * <a class="el" href="classAudioDataImpl.html">AudioDataImpl</a>< Type, ValueType, SampleValueType >::getSampleValue </td> <td>(</td> <td class="paramtype">const <a class="el" href="common_8h.html#a048401d1365616f5eef97e251096a02d">SamplePos</a> </td> <td class="paramname"><em>pos</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>get the sample at position pos </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pos</td><td>the position of a sample (must be in 0...<a class="el" href="classAudioDataImpl.html#afb68cfcece32b31ffb29e15449edefca">getNumSamples()</a>-1) </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the sample at the given position</dd></dl> <p>The sample object is created in this function and should be deleted by the caller. The derived class should check the condition(s) given above in its Implementation of this function. </p> <p>Implements <a class="el" href="classCvrStgObject.html#ac77a8da85a4f7b53e2166e990dfaa4f2">CvrStgObject</a>.</p> </div> </div> <a class="anchor" id="a6c8105d5fceee538b423e8b137ecd3ab"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<AUDIOSAMPLETYPE Type, class ValueType , class SampleValueType > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classAudioDataImpl.html">AudioDataImpl</a>< Type, ValueType, SampleValueType >::read </td> <td>(</td> <td class="paramtype"><a class="el" href="classBinaryIO.html">BinaryIO</a> * </td> <td class="paramname"><em>io</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td> <td class="paramname"><em>n</em> = <code><a class="el" href="classAudioData.html#ae4e3f99d2d21a5982aa1f76d78367cf6">AudioData::NoLimit</a></code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Implements <a class="el" href="classAudioData.html#aa3ac98fcebcd5e2f5376464b08212e58">AudioData</a>.</p> </div> </div> <a class="anchor" id="ab420767cb6b791361ae9cc7b2a05dc5d"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="common_8h.html#a8667feb95ad50bdfeaeddc69113acf79">SWORD32</a> AuPCM32AudioData::readValue </td> <td>(</td> <td class="paramtype"><a class="el" href="classBinaryIO.html">BinaryIO</a> * </td> <td class="paramname"><em>io</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a2522e8ff1588325b0fe93210a3c048f5"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<AUDIOSAMPLETYPE Type, class ValueType , class SampleValueType > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classAudioDataImpl.html">AudioDataImpl</a>< Type, ValueType, SampleValueType >::replaceSample </td> <td>(</td> <td class="paramtype">const <a class="el" href="common_8h.html#a048401d1365616f5eef97e251096a02d">SamplePos</a> </td> <td class="paramname"><em>pos</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classSampleValue.html">SampleValue</a> * </td> <td class="paramname"><em>s</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>replace a sample thus (possibly) altering the value of the bit returned by SampleValue->getBit() </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pos</td><td>the position of the sample (must be in 0...<a class="el" href="classAudioDataImpl.html#afb68cfcece32b31ffb29e15449edefca">getNumSamples()</a>-1) </td></tr> <tr><td class="paramname">s</td><td>the sample value that should replace the current sample value (must be of correct type for this <a class="el" href="classCvrStgObject.html" title="an object that can hold embedded data ">CvrStgObject</a>)</td></tr> </table> </dd> </dl> <p>The derived class should check the condition(s) given above in its Implementation of this function. </p> <p>Implements <a class="el" href="classCvrStgObject.html#a3068d6a9dcc1c0b8bde2f081cfde6ce5">CvrStgObject</a>.</p> </div> </div> <a class="anchor" id="a66671d9d8ee1c2322f4226dad81e257c"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<AUDIOSAMPLETYPE Type, class ValueType , class SampleValueType > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classAudioDataImpl.html">AudioDataImpl</a>< Type, ValueType, SampleValueType >::write </td> <td>(</td> <td class="paramtype"><a class="el" href="classBinaryIO.html">BinaryIO</a> * </td> <td class="paramname"><em>io</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="common_8h.html#a6b8592979b076e06aa233e3f586ac999">UWORD32</a> </td> <td class="paramname"><em>n</em> = <code><a class="el" href="classAudioData.html#ae4e3f99d2d21a5982aa1f76d78367cf6">AudioData::NoLimit</a></code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Implements <a class="el" href="classAudioData.html#aedc90f99fe9da3fd0012e2fb79403d88">AudioData</a>.</p> </div> </div> <a class="anchor" id="a0db2e7dad668f9abf5e2f7388ca547a2"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<AUDIOSAMPLETYPE Type, class ValueType , class SampleValueType = AudioSampleValue<Type,ValueType>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classAudioDataImpl.html">AudioDataImpl</a>< Type, ValueType, SampleValueType >::writeValue </td> <td>(</td> <td class="paramtype"><a class="el" href="classBinaryIO.html">BinaryIO</a> * </td> <td class="paramname"><em>io</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">ValueType </td> <td class="paramname"><em>v</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a class="anchor" id="a966787e5527fc0fd8a9513bcf3313941"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<AUDIOSAMPLETYPE Type, class ValueType , class SampleValueType = AudioSampleValue<Type,ValueType>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::vector<ValueType> <a class="el" href="classAudioDataImpl.html">AudioDataImpl</a>< Type, ValueType, SampleValueType >::Data</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="ae7e85812b02849f1f194aee11b0d30f9"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<AUDIOSAMPLETYPE Type, class ValueType , class SampleValueType = AudioSampleValue<Type,ValueType>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCvrStgFile.html">CvrStgFile</a>* <a class="el" href="classAudioDataImpl.html">AudioDataImpl</a>< Type, ValueType, SampleValueType >::TheCvrStgFile</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="AudioData_8h_source.html">AudioData.h</a></li> <li><a class="el" href="AuData_8h_source.html">AuData.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Fri Oct 18 2013 17:59:36 for steghide by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>