Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 1364e0e56e2a7f69d7eb0f38746e5c1c > files > 138

gig-3.3.0-2.2459.2.mga4.x86_64.rpm

<!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>libgig: gig::Sample Class 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</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">libgig
   &#160;<span id="projectnumber">3.3.0.svn4</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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</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&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classgig_1_1Sample.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classgig_1_1Sample-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">gig::Sample Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Encapsulates sample waves used for playback.  
 <a href="classgig_1_1Sample.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="gig_8h_source.html">gig.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gig::Sample:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classgig_1_1Sample.png" usemap="#gig::Sample_map" alt=""/>
  <map id="gig::Sample_map" name="gig::Sample_map">
<area href="classDLS_1_1Sample.html" title="Encapsulates sample waves used for playback. " alt="DLS::Sample" shape="rect" coords="0,56,96,80"/>
<area href="classDLS_1_1Resource.html" title="Abstract base class which encapsulates data structures which all DLS resources are able to provide..." alt="DLS::Resource" shape="rect" coords="0,0,96,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:a6fef99efa58a1fad3b44d69e6b2a808b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a6fef99efa58a1fad3b44d69e6b2a808b">LoadSampleData</a> ()</td></tr>
<tr class="memdesc:a6fef99efa58a1fad3b44d69e6b2a808b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads (and uncompresses if needed) the whole sample wave into RAM.  <a href="#a6fef99efa58a1fad3b44d69e6b2a808b">More...</a><br/></td></tr>
<tr class="separator:a6fef99efa58a1fad3b44d69e6b2a808b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa75452150f06dcbb201eb2beb608da86"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#aa75452150f06dcbb201eb2beb608da86">LoadSampleData</a> (unsigned long SampleCount)</td></tr>
<tr class="memdesc:aa75452150f06dcbb201eb2beb608da86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads (uncompresses if needed) and caches the first <em>SampleCount</em> numbers of SamplePoints in RAM.  <a href="#aa75452150f06dcbb201eb2beb608da86">More...</a><br/></td></tr>
<tr class="separator:aa75452150f06dcbb201eb2beb608da86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb6dc1a904da612e582d6fdd543b93af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#abb6dc1a904da612e582d6fdd543b93af">LoadSampleDataWithNullSamplesExtension</a> (uint NullSamplesCount)</td></tr>
<tr class="memdesc:abb6dc1a904da612e582d6fdd543b93af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads (and uncompresses if needed) the whole sample wave into RAM.  <a href="#abb6dc1a904da612e582d6fdd543b93af">More...</a><br/></td></tr>
<tr class="separator:abb6dc1a904da612e582d6fdd543b93af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8404960aeee5be4d89087dab77b7d19"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#ae8404960aeee5be4d89087dab77b7d19">LoadSampleDataWithNullSamplesExtension</a> (unsigned long SampleCount, uint NullSamplesCount)</td></tr>
<tr class="memdesc:ae8404960aeee5be4d89087dab77b7d19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads (uncompresses if needed) and caches the first <em>SampleCount</em> numbers of SamplePoints in RAM.  <a href="#ae8404960aeee5be4d89087dab77b7d19">More...</a><br/></td></tr>
<tr class="separator:ae8404960aeee5be4d89087dab77b7d19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef5f7d5299b716f7ad49c994f3a7d8f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#aef5f7d5299b716f7ad49c994f3a7d8f9">GetCache</a> ()</td></tr>
<tr class="memdesc:aef5f7d5299b716f7ad49c994f3a7d8f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns current cached sample points.  <a href="#aef5f7d5299b716f7ad49c994f3a7d8f9">More...</a><br/></td></tr>
<tr class="separator:aef5f7d5299b716f7ad49c994f3a7d8f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc48013f20c12d247c30c48dc6436e7d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#abc48013f20c12d247c30c48dc6436e7d">ReleaseSampleData</a> ()</td></tr>
<tr class="memdesc:abc48013f20c12d247c30c48dc6436e7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the cached sample from RAM if loaded with <em><a class="el" href="classgig_1_1Sample.html#a6fef99efa58a1fad3b44d69e6b2a808b" title="Loads (and uncompresses if needed) the whole sample wave into RAM. ">LoadSampleData()</a></em> previously.  <a href="#abc48013f20c12d247c30c48dc6436e7d">More...</a><br/></td></tr>
<tr class="separator:abc48013f20c12d247c30c48dc6436e7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af63d3c451bacf98c9421eafc48b9e87e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#af63d3c451bacf98c9421eafc48b9e87e">Resize</a> (int iNewSize)</td></tr>
<tr class="memdesc:af63d3c451bacf98c9421eafc48b9e87e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize sample.  <a href="#af63d3c451bacf98c9421eafc48b9e87e">More...</a><br/></td></tr>
<tr class="separator:af63d3c451bacf98c9421eafc48b9e87e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44e77515584e1dc07fb53d5b0f00b404"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a44e77515584e1dc07fb53d5b0f00b404">SetPos</a> (unsigned long SampleCount, <a class="el" href="namespaceRIFF.html#a0d7db9bee8a06fb344d95bcbc4997337">RIFF::stream_whence_t</a> Whence=<a class="el" href="namespaceRIFF.html#a0d7db9bee8a06fb344d95bcbc4997337a52592d3e26eee4a575743c2851e3e5a3">RIFF::stream_start</a>)</td></tr>
<tr class="memdesc:a44e77515584e1dc07fb53d5b0f00b404"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the position within the sample (in sample points, not in bytes).  <a href="#a44e77515584e1dc07fb53d5b0f00b404">More...</a><br/></td></tr>
<tr class="separator:a44e77515584e1dc07fb53d5b0f00b404"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9032d438fe19c7d6850e808e6d70831"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#aa9032d438fe19c7d6850e808e6d70831">GetPos</a> ()</td></tr>
<tr class="memdesc:aa9032d438fe19c7d6850e808e6d70831"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current position in the sample (in sample points).  <a href="#aa9032d438fe19c7d6850e808e6d70831">More...</a><br/></td></tr>
<tr class="separator:aa9032d438fe19c7d6850e808e6d70831"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a277fc64d98380ff80f822802edb0ad60"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a277fc64d98380ff80f822802edb0ad60">Read</a> (void *pBuffer, unsigned long SampleCount, <a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> *pExternalDecompressionBuffer=NULL)</td></tr>
<tr class="memdesc:a277fc64d98380ff80f822802edb0ad60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <em>SampleCount</em> number of sample points from the current position into the buffer pointed by <em>pBuffer</em> and increments the position within the sample.  <a href="#a277fc64d98380ff80f822802edb0ad60">More...</a><br/></td></tr>
<tr class="separator:a277fc64d98380ff80f822802edb0ad60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a001a78689bf56303c41089627bf5ec24"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a001a78689bf56303c41089627bf5ec24">ReadAndLoop</a> (void *pBuffer, unsigned long SampleCount, <a class="el" href="structgig_1_1playback__state__t.html">playback_state_t</a> *pPlaybackState, <a class="el" href="classgig_1_1DimensionRegion.html">DimensionRegion</a> *pDimRgn, <a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> *pExternalDecompressionBuffer=NULL)</td></tr>
<tr class="memdesc:a001a78689bf56303c41089627bf5ec24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <em>SampleCount</em> number of sample points from the position stored in <em>pPlaybackState</em> into the buffer pointed by <em>pBuffer</em> and moves the position within the sample respectively, this method honors the looping informations of the sample (if any).  <a href="#a001a78689bf56303c41089627bf5ec24">More...</a><br/></td></tr>
<tr class="separator:a001a78689bf56303c41089627bf5ec24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c44748567f31d542aec349653772993"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a0c44748567f31d542aec349653772993">Write</a> (void *pBuffer, unsigned long SampleCount)</td></tr>
<tr class="memdesc:a0c44748567f31d542aec349653772993"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write sample wave data.  <a href="#a0c44748567f31d542aec349653772993">More...</a><br/></td></tr>
<tr class="separator:a0c44748567f31d542aec349653772993"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a042f28c24540df954e6c05eb7ef20a21"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgig_1_1Group.html">Group</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a042f28c24540df954e6c05eb7ef20a21">GetGroup</a> () const </td></tr>
<tr class="memdesc:a042f28c24540df954e6c05eb7ef20a21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pointer to the <a class="el" href="classgig_1_1Group.html" title="Group of Gigasampler objects. ">Group</a> this <a class="el" href="classgig_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a> belongs to.  <a href="#a042f28c24540df954e6c05eb7ef20a21">More...</a><br/></td></tr>
<tr class="separator:a042f28c24540df954e6c05eb7ef20a21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc9b34c9c4018d3fd4983e187681bed6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#adc9b34c9c4018d3fd4983e187681bed6">UpdateChunks</a> ()</td></tr>
<tr class="memdesc:adc9b34c9c4018d3fd4983e187681bed6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply sample and its settings to the respective <a class="el" href="namespaceRIFF.html" title="RIFF specific classes and definitions. ">RIFF</a> chunks.  <a href="#adc9b34c9c4018d3fd4983e187681bed6">More...</a><br/></td></tr>
<tr class="separator:adc9b34c9c4018d3fd4983e187681bed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65455385bbee5487ce8889eabda3de57"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#a65455385bbee5487ce8889eabda3de57">GetSize</a> ()</td></tr>
<tr class="memdesc:a65455385bbee5487ce8889eabda3de57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns sample size.  <a href="#a65455385bbee5487ce8889eabda3de57">More...</a><br/></td></tr>
<tr class="separator:a65455385bbee5487ce8889eabda3de57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab7f7472494cfa260b9bb8ffd9c80d5f"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#aab7f7472494cfa260b9bb8ffd9c80d5f">Read</a> (void *pBuffer, unsigned long SampleCount)</td></tr>
<tr class="memdesc:aab7f7472494cfa260b9bb8ffd9c80d5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads <em>SampleCount</em> number of sample points from the current position into the buffer pointed by <em>pBuffer</em> and increments the position within the sample.  <a href="#aab7f7472494cfa260b9bb8ffd9c80d5f">More...</a><br/></td></tr>
<tr class="separator:aab7f7472494cfa260b9bb8ffd9c80d5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a28936fa74b10ce8ef4abd2fcee979d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDLS_1_1Resource.html#a614caf50405431e0385999e3a55a6ea8">Resource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Resource.html#a5a28936fa74b10ce8ef4abd2fcee979d">GetParent</a> ()</td></tr>
<tr class="separator:a5a28936fa74b10ce8ef4abd2fcee979d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ab8d2f74cc8e11e558dd01ee2fef01d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Resource.html#a1ab8d2f74cc8e11e558dd01ee2fef01d">GenerateDLSID</a> ()</td></tr>
<tr class="memdesc:a1ab8d2f74cc8e11e558dd01ee2fef01d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a new DLSID for the resource.  <a href="#a1ab8d2f74cc8e11e558dd01ee2fef01d">More...</a><br/></td></tr>
<tr class="separator:a1ab8d2f74cc8e11e558dd01ee2fef01d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31a86a542cf4fd21ab20bee644384776"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Resource.html#a31a86a542cf4fd21ab20bee644384776">CopyAssign</a> (const <a class="el" href="classDLS_1_1Resource.html#a614caf50405431e0385999e3a55a6ea8">Resource</a> *orig)</td></tr>
<tr class="memdesc:a31a86a542cf4fd21ab20bee644384776"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make a deep copy of the <a class="el" href="classDLS_1_1Resource.html" title="Abstract base class which encapsulates data structures which all DLS resources are able to provide...">Resource</a> object given by <em>orig</em> and assign it to this object.  <a href="#a31a86a542cf4fd21ab20bee644384776">More...</a><br/></td></tr>
<tr class="separator:a31a86a542cf4fd21ab20bee644384776"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:ae28e6d5c37ab788069966237a5d3628d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structgig_1_1buffer__t.html">buffer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#ae28e6d5c37ab788069966237a5d3628d">CreateDecompressionBuffer</a> (unsigned long MaxReadSize)</td></tr>
<tr class="memdesc:ae28e6d5c37ab788069966237a5d3628d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a decompression buffer for streaming (compressed) samples with <a class="el" href="classgig_1_1Sample.html#a277fc64d98380ff80f822802edb0ad60" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Sample::Read()</a>.  <a href="#ae28e6d5c37ab788069966237a5d3628d">More...</a><br/></td></tr>
<tr class="separator:ae28e6d5c37ab788069966237a5d3628d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02962a5f9e11f315d8d81c3fee51242d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a02962a5f9e11f315d8d81c3fee51242d">DestroyDecompressionBuffer</a> (<a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> &amp;DecompressionBuffer)</td></tr>
<tr class="memdesc:a02962a5f9e11f315d8d81c3fee51242d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free decompression buffer, previously created with <a class="el" href="classgig_1_1Sample.html#ae28e6d5c37ab788069966237a5d3628d" title="Allocates a decompression buffer for streaming (compressed) samples with Sample::Read(). ">CreateDecompressionBuffer()</a>.  <a href="#a02962a5f9e11f315d8d81c3fee51242d">More...</a><br/></td></tr>
<tr class="separator:a02962a5f9e11f315d8d81c3fee51242d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ad9c1ca73a06819253cdace31aa3702d6"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#ad9c1ca73a06819253cdace31aa3702d6">Manufacturer</a></td></tr>
<tr class="memdesc:ad9c1ca73a06819253cdace31aa3702d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the MIDI Manufacturer's Association (MMA) Manufacturer code for the sampler intended to receive this file's waveform. If no particular manufacturer is to be specified, a value of 0 should be used.  <a href="#ad9c1ca73a06819253cdace31aa3702d6">More...</a><br/></td></tr>
<tr class="separator:ad9c1ca73a06819253cdace31aa3702d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35cebfe2f64196c87b7bb3b4d5ba4a9b"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a35cebfe2f64196c87b7bb3b4d5ba4a9b">Product</a></td></tr>
<tr class="memdesc:a35cebfe2f64196c87b7bb3b4d5ba4a9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the MIDI model ID defined by the manufacturer corresponding to the Manufacturer field. If no particular manufacturer's product is to be specified, a value of 0 should be used.  <a href="#a35cebfe2f64196c87b7bb3b4d5ba4a9b">More...</a><br/></td></tr>
<tr class="separator:a35cebfe2f64196c87b7bb3b4d5ba4a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa51dc79b0d40142165c8b43b944a5e5d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#aa51dc79b0d40142165c8b43b944a5e5d">SamplePeriod</a></td></tr>
<tr class="memdesc:aa51dc79b0d40142165c8b43b944a5e5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the duration of time that passes during the playback of one sample in nanoseconds (normally equal to 1 / Samples Per Second, where Samples Per Second is the value found in the format chunk), don't bother to update this attribute, it won't be saved.  <a href="#aa51dc79b0d40142165c8b43b944a5e5d">More...</a><br/></td></tr>
<tr class="separator:aa51dc79b0d40142165c8b43b944a5e5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e72961facb489e3ceb6997edd445e02"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a6e72961facb489e3ceb6997edd445e02">MIDIUnityNote</a></td></tr>
<tr class="memdesc:a6e72961facb489e3ceb6997edd445e02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the musical note at which the sample will be played at it's original sample rate.  <a href="#a6e72961facb489e3ceb6997edd445e02">More...</a><br/></td></tr>
<tr class="separator:a6e72961facb489e3ceb6997edd445e02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0148a733a50257a67235e727463cf95"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#af0148a733a50257a67235e727463cf95">FineTune</a></td></tr>
<tr class="memdesc:af0148a733a50257a67235e727463cf95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the fraction of a semitone up from the specified MIDI unity note field. A value of 0x80000000 means 1/2 semitone (50 cents) and a value of 0x00000000 means no fine tuning between semitones.  <a href="#af0148a733a50257a67235e727463cf95">More...</a><br/></td></tr>
<tr class="separator:af0148a733a50257a67235e727463cf95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71b3454cf5a5f5ae85207cadfb7c51af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegig.html#a3bd093bec421aa4504d9b714b36a6d0c">smpte_format_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a71b3454cf5a5f5ae85207cadfb7c51af">SMPTEFormat</a></td></tr>
<tr class="memdesc:a71b3454cf5a5f5ae85207cadfb7c51af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the Society of Motion Pictures and Television E time format used in the following <em>SMPTEOffset</em> field. If a value of 0 is set, <em>SMPTEOffset</em> should also be set to 0.  <a href="#a71b3454cf5a5f5ae85207cadfb7c51af">More...</a><br/></td></tr>
<tr class="separator:a71b3454cf5a5f5ae85207cadfb7c51af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f50be891967bf5f0dc5c43ae11ea139"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a2f50be891967bf5f0dc5c43ae11ea139">SMPTEOffset</a></td></tr>
<tr class="memdesc:a2f50be891967bf5f0dc5c43ae11ea139"><td class="mdescLeft">&#160;</td><td class="mdescRight">The SMPTE Offset value specifies the time offset to be used for the synchronization / calibration to the first sample in the waveform. This value uses a format of 0xhhmmssff where hh is a signed value that specifies the number of hours (-23 to 23), mm is an unsigned value that specifies the number of minutes (0 to 59), ss is an unsigned value that specifies the number of seconds (0 to 59) and ff is an unsigned value that specifies the number of frames (0 to -1).  <a href="#a2f50be891967bf5f0dc5c43ae11ea139">More...</a><br/></td></tr>
<tr class="separator:a2f50be891967bf5f0dc5c43ae11ea139"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1177d9b52f591b61fa9d7a37a500e807"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a1177d9b52f591b61fa9d7a37a500e807">Loops</a></td></tr>
<tr class="memdesc:a1177d9b52f591b61fa9d7a37a500e807"><td class="mdescLeft">&#160;</td><td class="mdescRight"><em>Caution:</em> Use the respective field in the <a class="el" href="classgig_1_1DimensionRegion.html" title="Encapsulates articulation information of a dimension region. ">DimensionRegion</a> instead of this one! (Intended purpose: Number of defined sample loops. So far only seen single loops in gig files - please report if you encounter more!)  <a href="#a1177d9b52f591b61fa9d7a37a500e807">More...</a><br/></td></tr>
<tr class="separator:a1177d9b52f591b61fa9d7a37a500e807"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98f142188d0482cf11fe876c34db145e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a98f142188d0482cf11fe876c34db145e">LoopID</a></td></tr>
<tr class="memdesc:a98f142188d0482cf11fe876c34db145e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specifies the unique ID that corresponds to one of the defined cue points in the cue point list (only if Loops &gt; 0), as the Gigasampler format only allows one loop definition at the moment, this attribute isn't really useful for anything.  <a href="#a98f142188d0482cf11fe876c34db145e">More...</a><br/></td></tr>
<tr class="separator:a98f142188d0482cf11fe876c34db145e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d12e4cdc0ca42098c05a0fbf40865f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegig.html#ae335437439617e23ae9d8c2751d1ae73">loop_type_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a0d12e4cdc0ca42098c05a0fbf40865f5">LoopType</a></td></tr>
<tr class="memdesc:a0d12e4cdc0ca42098c05a0fbf40865f5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><em>Caution:</em> Use the respective field in the <a class="el" href="classgig_1_1DimensionRegion.html" title="Encapsulates articulation information of a dimension region. ">DimensionRegion</a> instead of this one! (Intended purpose: The type field defines how the waveform samples will be looped.)  <a href="#a0d12e4cdc0ca42098c05a0fbf40865f5">More...</a><br/></td></tr>
<tr class="separator:a0d12e4cdc0ca42098c05a0fbf40865f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2395230a88f70cdeaaa4c02f07e671c9"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a2395230a88f70cdeaaa4c02f07e671c9">LoopStart</a></td></tr>
<tr class="memdesc:a2395230a88f70cdeaaa4c02f07e671c9"><td class="mdescLeft">&#160;</td><td class="mdescRight"><em>Caution:</em> Use the respective field in the <a class="el" href="classgig_1_1DimensionRegion.html" title="Encapsulates articulation information of a dimension region. ">DimensionRegion</a> instead of this one! (Intended purpose: The start value specifies the offset [in sample points] in the waveform data of the first sample to be played in the loop [only if Loops &gt; 0].)  <a href="#a2395230a88f70cdeaaa4c02f07e671c9">More...</a><br/></td></tr>
<tr class="separator:a2395230a88f70cdeaaa4c02f07e671c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a5a028c771ce9c95ff07b881009fada"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a3a5a028c771ce9c95ff07b881009fada">LoopEnd</a></td></tr>
<tr class="memdesc:a3a5a028c771ce9c95ff07b881009fada"><td class="mdescLeft">&#160;</td><td class="mdescRight"><em>Caution:</em> Use the respective field in the <a class="el" href="classgig_1_1DimensionRegion.html" title="Encapsulates articulation information of a dimension region. ">DimensionRegion</a> instead of this one! (Intended purpose: The end value specifies the offset [in sample points] in the waveform data which represents the end of the loop [only if Loops &gt; 0].)  <a href="#a3a5a028c771ce9c95ff07b881009fada">More...</a><br/></td></tr>
<tr class="separator:a3a5a028c771ce9c95ff07b881009fada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc9417274f3e14625bffa4996ab1cf8c"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#afc9417274f3e14625bffa4996ab1cf8c">LoopSize</a></td></tr>
<tr class="memdesc:afc9417274f3e14625bffa4996ab1cf8c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><em>Caution:</em> Use the respective fields in the <a class="el" href="classgig_1_1DimensionRegion.html" title="Encapsulates articulation information of a dimension region. ">DimensionRegion</a> instead of this one! (Intended purpose: Length of the looping area [in sample points] which is equivalent to  <a href="#afc9417274f3e14625bffa4996ab1cf8c">More...</a><br/></td></tr>
<tr class="separator:afc9417274f3e14625bffa4996ab1cf8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f1efa740167c0612c272e4f2cf95c11"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a1f1efa740167c0612c272e4f2cf95c11">LoopFraction</a></td></tr>
<tr class="memdesc:a1f1efa740167c0612c272e4f2cf95c11"><td class="mdescLeft">&#160;</td><td class="mdescRight">The fractional value specifies a fraction of a sample at which to loop. This allows a loop to be fine tuned at a resolution greater than one sample. A value of 0 means no fraction, a value of 0x80000000 means 1/2 of a sample length. 0xFFFFFFFF is the smallest fraction of a sample that can be represented.  <a href="#a1f1efa740167c0612c272e4f2cf95c11">More...</a><br/></td></tr>
<tr class="separator:a1f1efa740167c0612c272e4f2cf95c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6cec6f347e47d774f29390e69ed095e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#aa6cec6f347e47d774f29390e69ed095e">LoopPlayCount</a></td></tr>
<tr class="memdesc:aa6cec6f347e47d774f29390e69ed095e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of times the loop should be played (a value of 0 = infinite).  <a href="#aa6cec6f347e47d774f29390e69ed095e">More...</a><br/></td></tr>
<tr class="separator:aa6cec6f347e47d774f29390e69ed095e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63917eccef5cdde35188d34e19bc63fa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a63917eccef5cdde35188d34e19bc63fa">Compressed</a></td></tr>
<tr class="memdesc:a63917eccef5cdde35188d34e19bc63fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the sample wave is compressed (probably just interesting for instrument and sample editors, as this library already handles the decompression in it's sample access methods anyway).  <a href="#a63917eccef5cdde35188d34e19bc63fa">More...</a><br/></td></tr>
<tr class="separator:a63917eccef5cdde35188d34e19bc63fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade6a2ea55257b4acb58bbeec043c1f5e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#ade6a2ea55257b4acb58bbeec043c1f5e">TruncatedBits</a></td></tr>
<tr class="memdesc:ade6a2ea55257b4acb58bbeec043c1f5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">For 24-bit compressed samples only: number of bits truncated during compression (0, 4 or 6)  <a href="#ade6a2ea55257b4acb58bbeec043c1f5e">More...</a><br/></td></tr>
<tr class="separator:ade6a2ea55257b4acb58bbeec043c1f5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9660ead7d07b93c94345d8ea9f4d32f0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a9660ead7d07b93c94345d8ea9f4d32f0">Dithered</a></td></tr>
<tr class="memdesc:a9660ead7d07b93c94345d8ea9f4d32f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">For 24-bit compressed samples only: if dithering was used during compression with bit reduction.  <a href="#a9660ead7d07b93c94345d8ea9f4d32f0">More...</a><br/></td></tr>
<tr class="separator:a9660ead7d07b93c94345d8ea9f4d32f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83f2574e1bea3a0fae51bbd905ef0239"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#a83f2574e1bea3a0fae51bbd905ef0239">FormatTag</a></td></tr>
<tr class="memdesc:a83f2574e1bea3a0fae51bbd905ef0239"><td class="mdescLeft">&#160;</td><td class="mdescRight">Format ID of the waveform data (should be DLS_WAVE_FORMAT_PCM for DLS1 compliant files, this is also the default value if <a class="el" href="classDLS_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a> was created with Instrument::AddSample()).  <a href="#a83f2574e1bea3a0fae51bbd905ef0239">More...</a><br/></td></tr>
<tr class="separator:a83f2574e1bea3a0fae51bbd905ef0239"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e79b71f314edd8c7d7ceaf291312736"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#a5e79b71f314edd8c7d7ceaf291312736">Channels</a></td></tr>
<tr class="memdesc:a5e79b71f314edd8c7d7ceaf291312736"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of channels represented in the waveform data, e.g. 1 for mono, 2 for stereo (defaults to 1=mono if <a class="el" href="classDLS_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a> was created with Instrument::AddSample() previously).  <a href="#a5e79b71f314edd8c7d7ceaf291312736">More...</a><br/></td></tr>
<tr class="separator:a5e79b71f314edd8c7d7ceaf291312736"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67233d77d4ab1ad96cfb30feea081a5a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#a67233d77d4ab1ad96cfb30feea081a5a">SamplesPerSecond</a></td></tr>
<tr class="memdesc:a67233d77d4ab1ad96cfb30feea081a5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sampling rate at which each channel should be played (defaults to 44100 if <a class="el" href="classDLS_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a> was created with Instrument::AddSample() previously).  <a href="#a67233d77d4ab1ad96cfb30feea081a5a">More...</a><br/></td></tr>
<tr class="separator:a67233d77d4ab1ad96cfb30feea081a5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9de87dbb227f94d1e990d1c53bb4eb97"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#a9de87dbb227f94d1e990d1c53bb4eb97">AverageBytesPerSecond</a></td></tr>
<tr class="memdesc:a9de87dbb227f94d1e990d1c53bb4eb97"><td class="mdescLeft">&#160;</td><td class="mdescRight">The average number of bytes per second at which the waveform data should be transferred (Playback software can estimate the buffer size using this value).  <a href="#a9de87dbb227f94d1e990d1c53bb4eb97">More...</a><br/></td></tr>
<tr class="separator:a9de87dbb227f94d1e990d1c53bb4eb97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22c1f683909c30356e00a89a01e9a957"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#a22c1f683909c30356e00a89a01e9a957">BlockAlign</a></td></tr>
<tr class="memdesc:a22c1f683909c30356e00a89a01e9a957"><td class="mdescLeft">&#160;</td><td class="mdescRight">The block alignment (in bytes) of the waveform data. Playback software needs to process a multiple of <em>BlockAlign</em> bytes of data at a time, so the value of <em>BlockAlign</em> can be used for buffer alignment.  <a href="#a22c1f683909c30356e00a89a01e9a957">More...</a><br/></td></tr>
<tr class="separator:a22c1f683909c30356e00a89a01e9a957"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34b7e4ed2f1258f7bb179c5a9768d1a8"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#a34b7e4ed2f1258f7bb179c5a9768d1a8">BitDepth</a></td></tr>
<tr class="memdesc:a34b7e4ed2f1258f7bb179c5a9768d1a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of each sample per channel (only if known sample data format is used, 0 otherwise).  <a href="#a34b7e4ed2f1258f7bb179c5a9768d1a8">More...</a><br/></td></tr>
<tr class="separator:a34b7e4ed2f1258f7bb179c5a9768d1a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa41de6b133960c3f489855b365834c2b"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#aa41de6b133960c3f489855b365834c2b">SamplesTotal</a></td></tr>
<tr class="memdesc:aa41de6b133960c3f489855b365834c2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reflects total number of sample points (only if known sample data format is used, 0 otherwise), do not bother to change this value, it will not be saved.  <a href="#aa41de6b133960c3f489855b365834c2b">More...</a><br/></td></tr>
<tr class="separator:aa41de6b133960c3f489855b365834c2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96dc42e0ea59c3e472aba938a9b157ba"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#a96dc42e0ea59c3e472aba938a9b157ba">FrameSize</a></td></tr>
<tr class="memdesc:a96dc42e0ea59c3e472aba938a9b157ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reflects the size (in bytes) of one single sample point (only if known sample data format is used, 0 otherwise). <b>Caution:</b> with the current version of libgig you have to upate this field by yourself whenever you change one of the following fields: Channels, BitDepth ! Ignoring this might lead to undesired behavior when i.e. calling <a class="el" href="classDLS_1_1Sample.html#a9111248085915d5f263b02edf08a7dbc" title="Resize sample. ">Resize()</a>, <a class="el" href="classDLS_1_1Sample.html#aaf87235b9c79586e19a245011f2253bd" title="Sets the position within the sample (in sample points, not in bytes). ">SetPos()</a>, <a class="el" href="classDLS_1_1Sample.html#acfad687f97fcbbff594fb65a987958b9" title="Write sample wave data. ">Write()</a> or <a class="el" href="classDLS_1_1Sample.html#aab7f7472494cfa260b9bb8ffd9c80d5f" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Read()</a>.  <a href="#a96dc42e0ea59c3e472aba938a9b157ba">More...</a><br/></td></tr>
<tr class="separator:a96dc42e0ea59c3e472aba938a9b157ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34be00ec61a9888c5d0dc67f4c74f33d"><td class="memItemLeft" align="right" valign="top">Info *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Resource.html#a34be00ec61a9888c5d0dc67f4c74f33d">pInfo</a></td></tr>
<tr class="memdesc:a34be00ec61a9888c5d0dc67f4c74f33d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Points (in any case) to an <em><a class="el" href="classDLS_1_1Info.html" title="Optional information for DLS files, instruments, samples, etc. ">Info</a></em> object, providing additional, optional infos and comments.  <a href="#a34be00ec61a9888c5d0dc67f4c74f33d">More...</a><br/></td></tr>
<tr class="separator:a34be00ec61a9888c5d0dc67f4c74f33d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52632417e3dc96481bdec2b76e18d359"><td class="memItemLeft" align="right" valign="top">dlsid_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Resource.html#a52632417e3dc96481bdec2b76e18d359">pDLSID</a></td></tr>
<tr class="memdesc:a52632417e3dc96481bdec2b76e18d359"><td class="mdescLeft">&#160;</td><td class="mdescRight">Points to a <em><a class="el" href="structDLS_1_1dlsid__t.html" title="Every subject of an DLS file and the file itself can have an unique, computer generated ID...">dlsid_t</a></em> structure if the file provided a <a class="el" href="namespaceDLS.html" title="DLS specific classes and definitions. ">DLS</a> ID else is <em>NULL</em>.  <a href="#a52632417e3dc96481bdec2b76e18d359">More...</a><br/></td></tr>
<tr class="separator:a52632417e3dc96481bdec2b76e18d359"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a09492392ca6f0a999dc475312acdcc52"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a09492392ca6f0a999dc475312acdcc52">Sample</a> (<a class="el" href="classgig_1_1File.html">File</a> *pFile, <a class="el" href="classRIFF_1_1List.html">RIFF::List</a> *waveList, unsigned long WavePoolOffset, unsigned long fileNo=0)</td></tr>
<tr class="memdesc:a09492392ca6f0a999dc475312acdcc52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a09492392ca6f0a999dc475312acdcc52">More...</a><br/></td></tr>
<tr class="separator:a09492392ca6f0a999dc475312acdcc52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a366efc7655bea3299e22fa69dd0d98be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a366efc7655bea3299e22fa69dd0d98be">~Sample</a> ()</td></tr>
<tr class="memdesc:a366efc7655bea3299e22fa69dd0d98be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a366efc7655bea3299e22fa69dd0d98be">More...</a><br/></td></tr>
<tr class="separator:a366efc7655bea3299e22fa69dd0d98be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5bfa5e3c46f1de20798e202d5795496"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#ac5bfa5e3c46f1de20798e202d5795496">GuessSize</a> (unsigned long samples)</td></tr>
<tr class="separator:ac5bfa5e3c46f1de20798e202d5795496"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f9ae21baeb8f53abe3ca84e5d147148"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a2f9ae21baeb8f53abe3ca84e5d147148">WorstCaseMaxSamples</a> (<a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> *pDecompressionBuffer)</td></tr>
<tr class="separator:a2f9ae21baeb8f53abe3ca84e5d147148"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a3e8397225bc644c28210efd0b2fa899b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgig_1_1Group.html">Group</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a3e8397225bc644c28210efd0b2fa899b">pGroup</a></td></tr>
<tr class="memdesc:a3e8397225bc644c28210efd0b2fa899b"><td class="mdescLeft">&#160;</td><td class="mdescRight">pointer to the <a class="el" href="classgig_1_1Group.html" title="Group of Gigasampler objects. ">Group</a> this sample belongs to (always not-NULL)  <a href="#a3e8397225bc644c28210efd0b2fa899b">More...</a><br/></td></tr>
<tr class="separator:a3e8397225bc644c28210efd0b2fa899b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca89a80ea116f9d64ef60beb23833e63"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#aca89a80ea116f9d64ef60beb23833e63">FrameOffset</a></td></tr>
<tr class="memdesc:aca89a80ea116f9d64ef60beb23833e63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current offset (sample points) in current sample frame (for decompression only).  <a href="#aca89a80ea116f9d64ef60beb23833e63">More...</a><br/></td></tr>
<tr class="separator:aca89a80ea116f9d64ef60beb23833e63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e012c5eb81be6e2f9ed2b11e7edfd93"><td class="memItemLeft" align="right" valign="top">unsigned long *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a4e012c5eb81be6e2f9ed2b11e7edfd93">FrameTable</a></td></tr>
<tr class="memdesc:a4e012c5eb81be6e2f9ed2b11e7edfd93"><td class="mdescLeft">&#160;</td><td class="mdescRight">For positioning within compressed samples only: stores the offset values for each frame.  <a href="#a4e012c5eb81be6e2f9ed2b11e7edfd93">More...</a><br/></td></tr>
<tr class="separator:a4e012c5eb81be6e2f9ed2b11e7edfd93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c63e9fbe4e982302cee7f29a61a5001"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a6c63e9fbe4e982302cee7f29a61a5001">SamplePos</a></td></tr>
<tr class="memdesc:a6c63e9fbe4e982302cee7f29a61a5001"><td class="mdescLeft">&#160;</td><td class="mdescRight">For compressed samples only: stores the current position (in sample points).  <a href="#a6c63e9fbe4e982302cee7f29a61a5001">More...</a><br/></td></tr>
<tr class="separator:a6c63e9fbe4e982302cee7f29a61a5001"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8541089513669e93399b28fe434a8897"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a8541089513669e93399b28fe434a8897">SamplesInLastFrame</a></td></tr>
<tr class="memdesc:a8541089513669e93399b28fe434a8897"><td class="mdescLeft">&#160;</td><td class="mdescRight">For compressed samples only: length of the last sample frame.  <a href="#a8541089513669e93399b28fe434a8897">More...</a><br/></td></tr>
<tr class="separator:a8541089513669e93399b28fe434a8897"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fbed3a5dfa38b36503ff46d0b3fc3d0"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a4fbed3a5dfa38b36503ff46d0b3fc3d0">WorstCaseFrameSize</a></td></tr>
<tr class="memdesc:a4fbed3a5dfa38b36503ff46d0b3fc3d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">For compressed samples only: size (in bytes) of the largest possible sample frame.  <a href="#a4fbed3a5dfa38b36503ff46d0b3fc3d0">More...</a><br/></td></tr>
<tr class="separator:a4fbed3a5dfa38b36503ff46d0b3fc3d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49f249dab87a7236bd8096be8fa4d18b"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a49f249dab87a7236bd8096be8fa4d18b">SamplesPerFrame</a></td></tr>
<tr class="memdesc:a49f249dab87a7236bd8096be8fa4d18b"><td class="mdescLeft">&#160;</td><td class="mdescRight">For compressed samples only: number of samples in a full sample frame.  <a href="#a49f249dab87a7236bd8096be8fa4d18b">More...</a><br/></td></tr>
<tr class="separator:a49f249dab87a7236bd8096be8fa4d18b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fe718fef9010328e17d49edc466914c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a2fe718fef9010328e17d49edc466914c">RAMCache</a></td></tr>
<tr class="memdesc:a2fe718fef9010328e17d49edc466914c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffers samples (already uncompressed) in RAM.  <a href="#a2fe718fef9010328e17d49edc466914c">More...</a><br/></td></tr>
<tr class="separator:a2fe718fef9010328e17d49edc466914c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f71e5a4bef537d0f3f9257d25cd6b45"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a1f71e5a4bef537d0f3f9257d25cd6b45">FileNo</a></td></tr>
<tr class="memdesc:a1f71e5a4bef537d0f3f9257d25cd6b45"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classgig_1_1File.html" title="Parses Gigasampler files and provides abstract access to the data. ">File</a> number (&gt; 0 when sample is stored in an extension file, 0 when it's in the gig)  <a href="#a1f71e5a4bef537d0f3f9257d25cd6b45">More...</a><br/></td></tr>
<tr class="separator:a1f71e5a4bef537d0f3f9257d25cd6b45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1900bc5730b89b8ba6d277ee98ba711a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRIFF_1_1Chunk.html">RIFF::Chunk</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a1900bc5730b89b8ba6d277ee98ba711a">pCk3gix</a></td></tr>
<tr class="separator:a1900bc5730b89b8ba6d277ee98ba711a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c07b5196b2d4c073dd6adee0aab7155"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRIFF_1_1Chunk.html">RIFF::Chunk</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a0c07b5196b2d4c073dd6adee0aab7155">pCkSmpl</a></td></tr>
<tr class="separator:a0c07b5196b2d4c073dd6adee0aab7155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6efb940fa5d801e133a1722d6198729a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a6efb940fa5d801e133a1722d6198729a">crc</a></td></tr>
<tr class="memdesc:a6efb940fa5d801e133a1722d6198729a"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC-32 checksum of the raw sample data.  <a href="#a6efb940fa5d801e133a1722d6198729a">More...</a><br/></td></tr>
<tr class="separator:a6efb940fa5d801e133a1722d6198729a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99d112261ac13be7f1f6ab73400f6f73"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRIFF_1_1List.html">RIFF::List</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#a99d112261ac13be7f1f6ab73400f6f73">pWaveList</a></td></tr>
<tr class="separator:a99d112261ac13be7f1f6ab73400f6f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fe96f1eb2fd810985c7a71ac5842589"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRIFF_1_1Chunk.html">RIFF::Chunk</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#a5fe96f1eb2fd810985c7a71ac5842589">pCkData</a></td></tr>
<tr class="separator:a5fe96f1eb2fd810985c7a71ac5842589"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a831b339194284aa33f9d2818be7a5dbc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRIFF_1_1Chunk.html">RIFF::Chunk</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#a831b339194284aa33f9d2818be7a5dbc">pCkFormat</a></td></tr>
<tr class="separator:a831b339194284aa33f9d2818be7a5dbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af36b3f1b52ccc53a31ed1a1541cfa770"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Sample.html#af36b3f1b52ccc53a31ed1a1541cfa770">ulWavePoolOffset</a></td></tr>
<tr class="separator:af36b3f1b52ccc53a31ed1a1541cfa770"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03c2689c422b8a69bad2e11f6b7dc10e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classDLS_1_1Resource.html#a614caf50405431e0385999e3a55a6ea8">Resource</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Resource.html#a03c2689c422b8a69bad2e11f6b7dc10e">pParent</a></td></tr>
<tr class="separator:a03c2689c422b8a69bad2e11f6b7dc10e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc7268bcad007ed7dc9d29952e29746b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classRIFF_1_1List.html">RIFF::List</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDLS_1_1Resource.html#adc7268bcad007ed7dc9d29952e29746b">pResourceList</a></td></tr>
<tr class="separator:adc7268bcad007ed7dc9d29952e29746b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
Static Protected Attributes</h2></td></tr>
<tr class="memitem:ac6a208d1fc80f57a9f4e09fdd13189c4"><td class="memItemLeft" align="right" valign="top">static unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#ac6a208d1fc80f57a9f4e09fdd13189c4">Instances</a> = 0</td></tr>
<tr class="memdesc:ac6a208d1fc80f57a9f4e09fdd13189c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of instances of class <a class="el" href="classgig_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a>.  <a href="#ac6a208d1fc80f57a9f4e09fdd13189c4">More...</a><br/></td></tr>
<tr class="separator:ac6a208d1fc80f57a9f4e09fdd13189c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3d584eb852b861db308807bbc70325f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structgig_1_1buffer__t.html">buffer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#aa3d584eb852b861db308807bbc70325f">InternalDecompressionBuffer</a></td></tr>
<tr class="memdesc:aa3d584eb852b861db308807bbc70325f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer used for decompression as well as for truncation of 24 Bit -&gt; 16 Bit samples.  <a href="#aa3d584eb852b861db308807bbc70325f">More...</a><br/></td></tr>
<tr class="separator:aa3d584eb852b861db308807bbc70325f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a68d15876ad188b7628261b12d0eac8aa"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a68d15876ad188b7628261b12d0eac8aa">File</a></td></tr>
<tr class="separator:a68d15876ad188b7628261b12d0eac8aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae6f9325706131f3b6fb8accb1508d76"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#aae6f9325706131f3b6fb8accb1508d76">Region</a></td></tr>
<tr class="separator:aae6f9325706131f3b6fb8accb1508d76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2697825715974a353728f0d4d5658112"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgig_1_1Sample.html#a2697825715974a353728f0d4d5658112">Group</a></td></tr>
<tr class="separator:a2697825715974a353728f0d4d5658112"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Encapsulates sample waves used for playback. </p>
<p>In case you created a new sample with <a class="el" href="classgig_1_1File.html#ad04841915a1ddd6032be04c7fd57d24b" title="Add a new sample. ">File::AddSample()</a>, you should first update all attributes with the desired meta informations (amount of channels, bit depth, sample rate, etc.), then call <a class="el" href="classgig_1_1Sample.html#af63d3c451bacf98c9421eafc48b9e87e" title="Resize sample. ">Resize()</a> with the desired sample size, followed by <a class="el" href="classDLS_1_1File.html#ad78c781055086b876290f3589d2c1cfd" title="Save changes to same file. ">File::Save()</a>, this will create the mandatory <a class="el" href="namespaceRIFF.html" title="RIFF specific classes and definitions. ">RIFF</a> chunk which will hold the sample wave data and / or resize the file so you will be able to <a class="el" href="classgig_1_1Sample.html#a0c44748567f31d542aec349653772993" title="Write sample wave data. ">Write()</a> the sample data directly to disk.</p>
<p><em>Caution:</em> for gig synthesis, most looping relevant information are retrieved from the respective DimensionRegon instead from the <a class="el" href="classgig_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a> itself. This was made for allowing different loop definitions for the same sample under different conditions. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00526">526</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a09492392ca6f0a999dc475312acdcc52"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">gig::Sample::Sample </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classgig_1_1File.html">File</a> *&#160;</td>
          <td class="paramname"><em>pFile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classRIFF_1_1List.html">RIFF::List</a> *&#160;</td>
          <td class="paramname"><em>waveList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>WavePoolOffset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>fileNo</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor. </p>
