Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 7392c77c84ff25edfeb07995a77d5148 > files > 545

steghide-0.5.1-11mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>steghide: WavFile Class Reference</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&nbsp;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 class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>WavFile Class Reference</h1><!-- doxytag: class="WavFile" --><!-- doxytag: inherits="CvrStgFile" --><code>#include &lt;<a class="el" href="WavFile_8h_source.html">WavFile.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for WavFile:</div>
<div class="dynsection">

<p><center><img src="classWavFile.png" usemap="#WavFile_map" border="0" alt=""></center>
<map name="WavFile_map">
<area href="classCvrStgFile.html" alt="CvrStgFile" shape="rect" coords="0,56,88,80">
<area href="classCvrStgObject.html" alt="CvrStgObject" shape="rect" coords="0,0,88,24">
</map>
</div>

<p>
<a href="classWavFile-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#4f09ff93df4b8a7ed45262fe11a21b70">WavFile</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#bf0cf8631a0fe28c8e0119c3144d90e9">WavFile</a> (<a class="el" href="classBinaryIO.html">BinaryIO</a> *io)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#c00b8480f3cbbba3a941d7e7291548bc">~WavFile</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#41b55845afb5f0c52da295d5e27622cd">read</a> (<a class="el" href="classBinaryIO.html">BinaryIO</a> *io)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#db8f892bbfcff259974674b9ba5d1dae">write</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">std::list&lt; <a class="el" href="classCvrStgFile_1_1Property.html">CvrStgFile::Property</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#ea8c584ddb7953f0e42bfdaf60e9aba6">getProperties</a> (void) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#51f113e164b7c57a6576b1602eef4d0e">getNumSamples</a> (void) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#e73ef41e61806392a53385065ec7e444">replaceSample</a> (const <a class="el" href="common_8h.html#048401d1365616f5eef97e251096a02d">SamplePos</a> pos, const <a class="el" href="classSampleValue.html">SampleValue</a> *s)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classSampleValue.html">SampleValue</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#b7509f60788bf3748e851de80bacb367">getSampleValue</a> (<a class="el" href="common_8h.html#048401d1365616f5eef97e251096a02d">SamplePos</a> pos) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector<br class="typebreak">
&lt; <a class="el" href="classSampleValueAdjacencyList.html">SampleValueAdjacencyList</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#a13bf9171c8edbd62057d066e66f4b22">calcSVAdjacencyLists</a> (const std::vector&lt; <a class="el" href="classSampleValue.html">SampleValue</a> * &gt; &amp;svs) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; <a class="el" href="classMatchingAlgorithm.html">MatchingAlgorithm</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#fb857679cfc4a9d0473e89ca9c0bbcf5">getMatchingAlgorithms</a> (<a class="el" href="classGraph.html">Graph</a> *g, <a class="el" href="classMatching.html">Matching</a> *m) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#0cf329fed7a5a160cd5ce2a1f2d0da1e">getBitsPerSample</a> (void) const </td></tr>

<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#c3ffd220aa9425460325a5072f99f4df">readheaders</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#8e23afea8fd01cde0e6224e5b49e2ac2">readdata</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#37548fd60f6fc1796e058c5a6230a7b6">writeheaders</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#4b1c25a9b1c457c2969e31141ee5ba1e">writedata</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#b2b923e2fc8aed4c15735bd921ad44f4">calcpos</a> (<a class="el" href="common_8h.html#048401d1365616f5eef97e251096a02d">SamplePos</a> n, unsigned long *bytepos, unsigned short *firstbitpos) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#53d9796319254c72b6bf3da137047cb4">getFirstBitPosinSample</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#a1bb21cd1618b47c169c56474fb44132">getBytesPerSample</a> (void)</td></tr>

