aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02766.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a02766.html')
-rw-r--r--docs/doxygen/nel/a02766.html865
1 files changed, 865 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02766.html b/docs/doxygen/nel/a02766.html
new file mode 100644
index 00000000..3e7d5c17
--- /dev/null
+++ b/docs/doxygen/nel/a02766.html
@@ -0,0 +1,865 @@
+<!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::CListenerAL 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::CListenerAL Class Reference</h1><code>#include &lt;<a class="el" href="a05918.html">listener_al.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLSOUND::CListenerAL:
+<p><center><img src="a02766.png" usemap="#NLSOUND::CListenerAL_map" border="0" alt=""></center>
+<map name="NLSOUND::CListenerAL_map">
+<area href="a03861.html" alt="NLSOUND::IListener" shape="rect" coords="0,0,148,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+OpenAL sound listener.<p>
+For arguments as 3D vectors, use the NeL vector coordinate system (not OpenAL/OpenGL's one).<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="a05918.html#l00046">46</a> of file <a class="el" href="a05918.html">listener_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>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02766.html#NLSOUND_1_1CListenerALa0">CListenerAL</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#NLSOUND_1_1CListenerALa0"></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="a02766.html#NLSOUND_1_1CListenerALa1">~CListenerAL</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#NLSOUND_1_1CListenerALa1"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Listener properties</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02766.html#NLSOUND_1_1CListenerALz1320_0">getGain</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the gain. <a href="#NLSOUND_1_1CListenerALz1320_0"></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="a02766.html#NLSOUND_1_1CListenerALz1320_1">getOrientation</a> (<a class="el" href="a03128.html">NLMISC::CVector</a> &amp;front, <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;up) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the orientation vectors. <a href="#NLSOUND_1_1CListenerALz1320_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02766.html#NLSOUND_1_1CListenerALz1320_2">getPos</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02766.html#NLSOUND_1_1CListenerALz1320_3">getVelocity</a> (<a class="el" href="a03128.html">NLMISC::CVector</a> &amp;vel) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the velocity vector. <a href="#NLSOUND_1_1CListenerALz1320_3"></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="a02766.html#NLSOUND_1_1CListenerALz1320_4">setGain</a> (float gain)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02766.html#NLSOUND_1_1CListenerALz1320_5">setOrientation</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;front, const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;up)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the orientation vectors (3D mode only) (default: (0,1,0), (0,0,1)). <a href="#NLSOUND_1_1CListenerALz1320_5"></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="a02766.html#NLSOUND_1_1CListenerALz1320_6">setPos</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;pos)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the position vector (default: (0,0,0)) (3D mode only). <a href="#NLSOUND_1_1CListenerALz1320_6"></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="a02766.html#NLSOUND_1_1CListenerALz1320_7">setVelocity</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;vel)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the velocity vector (3D mode only) (default: (0,0,0)). <a href="#NLSOUND_1_1CListenerALz1320_7"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Global properties</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02766.html#NLSOUND_1_1CListenerALz1322_0">setDopplerFactor</a> (float f)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the doppler factor (default: 1) to exaggerate or not the doppler effect. <a href="#NLSOUND_1_1CListenerALz1322_0"></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="a02766.html#NLSOUND_1_1CListenerALz1322_1">setEAXProperty</a> (<a class="el" href="a04558.html#a15">uint</a> prop, void *<a class="el" href="a04223.html#a658">value</a>, <a class="el" href="a04558.html#a15">uint</a> valuesize)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set any EAX listener property if EAX available. <a href="#NLSOUND_1_1CListenerALz1322_1"></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="a02766.html#NLSOUND_1_1CListenerALz1322_2">setEnvironment</a> (<a class="el" href="a04558.html#a15">uint</a> env, float <a class="el" href="a04223.html#a587">size</a>=7.5f)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set DSPROPERTY_EAXLISTENER_ENVIRONMENT and DSPROPERTY_EAXLISTENER_ENVIRONMENTSIZE if EAX available (see EAX listener properties). <a href="#NLSOUND_1_1CListenerALz1322_2"></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="a02766.html#NLSOUND_1_1CListenerALz1322_3">setRolloffFactor</a> (float f)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the rolloff factor (default: 1) to scale the distance attenuation effect. <a href="#NLSOUND_1_1CListenerALz1322_3"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02766.html">CListenerAL</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02766.html#NLSOUND_1_1CListenerALe0">instance</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the instance of the singleton. <a href="#NLSOUND_1_1CListenerALe0"></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><a class="el" href="a03128.html">NLMISC::CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02766.html#NLSOUND_1_1CListenerALr0">_Pos</a></td></tr>
+
+<tr><td colspan=2><br><h2>Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02766.html">CListenerAL</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02766.html#NLSOUND_1_1CListenerALv0">_Instance</a> = NULL</td></tr>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CListenerALa0" doxytag="NLSOUND::CListenerAL::CListenerAL" ></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::CListenerAL::CListenerAL </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05917.html#l00045">45</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00154">nlerror</a>.
+<p>
+<div class="fragment"><pre>00045 : <a class="code" href="a03861.html#NLSOUND_1_1IListenerb0">IListener</a>()
+00046 {
+00047 <span class="keywordflow">if</span> ( <a class="code" href="a02766.html#NLSOUND_1_1CListenerALv0">_Instance</a> == NULL )
+00048 {
+00049 <a class="code" href="a02766.html#NLSOUND_1_1CListenerALv0">_Instance</a> = <span class="keyword">this</span>;
+00050 }
+00051 <span class="keywordflow">else</span>
+00052 {
+00053 <a class="code" href="a04199.html#a3">nlerror</a>( <span class="stringliteral">"Listener singleton instanciated twice"</span> );
+00054 }
+00055 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALa1" doxytag="NLSOUND::CListenerAL::~CListenerAL" ></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::CListenerAL::~<a class="el" href="a02766.html">CListenerAL</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="a05918.html#l00096">96</a> of file <a class="el" href="a05918.html">listener_al.h</a>.
+<p>
+<div class="fragment"><pre>00096 { <a class="code" href="a02766.html#NLSOUND_1_1CListenerALv0">_Instance</a> = NULL; }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1320_0" doxytag="NLSOUND::CListenerAL::getGain" ></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::CListenerAL::getGain </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the gain.
+<p>
+
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1316_0">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00177">177</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a06419.html#l00074">TestALError</a>.
+<p>
+<div class="fragment"><pre>00178 {
+00179 ALfloat gain;
+00180 <span class="preprocessor">#ifdef NL_OS_WINDOWS</span>
+00181 <span class="preprocessor"></span> alGetListenerf( AL_GAIN, &amp;gain );
+00182 <span class="preprocessor">#else</span>
+00183 <span class="preprocessor"></span> alGetListenerfv( AL_GAIN, &amp;gain );
+00184 <span class="preprocessor">#endif</span>
+00185 <span class="preprocessor"></span> <a class="code" href="a04996.html#a0">TestALError</a>();
+00186 <span class="keywordflow">return</span> gain;
+00187 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1320_1" doxytag="NLSOUND::CListenerAL::getOrientation" ></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::CListenerAL::getOrientation </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>front</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>up</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</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>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the orientation vectors.
+<p>
+
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1316_1">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00149">149</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a06682.html#l00136">NLMISC::CVector::set()</a>, <a class="el" href="a06419.html#l00074">TestALError</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00150 {
+00151 <span class="comment">// Forward then up</span>
+00152 ALfloat <a class="code" href="a04223.html#a576">v</a>[6];
+00153 alGetListenerfv( AL_ORIENTATION, v );
+00154 <a class="code" href="a04996.html#a0">TestALError</a>();
+00155 <span class="comment">// Coordsys conversion</span>
+00156 front.<a class="code" href="a03128.html#NLMISC_1_1CVectorz2051_8">set</a>( v[0], -v[2], v[1] );
+00157 up.<a class="code" href="a03128.html#NLMISC_1_1CVectorz2051_8">set</a>( v[3], -v[5], v[4] );
+00158 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1320_2" doxytag="NLSOUND::CListenerAL::getPos" ></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="a03128.html">NLMISC::CVector</a> &amp; NLSOUND::CListenerAL::getPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the position vector. See <a class="el" href="a02766.html#NLSOUND_1_1CListenerALz1320_6">setPos()</a> for details.
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1316_2">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00073">73</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+<div class="fragment"><pre>00074 {
+00075 <span class="keywordflow">return</span> <a class="code" href="a02766.html#NLSOUND_1_1CListenerALr0">_Pos</a>;
+00076
+00077 <span class="comment">// Currently, the OpenAL headers are different between Windows and Linux versions !</span>
+00078 <span class="comment">// alGetListener3f() is part of the spec, though.</span>
+00079 <span class="comment">/*</span>
+00080 <span class="comment">#ifdef NL_OS_WINDOWS</span>
+00081 <span class="comment"> // Coordsys conversion</span>
+00082 <span class="comment"> float glposz;</span>
+00083 <span class="comment"> alGetListener3f( AL_POSITION, &amp;pos.x, &amp;pos.z, &amp;glposz );</span>
+00084 <span class="comment"> pos.y = -glposz;</span>
+00085 <span class="comment">#else</span>
+00086 <span class="comment"> float posarray [3];</span>
+00087 <span class="comment"> alGetListenerfv( AL_POSITION, posarray );</span>
+00088 <span class="comment"> // Coordsys conversion</span>
+00089 <span class="comment"> pos.set( posarray[0], -posarray[2], posarray[1] );</span>
+00090 <span class="comment">#endif</span>
+00091 <span class="comment"> TestALError();</span>
+00092 <span class="comment">*/</span>
+00093 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1320_3" doxytag="NLSOUND::CListenerAL::getVelocity" ></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::CListenerAL::getVelocity </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>vel</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the velocity vector.
+<p>
+
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1316_3">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00110">110</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a06682.html#l00136">NLMISC::CVector::set()</a>, <a class="el" href="a06419.html#l00074">TestALError</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+<div class="fragment"><pre>00111 {
+00112 <span class="preprocessor">#ifdef NL_OS_WINDOWS</span>
+00113 <span class="preprocessor"></span> <span class="comment">// Coordsys conversion</span>
+00114 <span class="keywordtype">float</span> glposz;
+00115 alGetListener3f( AL_VELOCITY, &amp;vel.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, &amp;vel.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>, &amp;glposz );
+00116 vel.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> = - glposz;
+00117 <span class="preprocessor">#else</span>
+00118 <span class="preprocessor"></span> <span class="keywordtype">float</span> velarray [3];
+00119 alGetListenerfv( AL_VELOCITY, velarray );
+00120 <span class="comment">// Coordsys conversion</span>
+00121 vel.<a class="code" href="a03128.html#NLMISC_1_1CVectorz2051_8">set</a>( velarray[0], -velarray[2], velarray[1] );
+00122 <span class="preprocessor">#endif</span>
+00123 <span class="preprocessor"></span> <a class="code" href="a04996.html#a0">TestALError</a>();
+00124 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALe0" doxytag="NLSOUND::CListenerAL::instance" ></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="a02766.html">CListenerAL</a>* NLSOUND::CListenerAL::instance </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, static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the instance of the singleton.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05918.html#l00054">54</a> of file <a class="el" href="a05918.html">listener_al.h</a>.
+<p>
+<div class="fragment"><pre>00054 { <span class="keywordflow">return</span> <a class="code" href="a02766.html#NLSOUND_1_1CListenerALv0">_Instance</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1322_0" doxytag="NLSOUND::CListenerAL::setDopplerFactor" ></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::CListenerAL::setDopplerFactor </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>f</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the doppler factor (default: 1) to exaggerate or not the doppler effect.
+<p>
+
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1318_0">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00193">193</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a06419.html#l00074">TestALError</a>.
+<p>
+<div class="fragment"><pre>00194 {
+00195 alDopplerFactor( f );
+00196 <a class="code" href="a04996.html#a0">TestALError</a>();
+00197 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1322_1" doxytag="NLSOUND::CListenerAL::setEAXProperty" ></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::CListenerAL::setEAXProperty </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>prop</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>value</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>valuesize</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set any EAX listener property if EAX available.
+<p>
+
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1318_1">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00228">228</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05646.html#l01132">value</a>.
+<p>
+<div class="fragment"><pre>00229 {
+00230 <span class="preprocessor">#if EAX_AVAILABLE == 1</span>
+00231 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( EAXSetProp != NULL )
+00232 {
+00233 EAXSetProp( &amp;DSPROPSETID_EAX_ListenerProperties, prop, 0, value, valuesize );
+00234 }
+00235 <span class="preprocessor">#endif</span>
+00236 <span class="preprocessor"></span>}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1322_2" doxytag="NLSOUND::CListenerAL::setEnvironment" ></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::CListenerAL::setEnvironment </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>env</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>size</em> = 7.5f</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set DSPROPERTY_EAXLISTENER_ENVIRONMENT and DSPROPERTY_EAXLISTENER_ENVIRONMENTSIZE if EAX available (see EAX listener properties).
+<p>
+
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1318_2">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00213">213</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l00645">size</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00214 {
+00215 <span class="preprocessor">#if EAX_AVAILABLE == 1</span>
+00216 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( EAXSetProp != NULL )
+00217 {
+00218 EAXSetProp( &amp;DSPROPSETID_EAX_ListenerProperties, DSPROPERTY_EAXLISTENER_ENVIRONMENT, 0, &amp;env, <span class="keyword">sizeof</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>) );
+00219 EAXSetProp( &amp;DSPROPSETID_EAX_ListenerProperties, DSPROPERTY_EAXLISTENER_ENVIRONMENTSIZE, 0, &amp;size, <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>) );
+00220 }
+00221 <span class="preprocessor">#endif</span>
+00222 <span class="preprocessor"></span>}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1320_4" doxytag="NLSOUND::CListenerAL::setGain" ></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::CListenerAL::setGain </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>gain</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the gain (volume value inside [0 , 1]). (default: 1) 0.0 -&gt; silence 0.5 -&gt; -6dB 1.0 -&gt; no attenuation values &gt; 1 (amplification) not supported by most drivers
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1316_4">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00167">167</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a06419.html#l00074">TestALError</a>.
+<p>
+<div class="fragment"><pre>00168 {
+00169 alListenerf( AL_GAIN, gain );
+00170 <a class="code" href="a04996.html#a0">TestALError</a>();
+00171 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1320_5" doxytag="NLSOUND::CListenerAL::setOrientation" ></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::CListenerAL::setOrientation </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>front</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>up</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the orientation vectors (3D mode only) (default: (0,1,0), (0,0,1)).
+<p>
+
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1316_5">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00130">130</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a06419.html#l00074">TestALError</a>, <a class="el" href="a05646.html#l00237">v</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+<div class="fragment"><pre>00131 {
+00132 <span class="comment">// Forward then up</span>
+00133 ALfloat <a class="code" href="a04223.html#a576">v</a>[6];
+00134 <span class="comment">// Coordsys conversion</span>
+00135 <a class="code" href="a04223.html#a576">v</a>[0] = front.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>;
+00136 <a class="code" href="a04223.html#a576">v</a>[1] = front.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>;
+00137 <a class="code" href="a04223.html#a576">v</a>[2] = -front.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>;
+00138 <a class="code" href="a04223.html#a576">v</a>[3] = up.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>;
+00139 <a class="code" href="a04223.html#a576">v</a>[4] = up.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>;
+00140 <a class="code" href="a04223.html#a576">v</a>[5] = -up.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>;
+00141 alListenerfv( AL_ORIENTATION, v );
+00142 <a class="code" href="a04996.html#a0">TestALError</a>();
+00143 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1320_6" doxytag="NLSOUND::CListenerAL::setPos" ></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::CListenerAL::setPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pos</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the position vector (default: (0,0,0)) (3D mode only).
+<p>
+
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1316_6">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00061">61</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a06419.html#l00074">TestALError</a>.
+<p>
+<div class="fragment"><pre>00062 {
+00063 <a class="code" href="a02766.html#NLSOUND_1_1CListenerALr0">_Pos</a> = pos;
+00064 <span class="comment">// Coordinate system: conversion from NeL to OpenAL/GL:</span>
+00065 alListener3f( AL_POSITION, pos.x, pos.z, -pos.y );
+00066 <a class="code" href="a04996.html#a0">TestALError</a>();
+00067 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1322_3" doxytag="NLSOUND::CListenerAL::setRolloffFactor" ></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::CListenerAL::setRolloffFactor </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>f</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the rolloff factor (default: 1) to scale the distance attenuation effect.
+<p>
+
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1318_3">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00203">203</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+<div class="fragment"><pre>00204 {
+00205 <a class="code" href="a04199.html#a6">nlassert</a>( CSoundDriverAL::instance() != NULL );
+00206 CSoundDriverAL::instance()-&gt;applyRolloffFactor( f );
+00207 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALz1320_7" doxytag="NLSOUND::CListenerAL::setVelocity" ></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::CListenerAL::setVelocity </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>vel</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the velocity vector (3D mode only) (default: (0,0,0)).
+<p>
+
+<p>
+Implements <a class="el" href="a03861.html#NLSOUND_1_1IListenerz1316_7">NLSOUND::IListener</a>.
+<p>
+Definition at line <a class="el" href="a05917.html#l00099">99</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>.
+<p>
+References <a class="el" href="a06419.html#l00074">TestALError</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+<div class="fragment"><pre>00100 {
+00101 <span class="comment">// Coordsys conversion</span>
+00102 alListener3f( AL_VELOCITY, vel.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, vel.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>, -vel.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a> );
+00103 <a class="code" href="a04996.html#a0">TestALError</a>();
+00104 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CListenerALv0" doxytag="NLSOUND::CListenerAL::_Instance" ></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="a02766.html">CListenerAL</a> * <a class="el" href="a02766.html#NLSOUND_1_1CListenerALv0">NLSOUND::CListenerAL::_Instance</a> = NULL<code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05917.html#l00039">39</a> of file <a class="el" href="a05917.html">listener_al.cpp</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CListenerALr0" doxytag="NLSOUND::CListenerAL::_Pos" ></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="a03128.html">NLMISC::CVector</a> <a class="el" href="a02766.html#NLSOUND_1_1CListenerALr0">NLSOUND::CListenerAL::_Pos</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05918.html#l00103">103</a> of file <a class="el" href="a05918.html">listener_al.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05918.html">listener_al.h</a><li><a class="el" href="a05917.html">listener_al.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 14:39:01 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>