<p>Load an existing sample or create a new one. A 'wave' list chunk must be given to this constructor. In case the given 'wave' list chunk contains a 'fmt', 'data' (and optionally a '3gix', 'smpl') chunk, the format and sample data will be loaded from there, otherwise default values will be used and those chunks will be created when <a class="el" href="classDLS_1_1File.html#ad78c781055086b876290f3589d2c1cfd" title="Save changes to same file. ">File::Save()</a> will be called later on.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pFile</td><td>- pointer to <a class="el" href="classgig_1_1File.html" title="Parses Gigasampler files and provides abstract access to the data. ">gig::File</a> where this sample is located (or will be located) </td></tr>
    <tr><td class="paramname">waveList</td><td>- pointer to 'wave' list chunk which is (or will be) associated with this sample </td></tr>
    <tr><td class="paramname">WavePoolOffset</td><td>- offset of this sample data from wave pool ('wvpl') list chunk </td></tr>
    <tr><td class="paramname">fileNo</td><td>- number of an extension file where this sample is located, 0 otherwise </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00369">369</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="DLS_8h_source.html#l00381">DLS::Sample::BitDepth</a>, <a class="el" href="DLS_8h_source.html#l00377">DLS::Sample::Channels</a>, <a class="el" href="gig_8h_source.html#l00047">CHUNK_ID_3GIX</a>, <a class="el" href="gig_8h_source.html#l00051">CHUNK_ID_EWAV</a>, <a class="el" href="RIFF_8h_source.html#l00102">CHUNK_ID_INAM</a>, <a class="el" href="RIFF_8h_source.html#l00106">CHUNK_ID_SMPL</a>, <a class="el" href="gig_8h_source.html#l00543">Compressed</a>, <a class="el" href="gig_8h_source.html#l00545">Dithered</a>, <a class="el" href="gig_8h_source.html#l00577">FileNo</a>, <a class="el" href="gig_8h_source.html#l00532">FineTune</a>, <a class="el" href="gig_8h_source.html#l00570">FrameOffset</a>, <a class="el" href="gig_8h_source.html#l00571">FrameTable</a>, <a class="el" href="gig_8cpp_source.html#l04011">gig::File::GetGroup()</a>, <a class="el" href="RIFF_8cpp_source.html#l01002">RIFF::List::GetSubChunk()</a>, <a class="el" href="gig_8cpp_source.html#l00037">INITIAL_SAMPLE_BUFFER_SIZE</a>, <a class="el" href="gig_8h_source.html#l00567">Instances</a>, <a class="el" href="gig_8h_source.html#l00568">InternalDecompressionBuffer</a>, <a class="el" href="gig_8h_source.html#l00082">gig::loop_type_normal</a>, <a class="el" href="gig_8h_source.html#l00539">LoopEnd</a>, <a class="el" href="gig_8h_source.html#l00541">LoopFraction</a>, <a class="el" href="gig_8h_source.html#l00536">LoopID</a>, <a class="el" href="gig_8h_source.html#l00542">LoopPlayCount</a>, <a class="el" href="gig_8h_source.html#l00535">Loops</a>, <a class="el" href="gig_8h_source.html#l00540">LoopSize</a>, <a class="el" href="gig_8h_source.html#l00538">LoopStart</a>, <a class="el" href="gig_8h_source.html#l00537">LoopType</a>, <a class="el" href="gig_8h_source.html#l00528">Manufacturer</a>, <a class="el" href="gig_8h_source.html#l00531">MIDIUnityNote</a>, <a class="el" href="gig_8h_source.html#l00072">gig::buffer_t::NullExtensionSize</a>, <a class="el" href="gig_8h_source.html#l00578">pCk3gix</a>, <a class="el" href="gig_8h_source.html#l00579">pCkSmpl</a>, <a class="el" href="gig_8h_source.html#l00569">pGroup</a>, <a class="el" href="DLS_8h_source.html#l00327">DLS::Resource::pInfo</a>, <a class="el" href="gig_8h_source.html#l00529">Product</a>, <a class="el" href="gig_8h_source.html#l00070">gig::buffer_t::pStart</a>, <a class="el" href="gig_8h_source.html#l00576">RAMCache</a>, <a class="el" href="RIFF_8cpp_source.html#l00280">RIFF::Chunk::Read()</a>, <a class="el" href="RIFF_8cpp_source.html#l00479">RIFF::Chunk::ReadInt16()</a>, <a class="el" href="RIFF_8cpp_source.html#l00553">RIFF::Chunk::ReadInt32()</a>, <a class="el" href="gig_8h_source.html#l00530">SamplePeriod</a>, <a class="el" href="gig_8h_source.html#l00572">SamplePos</a>, <a class="el" href="DLS_8h_source.html#l00378">DLS::Sample::SamplesPerSecond</a>, <a class="el" href="DLS_8cpp_source.html#l00292">DLS::Info::SetFixedStringLengths()</a>, <a class="el" href="RIFF_8cpp_source.html#l00199">RIFF::Chunk::SetPos()</a>, <a class="el" href="gig_8h_source.html#l00071">gig::buffer_t::Size</a>, <a class="el" href="gig_8h_source.html#l00089">gig::smpte_format_no_offset</a>, <a class="el" href="gig_8h_source.html#l00533">SMPTEFormat</a>, <a class="el" href="gig_8h_source.html#l00534">SMPTEOffset</a>, and <a class="el" href="gig_8h_source.html#l00544">TruncatedBits</a>.</p>

