aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02298.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a02298.html')
-rw-r--r--docs/doxygen/nel/a02298.html1053
1 files changed, 1053 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02298.html b/docs/doxygen/nel/a02298.html
new file mode 100644
index 00000000..d06003f4
--- /dev/null
+++ b/docs/doxygen/nel/a02298.html
@@ -0,0 +1,1053 @@
+<!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::IBuffer 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::IBuffer Class Reference</h1><code>#include &lt;<a class="el" href="a05517.html">buffer.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLSOUND::IBuffer:
+<p><center><img src="a02298.png" usemap="#NLSOUND::IBuffer_map" border="0" alt=""></center>
+<map name="NLSOUND::IBuffer_map">
+<area href="a02297.html" alt="NLSOUND::CBufferAL" shape="rect" coords="0,56,167,80">
+<area href="a02299.html" alt="NLSOUND::CBufferDSound" shape="rect" coords="177,56,344,80">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Sound buffer interface (implemented in sound driver dynamic library) <dl compact><dt><b>Author:</b></dt><dd>Olivier Cado <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05517.html#l00044">44</a> of file <a class="el" href="a05517.html">buffer.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Source properties</h2></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="a02298.html#NLSOUND_1_1IBufferz1304_0">getBufferADPCMEncoded</a> (std::vector&lt; <a class="el" href="a04558.html#a7">uint8</a> &gt; &amp;result)=0</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="a02298.html#NLSOUND_1_1IBufferz1304_1">getBufferMono16</a> (std::vector&lt; <a class="el" href="a04558.html#a8">sint16</a> &gt; &amp;result)=0</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, <a class="el" href="a03845.html">TADPCMState</a> &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, <a class="el" href="a03845.html">TADPCMState</a> &amp;state)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02298.html#NLSOUND_1_1IBufferz1304_4">_IndexTable</a> [16]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02298.html#NLSOUND_1_1IBufferz1304_5">_StepsizeTable</a> [89]</td></tr>
+
+<tr><td colspan=2><br><h2>Public Member Functions</h2></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_1IBuffera0">fillBuffer</a> (void *<a class="el" href="a04223.html#a652">src</a>, <a class="el" href="a04558.html#a11">uint32</a> bufsize)=0</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="a02298.html#NLSOUND_1_1IBuffera10">setFormat()</a> first. <a href="#NLSOUND_1_1IBuffera0"></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 float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02298.html#NLSOUND_1_1IBuffera2">getDuration</a> () const=0</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_1IBuffera2"></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_1IBuffera3">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=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the format and frequency. <a href="#NLSOUND_1_1IBuffera3"></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="a02298.html#NLSOUND_1_1IBuffera4">getName</a> ()=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the name of this buffer. <a href="#NLSOUND_1_1IBuffera4"></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="a02298.html#NLSOUND_1_1IBuffera5">getSize</a> () const=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size of the buffer, in bytes. <a href="#NLSOUND_1_1IBuffera5"></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_1IBuffera6">isBufferLoaded</a> ()=0</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_1IBuffera6"></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_1IBuffera7">isFillMoreSupported</a> () const=0</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_1IBuffera8">isStereo</a> () const=0</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_1IBuffera8"></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_1IBuffera9">presetName</a> (const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> &amp;bufferName)=0</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_1IBuffera10">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)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the sample format. Example: freq=44100. <a href="#NLSOUND_1_1IBuffera10"></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="a02298.html#NLSOUND_1_1IBuffera12">~IBuffer</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#NLSOUND_1_1IBuffera12"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected 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="a02298.html#NLSOUND_1_1IBufferb0">IBuffer</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#NLSOUND_1_1IBufferb0"></a><br><br></td></tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1IBufferb0" doxytag="NLSOUND::IBuffer::IBuffer" ></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::IBuffer::IBuffer </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, protected]</code></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="a05517.html#l00119">119</a> of file <a class="el" href="a05517.html">buffer.h</a>.
+<p>
+<div class="fragment"><pre>00119 {};
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera12" doxytag="NLSOUND::IBuffer::~IBuffer" ></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 NLSOUND::IBuffer::~<a class="el" href="a02298.html">IBuffer</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> [inline, 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="a05517.html#l00124">124</a> of file <a class="el" href="a05517.html">buffer.h</a>.
+<p>
+<div class="fragment"><pre>00124 {}
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1IBufferz1304_2" doxytag="NLSOUND::IBuffer::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]</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">_IndexTable</a>, <a class="el" href="a05516.html#l00037">_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 = <a class="code" href="a02298.html#NLSOUND_1_1IBufferz1304_5">_StepsizeTable</a>[<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> += <a class="code" href="a02298.html#NLSOUND_1_1IBufferz1304_4">_IndexTable</a>[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::IBuffer::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]</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">_IndexTable</a>, <a class="el" href="a05516.html#l00037">_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">NLSOUND::CBufferDSound::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 = <a class="code" href="a02298.html#NLSOUND_1_1IBufferz1304_5">_StepsizeTable</a>[<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> += <a class="code" href="a02298.html#NLSOUND_1_1IBufferz1304_4">_IndexTable</a>[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_1IBuffera0" doxytag="NLSOUND::IBuffer::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"> virtual bool NLSOUND::IBuffer::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> [pure 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="a02298.html#NLSOUND_1_1IBuffera10">setFormat()</a> first.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda1">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa2">NLSOUND::CBufferAL</a>.
+<p>
+Referenced by <a class="el" href="a05927.html#l00066">NLSOUND::ILoader::fillBuffer()</a>, <a class="el" href="a05927.html#l00048">NLSOUND::ILoader::fillBufferPart()</a>, and <a class="el" href="a06418.html#l00431">NLSOUND::CSoundDriverAL::loadWavFile()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera1" doxytag="NLSOUND::IBuffer::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]</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_1IBufferz1304_0" doxytag="NLSOUND::IBuffer::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"> virtual <a class="el" href="a04558.html#a11">uint32</a> NLSOUND::IBuffer::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> [pure 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>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda3">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa4">NLSOUND::CBufferAL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBufferz1304_1" doxytag="NLSOUND::IBuffer::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"> virtual <a class="el" href="a04558.html#a11">uint32</a> NLSOUND::IBuffer::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> [pure 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>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda4">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa5">NLSOUND::CBufferAL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera2" doxytag="NLSOUND::IBuffer::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"> virtual float NLSOUND::IBuffer::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> [pure 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>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda6">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa6">NLSOUND::CBufferAL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera3" doxytag="NLSOUND::IBuffer::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::IBuffer::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> [pure 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>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda7">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa7">NLSOUND::CBufferAL</a>.
+<p>
+Referenced by <a class="el" href="a06429.html#l01480">NLSOUND::CSourceDSound::getPitch()</a>, <a class="el" href="a06429.html#l00203">NLSOUND::CSourceDSound::getTime()</a>, <a class="el" href="a06429.html#l00688">NLSOUND::CSourceDSound::play()</a>, and <a class="el" href="a06429.html#l01454">NLSOUND::CSourceDSound::setPitch()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera4" doxytag="NLSOUND::IBuffer::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::IBuffer::getName </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> [pure 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 this buffer.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda8">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa8">NLSOUND::CBufferAL</a>.
+<p>
+Referenced by <a class="el" href="a06388.html#l00064">NLSOUND::CSimpleSound::setBuffer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera5" doxytag="NLSOUND::IBuffer::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::IBuffer::getSize </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> [pure 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>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda9">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa9">NLSOUND::CBufferAL</a>.
+<p>
+Referenced by <a class="el" href="a05927.html#l00048">NLSOUND::ILoader::fillBufferPart()</a>, <a class="el" href="a06346.html#l00228">NLSOUND::CSampleBank::load()</a>, and <a class="el" href="a06429.html#l00688">NLSOUND::CSourceDSound::play()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera6" doxytag="NLSOUND::IBuffer::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::IBuffer::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> [pure 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>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda10">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa10">NLSOUND::CBufferAL</a>.
+<p>
+Referenced by <a class="el" href="a06390.html#l00126">NLSOUND::CSimpleSource::play()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera7" doxytag="NLSOUND::IBuffer::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::IBuffer::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> [pure 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>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda11">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa11">NLSOUND::CBufferAL</a>.
+<p>
+Referenced by <a class="el" href="a05927.html#l00048">NLSOUND::ILoader::fillBufferPart()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera8" doxytag="NLSOUND::IBuffer::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::IBuffer::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> [pure 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>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda12">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa12">NLSOUND::CBufferAL</a>.
+<p>
+Referenced by <a class="el" href="a05465.html#l01576">NLSOUND::CAudioMixerUser::createSource()</a>, <a class="el" href="a06390.html#l00126">NLSOUND::CSimpleSource::play()</a>, and <a class="el" href="a06390.html#l00290">NLSOUND::CSimpleSource::setDirection()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera9" doxytag="NLSOUND::IBuffer::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"> virtual void NLSOUND::IBuffer::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> [pure 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>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda13">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa13">NLSOUND::CBufferAL</a>.
+<p>
+Referenced by <a class="el" href="a06346.html#l00228">NLSOUND::CSampleBank::load()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera10" doxytag="NLSOUND::IBuffer::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"> virtual void NLSOUND::IBuffer::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> [pure 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>
+Implemented in <a class="el" href="a02299.html#NLSOUND_1_1CBufferDSounda16">NLSOUND::CBufferDSound</a>, and <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa14">NLSOUND::CBufferAL</a>.
+<p>
+Referenced by <a class="el" href="a06418.html#l00431">NLSOUND::CSoundDriverAL::loadWavFile()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBuffera11" doxytag="NLSOUND::IBuffer::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]</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_1IBufferz1304_4" doxytag="NLSOUND::IBuffer::_IndexTable" ></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"> const <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a02298.html#NLSOUND_1_1IBufferz1304_4">NLSOUND::IBuffer::_IndexTable</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ -1, -1, -1, -1, 2, 4, 6, 8,
+ -1, -1, -1, -1, 2, 4, 6, 8,
+}
+</pre></div>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#l00031">31</a> of file <a class="el" href="a05516.html">buffer.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05516.html#l00164">decodeADPCM()</a>, and <a class="el" href="a05516.html#l00051">encodeADPCM()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1IBufferz1304_5" doxytag="NLSOUND::IBuffer::_StepsizeTable" ></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"> const <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a02298.html#NLSOUND_1_1IBufferz1304_5">NLSOUND::IBuffer::_StepsizeTable</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre>
+{
+ 7, 8, 9, 10, 11, 12, 13, 14, 16, 17,
+ 19, 21, 23, 25, 28, 31, 34, 37, 41, 45,
+ 50, 55, 60, 66, 73, 80, 88, 97, 107, 118,
+ 130, 143, 157, 173, 190, 209, 230, 253, 279, 307,
+ 337, 371, 408, 449, 494, 544, 598, 658, 724, 796,
+ 876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066,
+ 2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358,
+ 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899,
+ 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767
+}
+</pre></div>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#l00037">37</a> of file <a class="el" href="a05516.html">buffer.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05516.html#l00164">decodeADPCM()</a>, and <a class="el" href="a05516.html#l00051">encodeADPCM()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05517.html">buffer.h</a><li><a class="el" href="a05516.html">buffer.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 14:50:54 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>