<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classWavChunkHeader.html">WavChunkHeader</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#eddda3fdc091e6aed858ae1bec29fbaa">riffchhdr</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#ac1c03706ab245aad2fd9c8b9afa34db">id_wave</a> [4]</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classWavFormatChunk.html">WavFormatChunk</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#b75eca4c470037d5b4fa44140d296f4d">FormatChunk</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classWavChunkHeader.html">WavChunkHeader</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#51949e479c36ef4cf7785147c8dc9643">datachhdr</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; unsigned char &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#c4b6c6e0c7e657aa59f7a70d6cf48754">data_small</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this std::vector contains the wav data if BitsPerSample &lt;= 8  <a href="#c4b6c6e0c7e657aa59f7a70d6cf48754"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; int &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#05bd25e0e5deaf6e5ce5fdfe73d1366f">data_large</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this std::vector contains the wav data if BitsPerSample &gt;8  <a href="#05bd25e0e5deaf6e5ce5fdfe73d1366f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; <a class="el" href="classWavChunkUnused.html">WavChunkUnused</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#fa1d955f470a2c922586222ae6711c19">UnusedBeforeData</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; <a class="el" href="common_8h.html#4ae1dab0fb4b072a66584546209e7d58">BYTE</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#8cfacb5b04047f05beb95dc48381b85f">UnusedAfterData</a></td></tr>

<tr><td colspan="2"><br><h2>Static Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const signed short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#981de0d7046861e4cfe650cd0e34c952">FormatPCM</a> = 1</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static const unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#1198a886ea0234d04f3a22e2f54f0b38">SamplesPerVertex</a> = 2</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#143c7bae81fbb65c2b50ca00d704c35b">Radius_small</a> = 1</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#f90ff87eae3bd66545b9e40fdf90cd3b">Radius_large</a> = 20</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="el" href="common_8h.html#cf820202f81f25eb00734eac0d7aed2d">EmbValue</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWavFile.html#053a1d740fae21a78233b911e81f2a08">EmbValueModulus</a> = 2</td></tr>

</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="4f09ff93df4b8a7ed45262fe11a21b70"></a><!-- doxytag: member="WavFile::WavFile" ref="4f09ff93df4b8a7ed45262fe11a21b70" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">WavFile::WavFile           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="bf0cf8631a0fe28c8e0119c3144d90e9"></a><!-- doxytag: member="WavFile::WavFile" ref="bf0cf8631a0fe28c8e0119c3144d90e9" args="(BinaryIO *io)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">WavFile::WavFile           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classBinaryIO.html">BinaryIO</a> *&nbsp;</td>
          <td class="paramname"> <em>io</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="c00b8480f3cbbba3a941d7e7291548bc"></a><!-- doxytag: member="WavFile::~WavFile" ref="c00b8480f3cbbba3a941d7e7291548bc" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">WavFile::~WavFile           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="b2b923e2fc8aed4c15735bd921ad44f4"></a><!-- doxytag: member="WavFile::calcpos" ref="b2b923e2fc8aed4c15735bd921ad44f4" args="(SamplePos n, unsigned long *bytepos, unsigned short *firstbitpos) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WavFile::calcpos           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="common_8h.html#048401d1365616f5eef97e251096a02d">SamplePos</a>&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long *&nbsp;</td>
          <td class="paramname"> <em>bytepos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned short *&nbsp;</td>
          <td class="paramname"> <em>firstbitpos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="a13bf9171c8edbd62057d066e66f4b22"></a><!-- doxytag: member="WavFile::calcSVAdjacencyLists" ref="a13bf9171c8edbd62057d066e66f4b22" args="(const std::vector&lt; SampleValue * &gt; &amp;svs) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; <a class="el" href="classSampleValueAdjacencyList.html">SampleValueAdjacencyList</a> * &gt; WavFile::calcSVAdjacencyLists           </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classSampleValue.html">SampleValue</a> * &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>svs</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