</div>
</div>
<a class="anchor" id="a366efc7655bea3299e22fa69dd0d98be"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">gig::Sample::~Sample </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>
<p>Removes <a class="el" href="namespaceRIFF.html" title="RIFF specific classes and definitions. ">RIFF</a> chunks associated with this <a class="el" href="classgig_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a> and frees all memory occupied by this sample. </p>

<p>Reimplemented from <a class="el" href="classDLS_1_1Sample.html#ab6e36934cfd85d3f1938016ca49a674b">DLS::Sample</a>.</p>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l01295">1295</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="gig_8h_source.html#l00571">FrameTable</a>, <a class="el" href="gig_8h_source.html#l00567">Instances</a>, <a class="el" href="gig_8h_source.html#l00568">InternalDecompressionBuffer</a>, <a class="el" href="gig_8h_source.html#l00070">gig::buffer_t::pStart</a>, <a class="el" href="gig_8h_source.html#l00576">RAMCache</a>, and <a class="el" href="gig_8h_source.html#l00071">gig::buffer_t::Size</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a31a86a542cf4fd21ab20bee644384776"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void DLS::Resource::CopyAssign </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classDLS_1_1Resource.html">Resource</a> *&#160;</td>
          <td class="paramname"><em>orig</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Make a deep copy of the <a class="el" href="classDLS_1_1Resource.html" title="Abstract base class which encapsulates data structures which all DLS resources are able to provide...">Resource</a> object given by <em>orig</em> and assign it to this object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">orig</td><td>- original <a class="el" href="classDLS_1_1Resource.html" title="Abstract base class which encapsulates data structures which all DLS resources are able to provide...">Resource</a> object to be copied from </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="DLS_8cpp_source.html#l00534">534</a> of file <a class="el" href="DLS_8cpp_source.html">DLS.cpp</a>.</p>

