aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02299.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docs/doxygen/nel/a02299.html1691
1 files changed, 1691 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02299.html b/docs/doxygen/nel/a02299.html
new file mode 100644
index 00000000..812d0957
--- /dev/null
+++ b/docs/doxygen/nel/a02299.html
@@ -0,0 +1,1691 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NLSOUND::CBufferDSound class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLSOUND::CBufferDSound Class Reference</h1><code>#include &lt;<a class="el" href="a05521.html">buffer_dsound.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLSOUND::CBufferDSound:
+<p><center><img src="a02299.png" usemap="#NLSOUND::CBufferDSound_map" border="0" alt=""></center>
+<map name="NLSOUND::CBufferDSound_map">
+<area href="a02298.html" alt="NLSOUND::IBuffer" shape="rect" coords="0,0,167,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Buffer for the DSound implementation of the audio driver.<p>
+A buffer represents a sound file loaded in RAM.<p>
+<dl compact><dt><b>Author:</b></dt><dd>Peter Hanappe, Olivier Cado <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2002 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05521.html#l00045">45</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda0">CBufferDSound</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#NLSOUND_1_1CBufferDSounda0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda1">fillBuffer</a> (void *<a class="el" href="a04223.html#a652">src</a>, <a class="el" href="a04558.html#a11">uint32</a> bufsize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the buffer size and fill the buffer. Return true if ok. Call <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda16">setFormat()</a> first. <a href="#NLSOUND_1_1CBufferDSounda1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02298.html#NLSOUND_1_1IBuffera1">fillMore</a> (void *<a class="el" href="a04223.html#a652">src</a>, <a class="el" href="a04558.html#a11">uint32</a> srcsize)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda3">getBufferADPCMEncoded</a> (std::vector&lt; <a class="el" href="a04558.html#a7">uint8</a> &gt; &amp;result)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda4">getBufferMono16</a> (std::vector&lt; <a class="el" href="a04558.html#a8">sint16</a> &gt; &amp;result)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda5">getData</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a pointer to the sample data. <a href="#NLSOUND_1_1CBufferDSounda5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda6">getDuration</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the duration (in ms) of the sample in the buffer. <a href="#NLSOUND_1_1CBufferDSounda6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda7">getFormat</a> (<a class="el" href="a05381.html#a80">TSampleFormat</a> &amp;<a class="el" href="a04223.html#a641">format</a>, <a class="el" href="a04558.html#a15">uint</a> &amp;freq) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the format and frequency. <a href="#NLSOUND_1_1CBufferDSounda7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda8">getName</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the name of the buffer. <a href="#NLSOUND_1_1CBufferDSounda8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda9">getSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size of the buffer, in bytes. <a href="#NLSOUND_1_1CBufferDSounda9"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda10">isBufferLoaded</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the buffer is loaded. Used for async load/unload. <a href="#NLSOUND_1_1CBufferDSounda10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda11">isFillMoreSupported</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda12">isStereo</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the buffer is stereo, false if mono. <a href="#NLSOUND_1_1CBufferDSounda12"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda13">presetName</a> (const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> &amp;bufferName)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda14">readRawBuffer</a> (const std::string &amp;name, <a class="el" href="a04558.html#a7">uint8</a> *rawData, <a class="el" href="a04558.html#a15">uint</a> dataSize, <a class="el" href="a05381.html#a80">TSampleFormat</a> <a class="el" href="a04223.html#a641">format</a>, <a class="el" href="a04558.html#a11">uint32</a> frequency)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda15">readWavBuffer</a> (const std::string &amp;name, <a class="el" href="a04558.html#a7">uint8</a> *wavData, <a class="el" href="a04558.html#a15">uint</a> dataSize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Load a sound file in the buffer. Throws an exception is an error occurs. <a href="#NLSOUND_1_1CBufferDSounda15"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda16">setFormat</a> (<a class="el" href="a05381.html#a80">TSampleFormat</a> <a class="el" href="a04223.html#a641">format</a>, <a class="el" href="a04558.html#a15">uint</a> freq)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the sample format. Example: freq=44100. <a href="#NLSOUND_1_1CBufferDSounda16"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02298.html#NLSOUND_1_1IBuffera11">setSize</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a587">size</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Force the buffer size without filling data (if <a class="el" href="a02298.html#NLSOUND_1_1IBuffera7">isFillMoreSupported()</a> only). <a href="#NLSOUND_1_1IBuffera11"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda18">~CBufferDSound</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#NLSOUND_1_1CBufferDSounda18"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Source properties</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02298.html#NLSOUND_1_1IBufferz1304_2">decodeADPCM</a> (<a class="el" href="a04558.html#a7">uint8</a> *indata, <a class="el" href="a04558.html#a8">sint16</a> *outdata, <a class="el" href="a04558.html#a15">uint</a> nbSample, TADPCMState &amp;state)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02298.html#NLSOUND_1_1IBufferz1304_3">encodeADPCM</a> (<a class="el" href="a04558.html#a8">sint16</a> *indata, <a class="el" href="a04558.html#a7">uint8</a> *outdata, <a class="el" href="a04558.html#a15">uint</a> nbSample, TADPCMState &amp;state)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Source properties</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02298.html#NLSOUND_1_1IBufferz1304_2">decodeADPCM</a> (<a class="el" href="a04558.html#a7">uint8</a> *indata, <a class="el" href="a04558.html#a8">sint16</a> *outdata, <a class="el" href="a04558.html#a15">uint</a> nbSample, TADPCMState &amp;state)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02298.html#NLSOUND_1_1IBufferz1304_3">encodeADPCM</a> (<a class="el" href="a04558.html#a8">sint16</a> *indata, <a class="el" href="a04558.html#a7">uint8</a> *outdata, <a class="el" href="a04558.html#a15">uint</a> nbSample, TADPCMState &amp;state)</td></tr>
+
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05381.html#a80">TSampleFormat</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSoundr2">_Freq</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05378.html#a236">NLMISC::TStringId</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSoundr3">_Name</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a></td></tr>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda0" doxytag="NLSOUND::CBufferDSound::CBufferDSound" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLSOUND::CBufferDSound::CBufferDSound </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05520.html#l00131">131</a> of file <a class="el" href="a05520.html">buffer_dsound.cpp</a>.
+<p>
+References <a class="el" href="a05521.html#l00118">_Format</a>, <a class="el" href="a05521.html#l00120">_Freq</a>, <a class="el" href="a05520.html#l00044">NLSOUND::EmptyString</a>, and <a class="el" href="a05381.html#a80a19">NLSOUND::Mono16</a>.
+<p>
+<div class="fragment"><pre>00132 {
+00133 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr3">_Name</a> = CSoundDriverDSound::instance()-&gt;getStringMapper()-&gt;map(EmptyString);
+00134 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> = NULL;
+00135 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a> = 0;
+00136 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> = <a class="code" href="a05381.html#a80a19">Mono16</a>;
+00137 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr2">_Freq</a> = 0;
+00138 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda18" doxytag="NLSOUND::CBufferDSound::~CBufferDSound" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLSOUND::CBufferDSound::~<a class="el" href="a02299.html">CBufferDSound</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Destructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05520.html#l00140">140</a> of file <a class="el" href="a05520.html">buffer_dsound.cpp</a>.
+<p>
+<div class="fragment"><pre>00141 {
+00142 <span class="comment">// nldebug("Destroying DirectSound buffer %s (%p)", CSoundDriverDSound::instance()-&gt;getStringMapper()-&gt;unmap(_Name).c_str(), this);</span>
+00143
+00144 <span class="keywordflow">if</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> != NULL)
+00145 {
+00146 <span class="keyword">delete</span>[] <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a>;
+00147 }
+00148 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1IBufferz1304_2" doxytag="NLSOUND::CBufferDSound::decodeADPCM" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLSOUND::IBuffer::decodeADPCM </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>indata</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a8">sint16</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>outdata</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nbSample</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03845.html">TADPCMState</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>state</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Unoptimized utility function designed to build ADPCM encoded sample bank file. Return the number of sample in the buffer.
+<p>
+Definition at line <a class="el" href="a05516.html#l00164">164</a> of file <a class="el" href="a05516.html">buffer.cpp</a>.
+<p>
+References <a class="el" href="a05516.html#l00031">NLSOUND::IBuffer::_IndexTable</a>, <a class="el" href="a05516.html#l00037">NLSOUND::IBuffer::_StepsizeTable</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05517.html#l00092">NLSOUND::IBuffer::TADPCMState::PreviousSample</a>, <a class="el" href="a05981.html#l00097">sint16</a>, <a class="el" href="a05517.html#l00094">NLSOUND::IBuffer::TADPCMState::StepIndex</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00165 {
+00166 <a class="code" href="a04558.html#a7">uint8</a> *inp; <span class="comment">/* Input buffer pointer */</span>
+00167 <a class="code" href="a04558.html#a8">sint16</a> *outp; <span class="comment">/* output buffer pointer */</span>
+00168 <span class="keywordtype">int</span> sign; <span class="comment">/* Current adpcm sign bit */</span>
+00169 <span class="keywordtype">int</span> delta; <span class="comment">/* Current adpcm output value */</span>
+00170 <span class="keywordtype">int</span> step; <span class="comment">/* Stepsize */</span>
+00171 <span class="keywordtype">int</span> valpred; <span class="comment">/* Predicted value */</span>
+00172 <span class="keywordtype">int</span> vpdiff; <span class="comment">/* Current change to valpred */</span>
+00173 <span class="keywordtype">int</span> <a class="code" href="a04223.html#a566">index</a>; <span class="comment">/* Current step change index */</span>
+00174 <span class="keywordtype">int</span> inputbuffer; <span class="comment">/* place to keep next 4-bit value */</span>
+00175 <span class="keywordtype">int</span> bufferstep; <span class="comment">/* toggle between inputbuffer/input */</span>
+00176
+00177 outp = outdata;
+00178 inp = indata;
+00179
+00180 valpred = state.PreviousSample;
+00181 <a class="code" href="a04223.html#a566">index</a> = state.StepIndex;
+00182 step = _StepsizeTable[<a class="code" href="a04223.html#a566">index</a>];
+00183
+00184 bufferstep = 0;
+00185
+00186 <span class="keywordflow">for</span> ( ; nbSample &gt; 0 ; nbSample-- )
+00187 {
+00188
+00189 <span class="comment">/* Step 1 - get the delta value */</span>
+00190 <span class="keywordflow">if</span> ( bufferstep )
+00191 {
+00192 delta = inputbuffer &amp; 0xf;
+00193 }
+00194 <span class="keywordflow">else</span>
+00195 {
+00196 inputbuffer = *inp++;
+00197 delta = (inputbuffer &gt;&gt; 4) &amp; 0xf;
+00198 }
+00199 bufferstep = !bufferstep;
+00200
+00201 <span class="comment">/* Step 2 - Find new index value (for later) */</span>
+00202 <a class="code" href="a04223.html#a566">index</a> += _IndexTable[delta];
+00203 <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a566">index</a> &lt; 0 )
+00204 <a class="code" href="a04223.html#a566">index</a> = 0;
+00205 <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a566">index</a> &gt; 88 )
+00206 <a class="code" href="a04223.html#a566">index</a> = 88;
+00207
+00208 <span class="comment">/* Step 3 - Separate sign and magnitude */</span>
+00209 sign = delta &amp; 8;
+00210 delta = delta &amp; 7;
+00211
+00212 <span class="comment">/* Step 4 - Compute difference and new predicted value */</span>
+00213 <span class="comment">/*</span>
+00214 <span class="comment"> ** Computes 'vpdiff = (delta+0.5)*step/4', but see comment</span>
+00215 <span class="comment"> ** in adpcm_coder.</span>
+00216 <span class="comment"> */</span>
+00217 vpdiff = step &gt;&gt; 3;
+00218 <span class="keywordflow">if</span> ( delta &amp; 4 )
+00219 vpdiff += step;
+00220 <span class="keywordflow">if</span> ( delta &amp; 2 )
+00221 vpdiff += step&gt;&gt;1;
+00222 <span class="keywordflow">if</span> ( delta &amp; 1 )
+00223 vpdiff += step&gt;&gt;2;
+00224
+00225 <span class="keywordflow">if</span> ( sign )
+00226 valpred -= vpdiff;
+00227 <span class="keywordflow">else</span>
+00228 valpred += vpdiff;
+00229
+00230 <span class="comment">/* Step 5 - clamp output value */</span>
+00231 <span class="keywordflow">if</span> ( valpred &gt; 32767 )
+00232 valpred = 32767;
+00233 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( valpred &lt; -32768 )
+00234 valpred = -32768;
+00235
+00236 <span class="comment">/* Step 6 - Update step value */</span>
+00237 step = _StepsizeTable[<a class="code" href="a04223.html#a566">index</a>];
+00238
+00239 <span class="comment">/* Step 7 - Output value */</span>
+00240 *outp++ = valpred;
+00241 }
+00242
+00243 state.PreviousSample = valpred;
+00244 state.StepIndex = <a class="code" href="a04223.html#a566">index</a>;
+00245 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBufferz1304_3" doxytag="NLSOUND::CBufferDSound::encodeADPCM" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLSOUND::IBuffer::encodeADPCM </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a8">sint16</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>indata</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>outdata</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nbSample</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03845.html">TADPCMState</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>state</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Unoptimized utility function designed to build ADPCM encoded sample bank file. Return the number of sample in the buffer.
+<p>
+Definition at line <a class="el" href="a05516.html#l00051">51</a> of file <a class="el" href="a05516.html">buffer.cpp</a>.
+<p>
+References <a class="el" href="a05516.html#l00031">NLSOUND::IBuffer::_IndexTable</a>, <a class="el" href="a05516.html#l00037">NLSOUND::IBuffer::_StepsizeTable</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a05517.html#l00092">NLSOUND::IBuffer::TADPCMState::PreviousSample</a>, <a class="el" href="a05981.html#l00097">sint16</a>, <a class="el" href="a05517.html#l00094">NLSOUND::IBuffer::TADPCMState::StepIndex</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a05520.html#l00451">getBufferADPCMEncoded()</a>.
+<p>
+<div class="fragment"><pre>00052 {
+00053 <a class="code" href="a04558.html#a8">sint16</a> *inp; <span class="comment">/* Input buffer pointer */</span>
+00054 <a class="code" href="a04558.html#a7">uint8</a> *outp; <span class="comment">/* output buffer pointer */</span>
+00055 <span class="keywordtype">int</span> val; <span class="comment">/* Current input sample value */</span>
+00056 <span class="keywordtype">int</span> sign; <span class="comment">/* Current adpcm sign bit */</span>
+00057 <span class="keywordtype">int</span> delta; <span class="comment">/* Current adpcm output value */</span>
+00058 <span class="keywordtype">int</span> diff; <span class="comment">/* Difference between val and valprev */</span>
+00059 <span class="keywordtype">int</span> step; <span class="comment">/* Stepsize */</span>
+00060 <span class="keywordtype">int</span> valpred; <span class="comment">/* Predicted output value */</span>
+00061 <span class="keywordtype">int</span> vpdiff; <span class="comment">/* Current change to valpred */</span>
+00062 <span class="keywordtype">int</span> <a class="code" href="a04223.html#a566">index</a>; <span class="comment">/* Current step change index */</span>
+00063 <span class="keywordtype">int</span> outputbuffer; <span class="comment">/* place to keep previous 4-bit value */</span>
+00064 <span class="keywordtype">int</span> bufferstep; <span class="comment">/* toggle between outputbuffer/output */</span>
+00065
+00066 outp = outdata;
+00067 inp = indata;
+00068
+00069 valpred = state.PreviousSample;
+00070 <a class="code" href="a04223.html#a566">index</a> = state.StepIndex;
+00071 step = _StepsizeTable[<a class="code" href="a04223.html#a566">index</a>];
+00072
+00073 bufferstep = 1;
+00074
+00075 <span class="keywordflow">for</span> ( ; nbSample &gt; 0 ; nbSample-- )
+00076 {
+00077 val = *inp++;
+00078
+00079 <span class="comment">/* Step 1 - compute difference with previous value */</span>
+00080 diff = val - valpred;
+00081 sign = (diff &lt; 0) ? 8 : 0;
+00082 <span class="keywordflow">if</span> ( sign ) diff = (-diff);
+00083
+00084 <span class="comment">/* Step 2 - Divide and clamp */</span>
+00085 <span class="comment">/* Note:</span>
+00086 <span class="comment"> ** This code *approximately* computes:</span>
+00087 <span class="comment"> ** delta = diff*4/step;</span>
+00088 <span class="comment"> ** vpdiff = (delta+0.5)*step/4;</span>
+00089 <span class="comment"> ** but in shift step bits are dropped. The net result of this is</span>
+00090 <span class="comment"> ** that even if you have fast mul/div hardware you cannot put it to</span>
+00091 <span class="comment"> ** good use since the fixup would be too expensive.</span>
+00092 <span class="comment"> */</span>
+00093 delta = 0;
+00094 vpdiff = (step &gt;&gt; 3);
+00095
+00096 <span class="keywordflow">if</span> ( diff &gt;= step )
+00097 {
+00098 delta = 4;
+00099 diff -= step;
+00100 vpdiff += step;
+00101 }
+00102 step &gt;&gt;= 1;
+00103 <span class="keywordflow">if</span> ( diff &gt;= step )
+00104 {
+00105 delta |= 2;
+00106 diff -= step;
+00107 vpdiff += step;
+00108 }
+00109 step &gt;&gt;= 1;
+00110 <span class="keywordflow">if</span> ( diff &gt;= step )
+00111 {
+00112 delta |= 1;
+00113 vpdiff += step;
+00114 }
+00115
+00116 <span class="comment">/* Step 3 - Update previous value */</span>
+00117 <span class="keywordflow">if</span> ( sign )
+00118 valpred -= vpdiff;
+00119 <span class="keywordflow">else</span>
+00120 valpred += vpdiff;
+00121
+00122 <span class="comment">/* Step 4 - Clamp previous value to 16 bits */</span>
+00123 <span class="keywordflow">if</span> ( valpred &gt; 32767 )
+00124 {
+00125 printf(<span class="stringliteral">"over+ %d\n"</span>,valpred);
+00126 valpred = 32767;
+00127 }
+00128 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( valpred &lt; -32768 )
+00129 {
+00130 printf(<span class="stringliteral">"over- %d\n"</span>,valpred);
+00131 valpred = -32768;
+00132 }
+00133
+00134 <span class="comment">/* Step 5 - Assemble value, update index and step values */</span>
+00135 delta |= sign;
+00136
+00137 <a class="code" href="a04223.html#a566">index</a> += _IndexTable[delta];
+00138 <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a566">index</a> &lt; 0 )
+00139 <a class="code" href="a04223.html#a566">index</a> = 0;
+00140 <span class="keywordflow">if</span> ( <a class="code" href="a04223.html#a566">index</a> &gt; 88 )
+00141 <a class="code" href="a04223.html#a566">index</a> = 88;
+00142 step = _StepsizeTable[<a class="code" href="a04223.html#a566">index</a>];
+00143
+00144 <span class="comment">/* Step 6 - Output value */</span>
+00145 <span class="keywordflow">if</span> ( bufferstep )
+00146 {
+00147 outputbuffer = (delta &lt;&lt; 4) &amp; 0xf0;
+00148 }
+00149 <span class="keywordflow">else</span>
+00150 {
+00151 *outp++ = (delta &amp; 0x0f) | outputbuffer;
+00152 }
+00153 bufferstep = !bufferstep;
+00154 }
+00155
+00156 <span class="comment">/* Output last step, if needed */</span>
+00157 <span class="keywordflow">if</span> ( !bufferstep )
+00158 *outp++ = outputbuffer;
+00159
+00160 state.PreviousSample = valpred;
+00161 state.StepIndex = <a class="code" href="a04223.html#a566">index</a>;
+00162 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda1" doxytag="NLSOUND::CBufferDSound::fillBuffer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLSOUND::CBufferDSound::fillBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>src</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>bufsize</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the buffer size and fill the buffer. Return true if ok. Call <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda16">setFormat()</a> first.
+<p>
+
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera0">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05520.html#l00163">163</a> of file <a class="el" href="a05520.html">buffer_dsound.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l01124">src</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00164 {
+00165 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00166 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera1" doxytag="NLSOUND::CBufferDSound::fillMore" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual bool NLSOUND::IBuffer::fillMore </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>src</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>srcsize</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Fill the buffer partially (if <a class="el" href="a02298.html#NLSOUND_1_1IBuffera7">isFillMoreSupported()</a> only), beginning at the pos changed by a previous call to <a class="el" href="a02298.html#NLSOUND_1_1IBuffera1">fillMore()</a>. If the pos+srcsize exceeds the buffer size, the exceeding data is put at the beginning of the buffer. srcsize must be smaller than the buffer size.
+<p>
+Reimplemented in <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa3">NLSOUND::CBufferAL</a>.
+<p>
+Definition at line <a class="el" href="a05517.html#l00079">79</a> of file <a class="el" href="a05517.html">buffer.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05927.html#l00048">NLSOUND::ILoader::fillBufferPart()</a>.
+<p>
+<div class="fragment"><pre>00079 { <span class="keywordflow">throw</span> ESoundDriverNotSupp(); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda3" doxytag="NLSOUND::CBufferDSound::getBufferADPCMEncoded" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NLSOUND::CBufferDSound::getBufferADPCMEncoded </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; <a class="el" href="a04558.html#a7">uint8</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>result</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Unoptimized utility function designed to build ADPCM encoded sample bank file. Return the number of sample in the buffer.
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBufferz1304_0">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05520.html#l00451">451</a> of file <a class="el" href="a05520.html">buffer_dsound.cpp</a>.
+<p>
+References <a class="el" href="a05521.html#l00118">_Format</a>, <a class="el" href="a05516.html#l00051">NLSOUND::IBuffer::encodeADPCM()</a>, <a class="el" href="a05381.html#a80a19">NLSOUND::Mono16</a>, <a class="el" href="a05981.html#l00097">sint16</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00452 {
+00453 result.clear();
+00454
+00455 <span class="keywordflow">if</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> == 0)
+00456 <span class="keywordflow">return</span> 0;
+00457
+00458 <span class="keywordflow">if</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> != <a class="code" href="a05381.html#a80a19">Mono16</a>)
+00459 <span class="keywordflow">return</span> 0;
+00460
+00461 <a class="code" href="a04558.html#a11">uint32</a> nbSample = <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a>/2;
+00462 nbSample &amp;= 0xfffffffe;
+00463
+00464 result.resize(nbSample / 2);
+00465
+00466 TADPCMState state;
+00467 state.PreviousSample = 0;
+00468 state.StepIndex = 0;
+00469 <a class="code" href="a02298.html#NLSOUND_1_1IBufferz1304_3">encodeADPCM</a>((<a class="code" href="a04558.html#a8">sint16</a>*)_Data, &amp;result[0], nbSample, state);
+00470
+00471 <span class="keywordflow">return</span> nbSample;
+00472 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda4" doxytag="NLSOUND::CBufferDSound::getBufferMono16" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NLSOUND::CBufferDSound::getBufferMono16 </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; <a class="el" href="a04558.html#a8">sint16</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>result</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Unoptimized utility function designed to build Mono 16 bits encoded sample bank file. Return the number of sample in the buffer.
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBufferz1304_1">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05520.html#l00474">474</a> of file <a class="el" href="a05520.html">buffer_dsound.cpp</a>.
+<p>
+References <a class="el" href="a05521.html#l00118">_Format</a>, <a class="el" href="a05381.html#a80a19">NLSOUND::Mono16</a>, <a class="el" href="a05981.html#l00097">sint16</a>, <a class="el" href="a05381.html#a80a21">NLSOUND::Stereo16</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00475 {
+00476 result.clear();
+00477
+00478 <span class="keywordflow">if</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> == 0)
+00479 <span class="keywordflow">return</span> 0;
+00480
+00481 <span class="keywordflow">if</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> == <a class="code" href="a05381.html#a80a19">Mono16</a>)
+00482 {
+00483 <a class="code" href="a04558.html#a15">uint</a> nbSample = <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a>/2;
+00484 nbSample &amp;= 0xfffffffe;
+00485
+00486 result.reserve(nbSample);
+00487 result.insert(result.begin(), (<a class="code" href="a04558.html#a8">sint16</a>*)<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a>, ((<a class="code" href="a04558.html#a8">sint16</a>*)<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a>)+nbSample);
+00488
+00489 <span class="keywordflow">return</span> nbSample;
+00490 }
+00491 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> == <a class="code" href="a05381.html#a80a21">Stereo16</a>)
+00492 {
+00493 <a class="code" href="a04558.html#a15">uint</a> nbSample = <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a>/4;
+00494 nbSample &amp;= 0xfffffffe;
+00495
+00496 <span class="keyword">struct </span>TFrame
+00497 {
+00498 <a class="code" href="a04558.html#a8">sint16</a> Channel1;
+00499 <a class="code" href="a04558.html#a8">sint16</a> Channel2;
+00500 };
+00501 result.reserve(nbSample);
+00502 <a class="code" href="a06800.html">TFrame</a> *frame = (<a class="code" href="a06800.html">TFrame</a> *)<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a>;
+00503 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i&lt;nbSample; ++i)
+00504 {
+00505 result[i] = (frame-&gt;Channel1&gt;&gt;1) +(frame-&gt;Channel2&gt;&gt;1);
+00506 }
+00507
+00508 <span class="keywordflow">return</span> nbSample;
+00509 }
+00510 <span class="keywordflow">else</span>
+00511 <span class="keywordflow">return</span> 0;
+00512 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda5" doxytag="NLSOUND::CBufferDSound::getData" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual <a class="el" href="a04558.html#a7">uint8</a>* NLSOUND::CBufferDSound::getData </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return a pointer to the sample data.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05521.html#l00103">103</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00103 { <span class="keywordflow">return</span> <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda6" doxytag="NLSOUND::CBufferDSound::getDuration" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float NLSOUND::CBufferDSound::getDuration </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the duration (in ms) of the sample in the buffer.
+<p>
+
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera2">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05520.html#l00169">169</a> of file <a class="el" href="a05520.html">buffer_dsound.cpp</a>.
+<p>
+References <a class="el" href="a05521.html#l00118">_Format</a>, <a class="el" href="a05521.html#l00120">_Freq</a>, <a class="el" href="a05381.html#a80a19">NLSOUND::Mono16</a>, <a class="el" href="a05381.html#a80a18">NLSOUND::Mono16ADPCM</a>, <a class="el" href="a05381.html#a80a17">NLSOUND::Mono8</a>, <a class="el" href="a05381.html#a80a21">NLSOUND::Stereo16</a>, and <a class="el" href="a05381.html#a80a20">NLSOUND::Stereo8</a>.
+<p>
+<div class="fragment"><pre>00170 {
+00171 <span class="keywordtype">float</span> frames = (<span class="keywordtype">float</span>) <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a>;
+00172
+00173 <span class="keywordflow">switch</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a>)
+00174 {
+00175 <span class="keywordflow">case</span> <a class="code" href="a05381.html#a80a17">Mono8</a>:
+00176 <span class="keywordflow">break</span>;
+00177 <span class="keywordflow">case</span> <a class="code" href="a05381.html#a80a18">Mono16ADPCM</a>:
+00178 frames *= 2.0f;
+00179 <span class="keywordflow">break</span>;
+00180 <span class="keywordflow">case</span> <a class="code" href="a05381.html#a80a19">Mono16</a>:
+00181 frames /= 2.0f;
+00182 <span class="keywordflow">break</span>;
+00183 <span class="keywordflow">case</span> <a class="code" href="a05381.html#a80a20">Stereo8</a>:
+00184 frames /= 2.0f;
+00185 <span class="keywordflow">break</span>;
+00186 <span class="keywordflow">case</span> <a class="code" href="a05381.html#a80a21">Stereo16</a>:
+00187 frames /= 4.0f;
+00188 <span class="keywordflow">break</span>;
+00189 }
+00190
+00191 <span class="keywordflow">return</span> 1000.0f * frames / (<span class="keywordtype">float</span>) <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr2">_Freq</a>;
+00192 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda7" doxytag="NLSOUND::CBufferDSound::getFormat" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual void NLSOUND::CBufferDSound::getFormat </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05381.html#a80">TSampleFormat</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>freq</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const<code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the format and frequency.
+<p>
+
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera3">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05521.html#l00072">72</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>.
+<p>
+References <a class="el" href="a05521.html#l00118">_Format</a>, <a class="el" href="a05521.html#l00120">_Freq</a>, <a class="el" href="a05646.html#l01016">format</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00072 { <a class="code" href="a04223.html#a641">format</a> = <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a>; freq = <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr2">_Freq</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda8" doxytag="NLSOUND::CBufferDSound::getName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a>&amp; NLSOUND::CBufferDSound::getName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the name of the buffer.
+<p>
+
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera4">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05521.html#l00106">106</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>.
+<p>
+<div class="fragment"><pre>00106 { <span class="keywordflow">return</span> <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr3">_Name</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda9" doxytag="NLSOUND::CBufferDSound::getSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual <a class="el" href="a04558.html#a11">uint32</a> NLSOUND::CBufferDSound::getSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the size of the buffer, in bytes.
+<p>
+
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera5">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05521.html#l00063">63</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00063 { <span class="keywordflow">return</span> <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda10" doxytag="NLSOUND::CBufferDSound::isBufferLoaded" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual bool NLSOUND::CBufferDSound::isBufferLoaded </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return true if the buffer is loaded. Used for async load/unload.
+<p>
+
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera6">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05521.html#l00108">108</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>.
+<p>
+<div class="fragment"><pre>00108 { <span class="keywordflow">return</span> <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> != 0; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda11" doxytag="NLSOUND::CBufferDSound::isFillMoreSupported" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual bool NLSOUND::CBufferDSound::isFillMoreSupported </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return true if the buffer is able to be fill part by part, false if it must be filled in one call (OpenAL 1.0 -&gt; false)
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera7">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05521.html#l00078">78</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>.
+<p>
+<div class="fragment"><pre>00078 { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda12" doxytag="NLSOUND::CBufferDSound::isStereo" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual bool NLSOUND::CBufferDSound::isStereo </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return true if the buffer is stereo, false if mono.
+<p>
+
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera8">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05521.html#l00069">69</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>.
+<p>
+References <a class="el" href="a05521.html#l00118">_Format</a>, <a class="el" href="a05381.html#a80a21">NLSOUND::Stereo16</a>, and <a class="el" href="a05381.html#a80a20">NLSOUND::Stereo8</a>.
+<p>
+<div class="fragment"><pre>00069 { <span class="keywordflow">return</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> == <a class="code" href="a05381.html#a80a20">Stereo8</a>) || (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> == <a class="code" href="a05381.html#a80a21">Stereo16</a>); }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda13" doxytag="NLSOUND::CBufferDSound::presetName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLSOUND::CBufferDSound::presetName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>bufferName</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Preset the name of the buffer. Used for async loading to give a name before the buffer is effectivly loaded. If the name after loading of the buffer doesn't match the preset name, the load will assert.
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera9">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05520.html#l00150">150</a> of file <a class="el" href="a05520.html">buffer_dsound.cpp</a>.
+<p>
+<div class="fragment"><pre>00151 {
+00152 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr3">_Name</a> = bufferName;
+00153 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda14" doxytag="NLSOUND::CBufferDSound::readRawBuffer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLSOUND::CBufferDSound::readRawBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>rawData</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>dataSize</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a05381.html#a80">TSampleFormat</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>frequency</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05520.html#l00416">416</a> of file <a class="el" href="a05520.html">buffer_dsound.cpp</a>.
+<p>
+References <a class="el" href="a05521.html#l00118">_Format</a>, <a class="el" href="a05521.html#l00120">_Freq</a>, <a class="el" href="a05646.html#l01016">format</a>, <a class="el" href="a05622.html#l00333">nlassertex</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00417 {
+00418 NL_ALLOC_CONTEXT(NLSOUND_CBufferDSound);
+00419 <span class="comment">// free any existing data</span>
+00420 <span class="keywordflow">if</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> != NULL)
+00421 {
+00422 free(_Data);
+00423 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> = NULL;
+00424 }
+00425
+00426 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> = <a class="code" href="a04223.html#a641">format</a>;
+00427 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a> = dataSize;
+00428 <span class="comment">// Allocate the sample buffer</span>
+00429 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> = <span class="keyword">new</span> <a class="code" href="a04558.html#a7">uint8</a> [<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a>];
+00430
+00431 <span class="comment">// read in the format data</span>
+00432 memcpy(_Data, rawData, dataSize);
+00433
+00434 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr2">_Freq</a> = frequency;
+00435
+00436
+00437 <span class="comment">// Allocate the sample buffer</span>
+00438
+00439 <span class="keyword">static</span> NLMISC::TStringId empty(CSoundDriverDSound::instance()-&gt;getStringMapper()-&gt;map(<span class="stringliteral">""</span>));
+00440 NLMISC::TStringId nameId = CSoundDriverDSound::instance()-&gt;getStringMapper()-&gt;map(CFile::getFilenameWithoutExtension(name));
+00441 <span class="comment">// if name is preseted, the name must match.</span>
+00442 <span class="keywordflow">if</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr3">_Name</a> != empty)
+00443 {
+00444 <a class="code" href="a04199.html#a8">nlassertex</a>(nameId == _Name, (<span class="stringliteral">"The preseted name and buffer name doen't match !"</span>));
+00445 }
+00446 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr3">_Name</a> = nameId;
+00447
+00448 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00449 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda15" doxytag="NLSOUND::CBufferDSound::readWavBuffer" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLSOUND::CBufferDSound::readWavBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>wavData</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>dataSize</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Load a sound file in the buffer. Throws an exception is an error occurs.
+<p>
+Fill the buffer partially (if <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda11">isFillMoreSupported()</a> only), beginning at the pos changed by a previous call to <a class="el" href="a02298.html#NLSOUND_1_1IBuffera1">fillMore()</a>. If the pos+srcsize exceeds the buffer size, the exceeding data is put at the beginning of the buffer. srcsize must be smaller than the buffer size.
+<p>
+Definition at line <a class="el" href="a05520.html#l00196">196</a> of file <a class="el" href="a05520.html">buffer_dsound.cpp</a>.
+<p>
+References <a class="el" href="a05521.html#l00118">_Format</a>, <a class="el" href="a05521.html#l00120">_Freq</a>, <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a05646.html#l01016">format</a>, <a class="el" href="a05381.html#a80a19">NLSOUND::Mono16</a>, <a class="el" href="a05381.html#a80a17">NLSOUND::Mono8</a>, <a class="el" href="a05622.html#l00333">nlassertex</a>, <a class="el" href="a05646.html#l01124">num</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05381.html#a80a21">NLSOUND::Stereo16</a>, <a class="el" href="a05381.html#a80a20">NLSOUND::Stereo8</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00197 {
+00198 NL_ALLOC_CONTEXT(NLSOUND_CBufferDSound);
+00199 <a class="code" href="a04558.html#a14">sint</a> error;
+00200 <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a04223.html#a653">num</a>;
+00201 HMMIO hmmio;
+00202 WAVEFORMATEX <a class="code" href="a04223.html#a641">format</a>;
+00203 MMCKINFO riff_chunk;
+00204 MMCKINFO data_chunk;
+00205 MMCKINFO chunk;
+00206
+00207
+00208 <span class="keywordflow">if</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> != NULL)
+00209 {
+00210 <span class="keyword">delete</span> [] <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a>;
+00211 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> = NULL;
+00212 }
+00213
+00214 <span class="comment">/* NLMISC::CIFile ifile(file);</span>
+00215 <span class="comment"> uint size = ifile.getFileSize();</span>
+00216 <span class="comment"> uint8 *buffer = new uint8[ifile.getFileSize()];</span>
+00217 <span class="comment"> ifile.serialBuffer(buffer, size);</span>
+00218 <span class="comment">*/</span>
+00219 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a587">size</a> = dataSize;
+00220 <a class="code" href="a04558.html#a7">uint8</a> *<a class="code" href="a04223.html#a589">buffer</a> = wavData;
+00221
+00222 MMIOINFO mmioInfo;
+00223 memset(&amp;mmioInfo, 0, <span class="keyword">sizeof</span>(mmioInfo));
+00224 mmioInfo.pchBuffer = (<span class="keywordtype">char</span>*)<a class="code" href="a04223.html#a589">buffer</a>;
+00225 mmioInfo.fccIOProc = FOURCC_MEM;
+00226 mmioInfo.cchBuffer = <a class="code" href="a04223.html#a587">size</a>;
+00227
+00228
+00229 hmmio = mmioOpen(NULL, &amp;mmioInfo, MMIO_READ | MMIO_DENYWRITE);
+00230
+00231 <span class="keywordflow">if</span> (hmmio == NULL)
+00232 {
+00233 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00234 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Failed to open the file"</span>);
+00235 }
+00236
+00237
+00238 <span class="comment">// Check it's a WAVE file </span>
+00239 riff_chunk.ckid = FOURCC_RIFF;
+00240
+00241 error = (<a class="code" href="a04558.html#a14">sint</a>) mmioDescend(hmmio, &amp;riff_chunk, NULL, 0);
+00242
+00243 <span class="keywordflow">if</span> ((error != 0) || (riff_chunk.ckid != FOURCC_RIFF) || (riff_chunk.fccType != mmioFOURCC(<span class="charliteral">'W'</span>, <span class="charliteral">'A'</span>, <span class="charliteral">'V'</span>, <span class="charliteral">'E'</span>)))
+00244 {
+00245 mmioClose(hmmio, 0);
+00246 <span class="keyword">delete</span> <a class="code" href="a04223.html#a589">buffer</a>;
+00247 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Not a WAVE file"</span>);
+00248 }
+00249
+00250
+00251 <span class="comment">// Search the format chunk </span>
+00252 chunk.ckid = mmioFOURCC(<span class="charliteral">'f'</span>, <span class="charliteral">'m'</span>, <span class="charliteral">'t'</span>, <span class="charliteral">' '</span>);
+00253
+00254 error = (<a class="code" href="a04558.html#a14">sint</a>) mmioDescend(hmmio, &amp;chunk, &amp;riff_chunk, MMIO_FINDCHUNK);
+00255
+00256 <span class="keywordflow">if</span> (error != 0)
+00257 {
+00258 mmioClose(hmmio, 0);
+00259
+00260 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00261 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Couldn't find the format chunk"</span>);
+00262 }
+00263
+00264 <span class="keywordflow">if</span> (chunk.cksize &lt; (<span class="keywordtype">long</span>) <span class="keyword">sizeof</span>(PCMWAVEFORMAT))
+00265 {
+00266 mmioClose(hmmio, 0);
+00267 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00268 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Invalid format chunk size"</span>);
+00269 }
+00270
+00271
+00272 <span class="comment">// read in the format data</span>
+00273
+00274 <a class="code" href="a04223.html#a653">num</a> = mmioRead(hmmio, (HPSTR) &amp;format, (<span class="keywordtype">long</span>) <span class="keyword">sizeof</span>(format));
+00275 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a653">num</a> != (<span class="keywordtype">long</span>) <span class="keyword">sizeof</span>(<a class="code" href="a04223.html#a641">format</a>))
+00276 {
+00277 mmioClose(hmmio, 0);
+00278 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00279 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Read failed"</span>);
+00280 }
+00281
+00282 <a class="code" href="a04223.html#a641">format</a>.cbSize = 0;
+00283
+00284 <span class="comment">// Get out of the format chunk</span>
+00285
+00286 <span class="keywordflow">if</span> (mmioAscend(hmmio, &amp;chunk, 0) != 0)
+00287 {
+00288 mmioClose(hmmio, 0);
+00289 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00290 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Read failed"</span>);
+00291 }
+00292
+00293
+00294 <span class="comment">// copy the format data </span>
+00295
+00296 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a641">format</a>.wFormatTag != WAVE_FORMAT_PCM)
+00297 {
+00298 mmioClose(hmmio, 0);
+00299 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00300 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Unsupported sample format"</span>);
+00301 }
+00302
+00303 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr2">_Freq</a> = <a class="code" href="a04223.html#a641">format</a>.nSamplesPerSec;
+00304
+00305 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a641">format</a>.nChannels == 1)
+00306 {
+00307 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a641">format</a>.wBitsPerSample == 8)
+00308 {
+00309 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> = <a class="code" href="a05381.html#a80a17">Mono8</a>;
+00310 }
+00311 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a641">format</a>.wBitsPerSample == 16)
+00312 {
+00313 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> = <a class="code" href="a05381.html#a80a19">Mono16</a>;
+00314 }
+00315 <span class="keywordflow">else</span>
+00316 {
+00317 mmioClose(hmmio, 0);
+00318 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00319 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Unsupported sample size"</span>);
+00320 }
+00321 }
+00322 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a641">format</a>.nChannels == 2)
+00323 {
+00324 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a641">format</a>.wBitsPerSample == 8)
+00325 {
+00326 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> = <a class="code" href="a05381.html#a80a20">Stereo8</a>;
+00327 }
+00328 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a641">format</a>.wBitsPerSample == 16)
+00329 {
+00330 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> = <a class="code" href="a05381.html#a80a21">Stereo16</a>;
+00331 }
+00332 <span class="keywordflow">else</span>
+00333 {
+00334 mmioClose(hmmio, 0);
+00335 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00336 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Unsupported sample size"</span>);
+00337 }
+00338 }
+00339 <span class="keywordflow">else</span> <span class="comment">// Shouldn't normally happen</span>
+00340 {
+00341 mmioClose(hmmio, 0);
+00342 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00343 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Unsupported number of channels"</span>);
+00344 }
+00345
+00346
+00347 <span class="comment">// Set the file position to the beginning of the data chunk */</span>
+00348
+00349 <a class="code" href="a04558.html#a10">sint32</a> pos = mmioSeek(hmmio, riff_chunk.dwDataOffset + <span class="keyword">sizeof</span>(FOURCC), SEEK_SET);
+00350
+00351 <span class="keywordflow">if</span> (pos &lt; 0)
+00352 {
+00353 mmioClose(hmmio, 0);
+00354 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00355 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Read to set the read position"</span>);
+00356 }
+00357
+00358 data_chunk.ckid = mmioFOURCC(<span class="charliteral">'d'</span>, <span class="charliteral">'a'</span>, <span class="charliteral">'t'</span>, <span class="charliteral">'a'</span>);
+00359
+00360 <span class="keywordflow">if</span> (mmioDescend(hmmio, &amp;data_chunk, &amp;riff_chunk, MMIO_FINDCHUNK) != 0)
+00361 {
+00362 mmioClose(hmmio, 0);
+00363 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00364 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Read to set the read position"</span>);
+00365 }
+00366
+00367
+00368 <span class="comment">// Allocate the sample buffer</span>
+00369 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a> = data_chunk.cksize;
+00370
+00371 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> = <span class="keyword">new</span> <a class="code" href="a04558.html#a7">uint8</a>[<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a>];
+00372
+00373 <span class="keywordflow">if</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a> == NULL)
+00374 {
+00375 mmioClose(hmmio, 0);
+00376 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00377 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Out of memory"</span>);
+00378 }
+00379
+00380
+00381 <span class="comment">// Read the sample data</span>
+00382
+00383 <a class="code" href="a04223.html#a653">num</a> = mmioRead(hmmio, (HPSTR) _Data, _Size);
+00384
+00385 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a653">num</a> &lt; 0)
+00386 {
+00387 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a589">buffer</a>;
+00388 <span class="keywordflow">throw</span> ESoundDriver(<span class="stringliteral">"Failed to read the samples"</span>);
+00389 }
+00390 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((<a class="code" href="a04558.html#a11">uint32</a>) <a class="code" href="a04223.html#a653">num</a> &lt; <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">_Size</a>)
+00391 {
+00392 <span class="comment">// FIXME: print warning or throw exception ???</span>
+00393 <span class="keywordtype">char</span>* p = (<span class="keywordtype">char</span>*) <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">_Data</a>;
+00394 ZeroMemory(p + num, _Size - num);
+00395 }
+00396
+00397
+00398 mmioClose(hmmio, 0);
+00399
+00400 <span class="comment">// delete [] buffer;</span>
+00401
+00402 <span class="keyword">static</span> NLMISC::TStringId empty(CSoundDriverDSound::instance()-&gt;getStringMapper()-&gt;map(<span class="stringliteral">""</span>));
+00403 <span class="comment">// NLMISC::TStringId name = CSoundDriverDSound::instance()-&gt;getStringMapper()-&gt;map(CFile::getFilenameWithoutExtension(file));</span>
+00404 NLMISC::TStringId nameId = CSoundDriverDSound::instance()-&gt;getStringMapper()-&gt;map(CFile::getFilenameWithoutExtension(name));
+00405 <span class="comment">// if name is preseted, the name must match.</span>
+00406 <span class="keywordflow">if</span> (<a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr3">_Name</a> != empty)
+00407 {
+00408 <a class="code" href="a04199.html#a8">nlassertex</a>(nameId == _Name, (<span class="stringliteral">"The preseted name and buffer name doen't match !"</span>));
+00409 }
+00410 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr3">_Name</a> = nameId;
+00411
+00412 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00413 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSounda16" doxytag="NLSOUND::CBufferDSound::setFormat" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLSOUND::CBufferDSound::setFormat </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05381.html#a80">TSampleFormat</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>format</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>freq</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the sample format. Example: freq=44100.
+<p>
+
+<p>
+Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera10">NLSOUND::IBuffer</a>.
+<p>
+Definition at line <a class="el" href="a05520.html#l00156">156</a> of file <a class="el" href="a05520.html">buffer_dsound.cpp</a>.
+<p>
+References <a class="el" href="a05521.html#l00118">_Format</a>, <a class="el" href="a05521.html#l00120">_Freq</a>, <a class="el" href="a05646.html#l01016">format</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00157 {
+00158 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">_Format</a> = <a class="code" href="a04223.html#a641">format</a>;
+00159 <a class="code" href="a02299.html#NLSOUND_1_1CBufferDSoundr2">_Freq</a> = freq;
+00160 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera11" doxytag="NLSOUND::CBufferDSound::setSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual void NLSOUND::IBuffer::setSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>size</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Force the buffer size without filling data (if <a class="el" href="a02298.html#NLSOUND_1_1IBuffera7">isFillMoreSupported()</a> only).
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa16">NLSOUND::CBufferAL</a>.
+<p>
+Definition at line <a class="el" href="a05517.html#l00073">73</a> of file <a class="el" href="a05517.html">buffer.h</a>.
+<p>
+References <a class="el" href="a05646.html#l00645">size</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00073 { <span class="keywordflow">throw</span> ESoundDriverNotSupp(); }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CBufferDSoundr0" doxytag="NLSOUND::CBufferDSound::_Data" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a7">uint8</a>* <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSoundr0">NLSOUND::CBufferDSound::_Data</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05521.html#l00114">114</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSoundr1" doxytag="NLSOUND::CBufferDSound::_Format" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a05381.html#a80">TSampleFormat</a> <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSoundr1">NLSOUND::CBufferDSound::_Format</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05521.html#l00118">118</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>.
+<p>
+Referenced by <a class="el" href="a05520.html#l00131">CBufferDSound()</a>, <a class="el" href="a05520.html#l00451">getBufferADPCMEncoded()</a>, <a class="el" href="a05520.html#l00474">getBufferMono16()</a>, <a class="el" href="a05520.html#l00169">getDuration()</a>, <a class="el" href="a05521.html#l00072">getFormat()</a>, <a class="el" href="a05521.html#l00069">isStereo()</a>, <a class="el" href="a05520.html#l00416">readRawBuffer()</a>, <a class="el" href="a05520.html#l00196">readWavBuffer()</a>, and <a class="el" href="a05520.html#l00156">setFormat()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSoundr2" doxytag="NLSOUND::CBufferDSound::_Freq" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSoundr2">NLSOUND::CBufferDSound::_Freq</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05521.html#l00120">120</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>.
+<p>
+Referenced by <a class="el" href="a05520.html#l00131">CBufferDSound()</a>, <a class="el" href="a05520.html#l00169">getDuration()</a>, <a class="el" href="a05521.html#l00072">getFormat()</a>, <a class="el" href="a05520.html#l00416">readRawBuffer()</a>, <a class="el" href="a05520.html#l00196">readWavBuffer()</a>, and <a class="el" href="a05520.html#l00156">setFormat()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSoundr3" doxytag="NLSOUND::CBufferDSound::_Name" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSoundr3">NLSOUND::CBufferDSound::_Name</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05521.html#l00112">112</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CBufferDSoundr4" doxytag="NLSOUND::CBufferDSound::_Size" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSoundr4">NLSOUND::CBufferDSound::_Size</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05521.html#l00116">116</a> of file <a class="el" href="a05521.html">buffer_dsound.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05521.html">buffer_dsound.h</a><li><a class="el" href="a05520.html">buffer_dsound.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 14:34:08 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>