calculate a vector a SampleValueAdjacencyLists <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>svs</em>&nbsp;</td><td>a vector of unique(!) sample values where svs[i]-&gt;getLabel() == i holds for all i </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a vector of SampleValueAdjacencyLists where retval[i] only contains sample values with getEmbValue() == i</dd></dl>
Every row in the adjacency lists must be sorted in the following order: The first sample value has the least distance to the source sample value, the last has the largest distance. If two sample values in one row have the same distance to the source sample value, the order does not matter.<p>
May be overridden in derived class to provide a faster version. 
<p>Reimplemented from <a class="el" href="classCvrStgFile.html#a0fd0f0383f89c46992cb06404260a8e">CvrStgFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="0cf329fed7a5a160cd5ce2a1f2d0da1e"></a><!-- doxytag: member="WavFile::getBitsPerSample" ref="0cf329fed7a5a160cd5ce2a1f2d0da1e" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned short WavFile::getBitsPerSample           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="a1bb21cd1618b47c169c56474fb44132"></a><!-- doxytag: member="WavFile::getBytesPerSample" ref="a1bb21cd1618b47c169c56474fb44132" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned short WavFile::getBytesPerSample           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="53d9796319254c72b6bf3da137047cb4"></a><!-- doxytag: member="WavFile::getFirstBitPosinSample" ref="53d9796319254c72b6bf3da137047cb4" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned short WavFile::getFirstBitPosinSample           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the position of the first bit (of the first byte) containing the actual sample data <dl class="return" compact><dt><b>Returns:</b></dt><dd>the bit position (where 0 is the lsb and 7 the msb) </dd></dl>

</div>
</div><p>
<a class="anchor" name="fb857679cfc4a9d0473e89ca9c0bbcf5"></a><!-- doxytag: member="WavFile::getMatchingAlgorithms" ref="fb857679cfc4a9d0473e89ca9c0bbcf5" args="(Graph *g, Matching *m) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; <a class="el" href="classMatchingAlgorithm.html">MatchingAlgorithm</a> * &gt; WavFile::getMatchingAlgorithms           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classGraph.html">Graph</a> *&nbsp;</td>
          <td class="paramname"> <em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classMatching.html">Matching</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get recommended list of matching algorithms <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>an empty matching - will be used in construction of <a class="el" href="classMatchingAlgorithm.html">MatchingAlgorithm</a> objects</td></tr>
  </table>
</dl>
The <a class="el" href="classMatchingAlgorithm.html">MatchingAlgorithm</a> objects returned by this function should be deleted by the caller if they are no longer needed. 
<p>Reimplemented from <a class="el" href="classCvrStgFile.html#d8cf6e0ba364c9d84e8321dbd68c3f26">CvrStgFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="51f113e164b7c57a6576b1602eef4d0e"></a><!-- doxytag: member="WavFile::getNumSamples" ref="51f113e164b7c57a6576b1602eef4d0e" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long WavFile::getNumSamples           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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>Implements <a class="el" href="classCvrStgObject.html#80ae8f095b66683e5207adf8ff8265b4">CvrStgObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="ea8c584ddb7953f0e42bfdaf60e9aba6"></a><!-- doxytag: member="WavFile::getProperties" ref="ea8c584ddb7953f0e42bfdaf60e9aba6" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::list&lt; <a class="el" href="classCvrStgFile_1_1Property.html">CvrStgFile::Property</a> &gt; WavFile::getProperties           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Implements <a class="el" href="classCvrStgFile.html#fe2f570ea6447c0636093b44ff7793cc">CvrStgFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="b7509f60788bf3748e851de80bacb367"></a><!-- doxytag: member="WavFile::getSampleValue" ref="b7509f60788bf3748e851de80bacb367" args="(SamplePos pos) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classSampleValue.html">SampleValue</a> * WavFile::getSampleValue           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="common_8h.html#048401d1365616f5eef97e251096a02d">SamplePos</a>&nbsp;</td>
          <td class="paramname"> <em>pos</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get the sample at position pos <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>the position of a sample (must be in 0...<a class="el" href="classWavFile.html#51f113e164b7c57a6576b1602eef4d0e">getNumSamples()</a>-1) </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the sample at the given position</dd></dl>
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>Implements <a class="el" href="classCvrStgObject.html#c77a8da85a4f7b53e2166e990dfaa4f2">CvrStgObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="41b55845afb5f0c52da295d5e27622cd"></a><!-- doxytag: member="WavFile::read" ref="41b55845afb5f0c52da295d5e27622cd" args="(BinaryIO *io)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WavFile::read           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classBinaryIO.html">BinaryIO</a> *&nbsp;</td>
          <td class="paramname"> <em>io</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Reimplemented from <a class="el" href="classCvrStgFile.html#8a568ccb2ad5d6c178f764dca6090908">CvrStgFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="8e23afea8fd01cde0e6224e5b49e2ac2"></a><!-- doxytag: member="WavFile::readdata" ref="8e23afea8fd01cde0e6224e5b49e2ac2" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WavFile::readdata           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="c3ffd220aa9425460325a5072f99f4df"></a><!-- doxytag: member="WavFile::readheaders" ref="c3ffd220aa9425460325a5072f99f4df" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WavFile::readheaders           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="e73ef41e61806392a53385065ec7e444"></a><!-- doxytag: member="WavFile::replaceSample" ref="e73ef41e61806392a53385065ec7e444" args="(const SamplePos pos, const SampleValue *s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WavFile::replaceSample           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="common_8h.html#048401d1365616f5eef97e251096a02d">SamplePos</a>&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