<p>References <a class="el" href="DLS_8cpp_source.html#l00402">DLS::Info::CopyAssign()</a>, and <a class="el" href="DLS_8h_source.html#l00327">DLS::Resource::pInfo</a>.</p>

<p>Referenced by <a class="el" href="DLS_8cpp_source.html#l01110">DLS::Region::CopyAssign()</a>, and <a class="el" href="DLS_8cpp_source.html#l01283">DLS::Instrument::CopyAssignCore()</a>.</p>

</div>
</div>
<a class="anchor" id="ae28e6d5c37ab788069966237a5d3628d"></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="structgig_1_1buffer__t.html">buffer_t</a> gig::Sample::CreateDecompressionBuffer </td>
          <td>(</td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>MaxReadSize</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allocates a decompression buffer for streaming (compressed) samples with <a class="el" href="classgig_1_1Sample.html#a277fc64d98380ff80f822802edb0ad60" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Sample::Read()</a>. </p>
<p>If you are using more than one streaming thread in your application you <b>HAVE</b> to create a decompression buffer for <b>EACH</b> of your streaming threads and provide it with the <a class="el" href="classgig_1_1Sample.html#a277fc64d98380ff80f822802edb0ad60" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Sample::Read()</a> call in order to avoid race conditions and crashes.</p>
<p>You should free the memory occupied by the allocated buffer(s) once you don't need one of your streaming threads anymore by calling <a class="el" href="classgig_1_1Sample.html#a02962a5f9e11f315d8d81c3fee51242d" title="Free decompression buffer, previously created with CreateDecompressionBuffer(). ">DestroyDecompressionBuffer()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">MaxReadSize</td><td>- the maximum size (in sample points) you ever expect to read with one <a class="el" href="classgig_1_1Sample.html#a277fc64d98380ff80f822802edb0ad60" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Read()</a> call </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>allocated decompression buffer </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classgig_1_1Sample.html#a02962a5f9e11f315d8d81c3fee51242d" title="Free decompression buffer, previously created with CreateDecompressionBuffer(). ">DestroyDecompressionBuffer()</a> </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l01257">1257</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="gig_8h_source.html#l00072">gig::buffer_t::NullExtensionSize</a>, <a class="el" href="gig_8h_source.html#l00070">gig::buffer_t::pStart</a>, and <a class="el" href="gig_8h_source.html#l00071">gig::buffer_t::Size</a>.</p>

</div>
</div>
<a class="anchor" id="a02962a5f9e11f315d8d81c3fee51242d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void gig::Sample::DestroyDecompressionBuffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> &amp;&#160;</td>
          <td class="paramname"><em>DecompressionBuffer</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Free decompression buffer, previously created with <a class="el" href="classgig_1_1Sample.html#ae28e6d5c37ab788069966237a5d3628d" title="Allocates a decompression buffer for streaming (compressed) samples with Sample::Read(). ">CreateDecompressionBuffer()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DecompressionBuffer</td><td>- previously allocated decompression buffer to free </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l01274">1274</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="gig_8h_source.html#l00072">gig::buffer_t::NullExtensionSize</a>, <a class="el" href="gig_8h_source.html#l00070">gig::buffer_t::pStart</a>, and <a class="el" href="gig_8h_source.html#l00071">gig::buffer_t::Size</a>.</p>

</div>
</div>
<a class="anchor" id="a1ab8d2f74cc8e11e558dd01ee2fef01d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void DLS::Resource::GenerateDLSID </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generates a new DLSID for the resource. </p>

<p>Definition at line <a class="el" href="DLS_8cpp_source.html#l00487">487</a> of file <a class="el" href="DLS_8cpp_source.html">DLS.cpp</a>.</p>

<p>References <a class="el" href="DLS_8h_source.html#l00121">DLS::dlsid_t::abData</a>, <a class="el" href="DLS_8h_source.html#l00328">DLS::Resource::pDLSID</a>, <a class="el" href="DLS_8h_source.html#l00118">DLS::dlsid_t::ulData1</a>, <a class="el" href="DLS_8h_source.html#l00119">DLS::dlsid_t::usData2</a>, and <a class="el" href="DLS_8h_source.html#l00120">DLS::dlsid_t::usData3</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l03877">gig::File::AddInstrument()</a>, and <a class="el" href="gig_8cpp_source.html#l03655">gig::File::File()</a>.</p>

</div>
</div>
<a class="anchor" id="aef5f7d5299b716f7ad49c994f3a7d8f9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> gig::Sample::GetCache </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns current cached sample points. </p>
<p>A <a class="el" href="structgig_1_1buffer__t.html" title="Pointer address and size of a buffer. ">buffer_t</a> structure will be returned which contains address pointer to the begin of the cache and the size of the cached sample data in bytes. Use <em><a class="el" href="classgig_1_1Sample.html#a6fef99efa58a1fad3b44d69e6b2a808b" title="Loads (and uncompresses if needed) the whole sample wave into RAM. ">LoadSampleData()</a></em> to cache a specific amount of sample points in RAM.</p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgig_1_1buffer__t.html" title="Pointer address and size of a buffer. ">buffer_t</a> structure with current cached sample points </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classgig_1_1Sample.html#a6fef99efa58a1fad3b44d69e6b2a808b" title="Loads (and uncompresses if needed) the whole sample wave into RAM. ">LoadSampleData()</a>; </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00699">699</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="gig_8h_source.html#l00072">gig::buffer_t::NullExtensionSize</a>, <a class="el" href="gig_8h_source.html#l00070">gig::buffer_t::pStart</a>, <a class="el" href="gig_8h_source.html#l00576">RAMCache</a>, and <a class="el" href="gig_8h_source.html#l00071">gig::buffer_t::Size</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00676">LoadSampleDataWithNullSamplesExtension()</a>.</p>

</div>
</div>
<a class="anchor" id="a042f28c24540df954e6c05eb7ef20a21"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classgig_1_1Group.html">Group</a> * gig::Sample::GetGroup </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns pointer to the <a class="el" href="classgig_1_1Group.html" title="Group of Gigasampler objects. ">Group</a> this <a class="el" href="classgig_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a> belongs to. </p>
<p>In the .gig format a sample always belongs to one group. If it wasn't explicitly assigned to a certain group, it will be automatically assigned to a default group.</p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classgig_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a>'s <a class="el" href="classgig_1_1Group.html" title="Group of Gigasampler objects. ">Group</a> (never NULL) </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l01291">1291</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="gig_8h_source.html#l00569">pGroup</a>.</p>

</div>
</div>
<a class="anchor" id="a5a28936fa74b10ce8ef4abd2fcee979d"></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="classDLS_1_1Resource.html#a614caf50405431e0385999e3a55a6ea8">Resource</a>* DLS::Resource::GetParent </td>
          <td>(</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">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00330">330</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>References <a class="el" href="DLS_8h_source.html#l00335">DLS::Resource::pParent</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l02669">gig::Region::AddDimension()</a>, <a class="el" href="DLS_8cpp_source.html#l00985">DLS::Region::GetSample()</a>, <a class="el" href="gig_8cpp_source.html#l02950">gig::Region::GetSampleFromWavePool()</a>, <a class="el" href="gig_8cpp_source.html#l02403">gig::Region::Region()</a>, <a class="el" href="DLS_8cpp_source.html#l01014">DLS::Region::SetKeyRange()</a>, <a class="el" href="gig_8cpp_source.html#l02577">gig::Region::SetKeyRange()</a>, <a class="el" href="DLS_8cpp_source.html#l01048">DLS::Region::UpdateChunks()</a>, <a class="el" href="gig_8cpp_source.html#l01652">gig::DimensionRegion::UpdateChunks()</a>, <a class="el" href="gig_8cpp_source.html#l02496">gig::Region::UpdateChunks()</a>, <a class="el" href="gig_8cpp_source.html#l03279">gig::Instrument::UpdateChunks()</a>, and <a class="el" href="gig_8cpp_source.html#l01214">Write()</a>.</p>

</div>
</div>
<a class="anchor" id="aa9032d438fe19c7d6850e808e6d70831"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::GetPos </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the current position in the sample (in sample points). </p>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00811">811</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="gig_8h_source.html#l00543">Compressed</a>, <a class="el" href="DLS_8h_source.html#l00383">DLS::Sample::FrameSize</a>, <a class="el" href="RIFF_8h_source.html#l00185">RIFF::Chunk::GetPos()</a>, <a class="el" href="DLS_8h_source.html#l00395">DLS::Sample::pCkData</a>, and <a class="el" href="gig_8h_source.html#l00572">SamplePos</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00850">ReadAndLoop()</a>.</p>

</div>
</div>
<a class="anchor" id="a65455385bbee5487ce8889eabda3de57"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long DLS::Sample::GetSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns sample size. </p>
<p>Returns the sample wave form's data size (in sample points). This is actually the current, physical size (converted to sample points) of the <a class="el" href="namespaceRIFF.html" title="RIFF specific classes and definitions. ">RIFF</a> chunk which encapsulates the sample's wave data. The returned value is dependant to the current FrameSize value.</p>
<dl class="section return"><dt>Returns</dt><dd>number of sample points or 0 if FormatTag != DLS_WAVE_FORMAT_PCM </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classDLS_1_1Sample.html#a96dc42e0ea59c3e472aba938a9b157ba" title="Reflects the size (in bytes) of one single sample point (only if known sample data format is used...">FrameSize</a>, <a class="el" href="classDLS_1_1Sample.html#a83f2574e1bea3a0fae51bbd905ef0239" title="Format ID of the waveform data (should be DLS_WAVE_FORMAT_PCM for DLS1 compliant files, this is also the default value if Sample was created with Instrument::AddSample()). ">FormatTag</a> </dd></dl>

<p>Definition at line <a class="el" href="DLS_8cpp_source.html#l00797">797</a> of file <a class="el" href="DLS_8cpp_source.html">DLS.cpp</a>.</p>

<p>References <a class="el" href="DLS_8h_source.html#l00099">DLS_WAVE_FORMAT_PCM</a>, <a class="el" href="DLS_8h_source.html#l00376">DLS::Sample::FormatTag</a>, <a class="el" href="DLS_8h_source.html#l00383">DLS::Sample::FrameSize</a>, <a class="el" href="RIFF_8h_source.html#l00183">RIFF::Chunk::GetSize()</a>, and <a class="el" href="DLS_8h_source.html#l00395">DLS::Sample::pCkData</a>.</p>

<p>Referenced by <a class="el" href="DLS_8cpp_source.html#l00893">DLS::Sample::Write()</a>, and <a class="el" href="gig_8cpp_source.html#l01214">Write()</a>.</p>

</div>
</div>
<a class="anchor" id="ac5bfa5e3c46f1de20798e202d5795496"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::GuessSize </td>
          <td>(</td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>samples</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="gig_8h_source.html#l00586">586</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>References <a class="el" href="DLS_8h_source.html#l00381">DLS::Sample::BitDepth</a>, <a class="el" href="DLS_8h_source.html#l00377">DLS::Sample::Channels</a>, and <a class="el" href="gig_8h_source.html#l00574">WorstCaseFrameSize</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>.</p>

</div>
</div>
<a class="anchor" id="a6fef99efa58a1fad3b44d69e6b2a808b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> gig::Sample::LoadSampleData </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Loads (and uncompresses if needed) the whole sample wave into RAM. </p>
<p>Use <a class="el" href="classgig_1_1Sample.html#abc48013f20c12d247c30c48dc6436e7d" title="Frees the cached sample from RAM if loaded with LoadSampleData() previously. ">ReleaseSampleData()</a> to free the memory if you don't need the cached sample data anymore.</p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgig_1_1buffer__t.html" title="Pointer address and size of a buffer. ">buffer_t</a> structure with start address and size of the buffer in bytes </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classgig_1_1Sample.html#abc48013f20c12d247c30c48dc6436e7d" title="Frees the cached sample from RAM if loaded with LoadSampleData() previously. ">ReleaseSampleData()</a>, <a class="el" href="classgig_1_1Sample.html#a277fc64d98380ff80f822802edb0ad60" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Read()</a>, <a class="el" href="classgig_1_1Sample.html#a44e77515584e1dc07fb53d5b0f00b404" title="Sets the position within the sample (in sample points, not in bytes). ">SetPos()</a> </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00591">591</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="gig_8cpp_source.html#l00640">LoadSampleDataWithNullSamplesExtension()</a>, and <a class="el" href="DLS_8h_source.html#l00382">DLS::Sample::SamplesTotal</a>.</p>

</div>
</div>
<a class="anchor" id="aa75452150f06dcbb201eb2beb608da86"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> gig::Sample::LoadSampleData </td>
          <td>(</td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>SampleCount</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads (uncompresses if needed) and caches the first <em>SampleCount</em> numbers of SamplePoints in RAM. </p>
<p>Use <a class="el" href="classgig_1_1Sample.html#abc48013f20c12d247c30c48dc6436e7d" title="Frees the cached sample from RAM if loaded with LoadSampleData() previously. ">ReleaseSampleData()</a> to free the memory space if you don't need the cached samples anymore. There is no guarantee that exactly <em>SampleCount</em> samples will be cached; this is not an error. The size will be eventually truncated e.g. to the beginning of a frame of a compressed sample. This is done for efficiency reasons while streaming the wave by your sampler engine later. Read the <em>Size</em> member of the <em><a class="el" href="structgig_1_1buffer__t.html" title="Pointer address and size of a buffer. ">buffer_t</a></em> structure that will be returned to determine the actual cached samples, but note that the size is given in bytes! You get the number of actually cached samples by dividing it by the frame size of the sample: </p>
<div class="fragment"><div class="line">*       buffer_t buf       = pSample-&gt;LoadSampleData(acquired_samples);</div>
<div class="line">*       <span class="keywordtype">long</span> cachedsamples = buf.Size / pSample-&gt;FrameSize;</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SampleCount</td><td>- number of sample points to load into RAM </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgig_1_1buffer__t.html" title="Pointer address and size of a buffer. ">buffer_t</a> structure with start address and size of the cached sample data in bytes </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classgig_1_1Sample.html#abc48013f20c12d247c30c48dc6436e7d" title="Frees the cached sample from RAM if loaded with LoadSampleData() previously. ">ReleaseSampleData()</a>, <a class="el" href="classgig_1_1Sample.html#a277fc64d98380ff80f822802edb0ad60" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Read()</a>, <a class="el" href="classgig_1_1Sample.html#a44e77515584e1dc07fb53d5b0f00b404" title="Sets the position within the sample (in sample points, not in bytes). ">SetPos()</a> </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00617">617</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="gig_8cpp_source.html#l00640">LoadSampleDataWithNullSamplesExtension()</a>.</p>

</div>
</div>
<a class="anchor" id="abb6dc1a904da612e582d6fdd543b93af"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> gig::Sample::LoadSampleDataWithNullSamplesExtension </td>
          <td>(</td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>NullSamplesCount</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Loads (and uncompresses if needed) the whole sample wave into RAM. </p>
<p>Use <a class="el" href="classgig_1_1Sample.html#abc48013f20c12d247c30c48dc6436e7d" title="Frees the cached sample from RAM if loaded with LoadSampleData() previously. ">ReleaseSampleData()</a> to free the memory if you don't need the cached sample data anymore. The method will add <em>NullSamplesCount</em> silence samples past the official buffer end (this won't affect the 'Size' member of the <a class="el" href="structgig_1_1buffer__t.html" title="Pointer address and size of a buffer. ">buffer_t</a> structure, that means 'Size' always reflects the size of the actual sample data, the buffer might be bigger though). Silence samples past the official buffer are needed for differential algorithms that always have to take subsequent samples into account (resampling/interpolation would be an important example) and avoids memory access faults in such cases.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">NullSamplesCount</td><td>- number of silence samples the buffer should be extended past it's data end </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgig_1_1buffer__t.html" title="Pointer address and size of a buffer. ">buffer_t</a> structure with start address and size of the buffer in bytes </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classgig_1_1Sample.html#abc48013f20c12d247c30c48dc6436e7d" title="Frees the cached sample from RAM if loaded with LoadSampleData() previously. ">ReleaseSampleData()</a>, <a class="el" href="classgig_1_1Sample.html#a277fc64d98380ff80f822802edb0ad60" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Read()</a>, <a class="el" href="classgig_1_1Sample.html#a44e77515584e1dc07fb53d5b0f00b404" title="Sets the position within the sample (in sample points, not in bytes). ">SetPos()</a> </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00640">640</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="DLS_8h_source.html#l00382">DLS::Sample::SamplesTotal</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00591">LoadSampleData()</a>.</p>

</div>
</div>
<a class="anchor" id="ae8404960aeee5be4d89087dab77b7d19"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> gig::Sample::LoadSampleDataWithNullSamplesExtension </td>
          <td>(</td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>SampleCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>NullSamplesCount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads (uncompresses if needed) and caches the first <em>SampleCount</em> numbers of SamplePoints in RAM. </p>
<p>Use <a class="el" href="classgig_1_1Sample.html#abc48013f20c12d247c30c48dc6436e7d" title="Frees the cached sample from RAM if loaded with LoadSampleData() previously. ">ReleaseSampleData()</a> to free the memory space if you don't need the cached samples anymore. There is no guarantee that exactly <em>SampleCount</em> samples will be cached; this is not an error. The size will be eventually truncated e.g. to the beginning of a frame of a compressed sample. This is done for efficiency reasons while streaming the wave by your sampler engine later. Read the <em>Size</em> member of the <em><a class="el" href="structgig_1_1buffer__t.html" title="Pointer address and size of a buffer. ">buffer_t</a></em> structure that will be returned to determine the actual cached samples, but note that the size is given in bytes! You get the number of actually cached samples by dividing it by the frame size of the sample: </p>
<div class="fragment"><div class="line">*       buffer_t buf       = pSample-&gt;LoadSampleDataWithNullSamplesExtension(acquired_samples, null_samples);</div>
<div class="line">*       <span class="keywordtype">long</span> cachedsamples = buf.Size / pSample-&gt;FrameSize;</div>
<div class="line">* </div>
</div><!-- fragment --><p> The method will add <em>NullSamplesCount</em> silence samples past the official buffer end (this won't affect the 'Size' member of the <a class="el" href="structgig_1_1buffer__t.html" title="Pointer address and size of a buffer. ">buffer_t</a> structure, that means 'Size' always reflects the size of the actual sample data, the buffer might be bigger though). Silence samples past the official buffer are needed for differential algorithms that always have to take subsequent samples into account (resampling/interpolation would be an important example) and avoids memory access faults in such cases.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SampleCount</td><td>- number of sample points to load into RAM </td></tr>
    <tr><td class="paramname">NullSamplesCount</td><td>- number of silence samples the buffer should be extended past it's data end </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgig_1_1buffer__t.html" title="Pointer address and size of a buffer. ">buffer_t</a> structure with start address and size of the cached sample data in bytes </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classgig_1_1Sample.html#abc48013f20c12d247c30c48dc6436e7d" title="Frees the cached sample from RAM if loaded with LoadSampleData() previously. ">ReleaseSampleData()</a>, <a class="el" href="classgig_1_1Sample.html#a277fc64d98380ff80f822802edb0ad60" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Read()</a>, <a class="el" href="classgig_1_1Sample.html#a44e77515584e1dc07fb53d5b0f00b404" title="Sets the position within the sample (in sample points, not in bytes). ">SetPos()</a> </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00676">676</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="DLS_8h_source.html#l00383">DLS::Sample::FrameSize</a>, <a class="el" href="gig_8cpp_source.html#l00699">GetCache()</a>, <a class="el" href="gig_8h_source.html#l00072">gig::buffer_t::NullExtensionSize</a>, <a class="el" href="gig_8h_source.html#l00070">gig::buffer_t::pStart</a>, <a class="el" href="gig_8h_source.html#l00576">RAMCache</a>, <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, <a class="el" href="DLS_8h_source.html#l00382">DLS::Sample::SamplesTotal</a>, <a class="el" href="gig_8cpp_source.html#l00777">SetPos()</a>, and <a class="el" href="gig_8h_source.html#l00071">gig::buffer_t::Size</a>.</p>

</div>
</div>
<a class="anchor" id="aab7f7472494cfa260b9bb8ffd9c80d5f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long DLS::Sample::Read </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>SampleCount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reads <em>SampleCount</em> number of sample points from the current position into the buffer pointed by <em>pBuffer</em> and increments the position within the sample. </p>
<p>Use this method and <em><a class="el" href="classDLS_1_1Sample.html#aaf87235b9c79586e19a245011f2253bd" title="Sets the position within the sample (in sample points, not in bytes). ">SetPos()</a></em> if you don't want to load the sample into RAM, thus for disk streaming.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pBuffer</td><td>destination buffer </td></tr>
    <tr><td class="paramname">SampleCount</td><td>number of sample points to read </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="DLS_8cpp_source.html#l00873">873</a> of file <a class="el" href="DLS_8cpp_source.html">DLS.cpp</a>.</p>

<p>References <a class="el" href="DLS_8h_source.html#l00099">DLS_WAVE_FORMAT_PCM</a>, <a class="el" href="DLS_8h_source.html#l00376">DLS::Sample::FormatTag</a>, <a class="el" href="DLS_8h_source.html#l00383">DLS::Sample::FrameSize</a>, <a class="el" href="DLS_8h_source.html#l00395">DLS::Sample::pCkData</a>, and <a class="el" href="RIFF_8cpp_source.html#l00280">RIFF::Chunk::Read()</a>.</p>

</div>
</div>
<a class="anchor" id="a277fc64d98380ff80f822802edb0ad60"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::Read </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>SampleCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> *&#160;</td>
          <td class="paramname"><em>pExternalDecompressionBuffer</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads <em>SampleCount</em> number of sample points from the current position into the buffer pointed by <em>pBuffer</em> and increments the position within the sample. </p>
<p>The sample wave stream will be decompressed on the fly if using a compressed sample. Use this method and <em><a class="el" href="classgig_1_1Sample.html#a44e77515584e1dc07fb53d5b0f00b404" title="Sets the position within the sample (in sample points, not in bytes). ">SetPos()</a></em> if you don't want to load the sample into RAM, thus for disk streaming.</p>
<p><b>Caution:</b> If you are using more than one streaming thread, you have to use an external decompression buffer for <b>EACH</b> streaming thread to avoid race conditions and crashes!</p>
<p>For 16 bit samples, the data in the buffer will be int16_t (using native endianness). For 24 bit, the buffer will contain three bytes per sample, little-endian.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pBuffer</td><td>destination buffer </td></tr>
    <tr><td class="paramname">SampleCount</td><td>number of sample points to read </td></tr>
    <tr><td class="paramname">pExternalDecompressionBuffer</td><td>(optional) external buffer to use for decompression </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of successfully read sample points </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classgig_1_1Sample.html#a44e77515584e1dc07fb53d5b0f00b404" title="Sets the position within the sample (in sample points, not in bytes). ">SetPos()</a>, <a class="el" href="classgig_1_1Sample.html#ae28e6d5c37ab788069966237a5d3628d" title="Allocates a decompression buffer for streaming (compressed) samples with Sample::Read(). ">CreateDecompressionBuffer()</a> </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l01025">1025</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="DLS_8h_source.html#l00381">DLS::Sample::BitDepth</a>, <a class="el" href="DLS_8h_source.html#l00377">DLS::Sample::Channels</a>, <a class="el" href="gig_8h_source.html#l00543">Compressed</a>, <a class="el" href="gig_8h_source.html#l00570">FrameOffset</a>, <a class="el" href="DLS_8h_source.html#l00383">DLS::Sample::FrameSize</a>, <a class="el" href="gig_8h_source.html#l00586">GuessSize()</a>, <a class="el" href="gig_8h_source.html#l00568">InternalDecompressionBuffer</a>, <a class="el" href="DLS_8h_source.html#l00395">DLS::Sample::pCkData</a>, <a class="el" href="gig_8h_source.html#l00070">gig::buffer_t::pStart</a>, <a class="el" href="RIFF_8cpp_source.html#l00280">RIFF::Chunk::Read()</a>, <a class="el" href="RIFF_8cpp_source.html#l00231">RIFF::Chunk::RemainingBytes()</a>, <a class="el" href="gig_8h_source.html#l00572">SamplePos</a>, <a class="el" href="gig_8h_source.html#l00573">SamplesInLastFrame</a>, <a class="el" href="gig_8h_source.html#l00575">SamplesPerFrame</a>, <a class="el" href="DLS_8h_source.html#l00382">DLS::Sample::SamplesTotal</a>, <a class="el" href="RIFF_8cpp_source.html#l00199">RIFF::Chunk::SetPos()</a>, <a class="el" href="gig_8h_source.html#l00071">gig::buffer_t::Size</a>, <a class="el" href="RIFF_8h_source.html#l00161">RIFF::stream_backward</a>, <a class="el" href="RIFF_8h_source.html#l00152">RIFF::stream_ready</a>, <a class="el" href="gig_8h_source.html#l00544">TruncatedBits</a>, and <a class="el" href="gig_8h_source.html#l00603">WorstCaseMaxSamples()</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00676">LoadSampleDataWithNullSamplesExtension()</a>, and <a class="el" href="gig_8cpp_source.html#l00850">ReadAndLoop()</a>.</p>

</div>
</div>
<a class="anchor" id="a001a78689bf56303c41089627bf5ec24"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::ReadAndLoop </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>SampleCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgig_1_1playback__state__t.html">playback_state_t</a> *&#160;</td>
          <td class="paramname"><em>pPlaybackState</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classgig_1_1DimensionRegion.html">DimensionRegion</a> *&#160;</td>
          <td class="paramname"><em>pDimRgn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> *&#160;</td>
          <td class="paramname"><em>pExternalDecompressionBuffer</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads <em>SampleCount</em> number of sample points from the position stored in <em>pPlaybackState</em> into the buffer pointed by <em>pBuffer</em> and moves the position within the sample respectively, this method honors the looping informations of the sample (if any). </p>
<p>The sample wave stream will be decompressed on the fly if using a compressed sample. Use this method if you don't want to load the sample into RAM, thus for disk streaming. All this methods needs to know to proceed with streaming for the next time you call this method is stored in <em>pPlaybackState</em>. You have to allocate and initialize the <a class="el" href="structgig_1_1playback__state__t.html" title="Reflects the current playback state for a sample. ">playback_state_t</a> structure by yourself before you use it to stream a sample: </p>
<div class="fragment"><div class="line">* <a class="code" href="structgig_1_1playback__state__t.html">gig::playback_state_t</a> playbackstate;</div>
<div class="line">* playbackstate.<a class="code" href="structgig_1_1playback__state__t.html#a36255ed1feac8e256f70efe6d7bb7a3f">position</a>         = 0;</div>
<div class="line">* playbackstate.<a class="code" href="structgig_1_1playback__state__t.html#a09d3145574d56d231618eeb21365e61d">reverse</a>          = <span class="keyword">false</span>;</div>
<div class="line">* playbackstate.<a class="code" href="structgig_1_1playback__state__t.html#a5067d0fb96f62c8636615f17bfe22310">loop_cycles_left</a> = pSample-&gt;LoopPlayCount;</div>
<div class="line">* </div>
</div><!-- fragment --><p> You don't have to take care of things like if there is actually a loop defined or if the current read position is located within a loop area. The method already handles such cases by itself.</p>
<p><b>Caution:</b> If you are using more than one streaming thread, you have to use an external decompression buffer for <b>EACH</b> streaming thread to avoid race conditions and crashes!</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pBuffer</td><td>destination buffer </td></tr>
    <tr><td class="paramname">SampleCount</td><td>number of sample points to read </td></tr>
    <tr><td class="paramname">pPlaybackState</td><td>will be used to store and reload the playback state for the next <a class="el" href="classgig_1_1Sample.html#a001a78689bf56303c41089627bf5ec24" title="Reads SampleCount number of sample points from the position stored in pPlaybackState into the buffer ...">ReadAndLoop()</a> call </td></tr>
    <tr><td class="paramname">pDimRgn</td><td>dimension region with looping information </td></tr>
    <tr><td class="paramname">pExternalDecompressionBuffer</td><td>(optional) external buffer to use for decompression </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of successfully read sample points </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classgig_1_1Sample.html#ae28e6d5c37ab788069966237a5d3628d" title="Allocates a decompression buffer for streaming (compressed) samples with Sample::Read(). ">CreateDecompressionBuffer()</a> </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00850">850</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="DLS_8h_source.html#l00383">DLS::Sample::FrameSize</a>, <a class="el" href="gig_8cpp_source.html#l00811">GetPos()</a>, <a class="el" href="gig_8h_source.html#l00300">gig::playback_state_t::loop_cycles_left</a>, <a class="el" href="gig_8h_source.html#l00084">gig::loop_type_backward</a>, <a class="el" href="gig_8h_source.html#l00083">gig::loop_type_bidirectional</a>, <a class="el" href="gig_8h_source.html#l00082">gig::loop_type_normal</a>, <a class="el" href="DLS_8h_source.html#l00214">DLS::sample_loop_t::LoopLength</a>, <a class="el" href="gig_8h_source.html#l00542">LoopPlayCount</a>, <a class="el" href="DLS_8h_source.html#l00213">DLS::sample_loop_t::LoopStart</a>, <a class="el" href="DLS_8h_source.html#l00212">DLS::sample_loop_t::LoopType</a>, <a class="el" href="gig_8h_source.html#l00298">gig::playback_state_t::position</a>, <a class="el" href="DLS_8h_source.html#l00351">DLS::Sampler::pSampleLoops</a>, <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, <a class="el" href="gig_8h_source.html#l00299">gig::playback_state_t::reverse</a>, <a class="el" href="DLS_8h_source.html#l00350">DLS::Sampler::SampleLoops</a>, and <a class="el" href="gig_8cpp_source.html#l00777">SetPos()</a>.</p>

</div>
</div>
<a class="anchor" id="abc48013f20c12d247c30c48dc6436e7d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gig::Sample::ReleaseSampleData </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Frees the cached sample from RAM if loaded with <em><a class="el" href="classgig_1_1Sample.html#a6fef99efa58a1fad3b44d69e6b2a808b" title="Loads (and uncompresses if needed) the whole sample wave into RAM. ">LoadSampleData()</a></em> previously. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classgig_1_1Sample.html#a6fef99efa58a1fad3b44d69e6b2a808b" title="Loads (and uncompresses if needed) the whole sample wave into RAM. ">LoadSampleData()</a>; </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00714">714</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="gig_8h_source.html#l00072">gig::buffer_t::NullExtensionSize</a>, <a class="el" href="gig_8h_source.html#l00070">gig::buffer_t::pStart</a>, <a class="el" href="gig_8h_source.html#l00576">RAMCache</a>, and <a class="el" href="gig_8h_source.html#l00071">gig::buffer_t::Size</a>.</p>

</div>
</div>
<a class="anchor" id="af63d3c451bacf98c9421eafc48b9e87e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gig::Sample::Resize </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>iNewSize</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Resize sample. </p>
<p>Resizes the sample's wave form data, that is the actual size of sample wave data possible to be written for this sample. This call will return immediately and just schedule the resize operation. You should call <a class="el" href="classDLS_1_1File.html#ad78c781055086b876290f3589d2c1cfd" title="Save changes to same file. ">File::Save()</a> to actually perform the resize operation(s) "physically" to the file. As this can take a while on large files, it is recommended to call <a class="el" href="classgig_1_1Sample.html#af63d3c451bacf98c9421eafc48b9e87e" title="Resize sample. ">Resize()</a> first on all samples which have to be resized and finally to call <a class="el" href="classDLS_1_1File.html#ad78c781055086b876290f3589d2c1cfd" title="Save changes to same file. ">File::Save()</a> to perform all those resize operations in one rush.</p>
<p>The actual size (in bytes) is dependant to the current FrameSize value. You may want to set FrameSize before calling <a class="el" href="classgig_1_1Sample.html#af63d3c451bacf98c9421eafc48b9e87e" title="Resize sample. ">Resize()</a>.</p>
<p><b>Caution:</b> You cannot directly write (i.e. with <a class="el" href="classgig_1_1Sample.html#a0c44748567f31d542aec349653772993" title="Write sample wave data. ">Write()</a>) to enlarged samples before calling <a class="el" href="classDLS_1_1File.html#ad78c781055086b876290f3589d2c1cfd" title="Save changes to same file. ">File::Save()</a> as this might exceed the current sample's boundary!</p>
<p>Also note: only DLS_WAVE_FORMAT_PCM is currently supported, that is FormatTag must be DLS_WAVE_FORMAT_PCM. Trying to resize samples with other formats will fail!</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iNewSize</td><td>- new sample wave data size in sample points (must be greater than zero) </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">DLS::Excecption</td><td>if FormatTag != DLS_WAVE_FORMAT_PCM or if <em>iNewSize</em> is less than 1 </td></tr>
    <tr><td class="paramname"><a class="el" href="classgig_1_1Exception.html" title="Will be thrown whenever a gig specific error occurs while trying to access a Gigasampler File...">gig::Exception</a></td><td>if existing sample is compressed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classDLS_1_1Sample.html#a65455385bbee5487ce8889eabda3de57" title="Returns sample size. ">DLS::Sample::GetSize()</a>, <a class="el" href="classDLS_1_1Sample.html#a96dc42e0ea59c3e472aba938a9b157ba" title="Reflects the size (in bytes) of one single sample point (only if known sample data format is used...">DLS::Sample::FrameSize</a>, <a class="el" href="classDLS_1_1Sample.html#a83f2574e1bea3a0fae51bbd905ef0239" title="Format ID of the waveform data (should be DLS_WAVE_FORMAT_PCM for DLS1 compliant files, this is also the default value if Sample was created with Instrument::AddSample()). ">DLS::Sample::FormatTag</a>, <a class="el" href="classDLS_1_1File.html#ad78c781055086b876290f3589d2c1cfd" title="Save changes to same file. ">File::Save()</a> </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00751">751</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="gig_8h_source.html#l00543">Compressed</a>, and <a class="el" href="DLS_8cpp_source.html#l00830">DLS::Sample::Resize()</a>.</p>

</div>
</div>
<a class="anchor" id="a44e77515584e1dc07fb53d5b0f00b404"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::SetPos </td>
          <td>(</td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>SampleCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceRIFF.html#a0d7db9bee8a06fb344d95bcbc4997337">RIFF::stream_whence_t</a>&#160;</td>
          <td class="paramname"><em>Whence</em> = <code><a class="el" href="namespaceRIFF.html#a0d7db9bee8a06fb344d95bcbc4997337a52592d3e26eee4a575743c2851e3e5a3">RIFF::stream_start</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the position within the sample (in sample points, not in bytes). </p>
<p>Use this method and <em><a class="el" href="classgig_1_1Sample.html#a277fc64d98380ff80f822802edb0ad60" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Read()</a></em> if you don't want to load the sample into RAM, thus for disk streaming.</p>
<p>Although the original Gigasampler engine doesn't allow positioning within compressed samples, I decided to implement it. Even though the Gigasampler format doesn't allow to define loops for compressed samples at the moment, positioning within compressed samples might be interesting for some sampler engines though. The only drawback about my decision is that it takes longer to load compressed gig Files on startup, because it's neccessary to scan the samples for some mandatory informations. But I think as it doesn't affect the runtime efficiency, nobody will have a problem with that.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SampleCount</td><td>number of sample points to jump </td></tr>
    <tr><td class="paramname">Whence</td><td>optional: to which relation <em>SampleCount</em> refers to, if omited <em><a class="el" href="namespaceRIFF.html#a0d7db9bee8a06fb344d95bcbc4997337a52592d3e26eee4a575743c2851e3e5a3">RIFF::stream_start</a></em> is assumed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the new sample position </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classgig_1_1Sample.html#a277fc64d98380ff80f822802edb0ad60" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Read()</a> </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00777">777</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="gig_8h_source.html#l00543">Compressed</a>, <a class="el" href="gig_8h_source.html#l00570">FrameOffset</a>, <a class="el" href="DLS_8h_source.html#l00383">DLS::Sample::FrameSize</a>, <a class="el" href="gig_8h_source.html#l00571">FrameTable</a>, <a class="el" href="DLS_8h_source.html#l00395">DLS::Sample::pCkData</a>, <a class="el" href="gig_8h_source.html#l00572">SamplePos</a>, <a class="el" href="DLS_8h_source.html#l00382">DLS::Sample::SamplesTotal</a>, <a class="el" href="RIFF_8cpp_source.html#l00199">RIFF::Chunk::SetPos()</a>, <a class="el" href="RIFF_8h_source.html#l00161">RIFF::stream_backward</a>, <a class="el" href="RIFF_8h_source.html#l00160">RIFF::stream_curpos</a>, <a class="el" href="RIFF_8h_source.html#l00162">RIFF::stream_end</a>, and <a class="el" href="RIFF_8h_source.html#l00159">RIFF::stream_start</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00676">LoadSampleDataWithNullSamplesExtension()</a>, and <a class="el" href="gig_8cpp_source.html#l00850">ReadAndLoop()</a>.</p>

</div>
</div>
<a class="anchor" id="adc9b34c9c4018d3fd4983e187681bed6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void gig::Sample::UpdateChunks </td>
          <td>(</td>
          <td class="paramname"></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>Apply sample and its settings to the respective <a class="el" href="namespaceRIFF.html" title="RIFF specific classes and definitions. ">RIFF</a> chunks. </p>
<p>You have to call <a class="el" href="classDLS_1_1File.html#ad78c781055086b876290f3589d2c1cfd" title="Save changes to same file. ">File::Save()</a> to make changes persistent.</p>
<p>Usually there is absolutely no need to call this method explicitly. It will be called automatically when <a class="el" href="classDLS_1_1File.html#ad78c781055086b876290f3589d2c1cfd" title="Save changes to same file. ">File::Save()</a> was called.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classDLS_1_1Exception.html" title="Will be thrown whenever a DLS specific error occurs while trying to access a DLS File. ">DLS::Exception</a></td><td>if FormatTag != DLS_WAVE_FORMAT_PCM or no sample data was provided yet </td></tr>
    <tr><td class="paramname"><a class="el" href="classgig_1_1Exception.html" title="Will be thrown whenever a gig specific error occurs while trying to access a Gigasampler File...">gig::Exception</a></td><td>if there is any invalid sample setting </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classDLS_1_1Sample.html#ae52755e8553dc6ac558ae824ceef238e">DLS::Sample</a>.</p>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l00467">467</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="RIFF_8cpp_source.html#l01182">RIFF::List::AddSubChunk()</a>, <a class="el" href="gig_8h_source.html#l00047">CHUNK_ID_3GIX</a>, <a class="el" href="RIFF_8h_source.html#l00106">CHUNK_ID_SMPL</a>, <a class="el" href="gig_8h_source.html#l00532">FineTune</a>, <a class="el" href="RIFF_8cpp_source.html#l01002">RIFF::List::GetSubChunk()</a>, <a class="el" href="RIFF_8cpp_source.html#l00753">RIFF::Chunk::LoadChunkData()</a>, <a class="el" href="gig_8h_source.html#l00539">LoopEnd</a>, <a class="el" href="gig_8h_source.html#l00541">LoopFraction</a>, <a class="el" href="gig_8h_source.html#l00536">LoopID</a>, <a class="el" href="gig_8h_source.html#l00542">LoopPlayCount</a>, <a class="el" href="gig_8h_source.html#l00535">Loops</a>, <a class="el" href="gig_8h_source.html#l00538">LoopStart</a>, <a class="el" href="gig_8h_source.html#l00537">LoopType</a>, <a class="el" href="gig_8h_source.html#l00528">Manufacturer</a>, <a class="el" href="gig_8h_source.html#l00531">MIDIUnityNote</a>, <a class="el" href="gig_8h_source.html#l00578">pCk3gix</a>, <a class="el" href="gig_8h_source.html#l00579">pCkSmpl</a>, <a class="el" href="gig_8h_source.html#l00569">pGroup</a>, <a class="el" href="DLS_8h_source.html#l00335">DLS::Resource::pParent</a>, <a class="el" href="gig_8h_source.html#l00529">Product</a>, <a class="el" href="DLS_8h_source.html#l00394">DLS::Sample::pWaveList</a>, <a class="el" href="gig_8h_source.html#l00530">SamplePeriod</a>, <a class="el" href="DLS_8h_source.html#l00378">DLS::Sample::SamplesPerSecond</a>, <a class="el" href="gig_8h_source.html#l00533">SMPTEFormat</a>, <a class="el" href="gig_8h_source.html#l00534">SMPTEOffset</a>, and <a class="el" href="DLS_8cpp_source.html#l00906">DLS::Sample::UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a2f9ae21baeb8f53abe3ca84e5d147148"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::WorstCaseMaxSamples </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgig_1_1buffer__t.html">buffer_t</a> *&#160;</td>
          <td class="paramname"><em>pDecompressionBuffer</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="gig_8h_source.html#l00603">603</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>References <a class="el" href="gig_8h_source.html#l00575">SamplesPerFrame</a>, <a class="el" href="gig_8h_source.html#l00071">gig::buffer_t::Size</a>, and <a class="el" href="gig_8h_source.html#l00574">WorstCaseFrameSize</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>.</p>

</div>
</div>
<a class="anchor" id="a0c44748567f31d542aec349653772993"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::Write </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>SampleCount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write sample wave data. </p>
<p>Writes <em>SampleCount</em> number of sample points from the buffer pointed by <em>pBuffer</em> and increments the position within the sample. Use this method to directly write the sample data to disk, i.e. if you don't want or cannot load the whole sample data into RAM.</p>
<p>You have to <a class="el" href="classgig_1_1Sample.html#af63d3c451bacf98c9421eafc48b9e87e" title="Resize sample. ">Resize()</a> the sample to the desired size and call <a class="el" href="classDLS_1_1File.html#ad78c781055086b876290f3589d2c1cfd" title="Save changes to same file. ">File::Save()</a> <b>before</b> using <a class="el" href="classgig_1_1Sample.html#a0c44748567f31d542aec349653772993" title="Write sample wave data. ">Write()</a>.</p>
<p>Note: there is currently no support for writing compressed samples.</p>
<p>For 16 bit samples, the data in the source buffer should be int16_t (using native endianness). For 24 bit, the buffer should contain three bytes per sample, little-endian.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pBuffer</td><td>- source buffer </td></tr>
    <tr><td class="paramname">SampleCount</td><td>- number of sample points to write </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classDLS_1_1Exception.html" title="Will be thrown whenever a DLS specific error occurs while trying to access a DLS File. ">DLS::Exception</a></td><td>if current sample size is too small </td></tr>
    <tr><td class="paramname"><a class="el" href="classgig_1_1Exception.html" title="Will be thrown whenever a gig specific error occurs while trying to access a Gigasampler File...">gig::Exception</a></td><td>if sample is compressed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd>DLS::LoadSampleData() </dd></dl>

<p>Definition at line <a class="el" href="gig_8cpp_source.html#l01214">1214</a> of file <a class="el" href="gig_8cpp_source.html">gig.cpp</a>.</p>

<p>References <a class="el" href="DLS_8h_source.html#l00381">DLS::Sample::BitDepth</a>, <a class="el" href="gig_8h_source.html#l00543">Compressed</a>, <a class="el" href="DLS_8h_source.html#l00383">DLS::Sample::FrameSize</a>, <a class="el" href="DLS_8h_source.html#l00330">DLS::Resource::GetParent()</a>, <a class="el" href="RIFF_8h_source.html#l00185">RIFF::Chunk::GetPos()</a>, <a class="el" href="RIFF_8h_source.html#l00183">RIFF::Chunk::GetSize()</a>, <a class="el" href="DLS_8cpp_source.html#l00797">DLS::Sample::GetSize()</a>, <a class="el" href="DLS_8h_source.html#l00395">DLS::Sample::pCkData</a>, <a class="el" href="gig_8cpp_source.html#l03969">gig::File::SetSampleChecksum()</a>, and <a class="el" href="RIFF_8cpp_source.html#l00338">RIFF::Chunk::Write()</a>.</p>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="a68d15876ad188b7628261b12d0eac8aa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classgig_1_1File.html">File</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="gig_8h_source.html#l00608">608</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2697825715974a353728f0d4d5658112"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classgig_1_1Group.html">Group</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="gig_8h_source.html#l00610">610</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

</div>
</div>
<a class="anchor" id="aae6f9325706131f3b6fb8accb1508d76"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classgig_1_1Region.html">Region</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="gig_8h_source.html#l00609">609</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a9de87dbb227f94d1e990d1c53bb4eb97"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t DLS::Sample::AverageBytesPerSecond</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The average number of bytes per second at which the waveform data should be transferred (Playback software can estimate the buffer size using this value). </p>

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00379">379</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>, and <a class="el" href="DLS_8cpp_source.html#l00906">DLS::Sample::UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a34b7e4ed2f1258f7bb179c5a9768d1a8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t DLS::Sample::BitDepth</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Size of each sample per channel (only if known sample data format is used, 0 otherwise). </p>

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00381">381</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8h_source.html#l00586">GuessSize()</a>, <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>, <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, <a class="el" href="DLS_8cpp_source.html#l00906">DLS::Sample::UpdateChunks()</a>, and <a class="el" href="gig_8cpp_source.html#l01214">Write()</a>.</p>

</div>
</div>
<a class="anchor" id="a22c1f683909c30356e00a89a01e9a957"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t DLS::Sample::BlockAlign</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The block alignment (in bytes) of the waveform data. Playback software needs to process a multiple of <em>BlockAlign</em> bytes of data at a time, so the value of <em>BlockAlign</em> can be used for buffer alignment. </p>

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00380">380</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>, and <a class="el" href="DLS_8cpp_source.html#l00906">DLS::Sample::UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a5e79b71f314edd8c7d7ceaf291312736"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t DLS::Sample::Channels</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Number of channels represented in the waveform data, e.g. 1 for mono, 2 for stereo (defaults to 1=mono if <a class="el" href="classDLS_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a> was created with Instrument::AddSample() previously). </p>

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00377">377</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8h_source.html#l00586">GuessSize()</a>, <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>, <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, <a class="el" href="DLS_8cpp_source.html#l00906">DLS::Sample::UpdateChunks()</a>, and <a class="el" href="gig_8cpp_source.html#l04111">gig::File::UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a63917eccef5cdde35188d34e19bc63fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gig::Sample::Compressed</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>If the sample wave is compressed (probably just interesting for instrument and sample editors, as this library already handles the decompression in it's sample access methods anyway). </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00543">543</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00811">GetPos()</a>, <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, <a class="el" href="gig_8cpp_source.html#l00751">Resize()</a>, <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, <a class="el" href="gig_8cpp_source.html#l00777">SetPos()</a>, and <a class="el" href="gig_8cpp_source.html#l01214">Write()</a>.</p>

</div>
</div>
<a class="anchor" id="a6efb940fa5d801e133a1722d6198729a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::crc</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>CRC-32 checksum of the raw sample data. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00580">580</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9660ead7d07b93c94345d8ea9f4d32f0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool gig::Sample::Dithered</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>For 24-bit compressed samples only: if dithering was used during compression with bit reduction. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00545">545</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>.</p>

</div>
</div>
<a class="anchor" id="a1f71e5a4bef537d0f3f9257d25cd6b45"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::FileNo</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p><a class="el" href="classgig_1_1File.html" title="Parses Gigasampler files and provides abstract access to the data. ">File</a> number (&gt; 0 when sample is stored in an extension file, 0 when it's in the gig) </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00577">577</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l02950">gig::Region::GetSampleFromWavePool()</a>, and <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>.</p>

</div>
</div>
<a class="anchor" id="af0148a733a50257a67235e727463cf95"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::FineTune</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Specifies the fraction of a semitone up from the specified MIDI unity note field. A value of 0x80000000 means 1/2 semitone (50 cents) and a value of 0x00000000 means no fine tuning between semitones. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00532">532</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a83f2574e1bea3a0fae51bbd905ef0239"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t DLS::Sample::FormatTag</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Format ID of the waveform data (should be DLS_WAVE_FORMAT_PCM for DLS1 compliant files, this is also the default value if <a class="el" href="classDLS_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a> was created with Instrument::AddSample()). </p>

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00376">376</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="DLS_8cpp_source.html#l00797">DLS::Sample::GetSize()</a>, <a class="el" href="DLS_8cpp_source.html#l00873">DLS::Sample::Read()</a>, <a class="el" href="DLS_8cpp_source.html#l00830">DLS::Sample::Resize()</a>, <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>, <a class="el" href="DLS_8cpp_source.html#l00855">DLS::Sample::SetPos()</a>, <a class="el" href="DLS_8cpp_source.html#l00906">DLS::Sample::UpdateChunks()</a>, and <a class="el" href="DLS_8cpp_source.html#l00893">DLS::Sample::Write()</a>.</p>

</div>
</div>
<a class="anchor" id="aca89a80ea116f9d64ef60beb23833e63"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::FrameOffset</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Current offset (sample points) in current sample frame (for decompression only). </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00570">570</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00777">SetPos()</a>.</p>

</div>
</div>
<a class="anchor" id="a96dc42e0ea59c3e472aba938a9b157ba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint DLS::Sample::FrameSize</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reflects the size (in bytes) of one single sample point (only if known sample data format is used, 0 otherwise). <b>Caution:</b> with the current version of libgig you have to upate this field by yourself whenever you change one of the following fields: Channels, BitDepth ! Ignoring this might lead to undesired behavior when i.e. calling <a class="el" href="classDLS_1_1Sample.html#a9111248085915d5f263b02edf08a7dbc" title="Resize sample. ">Resize()</a>, <a class="el" href="classDLS_1_1Sample.html#aaf87235b9c79586e19a245011f2253bd" title="Sets the position within the sample (in sample points, not in bytes). ">SetPos()</a>, <a class="el" href="classDLS_1_1Sample.html#acfad687f97fcbbff594fb65a987958b9" title="Write sample wave data. ">Write()</a> or <a class="el" href="classDLS_1_1Sample.html#aab7f7472494cfa260b9bb8ffd9c80d5f" title="Reads SampleCount number of sample points from the current position into the buffer pointed by pBuffe...">Read()</a>. </p>

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00383">383</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00811">GetPos()</a>, <a class="el" href="DLS_8cpp_source.html#l00797">DLS::Sample::GetSize()</a>, <a class="el" href="gig_8cpp_source.html#l00676">LoadSampleDataWithNullSamplesExtension()</a>, <a class="el" href="DLS_8cpp_source.html#l00873">DLS::Sample::Read()</a>, <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, <a class="el" href="gig_8cpp_source.html#l00850">ReadAndLoop()</a>, <a class="el" href="DLS_8cpp_source.html#l00830">DLS::Sample::Resize()</a>, <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>, <a class="el" href="DLS_8cpp_source.html#l00855">DLS::Sample::SetPos()</a>, <a class="el" href="gig_8cpp_source.html#l00777">SetPos()</a>, <a class="el" href="DLS_8cpp_source.html#l00893">DLS::Sample::Write()</a>, and <a class="el" href="gig_8cpp_source.html#l01214">Write()</a>.</p>

</div>
</div>
<a class="anchor" id="a4e012c5eb81be6e2f9ed2b11e7edfd93"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long* gig::Sample::FrameTable</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For positioning within compressed samples only: stores the offset values for each frame. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00571">571</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, <a class="el" href="gig_8cpp_source.html#l00777">SetPos()</a>, and <a class="el" href="gig_8cpp_source.html#l01295">~Sample()</a>.</p>

</div>
</div>
<a class="anchor" id="ac6a208d1fc80f57a9f4e09fdd13189c4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int gig::Sample::Instances = 0</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Number of instances of class <a class="el" href="classgig_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a>. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00567">567</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l01295">~Sample()</a>.</p>

</div>
</div>
<a class="anchor" id="aa3d584eb852b861db308807bbc70325f"></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="structgig_1_1buffer__t.html">buffer_t</a> gig::Sample::InternalDecompressionBuffer</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Buffer used for decompression as well as for truncation of 24 Bit -&gt; 16 Bit samples. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00568">568</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l01295">~Sample()</a>.</p>

</div>
</div>
<a class="anchor" id="a3a5a028c771ce9c95ff07b881009fada"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::LoopEnd</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><em>Caution:</em> Use the respective field in the <a class="el" href="classgig_1_1DimensionRegion.html" title="Encapsulates articulation information of a dimension region. ">DimensionRegion</a> instead of this one! (Intended purpose: The end value specifies the offset [in sample points] in the waveform data which represents the end of the loop [only if Loops &gt; 0].) </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00539">539</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a1f1efa740167c0612c272e4f2cf95c11"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::LoopFraction</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The fractional value specifies a fraction of a sample at which to loop. This allows a loop to be fine tuned at a resolution greater than one sample. A value of 0 means no fraction, a value of 0x80000000 means 1/2 of a sample length. 0xFFFFFFFF is the smallest fraction of a sample that can be represented. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00541">541</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a98f142188d0482cf11fe876c34db145e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::LoopID</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Specifies the unique ID that corresponds to one of the defined cue points in the cue point list (only if Loops &gt; 0), as the Gigasampler format only allows one loop definition at the moment, this attribute isn't really useful for anything. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00536">536</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="aa6cec6f347e47d774f29390e69ed095e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::LoopPlayCount</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Number of times the loop should be played (a value of 0 = infinite). </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00542">542</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00850">ReadAndLoop()</a>, <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a1177d9b52f591b61fa9d7a37a500e807"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::Loops</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><em>Caution:</em> Use the respective field in the <a class="el" href="classgig_1_1DimensionRegion.html" title="Encapsulates articulation information of a dimension region. ">DimensionRegion</a> instead of this one! (Intended purpose: Number of defined sample loops. So far only seen single loops in gig files - please report if you encounter more!) </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00535">535</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="afc9417274f3e14625bffa4996ab1cf8c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::LoopSize</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><em>Caution:</em> Use the respective fields in the <a class="el" href="classgig_1_1DimensionRegion.html" title="Encapsulates articulation information of a dimension region. ">DimensionRegion</a> instead of this one! (Intended purpose: Length of the looping area [in sample points] which is equivalent to </p>
<div class="fragment"><div class="line"><a class="code" href="classgig_1_1Sample.html#a3a5a028c771ce9c95ff07b881009fada">LoopEnd</a> - <a class="code" href="classgig_1_1Sample.html#a2395230a88f70cdeaaa4c02f07e671c9">LoopStart</a> </div>
</div><!-- fragment --><p>.) </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00540">540</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>.</p>

</div>
</div>
<a class="anchor" id="a2395230a88f70cdeaaa4c02f07e671c9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::LoopStart</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><em>Caution:</em> Use the respective field in the <a class="el" href="classgig_1_1DimensionRegion.html" title="Encapsulates articulation information of a dimension region. ">DimensionRegion</a> instead of this one! (Intended purpose: The start value specifies the offset [in sample points] in the waveform data of the first sample to be played in the loop [only if Loops &gt; 0].) </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00538">538</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a0d12e4cdc0ca42098c05a0fbf40865f5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacegig.html#ae335437439617e23ae9d8c2751d1ae73">loop_type_t</a> gig::Sample::LoopType</td>
        </tr>
      </table>
</div><div class="memdoc">

<p><em>Caution:</em> Use the respective field in the <a class="el" href="classgig_1_1DimensionRegion.html" title="Encapsulates articulation information of a dimension region. ">DimensionRegion</a> instead of this one! (Intended purpose: The type field defines how the waveform samples will be looped.) </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00537">537</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="ad9c1ca73a06819253cdace31aa3702d6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::Manufacturer</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Specifies the MIDI Manufacturer's Association (MMA) Manufacturer code for the sampler intended to receive this file's waveform. If no particular manufacturer is to be specified, a value of 0 should be used. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00528">528</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a6e72961facb489e3ceb6997edd445e02"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::MIDIUnityNote</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Specifies the musical note at which the sample will be played at it's original sample rate. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00531">531</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a1900bc5730b89b8ba6d277ee98ba711a"></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="classRIFF_1_1Chunk.html">RIFF::Chunk</a>* gig::Sample::pCk3gix</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="gig_8h_source.html#l00578">578</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a5fe96f1eb2fd810985c7a71ac5842589"></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="classRIFF_1_1Chunk.html">RIFF::Chunk</a>* DLS::Sample::pCkData</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00395">395</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00811">GetPos()</a>, <a class="el" href="DLS_8cpp_source.html#l00797">DLS::Sample::GetSize()</a>, <a class="el" href="DLS_8cpp_source.html#l00774">DLS::Sample::LoadSampleData()</a>, <a class="el" href="DLS_8cpp_source.html#l00873">DLS::Sample::Read()</a>, <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, <a class="el" href="DLS_8cpp_source.html#l00783">DLS::Sample::ReleaseSampleData()</a>, <a class="el" href="DLS_8cpp_source.html#l00830">DLS::Sample::Resize()</a>, <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>, <a class="el" href="DLS_8cpp_source.html#l00855">DLS::Sample::SetPos()</a>, <a class="el" href="gig_8cpp_source.html#l00777">SetPos()</a>, <a class="el" href="DLS_8cpp_source.html#l00906">DLS::Sample::UpdateChunks()</a>, <a class="el" href="DLS_8cpp_source.html#l00893">DLS::Sample::Write()</a>, and <a class="el" href="gig_8cpp_source.html#l01214">Write()</a>.</p>

</div>
</div>
<a class="anchor" id="a831b339194284aa33f9d2818be7a5dbc"></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="classRIFF_1_1Chunk.html">RIFF::Chunk</a>* DLS::Sample::pCkFormat</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00396">396</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>, and <a class="el" href="DLS_8cpp_source.html#l00906">DLS::Sample::UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a0c07b5196b2d4c073dd6adee0aab7155"></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="classRIFF_1_1Chunk.html">RIFF::Chunk</a>* gig::Sample::pCkSmpl</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="gig_8h_source.html#l00579">579</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a52632417e3dc96481bdec2b76e18d359"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">dlsid_t* DLS::Resource::pDLSID</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Points to a <em><a class="el" href="structDLS_1_1dlsid__t.html" title="Every subject of an DLS file and the file itself can have an unique, computer generated ID...">dlsid_t</a></em> structure if the file provided a <a class="el" href="namespaceDLS.html" title="DLS specific classes and definitions. ">DLS</a> ID else is <em>NULL</em>. </p>

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00328">328</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="DLS_8cpp_source.html#l00487">DLS::Resource::GenerateDLSID()</a>, <a class="el" href="DLS_8cpp_source.html#l00438">DLS::Resource::Resource()</a>, <a class="el" href="DLS_8cpp_source.html#l00468">DLS::Resource::UpdateChunks()</a>, and <a class="el" href="DLS_8cpp_source.html#l00455">DLS::Resource::~Resource()</a>.</p>

</div>
</div>
<a class="anchor" id="a3e8397225bc644c28210efd0b2fa899b"></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="classgig_1_1Group.html">Group</a>* gig::Sample::pGroup</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>pointer to the <a class="el" href="classgig_1_1Group.html" title="Group of Gigasampler objects. ">Group</a> this sample belongs to (always not-NULL) </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00569">569</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l03593">gig::Group::AddSample()</a>, <a class="el" href="gig_8cpp_source.html#l01291">GetGroup()</a>, <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a34be00ec61a9888c5d0dc67f4c74f33d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Info* DLS::Resource::pInfo</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Points (in any case) to an <em><a class="el" href="classDLS_1_1Info.html" title="Optional information for DLS files, instruments, samples, etc. ">Info</a></em> object, providing additional, optional infos and comments. </p>

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00327">327</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l03877">gig::File::AddInstrument()</a>, <a class="el" href="DLS_8cpp_source.html#l00534">DLS::Resource::CopyAssign()</a>, <a class="el" href="gig_8cpp_source.html#l03655">gig::File::File()</a>, <a class="el" href="gig_8cpp_source.html#l03169">gig::Instrument::Instrument()</a>, <a class="el" href="DLS_8cpp_source.html#l00438">DLS::Resource::Resource()</a>, <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, <a class="el" href="DLS_8cpp_source.html#l00468">DLS::Resource::UpdateChunks()</a>, and <a class="el" href="DLS_8cpp_source.html#l00455">DLS::Resource::~Resource()</a>.</p>

</div>
</div>
<a class="anchor" id="a03c2689c422b8a69bad2e11f6b7dc10e"></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="classDLS_1_1Resource.html#a614caf50405431e0385999e3a55a6ea8">Resource</a>* DLS::Resource::pParent</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00335">335</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="DLS_8h_source.html#l00330">DLS::Resource::GetParent()</a>, <a class="el" href="DLS_8cpp_source.html#l00438">DLS::Resource::Resource()</a>, <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>, <a class="el" href="DLS_8cpp_source.html#l01268">DLS::Instrument::~Instrument()</a>, <a class="el" href="DLS_8cpp_source.html#l00980">DLS::Region::~Region()</a>, and <a class="el" href="DLS_8cpp_source.html#l00743">DLS::Sample::~Sample()</a>.</p>

</div>
</div>
<a class="anchor" id="adc7268bcad007ed7dc9d29952e29746b"></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="classRIFF_1_1List.html">RIFF::List</a>* DLS::Resource::pResourceList</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00336">336</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="DLS_8cpp_source.html#l00438">DLS::Resource::Resource()</a>, and <a class="el" href="DLS_8cpp_source.html#l00468">DLS::Resource::UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a35cebfe2f64196c87b7bb3b4d5ba4a9b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::Product</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Specifies the MIDI model ID defined by the manufacturer corresponding to the Manufacturer field. If no particular manufacturer's product is to be specified, a value of 0 should be used. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00529">529</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a99d112261ac13be7f1f6ab73400f6f73"></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="classRIFF_1_1List.html">RIFF::List</a>* DLS::Sample::pWaveList</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00394">394</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="DLS_8cpp_source.html#l00830">DLS::Sample::Resize()</a>, <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>, <a class="el" href="DLS_8cpp_source.html#l00906">DLS::Sample::UpdateChunks()</a>, <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>, and <a class="el" href="DLS_8cpp_source.html#l00743">DLS::Sample::~Sample()</a>.</p>

</div>
</div>
<a class="anchor" id="a2fe718fef9010328e17d49edc466914c"></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="structgig_1_1buffer__t.html">buffer_t</a> gig::Sample::RAMCache</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Buffers samples (already uncompressed) in RAM. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00576">576</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00699">GetCache()</a>, <a class="el" href="gig_8cpp_source.html#l00676">LoadSampleDataWithNullSamplesExtension()</a>, <a class="el" href="gig_8cpp_source.html#l00714">ReleaseSampleData()</a>, <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l01295">~Sample()</a>.</p>

</div>
</div>
<a class="anchor" id="aa51dc79b0d40142165c8b43b944a5e5d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::SamplePeriod</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Specifies the duration of time that passes during the playback of one sample in nanoseconds (normally equal to 1 / Samples Per Second, where Samples Per Second is the value found in the format chunk), don't bother to update this attribute, it won't be saved. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00530">530</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a6c63e9fbe4e982302cee7f29a61a5001"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::SamplePos</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For compressed samples only: stores the current position (in sample points). </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00572">572</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00811">GetPos()</a>, <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00777">SetPos()</a>.</p>

</div>
</div>
<a class="anchor" id="a8541089513669e93399b28fe434a8897"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::SamplesInLastFrame</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For compressed samples only: length of the last sample frame. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00573">573</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>.</p>

</div>
</div>
<a class="anchor" id="a49f249dab87a7236bd8096be8fa4d18b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::SamplesPerFrame</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For compressed samples only: number of samples in a full sample frame. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00575">575</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, and <a class="el" href="gig_8h_source.html#l00603">WorstCaseMaxSamples()</a>.</p>

</div>
</div>
<a class="anchor" id="a67233d77d4ab1ad96cfb30feea081a5a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t DLS::Sample::SamplesPerSecond</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sampling rate at which each channel should be played (defaults to 44100 if <a class="el" href="classDLS_1_1Sample.html" title="Encapsulates sample waves used for playback. ">Sample</a> was created with Instrument::AddSample() previously). </p>

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00378">378</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>, <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, <a class="el" href="DLS_8cpp_source.html#l00906">DLS::Sample::UpdateChunks()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="aa41de6b133960c3f489855b365834c2b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long DLS::Sample::SamplesTotal</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reflects total number of sample points (only if known sample data format is used, 0 otherwise), do not bother to change this value, it will not be saved. </p>

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00382">382</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00591">LoadSampleData()</a>, <a class="el" href="gig_8cpp_source.html#l00640">LoadSampleDataWithNullSamplesExtension()</a>, <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00777">SetPos()</a>.</p>

</div>
</div>
<a class="anchor" id="a71b3454cf5a5f5ae85207cadfb7c51af"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacegig.html#a3bd093bec421aa4504d9b714b36a6d0c">smpte_format_t</a> gig::Sample::SMPTEFormat</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Specifies the Society of Motion Pictures and Television E time format used in the following <em>SMPTEOffset</em> field. If a value of 0 is set, <em>SMPTEOffset</em> should also be set to 0. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00533">533</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="a2f50be891967bf5f0dc5c43ae11ea139"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::SMPTEOffset</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The SMPTE Offset value specifies the time offset to be used for the synchronization / calibration to the first sample in the waveform. This value uses a format of 0xhhmmssff where hh is a signed value that specifies the number of hours (-23 to 23), mm is an unsigned value that specifies the number of minutes (0 to 59), ss is an unsigned value that specifies the number of seconds (0 to 59) and ff is an unsigned value that specifies the number of frames (0 to -1). </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00534">534</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>, and <a class="el" href="gig_8cpp_source.html#l00467">UpdateChunks()</a>.</p>

</div>
</div>
<a class="anchor" id="ade6a2ea55257b4acb58bbeec043c1f5e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t gig::Sample::TruncatedBits</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>For 24-bit compressed samples only: number of bits truncated during compression (0, 4 or 6) </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00544">544</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8cpp_source.html#l01025">Read()</a>, and <a class="el" href="gig_8cpp_source.html#l00369">Sample()</a>.</p>

</div>
</div>
<a class="anchor" id="af36b3f1b52ccc53a31ed1a1541cfa770"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long DLS::Sample::ulWavePoolOffset</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="DLS_8h_source.html#l00397">397</a> of file <a class="el" href="DLS_8h_source.html">DLS.h</a>.</p>

<p>Referenced by <a class="el" href="DLS_8cpp_source.html#l00985">DLS::Region::GetSample()</a>, <a class="el" href="gig_8cpp_source.html#l02950">gig::Region::GetSampleFromWavePool()</a>, and <a class="el" href="DLS_8cpp_source.html#l00704">DLS::Sample::Sample()</a>.</p>

</div>
</div>
<a class="anchor" id="a4fbed3a5dfa38b36503ff46d0b3fc3d0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long gig::Sample::WorstCaseFrameSize</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For compressed samples only: size (in bytes) of the largest possible sample frame. </p>

<p>Definition at line <a class="el" href="gig_8h_source.html#l00574">574</a> of file <a class="el" href="gig_8h_source.html">gig.h</a>.</p>

<p>Referenced by <a class="el" href="gig_8h_source.html#l00586">GuessSize()</a>, and <a class="el" href="gig_8h_source.html#l00603">WorstCaseMaxSamples()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="gig_8h_source.html">gig.h</a></li>
<li><a class="el" href="gig_8cpp_source.html">gig.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacegig.html">gig</a></li><li class="navelem"><a class="el" href="classgig_1_1Sample.html">Sample</a></li>
    <li class="footer">Generated on Sat Oct 19 2013 12:52:50 for libgig by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
  </ul>
</div>
</body>
</html>