diff options
author | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
---|---|---|
committer | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
commit | 0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch) | |
tree | 2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a02297.html | |
download | nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip |
Initial commit
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a02297.html | 1292 |
1 files changed, 1292 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02297.html b/docs/doxygen/nel/a02297.html new file mode 100644 index 00000000..f30af82b --- /dev/null +++ b/docs/doxygen/nel/a02297.html @@ -0,0 +1,1292 @@ +<!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::CBufferAL 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 Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NLSOUND::CBufferAL Class Reference</h1><code>#include <<a class="el" href="a05519.html">buffer_al.h</a>></code> +<p> +<p>Inheritance diagram for NLSOUND::CBufferAL: +<p><center><img src="a02297.png" usemap="#NLSOUND::CBufferAL_map" border="0" alt=""></center> +<map name="NLSOUND::CBufferAL_map"> +<area href="a02298.html" alt="NLSOUND::IBuffer" shape="rect" coords="0,0,138,24"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +OpenAL buffer<p> +A buffer can be filled with data. An OpenAL buffer cannot be streamed in, i.e. <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa11">isFillMoreSupported()</a> returns false (instead, streaming would be implemented by buffer queueing).<p> +<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="a05519.html#l00049">49</a> of file <a class="el" href="a05519.html">buffer_al.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>ALuint </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa0">bufferName</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the buffer name (as an int). <a href="#NLSOUND_1_1CBufferALa0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa1">CBufferAL</a> (ALuint buffername=0)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#NLSOUND_1_1CBufferALa1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa2">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"> </td><td class="mdescRight">Set the buffer size and fill the buffer. Return true if ok. Call <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa14">setFormat()</a> first. <a href="#NLSOUND_1_1CBufferALa2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa3">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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa4">getBufferADPCMEncoded</a> (std::vector< <a class="el" href="a04558.html#a7">uint8</a> > &result)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa5">getBufferMono16</a> (std::vector< <a class="el" href="a04558.html#a8">sint16</a> > &result)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa6">getDuration</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the duration (in ms) of the sample in the buffer. <a href="#NLSOUND_1_1CBufferALa6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa7">getFormat</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) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the format and frequency. <a href="#NLSOUND_1_1CBufferALa7"></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> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa8">getName</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the name of the buffer (as a string). <a href="#NLSOUND_1_1CBufferALa8"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa9">getSize</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the size of the buffer, in bytes. <a href="#NLSOUND_1_1CBufferALa9"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa10">isBufferLoaded</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return true if the buffer is loaded. Used for async load/unload. <a href="#NLSOUND_1_1CBufferALa10"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa11">isFillMoreSupported</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa12">isStereo</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return true if the buffer is stereo, false if mono. <a href="#NLSOUND_1_1CBufferALa12"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa13">presetName</a> (const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> &bufferName)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa14">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"> </td><td class="mdescRight">Set the sample format. Example: freq=44100. <a href="#NLSOUND_1_1CBufferALa14"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa15">setName</a> (<a class="el" href="a05378.html#a236">NLMISC::TStringId</a> &name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the name of the buffer. <a href="#NLSOUND_1_1CBufferALa15"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa16">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"> </td><td class="mdescRight">Force the buffer size without filling data (if <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa11">isFillMoreSupported()</a> only). <a href="#NLSOUND_1_1CBufferALa16"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALa17">~CBufferAL</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#NLSOUND_1_1CBufferALa17"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>ALuint </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALr0">_BufferName</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>ALuint </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALr1">_Frequency</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05378.html#a236">NLMISC::TStringId</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALr2">_Name</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>ALenum </td><td class="memItemRight" valign=bottom><a class="el" href="a02297.html#NLSOUND_1_1CBufferALr3">_SampleFormat</a></td></tr> + +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NLSOUND_1_1CBufferALa1" doxytag="NLSOUND::CBufferAL::CBufferAL" ></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::CBufferAL::CBufferAL </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">ALuint </td> + <td class="mdname1" valign="top" nowrap> <em>buffername</em> = 0 </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Constructor. +<p> + +<p> +Definition at line <a class="el" href="a05518.html#l00036">36</a> of file <a class="el" href="a05518.html">buffer_al.cpp</a>. +<p> +<div class="fragment"><pre>00036 : +00037 <a class="code" href="a02298.html#NLSOUND_1_1IBufferb0">IBuffer</a>(), <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr0">_BufferName</a>(buffername), <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr3">_SampleFormat</a>(AL_INVALID), <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr1">_Frequency</a>(0) +00038 { +00039 } + +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa17" doxytag="NLSOUND::CBufferAL::~CBufferAL" ></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::CBufferAL::~<a class="el" href="a02297.html">CBufferAL</a> </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Destructor. +<p> + +<p> +Definition at line <a class="el" href="a05518.html#l00045">45</a> of file <a class="el" href="a05518.html">buffer_al.cpp</a>. +<p> +References <a class="el" href="a06418.html#l00344">NLSOUND::CSoundDriverAL::removeBuffer()</a>. +<p> +<div class="fragment"><pre>00046 { +00047 CSoundDriverAL *sdal = CSoundDriverAL::instance(); +00048 <span class="comment">//nlinfo( "Deleting buffer (name %u)", _BufferName );</span> +00049 sdal->removeBuffer( <span class="keyword">this</span> ); +00050 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NLSOUND_1_1CBufferALa0" doxytag="NLSOUND::CBufferAL::bufferName" ></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"> ALuint NLSOUND::CBufferAL::bufferName </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the buffer name (as an int). +<p> + +<p> +Definition at line <a class="el" href="a05519.html#l00088">88</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. +<p> +References <a class="el" href="a05519.html#l00111">_BufferName</a>. +<p> +Referenced by <a class="el" href="a06418.html#l00344">NLSOUND::CSoundDriverAL::removeBuffer()</a>, and <a class="el" href="a06425.html#l00065">NLSOUND::CSourceAL::setStaticBuffer()</a>. +<p> +<div class="fragment"><pre>00088 { <span class="keywordflow">return</span> <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr0">_BufferName</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1IBufferz1304_2" doxytag="NLSOUND::CBufferAL::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> * </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> * </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> </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> & </td> + <td class="mdname" nowrap> <em>state</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </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 > 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 & 0xf; +00193 } +00194 <span class="keywordflow">else</span> +00195 { +00196 inputbuffer = *inp++; +00197 delta = (inputbuffer >> 4) & 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> < 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> > 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 & 8; +00210 delta = delta & 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 >> 3; +00218 <span class="keywordflow">if</span> ( delta & 4 ) +00219 vpdiff += step; +00220 <span class="keywordflow">if</span> ( delta & 2 ) +00221 vpdiff += step>>1; +00222 <span class="keywordflow">if</span> ( delta & 1 ) +00223 vpdiff += step>>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 > 32767 ) +00232 valpred = 32767; +00233 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( valpred < -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::CBufferAL::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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a8">sint16</a> * </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> * </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> </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> & </td> + <td class="mdname" nowrap> <em>state</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </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">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 = _StepsizeTable[<a class="code" href="a04223.html#a566">index</a>]; +00072 +00073 bufferstep = 1; +00074 +00075 <span class="keywordflow">for</span> ( ; nbSample > 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 < 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 >> 3); +00095 +00096 <span class="keywordflow">if</span> ( diff >= step ) +00097 { +00098 delta = 4; +00099 diff -= step; +00100 vpdiff += step; +00101 } +00102 step >>= 1; +00103 <span class="keywordflow">if</span> ( diff >= step ) +00104 { +00105 delta |= 2; +00106 diff -= step; +00107 vpdiff += step; +00108 } +00109 step >>= 1; +00110 <span class="keywordflow">if</span> ( diff >= 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 > 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 < -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> < 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> > 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 << 4) & 0xf0; +00148 } +00149 <span class="keywordflow">else</span> +00150 { +00151 *outp++ = (delta & 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_1CBufferALa2" doxytag="NLSOUND::CBufferAL::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::CBufferAL::fillBuffer </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void * </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> </td> + <td class="mdname" nowrap> <em>bufsize</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the buffer size and fill the buffer. Return true if ok. Call <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa14">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="a05518.html#l00138">138</a> of file <a class="el" href="a05518.html">buffer_al.cpp</a>. +<p> +References <a class="el" href="a05519.html#l00111">_BufferName</a>, <a class="el" href="a05519.html#l00120">_Frequency</a>, <a class="el" href="a05519.html#l00117">_SampleFormat</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05646.html#l01124">src</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00139 { +00140 <a class="code" href="a04199.html#a6">nlassert</a>( src != NULL ); +00141 <a class="code" href="a04199.html#a6">nlassert</a>( (_SampleFormat != AL_INVALID) && (_Frequency != 0 ) ); +00142 +00143 <span class="comment">// Fill buffer</span> +00144 alBufferData( _BufferName, _SampleFormat, src, bufsize, _Frequency ); +00145 +00146 <span class="comment">// Error handling</span> +00147 <span class="keywordflow">return</span> ( alGetError() == AL_NO_ERROR ); +00148 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa3" doxytag="NLSOUND::CBufferAL::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::CBufferAL::fillMore </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void * </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> </td> + <td class="mdname" nowrap> <em>srcsize</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </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> + + </td> + <td> + +<p> +Fill the buffer partially (if <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa11">isFillMoreSupported()</a> only), beginning at the pos changed by a previous call to <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa3">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 from <a class="el" href="a02298.html#NLSOUND_1_1IBuffera1">NLSOUND::IBuffer</a>. +<p> +Definition at line <a class="el" href="a05519.html#l00084">84</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. +<p> +References <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00084 { <span class="keywordflow">throw</span> ESoundDriverNotSupp(); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa4" doxytag="NLSOUND::CBufferAL::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::CBufferAL::getBufferADPCMEncoded </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< <a class="el" href="a04558.html#a7">uint8</a> > & </td> + <td class="mdname1" valign="top" nowrap> <em>result</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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="a05519.html#l00101">101</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. +<p> +References <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00101 { <span class="comment">/* TODO */</span> <span class="keywordflow">return</span> 0; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa5" doxytag="NLSOUND::CBufferAL::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::CBufferAL::getBufferMono16 </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< <a class="el" href="a04558.html#a8">sint16</a> > & </td> + <td class="mdname1" valign="top" nowrap> <em>result</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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="a05519.html#l00105">105</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. +<p> +References <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00105 { <span class="comment">/* TODO */</span> <span class="keywordflow">return</span> 0; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa6" doxytag="NLSOUND::CBufferAL::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::CBufferAL::getDuration </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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="a05518.html#l00099">99</a> of file <a class="el" href="a05518.html">buffer_al.cpp</a>. +<p> +References <a class="el" href="a05519.html#l00120">_Frequency</a>, <a class="el" href="a05519.html#l00117">_SampleFormat</a>, <a class="el" href="a05518.html#l00061">getSize()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00100 { +00101 <span class="keywordflow">if</span> ( <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr1">_Frequency</a> == 0 ) +00102 { +00103 <span class="keywordflow">return</span> 0; +00104 } +00105 <a class="code" href="a04558.html#a11">uint32</a> bytespersample; +00106 <span class="keywordflow">switch</span> ( <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr3">_SampleFormat</a> ) +00107 { +00108 <span class="keywordflow">case</span> AL_FORMAT_MONO8 : bytespersample = 1; <span class="keywordflow">break</span>; +00109 <span class="keywordflow">case</span> AL_FORMAT_MONO16 : bytespersample = 2; <span class="keywordflow">break</span>; +00110 <span class="keywordflow">case</span> AL_FORMAT_STEREO8 : bytespersample = 2; <span class="keywordflow">break</span>; +00111 <span class="keywordflow">case</span> AL_FORMAT_STEREO16 : bytespersample = 4; <span class="keywordflow">break</span>; +00112 <span class="keywordflow">default</span> : <span class="keywordflow">return</span> 0; +00113 } +00114 <span class="keywordflow">return</span> (<span class="keywordtype">float</span>)(<a class="code" href="a02297.html#NLSOUND_1_1CBufferALa9">getSize</a>()) * 1000.0f / (<span class="keywordtype">float</span>)<a class="code" href="a02297.html#NLSOUND_1_1CBufferALr1">_Frequency</a> / (<span class="keywordtype">float</span>)bytespersample; +00115 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa7" doxytag="NLSOUND::CBufferAL::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"> void NLSOUND::CBufferAL::getFormat </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05381.html#a80">TSampleFormat</a> & </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> & </td> + <td class="mdname" nowrap> <em>freq</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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="a05518.html#l00082">82</a> of file <a class="el" href="a05518.html">buffer_al.cpp</a>. +<p> +References <a class="el" href="a05519.html#l00120">_Frequency</a>, <a class="el" href="a05519.html#l00117">_SampleFormat</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#l00416">nlstop</a>, <a class="el" href="a05381.html#a80a21">NLSOUND::Stereo16</a>, <a class="el" href="a05381.html#a80a20">NLSOUND::Stereo8</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00083 { +00084 <span class="keywordflow">switch</span> ( <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr3">_SampleFormat</a> ) +00085 { +00086 <span class="keywordflow">case</span> AL_FORMAT_MONO8 : <a class="code" href="a04223.html#a641">format</a> = <a class="code" href="a05381.html#a80a17">Mono8</a>; <span class="keywordflow">break</span>; +00087 <span class="keywordflow">case</span> AL_FORMAT_MONO16 : <a class="code" href="a04223.html#a641">format</a> = <a class="code" href="a05381.html#a80a19">Mono16</a>; <span class="keywordflow">break</span>; +00088 <span class="keywordflow">case</span> AL_FORMAT_STEREO8 : <a class="code" href="a04223.html#a641">format</a> = <a class="code" href="a05381.html#a80a20">Stereo8</a>; <span class="keywordflow">break</span>; +00089 <span class="keywordflow">case</span> AL_FORMAT_STEREO16 : <a class="code" href="a04223.html#a641">format</a> = <a class="code" href="a05381.html#a80a21">Stereo16</a>; <span class="keywordflow">break</span>; +00090 <span class="keywordflow">default</span> : <a class="code" href="a04199.html#a12">nlstop</a>; +00091 } +00092 freq = <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr1">_Frequency</a>; +00093 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa8" doxytag="NLSOUND::CBufferAL::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>& NLSOUND::CBufferAL::getName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the name of the buffer (as a string). +<p> + +<p> +Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera4">NLSOUND::IBuffer</a>. +<p> +Definition at line <a class="el" href="a05519.html#l00091">91</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. +<p> +<div class="fragment"><pre>00091 { <span class="keywordflow">return</span> <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr2">_Name</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa9" doxytag="NLSOUND::CBufferAL::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"> <a class="el" href="a04558.html#a11">uint32</a> NLSOUND::CBufferAL::getSize </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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="a05518.html#l00061">61</a> of file <a class="el" href="a05518.html">buffer_al.cpp</a>. +<p> +References <a class="el" href="a05519.html#l00111">_BufferName</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +Referenced by <a class="el" href="a05518.html#l00099">getDuration()</a>. +<p> +<div class="fragment"><pre>00062 { +00063 ALint <a class="code" href="a04223.html#a658">value</a>; +00064 alGetBufferi( _BufferName, AL_SIZE, &value ); +00065 <a class="code" href="a04199.html#a6">nlassert</a>( alGetError() == AL_NO_ERROR ); +00066 <span class="keywordflow">return</span> <a class="code" href="a04223.html#a658">value</a>; +00067 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa10" doxytag="NLSOUND::CBufferAL::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::CBufferAL::isBufferLoaded </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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="a05519.html#l00094">94</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. +<p> +<div class="fragment"><pre>00094 { <span class="comment">/* TODO */</span> <span class="keywordflow">return</span> <span class="keyword">false</span>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa11" doxytag="NLSOUND::CBufferAL::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::CBufferAL::isFillMoreSupported </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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 -> false) +<p> +Implements <a class="el" href="a02298.html#NLSOUND_1_1IBuffera7">NLSOUND::IBuffer</a>. +<p> +Definition at line <a class="el" href="a05519.html#l00076">76</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. +<p> +<div class="fragment"><pre>00076 { <span class="keywordflow">return</span> <span class="keyword">false</span>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa12" doxytag="NLSOUND::CBufferAL::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"> bool NLSOUND::CBufferAL::isStereo </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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="a05518.html#l00073">73</a> of file <a class="el" href="a05518.html">buffer_al.cpp</a>. +<p> +References <a class="el" href="a05519.html#l00117">_SampleFormat</a>. +<p> +Referenced by <a class="el" href="a06425.html#l00065">NLSOUND::CSourceAL::setStaticBuffer()</a>. +<p> +<div class="fragment"><pre>00074 { +00075 <span class="keywordflow">return</span> (<a class="code" href="a02297.html#NLSOUND_1_1CBufferALr3">_SampleFormat</a>==AL_FORMAT_STEREO8) || (<a class="code" href="a02297.html#NLSOUND_1_1CBufferALr3">_SampleFormat</a>==AL_FORMAT_STEREO16); +00076 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa13" doxytag="NLSOUND::CBufferAL::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::CBufferAL::presetName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>bufferName</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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="a05518.html#l00052">52</a> of file <a class="el" href="a05518.html">buffer_al.cpp</a>. +<p> +<div class="fragment"><pre>00053 { +00054 <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr2">_Name</a> = bufferName; +00055 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa14" doxytag="NLSOUND::CBufferAL::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::CBufferAL::setFormat </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05381.html#a80">TSampleFormat</a> </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> </td> + <td class="mdname" nowrap> <em>freq</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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="a05518.html#l00121">121</a> of file <a class="el" href="a05518.html">buffer_al.cpp</a>. +<p> +References <a class="el" href="a05519.html#l00120">_Frequency</a>, <a class="el" href="a05519.html#l00117">_SampleFormat</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#l00416">nlstop</a>, <a class="el" href="a05381.html#a80a21">NLSOUND::Stereo16</a>, <a class="el" href="a05381.html#a80a20">NLSOUND::Stereo8</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00122 { +00123 <span class="keywordflow">switch</span> ( <a class="code" href="a04223.html#a641">format</a> ) +00124 { +00125 <span class="keywordflow">case</span> <a class="code" href="a05381.html#a80a17">Mono8</a> : <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr3">_SampleFormat</a> = AL_FORMAT_MONO8; <span class="keywordflow">break</span>; +00126 <span class="keywordflow">case</span> <a class="code" href="a05381.html#a80a19">Mono16</a> : <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr3">_SampleFormat</a> = AL_FORMAT_MONO16; <span class="keywordflow">break</span>; +00127 <span class="keywordflow">case</span> <a class="code" href="a05381.html#a80a20">Stereo8</a> : <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr3">_SampleFormat</a> = AL_FORMAT_STEREO8; <span class="keywordflow">break</span>; +00128 <span class="keywordflow">case</span> <a class="code" href="a05381.html#a80a21">Stereo16</a> : <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr3">_SampleFormat</a> = AL_FORMAT_STEREO16; <span class="keywordflow">break</span>; +00129 <span class="keywordflow">default</span> : <a class="code" href="a04199.html#a12">nlstop</a>; <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr3">_SampleFormat</a> = AL_INVALID; +00130 } +00131 <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr1">_Frequency</a> = freq; +00132 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa15" doxytag="NLSOUND::CBufferAL::setName" ></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::CBufferAL::setName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05378.html#a236">NLMISC::TStringId</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>name</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the name of the buffer. +<p> + +<p> +Definition at line <a class="el" href="a05519.html#l00097">97</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. +<p> +<div class="fragment"><pre>00097 { <a class="code" href="a02297.html#NLSOUND_1_1CBufferALr2">_Name</a> = name; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALa16" doxytag="NLSOUND::CBufferAL::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::CBufferAL::setSize </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>size</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Force the buffer size without filling data (if <a class="el" href="a02297.html#NLSOUND_1_1CBufferALa11">isFillMoreSupported()</a> only). +<p> + +<p> +Reimplemented from <a class="el" href="a02298.html#NLSOUND_1_1IBuffera11">NLSOUND::IBuffer</a>. +<p> +Definition at line <a class="el" href="a05519.html#l00078">78</a> of file <a class="el" href="a05519.html">buffer_al.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>00078 { <span class="keywordflow">throw</span> ESoundDriverNotSupp(); } +</pre></div> </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NLSOUND_1_1CBufferALr0" doxytag="NLSOUND::CBufferAL::_BufferName" ></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"> ALuint <a class="el" href="a02297.html#NLSOUND_1_1CBufferALr0">NLSOUND::CBufferAL::_BufferName</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05519.html#l00111">111</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. +<p> +Referenced by <a class="el" href="a05519.html#l00088">bufferName()</a>, <a class="el" href="a05518.html#l00138">fillBuffer()</a>, and <a class="el" href="a05518.html#l00061">getSize()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALr1" doxytag="NLSOUND::CBufferAL::_Frequency" ></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"> ALuint <a class="el" href="a02297.html#NLSOUND_1_1CBufferALr1">NLSOUND::CBufferAL::_Frequency</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05519.html#l00120">120</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. +<p> +Referenced by <a class="el" href="a05518.html#l00138">fillBuffer()</a>, <a class="el" href="a05518.html#l00099">getDuration()</a>, <a class="el" href="a05518.html#l00082">getFormat()</a>, and <a class="el" href="a05518.html#l00121">setFormat()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALr2" doxytag="NLSOUND::CBufferAL::_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="a02297.html#NLSOUND_1_1CBufferALr2">NLSOUND::CBufferAL::_Name</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05519.html#l00114">114</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CBufferALr3" doxytag="NLSOUND::CBufferAL::_SampleFormat" ></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"> ALenum <a class="el" href="a02297.html#NLSOUND_1_1CBufferALr3">NLSOUND::CBufferAL::_SampleFormat</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05519.html#l00117">117</a> of file <a class="el" href="a05519.html">buffer_al.h</a>. +<p> +Referenced by <a class="el" href="a05518.html#l00138">fillBuffer()</a>, <a class="el" href="a05518.html#l00099">getDuration()</a>, <a class="el" href="a05518.html#l00082">getFormat()</a>, <a class="el" href="a05518.html#l00073">isStereo()</a>, and <a class="el" href="a05518.html#l00121">setFormat()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a05519.html">buffer_al.h</a><li><a class="el" href="a05518.html">buffer_al.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 14:33:46 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> |