replace a sample thus (possibly) altering the value of the bit returned by SampleValue-&gt;getBit() <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>the position of the sample (must be in 0...<a class="el" href="classWavFile.html#51f113e164b7c57a6576b1602eef4d0e">getNumSamples()</a>-1) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</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>
</dl>
The derived class should check the condition(s) given above in its Implementation of this function. 
<p>Implements <a class="el" href="classCvrStgObject.html#3068d6a9dcc1c0b8bde2f081cfde6ce5">CvrStgObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="db8f892bbfcff259974674b9ba5d1dae"></a><!-- doxytag: member="WavFile::write" ref="db8f892bbfcff259974674b9ba5d1dae" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WavFile::write           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Reimplemented from <a class="el" href="classCvrStgFile.html#f2b8f47f83f9210409af6be7d750a841">CvrStgFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="4b1c25a9b1c457c2969e31141ee5ba1e"></a><!-- doxytag: member="WavFile::writedata" ref="4b1c25a9b1c457c2969e31141ee5ba1e" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WavFile::writedata           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="37548fd60f6fc1796e058c5a6230a7b6"></a><!-- doxytag: member="WavFile::writeheaders" ref="37548fd60f6fc1796e058c5a6230a7b6" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void WavFile::writeheaders           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="05bd25e0e5deaf6e5ce5fdfe73d1366f"></a><!-- doxytag: member="WavFile::data_large" ref="05bd25e0e5deaf6e5ce5fdfe73d1366f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;int&gt; <a class="el" href="classWavFile.html#05bd25e0e5deaf6e5ce5fdfe73d1366f">WavFile::data_large</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="c4b6c6e0c7e657aa59f7a70d6cf48754"></a><!-- doxytag: member="WavFile::data_small" ref="c4b6c6e0c7e657aa59f7a70d6cf48754" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;unsigned char&gt; <a class="el" href="classWavFile.html#c4b6c6e0c7e657aa59f7a70d6cf48754">WavFile::data_small</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="51949e479c36ef4cf7785147c8dc9643"></a><!-- doxytag: member="WavFile::datachhdr" ref="51949e479c36ef4cf7785147c8dc9643" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWavChunkHeader.html">WavChunkHeader</a>* <a class="el" href="classWavFile.html#51949e479c36ef4cf7785147c8dc9643">WavFile::datachhdr</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="053a1d740fae21a78233b911e81f2a08"></a><!-- doxytag: member="WavFile::EmbValueModulus" ref="053a1d740fae21a78233b911e81f2a08" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="common_8h.html#cf820202f81f25eb00734eac0d7aed2d">EmbValue</a> <a class="el" href="classWavFile.html#053a1d740fae21a78233b911e81f2a08">WavFile::EmbValueModulus</a> = 2<code> [static, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Reimplemented from <a class="el" href="classCvrStgFile.html#5ce04f8bddd5cbe3e9f6c12112530c87">CvrStgFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="b75eca4c470037d5b4fa44140d296f4d"></a><!-- doxytag: member="WavFile::FormatChunk" ref="b75eca4c470037d5b4fa44140d296f4d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWavFormatChunk.html">WavFormatChunk</a>* <a class="el" href="classWavFile.html#b75eca4c470037d5b4fa44140d296f4d">WavFile::FormatChunk</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="981de0d7046861e4cfe650cd0e34c952"></a><!-- doxytag: member="WavFile::FormatPCM" ref="981de0d7046861e4cfe650cd0e34c952" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const signed short <a class="el" href="classWavFile.html#981de0d7046861e4cfe650cd0e34c952">WavFile::FormatPCM</a> = 1<code> [static, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="ac1c03706ab245aad2fd9c8b9afa34db"></a><!-- doxytag: member="WavFile::id_wave" ref="ac1c03706ab245aad2fd9c8b9afa34db" args="[4]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char <a class="el" href="classWavFile.html#ac1c03706ab245aad2fd9c8b9afa34db">WavFile::id_wave</a>[4]<code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="f90ff87eae3bd66545b9e40fdf90cd3b"></a><!-- doxytag: member="WavFile::Radius_large" ref="f90ff87eae3bd66545b9e40fdf90cd3b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> <a class="el" href="classWavFile.html#f90ff87eae3bd66545b9e40fdf90cd3b">WavFile::Radius_large</a> = 20<code> [static, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="143c7bae81fbb65c2b50ca00d704c35b"></a><!-- doxytag: member="WavFile::Radius_small" ref="143c7bae81fbb65c2b50ca00d704c35b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="common_8h.html#6b8592979b076e06aa233e3f586ac999">UWORD32</a> <a class="el" href="classWavFile.html#143c7bae81fbb65c2b50ca00d704c35b">WavFile::Radius_small</a> = 1<code> [static, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="eddda3fdc091e6aed858ae1bec29fbaa"></a><!-- doxytag: member="WavFile::riffchhdr" ref="eddda3fdc091e6aed858ae1bec29fbaa" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWavChunkHeader.html">WavChunkHeader</a>* <a class="el" href="classWavFile.html#eddda3fdc091e6aed858ae1bec29fbaa">WavFile::riffchhdr</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="1198a886ea0234d04f3a22e2f54f0b38"></a><!-- doxytag: member="WavFile::SamplesPerVertex" ref="1198a886ea0234d04f3a22e2f54f0b38" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const unsigned short <a class="el" href="classWavFile.html#1198a886ea0234d04f3a22e2f54f0b38">WavFile::SamplesPerVertex</a> = 2<code> [static, private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Reimplemented from <a class="el" href="classCvrStgFile.html#db36bcc7f833abf7d57073fff494dbc1">CvrStgFile</a>.</p>

</div>
</div><p>
<a class="anchor" name="8cfacb5b04047f05beb95dc48381b85f"></a><!-- doxytag: member="WavFile::UnusedAfterData" ref="8cfacb5b04047f05beb95dc48381b85f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="common_8h.html#4ae1dab0fb4b072a66584546209e7d58">BYTE</a>&gt; <a class="el" href="classWavFile.html#8cfacb5b04047f05beb95dc48381b85f">WavFile::UnusedAfterData</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="fa1d955f470a2c922586222ae6711c19"></a><!-- doxytag: member="WavFile::UnusedBeforeData" ref="fa1d955f470a2c922586222ae6711c19" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classWavChunkUnused.html">WavChunkUnused</a>*&gt; <a class="el" href="classWavFile.html#fa1d955f470a2c922586222ae6711c19">WavFile::UnusedBeforeData</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="WavFile_8h_source.html">WavFile.h</a><li><a class="el" href="WavFile_8cc.html">WavFile.cc</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Aug 17 10:58:33 2009 for steghide by&nbsp;
<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>