aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02394.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a02394.html')
-rw-r--r--docs/doxygen/nel/a02394.html3070
1 files changed, 3070 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02394.html b/docs/doxygen/nel/a02394.html
new file mode 100644
index 00000000..b5d57993
--- /dev/null
+++ b/docs/doxygen/nel/a02394.html
@@ -0,0 +1,3070 @@
+<!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::CComplexSource 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::CComplexSource Class Reference</h1><code>#include &lt;<a class="el" href="a05594.html">complex_source.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NLSOUND::CComplexSource:
+<p><center><img src="a02394.png" usemap="#NLSOUND::CComplexSource_map" border="0" alt=""></center>
+<map name="NLSOUND::CComplexSource_map">
+<area href="a02254.html" alt="NLSOUND::CSourceCommon" shape="rect" coords="0,56,258,80">
+<area href="a02238.html" alt="NLSOUND::CAudioMixerUser::IMixerEvent" shape="rect" coords="268,56,526,80">
+<area href="a02239.html" alt="NLSOUND::CAudioMixerUser::IMixerUpdate" shape="rect" coords="536,56,794,80">
+<area href="a03429.html" alt="NLSOUND::USource" shape="rect" coords="0,0,258,24">
+<area href="a02425.html" alt="NLMISC::CDbgRefCount< IMixerEvent >" shape="rect" coords="268,0,526,24">
+<area href="a02425.html" alt="NLMISC::CDbgRefCount< IMixerUpdate >" shape="rect" coords="536,0,794,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Implemetation class for Complex source. Complex source are source that use a CPatternSound object.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05594.html#l00042">42</a> of file <a class="el" href="a05594.html">complex_source.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Source properties</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_0">checkup</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_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="a02394.html#NLSOUND_1_1CComplexSourcez1303_1">setDirection</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;dir)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the direction vector (3D mode only, ignored in stereo mode) (default: (0,0,0) as non-directional). <a href="#NLSOUND_1_1CComplexSourcez1303_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="a02394.html#NLSOUND_1_1CComplexSourcez1303_2">setGain</a> (float gain)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the direction vector. <a href="#NLSOUND_1_1CComplexSourcez1303_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="a02394.html#NLSOUND_1_1CComplexSourcez1303_3">setPos</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;pos)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_4">setRelativeGain</a> (float gain)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the gain. <a href="#NLSOUND_1_1CComplexSourcez1303_4"></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="a02394.html#NLSOUND_1_1CComplexSourcez1303_5">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, ignored in stereo mode) (default: (0,0,0)). <a href="#NLSOUND_1_1CComplexSourcez1303_5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonw3">TSOURCE_TYPE</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_6">getType</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_7">onEvent</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mixer event implementation. <a href="#NLSOUND_1_1CComplexSourcez1303_7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_8">onUpdate</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mixer update implementation. <a href="#NLSOUND_1_1CComplexSourcez1303_8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_9">playStuf</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Do the dirty work of starting to play. Called by play and by setGain or setRelativeGain when the source is muted. <a href="#NLSOUND_1_1CComplexSourcez1303_9"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a03429.html">USource</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">_DelaySeqIndex</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_11"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_12">_FadeFactor</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_12"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_13">_FadeLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_13"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_14">_LastSparseEvent</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_14"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_15">_Muted</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02393.html">CComplexSound</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The reference Sound. <a href="#NLSOUND_1_1CComplexSourcez1303_16"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_17">_SoundSeqIndex</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_17"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03429.html">USource</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_18"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03429.html">USource</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_19"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05378.html#a242">NLMISC::TTime</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_20">_StartTime1</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_20"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05378.html#a242">NLMISC::TTime</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_21">_StartTime2</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_21"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">_TickPerSecond</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CComplexSourcez1303_22"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonw3">TSOURCE_TYPE</a> { <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonw3NLSOUND_1_1CSourceCommonw2">SOURCE_SIMPLE</a>,
+<a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonw3NLSOUND_1_1CSourceCommonw1">SOURCE_COMPLEX</a>,
+<a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonw3NLSOUND_1_1CSourceCommonw0">SOURCE_BACKGROUND</a>
+ }</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="a02394.html#NLSOUND_1_1CComplexSourcea0">CComplexSource</a> (<a class="el" href="a02393.html">CComplexSound</a> *soundPattern=NULL, bool spawn=false, <a class="el" href="a05381.html#a63">TSpawnEndCallback</a> cb=0, void *cbUserParam=0, <a class="el" href="a02362.html">NL3D::CCluster</a> *cluster=0)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#NLSOUND_1_1CComplexSourcea0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona2">getCallbackUserParam</a> (void) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the user param for the user callback <a href="#NLSOUND_1_1CSourceCommona2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02362.html">NL3D::CCluster</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona3">getCluster</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="a02254.html#NLSOUND_1_1CSourceCommona4">getDirection</a> (<a class="el" href="a03128.html">NLMISC::CVector</a> &amp;dir) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the direction vector. <a href="#NLSOUND_1_1CSourceCommona4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona5">getGain</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the gain. <a href="#NLSOUND_1_1CSourceCommona5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona6">getLooping</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the looping state. <a href="#NLSOUND_1_1CSourceCommona6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona7">getPitch</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the pitch. <a href="#NLSOUND_1_1CSourceCommona7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona8">getPos</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the position vector (3D mode only). <a href="#NLSOUND_1_1CSourceCommona8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05381.html#a82">TSoundPriority</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona9">getPriority</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the priority. <a href="#NLSOUND_1_1CSourceCommona9"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona10">getRelativeGain</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the relative gain (see <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona26">setRelativeGain()</a>), or the absolute gain if getSource() is null. <a href="#NLSOUND_1_1CSourceCommona10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a02246.html">TSoundId</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcea10">getSound</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the sound binded to the source (or NULL if there is no sound). <a href="#NLSOUND_1_1CComplexSourcea10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona12">getSourceRelativeMode</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the source relative mode. <a href="#NLSOUND_1_1CSourceCommona12"></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="a02254.html#NLSOUND_1_1CSourceCommona15">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_1CSourceCommona15"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona17">isSpawn</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the spawn state. <a href="#NLSOUND_1_1CSourceCommona17"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona19">set3DPositionVector</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> *pos)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the position vector to return for a stereo source (default: NULL). <a href="#NLSOUND_1_1CSourceCommona19"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona22">setLooping</a> (bool loop)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set looping on/off for future playbacks (default: off). <a href="#NLSOUND_1_1CSourceCommona22"></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="a02254.html#NLSOUND_1_1CSourceCommona23">setPitch</a> (float pitch)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona25">setPriority</a> (<a class="el" href="a05381.html#a82">TSoundPriority</a> pr)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change the priority of the source. <a href="#NLSOUND_1_1CSourceCommona25"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona27">setSourceRelativeMode</a> (bool mode)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the source relative mode. If true, positions are interpreted relative to the listener position (default: false). <a href="#NLSOUND_1_1CSourceCommona27"></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="a02254.html#NLSOUND_1_1CSourceCommona30">unregisterSpawnCallBack</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tells this source not to call its callbacks when it ends. This is valid for spawned sources only. <a href="#NLSOUND_1_1CSourceCommona30"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcea20">~CComplexSource</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#NLSOUND_1_1CComplexSourcea20"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Playback control</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1301_0">getTime</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of milliseconds the source has been playing. <a href="#NLSOUND_1_1CComplexSourcez1301_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1301_1">isPlaying</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get playing state. Return false even if the source has stopped on its own. <a href="#NLSOUND_1_1CComplexSourcez1301_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="a02394.html#NLSOUND_1_1CComplexSourcez1301_2">play</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Play. <a href="#NLSOUND_1_1CComplexSourcez1301_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="a02394.html#NLSOUND_1_1CComplexSourcez1301_3">stop</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop playing. <a href="#NLSOUND_1_1CComplexSourcez1301_3"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03128.html">NLMISC::CVector</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp0">_3DPosition</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp1">_CbUserParam</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02362.html">NL3D::CCluster</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp2">_Cluster</a></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="a02254.html#NLSOUND_1_1CSourceCommonp3">_Direction</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp4">_Gain</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp5">_InitialGain</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gain not affected by setRelativeGain and used to compute _Gain. <a href="#NLSOUND_1_1CSourceCommonp5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp8">_Playing</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05378.html#a242">NLMISC::TTime</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp9">_PlayStart</a></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="a02254.html#NLSOUND_1_1CSourceCommonp10">_Position</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05381.html#a82">TSoundPriority</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp11">_Priority</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp12">_RelativeMode</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp13">_Spawn</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05381.html#a63">TSpawnEndCallback</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp14">_SpawnEndCb</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05378.html#a236">NLMISC::TStringId</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp15">_UserVarControler</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An optional user var controler. <a href="#NLSOUND_1_1CSourceCommonp15"></a><br><br></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="a02254.html#NLSOUND_1_1CSourceCommonp16">_Velocity</a></td></tr>
+
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonw3" doxytag="NLSOUND::CComplexSource::TSOURCE_TYPE" ></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"> enum <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonw3">NLSOUND::CSourceCommon::TSOURCE_TYPE</a><code> [inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NLSOUND_1_1CSourceCommonw3NLSOUND_1_1CSourceCommonw2" doxytag="SOURCE_SIMPLE" ></a>SOURCE_SIMPLE</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLSOUND_1_1CSourceCommonw3NLSOUND_1_1CSourceCommonw1" doxytag="SOURCE_COMPLEX" ></a>SOURCE_COMPLEX</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NLSOUND_1_1CSourceCommonw3NLSOUND_1_1CSourceCommonw0" doxytag="SOURCE_BACKGROUND" ></a>SOURCE_BACKGROUND</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06428.html#l00042">42</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+<div class="fragment"><pre>00043 {
+00044 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonw3NLSOUND_1_1CSourceCommonw2">SOURCE_SIMPLE</a>,
+00045 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonw3NLSOUND_1_1CSourceCommonw1">SOURCE_COMPLEX</a>,
+00046 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonw3NLSOUND_1_1CSourceCommonw0">SOURCE_BACKGROUND</a>
+00047 };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcea0" doxytag="NLSOUND::CComplexSource::CComplexSource" ></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::CComplexSource::CComplexSource </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02393.html">CComplexSound</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>soundPattern</em> = NULL, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>spawn</em> = false, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a05381.html#a63">TSpawnEndCallback</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>cb</em> = 0, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>cbUserParam</em> = 0, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02362.html">NL3D::CCluster</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>cluster</em> = 0</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></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="a05593.html#l00037">37</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00158">_PatternSound</a>, <a class="el" href="a05594.html#l00147">_TickPerSecond</a>, <a class="el" href="a06407.html#l00090">NLSOUND::CSound::getGain()</a>, <a class="el" href="a06407.html#l00088">NLSOUND::CSound::getLooping()</a>, <a class="el" href="a06407.html#l00092">NLSOUND::CSound::getPitch()</a>, <a class="el" href="a06407.html#l00094">NLSOUND::CSound::getPriority()</a>, <a class="el" href="a05592.html#l00084">NLSOUND::CComplexSound::getSoundType()</a>, <a class="el" href="a05592.html#l00080">NLSOUND::CComplexSound::getTicksPerSecond()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06630.html#l00076">NLSOUND::TSpawnEndCallback</a>.
+<p>
+<div class="fragment"><pre>00038 : <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommona1">CSourceCommon</a>(soundPattern, spawn, cb, cbUserParam, cluster),
+00039 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>(NULL),
+00040 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>(NULL)
+00041 {
+00042 <a class="code" href="a04199.html#a6">nlassert</a>(soundPattern-&gt;getSoundType() == CSound::SOUND_COMPLEX);
+00043 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a> = static_cast&lt;CComplexSound*&gt;(soundPattern);
+00044
+00045 <span class="comment">// read original parameters</span>
+00046 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp4">_Gain</a> = soundPattern-&gt;getGain();
+00047 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a> = soundPattern-&gt;getPitch();
+00048 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a> = soundPattern-&gt;getLooping();
+00049 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp11">_Priority</a> = soundPattern-&gt;getPriority();
+00050 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">_TickPerSecond</a> = soundPattern-&gt;getTicksPerSecond();
+00051 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcea20" doxytag="NLSOUND::CComplexSource::~CComplexSource" ></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::CComplexSource::~<a class="el" href="a02394.html">CComplexSource</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></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="a05593.html#l00053">53</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00133">_AllSources</a>, <a class="el" href="a05465.html#l02075">NLSOUND::CAudioMixerUser::removeEvents()</a>, and <a class="el" href="a05465.html#l02060">NLSOUND::CAudioMixerUser::unregisterUpdate()</a>.
+<p>
+<div class="fragment"><pre>00054 {
+00055 CAudioMixerUser *mixer = CAudioMixerUser::instance();
+00056 <span class="comment">// security</span>
+00057 CAudioMixerUser::instance()-&gt;unregisterUpdate(<span class="keyword">this</span>);
+00058 CAudioMixerUser::instance()-&gt;removeEvents(<span class="keyword">this</span>);
+00059
+00060 std::vector&lt;USource *&gt;::iterator first(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.begin()), last(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.end());
+00061 <span class="keywordflow">for</span> (; first != last; ++first)
+00062 {
+00063 <span class="comment">//mixer-&gt;removeSource(*first);</span>
+00064 <span class="keyword">delete</span> *first;
+00065 }
+00066 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_0" doxytag="NLSOUND::CComplexSource::checkup" ></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::CComplexSource::checkup </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Reimplemented from <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona0">NLSOUND::CSourceCommon</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00698">698</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00133">_AllSources</a>, <a class="el" href="a05594.html#l00139">_Muted</a>, <a class="el" href="a05594.html#l00130">_Source1</a>, <a class="el" href="a05594.html#l00131">_Source2</a>, <a class="el" href="a06407.html#l00088">NLSOUND::CSound::getLooping()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcea0">NLSOUND::USource::getSound()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2137_2">NLSOUND::USource::isPlaying()</a>, and <a class="el" href="a03429.html#NLSOUND_1_1USourcez2137_3">NLSOUND::USource::play()</a>.
+<p>
+<div class="fragment"><pre>00699 {
+00700 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_15">_Muted</a>)
+00701 <span class="keywordflow">return</span>;
+00702
+00703 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> != NULL &amp;&amp; <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;getSound()-&gt;getLooping() &amp;&amp; !<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;isPlaying())
+00704 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;play();
+00705 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> != NULL &amp;&amp; <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;getSound()-&gt;getLooping() &amp;&amp; !<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;isPlaying())
+00706 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;play();
+00707
+00708 std::vector&lt;USource *&gt;::iterator first(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.begin()), last(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.end());
+00709 <span class="keywordflow">for</span> (; first != last; ++first)
+00710 {
+00711 <a class="code" href="a03429.html#NLSOUND_1_1USourceb0">USource</a> *source = *first;
+00712 <span class="keywordflow">if</span> (source != NULL &amp;&amp; source-&gt;getSound()-&gt;getLooping() &amp;&amp; !source-&gt;isPlaying())
+00713 source-&gt;play();
+00714 }
+00715 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona2" doxytag="NLSOUND::CComplexSource::getCallbackUserParam" ></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::CSourceCommon::getCallbackUserParam </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return the user param for the user callback
+<p>
+
+<p>
+Definition at line <a class="el" href="a06428.html#l00074">74</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+References <a class="el" href="a06428.html#l00130">NLSOUND::CSourceCommon::_CbUserParam</a>.
+<p>
+<div class="fragment"><pre>00074 { <span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp1">_CbUserParam</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona3" doxytag="NLSOUND::CComplexSource::getCluster" ></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="a02362.html">NL3D::CCluster</a>* NLSOUND::CSourceCommon::getCluster </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06428.html#l00098">98</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+References <a class="el" href="a06428.html#l00131">NLSOUND::CSourceCommon::_Cluster</a>.
+<p>
+Referenced by <a class="el" href="a06390.html#l00103">NLSOUND::CSimpleSource::getVirtualPos()</a>, and <a class="el" href="a05465.html#l01268">NLSOUND::CAudioMixerUser::update()</a>.
+<p>
+<div class="fragment"><pre>00098 { <span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp2">_Cluster</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona4" doxytag="NLSOUND::CComplexSource::getDirection" ></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::CSourceCommon::getDirection </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>dir</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the direction vector.
+<p>
+
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_0">NLSOUND::USource</a>.
+<p>
+Definition at line <a class="el" href="a06428.html#l00080">80</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+<div class="fragment"><pre>00080 { dir = <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp3">_Direction</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona5" doxytag="NLSOUND::CComplexSource::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"> virtual float NLSOUND::CSourceCommon::getGain </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, virtual, inherited]</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="a03429.html#NLSOUND_1_1USourcez2139_1">NLSOUND::USource</a>.
+<p>
+Definition at line <a class="el" href="a06428.html#l00082">82</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+Referenced by <a class="el" href="a05465.html#l01268">NLSOUND::CAudioMixerUser::update()</a>.
+<p>
+<div class="fragment"><pre>00082 { <span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp4">_Gain</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona6" doxytag="NLSOUND::CComplexSource::getLooping" ></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::CSourceCommon::getLooping </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the looping state.
+<p>
+
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcez2137_0">NLSOUND::USource</a>.
+<p>
+Definition at line <a class="el" href="a06427.html#l00099">99</a> of file <a class="el" href="a06427.html">source_common.cpp</a>.
+<p>
+<div class="fragment"><pre>00100 {
+00101 <span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a>;
+00102 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona7" doxytag="NLSOUND::CComplexSource::getPitch" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual float NLSOUND::CSourceCommon::getPitch </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the pitch.
+<p>
+
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_2">NLSOUND::USource</a>.
+<p>
+Definition at line <a class="el" href="a06428.html#l00084">84</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+<div class="fragment"><pre>00084 { <span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona8" doxytag="NLSOUND::CComplexSource::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::CSourceCommon::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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the position vector (3D mode only).
+<p>
+
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_3">NLSOUND::USource</a>.
+<p>
+Definition at line <a class="el" href="a06427.html#l00141">141</a> of file <a class="el" href="a06427.html">source_common.cpp</a>.
+<p>
+References <a class="el" href="a06428.html#l00125">NLSOUND::CSourceCommon::_3DPosition</a>.
+<p>
+Referenced by <a class="el" href="a05465.html#l01152">NLSOUND::CAudioMixerUser::getFreeTrack()</a>, <a class="el" href="a05465.html#l01230">NLSOUND::CAudioMixerUser::getPlayingSoundsPos()</a>, <a class="el" href="a06390.html#l00103">NLSOUND::CSimpleSource::getVirtualPos()</a>, <a class="el" href="a05465.html#l01946">NLSOUND::CompareSources::operator()()</a>, and <a class="el" href="a05465.html#l01268">NLSOUND::CAudioMixerUser::update()</a>.
+<p>
+<div class="fragment"><pre>00142 {
+00143 <span class="keywordflow">if</span> ( <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp0">_3DPosition</a> == NULL )
+00144 {
+00145 <span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp10">_Position</a>;
+00146 }
+00147 <span class="keywordflow">else</span>
+00148 {
+00149 <span class="keywordflow">return</span> *<a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp0">_3DPosition</a>;
+00150 }
+00151
+00152 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona9" doxytag="NLSOUND::CComplexSource::getPriority" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a05381.html#a82">TSoundPriority</a> NLSOUND::CSourceCommon::getPriority </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the priority.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06428.html#l00059">59</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+References <a class="el" href="a06630.html#l00072">NLSOUND::TSoundPriority</a>.
+<p>
+Referenced by <a class="el" href="a05465.html#l01217">NLSOUND::CAudioMixerUser::freeTrack()</a>, <a class="el" href="a05465.html#l01152">NLSOUND::CAudioMixerUser::getFreeTrack()</a>, and <a class="el" href="a05465.html#l01946">NLSOUND::CompareSources::operator()()</a>.
+<p>
+<div class="fragment"><pre>00059 { <span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp11">_Priority</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona10" doxytag="NLSOUND::CComplexSource::getRelativeGain" ></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::CSourceCommon::getRelativeGain </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the relative gain (see <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona26">setRelativeGain()</a>), or the absolute gain if getSource() is null.
+<p>
+
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_4">NLSOUND::USource</a>.
+<p>
+Definition at line <a class="el" href="a06427.html#l00205">205</a> of file <a class="el" href="a06427.html">source_common.cpp</a>.
+<p>
+References <a class="el" href="a06428.html#l00119">NLSOUND::CSourceCommon::_InitialGain</a>.
+<p>
+Referenced by <a class="el" href="a05465.html#l01017">NLSOUND::CAudioMixerUser::addUserControledSource()</a>, and <a class="el" href="a05465.html#l01268">NLSOUND::CAudioMixerUser::update()</a>.
+<p>
+<div class="fragment"><pre>00206 {
+00207 <span class="keywordflow">if</span> (<a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp5">_InitialGain</a> == 0.0f)
+00208 <span class="keywordflow">return</span> 0.0f;
+00209 <span class="keywordflow">else</span>
+00210 <span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp4">_Gain</a> / <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp5">_InitialGain</a>;
+00211 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcea10" doxytag="NLSOUND::CComplexSource::getSound" ></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="a02246.html">TSoundId</a> NLSOUND::CComplexSource::getSound </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the sound binded to the source (or NULL if there is no sound).
+<p>
+
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcea0">NLSOUND::USource</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00069">69</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00158">_PatternSound</a>, and <a class="el" href="a06630.html#l00069">NLSOUND::TSoundId</a>.
+<p>
+<div class="fragment"><pre>00070 {
+00071 <span class="keywordflow">return</span> <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>;
+00072 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona12" doxytag="NLSOUND::CComplexSource::getSourceRelativeMode" ></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::CSourceCommon::getSourceRelativeMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_5">NLSOUND::USource</a>.
+<p>
+Definition at line <a class="el" href="a06428.html#l00086">86</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+References <a class="el" href="a06428.html#l00116">NLSOUND::CSourceCommon::_RelativeMode</a>.
+<p>
+<div class="fragment"><pre>00086 { <span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp12">_RelativeMode</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1301_0" doxytag="NLSOUND::CComplexSource::getTime" ></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::CComplexSource::getTime </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the number of milliseconds the source has been playing.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona13">NLSOUND::CSourceCommon</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00441">441</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a06552.html#l00055">NLMISC::CTime::getLocalTime()</a>, <a class="el" href="a06553.html#l00047">NLMISC::TTime</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00442 {
+00443 <span class="comment">// evaluate the elapsed time.</span>
+00444 <span class="keywordflow">if</span> (!<a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp8">_Playing</a> || <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp9">_PlayStart</a> == 0) <span class="comment">// not started ?</span>
+00445 <span class="keywordflow">return</span> 0;
+00446
+00447 <a class="code" href="a05378.html#a242">TTime</a> now = <a class="code" href="a02142.html#NLMISC_1_1CTimee0">NLMISC::CTime::getLocalTime</a>();
+00448
+00449 <a class="code" href="a05378.html#a242">TTime</a> delta = now - <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp9">_PlayStart</a>;
+00450
+00451 <span class="keywordflow">return</span> <a class="code" href="a05167.html#a13">uint32</a>(delta);
+00452 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_6" doxytag="NLSOUND::CComplexSource::getType" ></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="a02254.html#NLSOUND_1_1CSourceCommonw3">TSOURCE_TYPE</a> NLSOUND::CComplexSource::getType </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, private, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Implements <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona14">NLSOUND::CSourceCommon</a>.
+<p>
+Definition at line <a class="el" href="a05594.html#l00121">121</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+<div class="fragment"><pre>00121 {<span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonw3NLSOUND_1_1CSourceCommonw1">SOURCE_COMPLEX</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona15" doxytag="NLSOUND::CComplexSource::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"> virtual void NLSOUND::CSourceCommon::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> [inline, virtual, inherited]</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="a03429.html#NLSOUND_1_1USourcez2139_6">NLSOUND::USource</a>.
+<p>
+Definition at line <a class="el" href="a06428.html#l00078">78</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+References <a class="el" href="a06428.html#l00112">NLSOUND::CSourceCommon::_Velocity</a>.
+<p>
+<div class="fragment"><pre>00078 { vel = <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp16">_Velocity</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1301_1" doxytag="NLSOUND::CComplexSource::isPlaying" ></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::CComplexSource::isPlaying </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get playing state. Return false even if the source has stopped on its own.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona16">NLSOUND::CSourceCommon</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00087">87</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+<div class="fragment"><pre>00088 {
+00089 <span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp8">_Playing</a>;
+00090 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona17" doxytag="NLSOUND::CComplexSource::isSpawn" ></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::CSourceCommon::isSpawn </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the spawn state.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06428.html#l00090">90</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+<div class="fragment"><pre>00090 { <span class="keywordflow">return</span> <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp13">_Spawn</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_7" doxytag="NLSOUND::CComplexSource::onEvent" ></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::CComplexSource::onEvent </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> [private, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Mixer event implementation.
+<p>
+
+<p>
+Implements <a class="el" href="a02238.html#NLSOUND_1_1CAudioMixerUser_1_1IMixerEventa0">NLSOUND::CAudioMixerUser::IMixerEvent</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00577">577</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00153">_DelaySeqIndex</a>, <a class="el" href="a05594.html#l00155">_LastSparseEvent</a>, <a class="el" href="a05594.html#l00158">_PatternSound</a>, <a class="el" href="a05594.html#l00152">_SoundSeqIndex</a>, <a class="el" href="a05594.html#l00130">_Source1</a>, <a class="el" href="a05594.html#l00131">_Source2</a>, <a class="el" href="a05594.html#l00144">_StartTime1</a>, <a class="el" href="a05594.html#l00145">_StartTime2</a>, <a class="el" href="a05594.html#l00147">_TickPerSecond</a>, <a class="el" href="a05465.html#l02068">NLSOUND::CAudioMixerUser::addEvent()</a>, <a class="el" href="a05465.html#l01732">NLSOUND::CAudioMixerUser::createSource()</a>, <a class="el" href="a05592.html#l00088">NLSOUND::CComplexSound::doFadeOut()</a>, <a class="el" href="a05592.html#l00063">NLSOUND::CComplexSound::getDelaySeq()</a>, <a class="el" href="a02246.html#NLSOUND_1_1CSounda5">NLSOUND::CSound::getDuration()</a>, <a class="el" href="a06552.html#l00055">NLMISC::CTime::getLocalTime()</a>, <a class="el" href="a05592.html#l00059">NLSOUND::CComplexSound::getPatternMode()</a>, <a class="el" href="a06407.html#l00092">NLSOUND::CSound::getPitch()</a>, <a class="el" href="a05592.html#l00064">NLSOUND::CComplexSound::getSound()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcea0">NLSOUND::USource::getSound()</a>, <a class="el" href="a05465.html#l01510">NLSOUND::CAudioMixerUser::getSoundId()</a>, <a class="el" href="a05592.html#l00062">NLSOUND::CComplexSound::getSoundSeq()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2137_3">NLSOUND::USource::play()</a>, <a class="el" href="a05465.html#l02053">NLSOUND::CAudioMixerUser::registerUpdate()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_9">NLSOUND::USource::setPitch()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_10">NLSOUND::USource::setPos()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcea1">NLSOUND::USource::setPriority()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_11">NLSOUND::USource::setRelativeGain()</a>, <a class="el" href="a05593.html#l00255">stop()</a>, <a class="el" href="a06553.html#l00047">NLMISC::TTime</a>, and <a class="el" href="a06590.html#l00221">uint64</a>.
+<p>
+<div class="fragment"><pre>00578 {
+00579 CAudioMixerUser *mixer = CAudioMixerUser::instance();
+00580 <a class="code" href="a05378.html#a242">NLMISC::TTime</a> now = <a class="code" href="a02142.html#NLMISC_1_1CTimee0">NLMISC::CTime::getLocalTime</a>();
+00581
+00582 <span class="keywordflow">switch</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getPatternMode())
+00583 {
+00584 <span class="keywordflow">case</span> CComplexSound::MODE_CHAINED:
+00585 {
+00586 <span class="comment">// either it's time to begin a new xfade, or to end this sound.</span>
+00587 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> != NULL)
+00588 {
+00589 <span class="comment">// start new cross fade.?</span>
+00590 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_21">_StartTime2</a> = now;
+00591 <span class="comment">// mute the source2</span>
+00592 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setRelativeGain(0);
+00593 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setPitch(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;getSound()-&gt;getPitch() * <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a>);
+00594 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setPos(_Position);
+00595 <span class="comment">// start the source 2</span>
+00596 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;play();
+00597 <span class="comment">// register for update.</span>
+00598 mixer-&gt;registerUpdate(<span class="keyword">this</span>);
+00599 }
+00600 <span class="keywordflow">else</span>
+00601 {
+00602 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;doFadeOut())
+00603 {
+00604 <span class="comment">// set in update list for fade out.</span>
+00605 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_21">_StartTime2</a> = now;
+00606 mixer-&gt;registerUpdate(<span class="keyword">this</span>);
+00607 }
+00608 <span class="keywordflow">else</span>
+00609 {
+00610 <span class="comment">// end the sound.</span>
+00611 <span class="comment">// _Source1-&gt;stop();</span>
+00612 <span class="comment">// mixer-&gt;removeSource(_Source1);</span>
+00613 <span class="keyword">delete</span> <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>;
+00614 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> = NULL;
+00615 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp8">_Playing</a> = <span class="keyword">false</span>;
+00616 }
+00617 }
+00618 }
+00619 <span class="keywordflow">break</span>;
+00620 <span class="keywordflow">case</span> CComplexSound::MODE_SPARSE:
+00621 {
+00622 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> != NULL)
+00623 {
+00624 <span class="comment">// _Source1-&gt;stop();</span>
+00625 <span class="comment">// mixer-&gt;removeSource(_Source1);</span>
+00626 <span class="keyword">delete</span> <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>;
+00627 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> = NULL;
+00628 }
+00629
+00630 <span class="keyword">const</span> std::vector&lt;uint32&gt; &amp;delaySeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getDelaySeq();
+00631 <span class="keyword">const</span> vector&lt;uint32&gt; &amp;soundSeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getSoundSeq();
+00632
+00633 <span class="keywordflow">if</span> (<a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a> &amp;&amp; <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">_DelaySeqIndex</a> &gt;= delaySeq.size())
+00634 {
+00635 _DelaySeqIndex = 1;
+00636 <span class="comment">/* if (!delaySeq.empty() &amp;&amp; delaySeq[0] == 0)</span>
+00637 <span class="comment"> _DelaySeqIndex = 1;</span>
+00638 <span class="comment"> else</span>
+00639 <span class="comment"> _DelaySeqIndex = 0;</span>
+00640 <span class="comment">*/</span> }
+00641
+00642 <span class="keywordflow">if</span> (!soundSeq.empty() &amp;&amp; !<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_14">_LastSparseEvent</a>)
+00643 {
+00644 <span class="comment">// wrap around sound sequence until there are delays...</span>
+00645 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_17">_SoundSeqIndex</a> &gt;= soundSeq.size())
+00646 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_17">_SoundSeqIndex</a> = 0;
+00647
+00648 CSound *sound = mixer-&gt;getSoundId(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getSound(soundSeq[_SoundSeqIndex++]));
+00649
+00650 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> = mixer-&gt;createSource(sound, <span class="keyword">false</span>, 0, 0, _Cluster);
+00651 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> == NULL)
+00652 {
+00653 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1301_3">stop</a>();
+00654 <span class="keywordflow">return</span>;
+00655 }
+00656 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setPriority(_Priority);
+00657 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setRelativeGain(_Gain*_Gain*_Gain);
+00658 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setPitch(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;getSound()-&gt;getPitch() * <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a>);
+00659 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setPos(_Position);
+00660 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;play();
+00661 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_20">_StartTime1</a> = now;
+00662
+00663 <span class="comment">// register event for next sound.</span>
+00664 <span class="keywordflow">if</span> (!delaySeq.empty() &amp;&amp; _DelaySeqIndex &lt; delaySeq.size())
+00665 {
+00666 <span class="comment">// event for next sound.</span>
+00667 mixer-&gt;addEvent(<span class="keyword">this</span>, <a class="code" href="a05167.html#a15">uint64</a>(now + sound-&gt;getDuration() + delaySeq[_DelaySeqIndex++]/<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">_TickPerSecond</a>));
+00668 <span class="keywordflow">if</span> (_DelaySeqIndex == delaySeq.size() &amp;&amp; !<a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a>)
+00669 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_14">_LastSparseEvent</a> = <span class="keyword">true</span>;
+00670 }
+00671 <span class="keywordflow">else</span>
+00672 {
+00673 <span class="comment">// event for stop ?</span>
+00674 <span class="keywordflow">if</span> (!<a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a>)
+00675 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_14">_LastSparseEvent</a> = <span class="keyword">true</span>;
+00676 <span class="keywordflow">else</span>
+00677 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_14">_LastSparseEvent</a> = <span class="keyword">false</span>;
+00678 mixer-&gt;addEvent(<span class="keyword">this</span>, now + sound-&gt;getDuration());
+00679 }
+00680 }
+00681 <span class="keywordflow">else</span>
+00682 {
+00683 <span class="comment">// this is the event for stop !</span>
+00684 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1301_3">stop</a>();
+00685 }
+00686 }
+00687 <span class="keywordflow">break</span>;
+00688 <span class="keywordflow">case</span> CComplexSound::MODE_ALL_IN_ONE:
+00689 <span class="comment">// just call the stop method.</span>
+00690 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1301_3">stop</a>();
+00691 <span class="keywordflow">break</span>;
+00692 <span class="keywordflow">default</span>:
+00693 <a class="code" href="a04199.html#a6">nlassert</a>(<span class="keyword">false</span>);
+00694 }
+00695 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_8" doxytag="NLSOUND::CComplexSource::onUpdate" ></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::CComplexSource::onUpdate </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> [private, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Mixer update implementation.
+<p>
+
+<p>
+Implements <a class="el" href="a02239.html#NLSOUND_1_1CAudioMixerUser_1_1IMixerUpdatea0">NLSOUND::CAudioMixerUser::IMixerUpdate</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00456">456</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00150">_FadeFactor</a>, <a class="el" href="a05594.html#l00148">_FadeLength</a>, <a class="el" href="a05594.html#l00158">_PatternSound</a>, <a class="el" href="a05594.html#l00152">_SoundSeqIndex</a>, <a class="el" href="a05594.html#l00130">_Source1</a>, <a class="el" href="a05594.html#l00131">_Source2</a>, <a class="el" href="a05594.html#l00144">_StartTime1</a>, <a class="el" href="a05594.html#l00145">_StartTime2</a>, <a class="el" href="a05594.html#l00147">_TickPerSecond</a>, <a class="el" href="a05465.html#l02068">NLSOUND::CAudioMixerUser::addEvent()</a>, <a class="el" href="a05465.html#l01732">NLSOUND::CAudioMixerUser::createSource()</a>, <a class="el" href="a05592.html#l00088">NLSOUND::CComplexSound::doFadeOut()</a>, <a class="el" href="a02246.html#NLSOUND_1_1CSounda5">NLSOUND::CSound::getDuration()</a>, <a class="el" href="a05592.html#l00067">NLSOUND::CComplexSound::getFadeLenght()</a>, <a class="el" href="a06552.html#l00055">NLMISC::CTime::getLocalTime()</a>, <a class="el" href="a06407.html#l00108">NLSOUND::CSound::getName()</a>, <a class="el" href="a05592.html#l00059">NLSOUND::CComplexSound::getPatternMode()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcea0">NLSOUND::USource::getSound()</a>, <a class="el" href="a05592.html#l00064">NLSOUND::CComplexSound::getSound()</a>, <a class="el" href="a05465.html#l01510">NLSOUND::CAudioMixerUser::getSoundId()</a>, <a class="el" href="a05592.html#l00062">NLSOUND::CComplexSound::getSoundSeq()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_11">NLSOUND::USource::setRelativeGain()</a>, <a class="el" href="a06553.html#l00047">NLMISC::TTime</a>, <a class="el" href="a06590.html#l00219">uint32</a>, and <a class="el" href="a05465.html#l02060">NLSOUND::CAudioMixerUser::unregisterUpdate()</a>.
+<p>
+<div class="fragment"><pre>00457 {
+00458 <span class="comment">// do the cross fade : </span>
+00459 <span class="comment">// - lower sound1, louder sound2, </span>
+00460 <span class="comment">// - when max reach, stop the update, swap the sound, delete sound1 and set event for next fade.</span>
+00461
+00462 <span class="comment">// can only occur for chained mode.</span>
+00463 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getPatternMode() == CComplexSound::MODE_CHAINED);
+00464
+00465 CAudioMixerUser *mixer = CAudioMixerUser::instance();
+00466
+00467 <span class="comment">// compute xfade factor.</span>
+00468 <a class="code" href="a05378.html#a242">TTime</a> now = <a class="code" href="a02142.html#NLMISC_1_1CTimee0">NLMISC::CTime::getLocalTime</a>();
+00469 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_13">_FadeLength</a> &gt; 0)
+00470 {
+00471 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_12">_FadeFactor</a> = float((<span class="keywordtype">double</span>(now) - <span class="keywordtype">double</span>(_StartTime2)) / <span class="keywordtype">double</span>(_FadeLength)) ;
+00472 <span class="comment">// _FadeFactor = (_FadeFactor*_FadeFactor);</span>
+00473 }
+00474 <span class="keywordflow">else</span>
+00475 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_12">_FadeFactor</a> = 1.0f;
+00476
+00477 <span class="comment">// nldebug("Fade factor = %f", _FadeFactor);</span>
+00478 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_12">_FadeFactor</a> &gt;= 1.0)
+00479 {
+00480 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_12">_FadeFactor</a> = 1.0f;
+00481 <span class="comment">// fade end !</span>
+00482 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>)
+00483 {
+00484 <span class="comment">// _Source1-&gt;stop();</span>
+00485 <span class="comment">// mixer-&gt;removeSource(_Source1);</span>
+00486 <span class="keyword">delete</span> <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>;
+00487 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> = NULL;
+00488 }
+00489 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>)
+00490 {
+00491 <span class="comment">// set max volume</span>
+00492 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setRelativeGain(1.0f * _Gain);
+00493 <span class="comment">// 'swap' the source</span>
+00494 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>;
+00495 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_12">_FadeFactor</a> = 0.0f;
+00496 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_20">_StartTime1</a> = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_21">_StartTime2</a>;
+00497 _Source2 = NULL;
+00498 <span class="comment">// if there is a next sound available, program an event for the next xfade.</span>
+00499 CSound *sound2 = NULL;
+00500 <span class="comment">// _SoundSeqIndex++;</span>
+00501 <span class="keyword">const</span> vector&lt;uint32&gt; &amp;soundSeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getSoundSeq();
+00502 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_17">_SoundSeqIndex</a> &lt; soundSeq.size())
+00503 {
+00504 sound2 = mixer-&gt;getSoundId(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getSound(soundSeq[_SoundSeqIndex++]));
+00505 }
+00506 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a>)
+00507 {
+00508 <span class="comment">// restart the sound sequence</span>
+00509 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_17">_SoundSeqIndex</a> = 0;
+00510 sound2 = mixer-&gt;getSoundId(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getSound(soundSeq[_SoundSeqIndex++]));
+00511 }
+00512
+00513
+00514 <span class="keywordflow">if</span> (sound2 != NULL)
+00515 {
+00516 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"CS : Chaining to sound %s"</span>, CStringMapper::unmap(sound2-&gt;getName()).c_str());
+00517 CAudioMixerUser *mixer = CAudioMixerUser::instance();
+00518
+00519 <span class="comment">// determine the XFade lenght (if next sound is too short.</span>
+00520 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_13">_FadeLength</a> = minof&lt;uint32&gt;(<a class="code" href="a05167.html#a13">uint32</a>(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getFadeLenght()/<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">_TickPerSecond</a>), (sound2-&gt;getDuration()) / 2, (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;getSound()-&gt;getDuration())/2);
+00521 _Source2 = mixer-&gt;createSource(sound2, <span class="keyword">false</span>, 0, 0, _Cluster);
+00522 <span class="keywordflow">if</span> (_Source2)
+00523 {
+00524 _Source2-&gt;setPriority(_Priority);
+00525 <span class="comment">// there is a next sound, add event for xfade.</span>
+00526 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"Seting event for sound %s in %u millisec (XFade = %u)."</span>, CStringMapper::unmap(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;getSound()-&gt;getName()).c_str(), <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;getSound()-&gt;getDuration()-<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_13">_FadeLength</a>, <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_13">_FadeLength</a>);
+00527 mixer-&gt;addEvent(<span class="keyword">this</span>, _StartTime1 + <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;getSound()-&gt;getDuration() - <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_13">_FadeLength</a>);
+00528 }
+00529 }
+00530 <span class="keywordflow">else</span>
+00531 {
+00532 <span class="comment">// no sound after, just set an event at end of current sound to stop the complex sound.</span>
+00533 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"Setting last event for sound %s in %u millisec."</span>, CStringMapper::unmap(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;getSound()-&gt;getName()).c_str(), <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;getSound()-&gt;getDuration());
+00534 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;doFadeOut())
+00535 {
+00536 <span class="comment">// set the event to begin fade out.</span>
+00537 mixer-&gt;addEvent(<span class="keyword">this</span>, _StartTime1 + <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;getSound()-&gt;getDuration() - <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getFadeLenght());
+00538 }
+00539 <span class="keywordflow">else</span>
+00540 {
+00541 <span class="comment">// set the event at end of sound.</span>
+00542 mixer-&gt;addEvent(<span class="keyword">this</span>, _StartTime1 + <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;getSound()-&gt;getDuration());
+00543 }
+00544 }
+00545 }
+00546 <span class="keywordflow">else</span>
+00547 {
+00548 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;doFadeOut())
+00549 {
+00550 <span class="comment">// update is responsible for stoping the sound.</span>
+00551 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp8">_Playing</a> = <span class="keyword">false</span>;
+00552 }
+00553 }
+00554 <span class="comment">// remove from the update list</span>
+00555 mixer-&gt;unregisterUpdate(<span class="keyword">this</span>);
+00556 }
+00557 <span class="keywordflow">else</span>
+00558 {
+00559 <span class="comment">// nldebug("XFade : %4.3f &lt;=&gt; %4.3f (Fade Len = %6.3f", (1.0f-_FadeFactor)*_Gain, _FadeFactor*_Gain, _FadeLength/1000.0f);</span>
+00560
+00561 <span class="comment">// do the xfade</span>
+00562 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>)
+00563 {
+00564 <span class="comment">// lower the sound 1.</span>
+00565 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setRelativeGain((1.0f - _FadeFactor) * _Gain);
+00566
+00567 }
+00568 <span class="keywordflow">if</span> (_Source2)
+00569 {
+00570 <span class="comment">// lower the sound 1.</span>
+00571 <span class="comment">// _Source2-&gt;setRelativeGain(float(sqrt(_FadeFactor)) * _Gain);</span>
+00572 _Source2-&gt;setRelativeGain(_FadeFactor * _Gain);
+00573 }
+00574 }
+00575 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1301_2" doxytag="NLSOUND::CComplexSource::play" ></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::CComplexSource::play </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Play.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona18">NLSOUND::CSourceCommon</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00092">92</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00139">_Muted</a>, and <a class="el" href="a05593.html#l00105">playStuf()</a>.
+<p>
+<div class="fragment"><pre>00093 {
+00094 <span class="keywordflow">if</span> (<a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp4">_Gain</a> == 0)
+00095 {
+00096 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_15">_Muted</a> = <span class="keyword">true</span>;
+00097 }
+00098 <span class="keywordflow">else</span>
+00099 {
+00100 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_9">playStuf</a>();
+00101 }
+00102 CSourceCommon::play();
+00103 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_9" doxytag="NLSOUND::CComplexSource::playStuf" ></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::CComplexSource::playStuf </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> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Do the dirty work of starting to play. Called by play and by setGain or setRelativeGain when the source is muted.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05593.html#l00105">105</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00133">_AllSources</a>, <a class="el" href="a05594.html#l00153">_DelaySeqIndex</a>, <a class="el" href="a05594.html#l00150">_FadeFactor</a>, <a class="el" href="a05594.html#l00148">_FadeLength</a>, <a class="el" href="a05594.html#l00155">_LastSparseEvent</a>, <a class="el" href="a05594.html#l00139">_Muted</a>, <a class="el" href="a05594.html#l00158">_PatternSound</a>, <a class="el" href="a05594.html#l00152">_SoundSeqIndex</a>, <a class="el" href="a05594.html#l00130">_Source1</a>, <a class="el" href="a05594.html#l00131">_Source2</a>, <a class="el" href="a05594.html#l00144">_StartTime1</a>, <a class="el" href="a05594.html#l00145">_StartTime2</a>, <a class="el" href="a05594.html#l00147">_TickPerSecond</a>, <a class="el" href="a05465.html#l02068">NLSOUND::CAudioMixerUser::addEvent()</a>, <a class="el" href="a05465.html#l01732">NLSOUND::CAudioMixerUser::createSource()</a>, <a class="el" href="a05592.html#l00087">NLSOUND::CComplexSound::doFadeIn()</a>, <a class="el" href="a05592.html#l00063">NLSOUND::CComplexSound::getDelaySeq()</a>, <a class="el" href="a05591.html#l00056">NLSOUND::CComplexSound::getDuration()</a>, <a class="el" href="a02246.html#NLSOUND_1_1CSounda5">NLSOUND::CSound::getDuration()</a>, <a class="el" href="a05592.html#l00067">NLSOUND::CComplexSound::getFadeLenght()</a>, <a class="el" href="a06552.html#l00055">NLMISC::CTime::getLocalTime()</a>, <a class="el" href="a05592.html#l00059">NLSOUND::CComplexSound::getPatternMode()</a>, <a class="el" href="a06407.html#l00092">NLSOUND::CSound::getPitch()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcea0">NLSOUND::USource::getSound()</a>, <a class="el" href="a05592.html#l00064">NLSOUND::CComplexSound::getSound()</a>, <a class="el" href="a05465.html#l01510">NLSOUND::CAudioMixerUser::getSoundId()</a>, <a class="el" href="a05592.html#l00065">NLSOUND::CComplexSound::getSounds()</a>, <a class="el" href="a05592.html#l00062">NLSOUND::CComplexSound::getSoundSeq()</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2137_3">NLSOUND::USource::play()</a>, <a class="el" href="a05465.html#l02053">NLSOUND::CAudioMixerUser::registerUpdate()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_9">NLSOUND::USource::setPitch()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_10">NLSOUND::USource::setPos()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcea1">NLSOUND::USource::setPriority()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_11">NLSOUND::USource::setRelativeGain()</a>, <a class="el" href="a06553.html#l00047">NLMISC::TTime</a>, <a class="el" href="a06590.html#l00219">uint32</a>, and <a class="el" href="a06590.html#l00221">uint64</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00092">play()</a>, <a class="el" href="a05593.html#l00358">setGain()</a>, and <a class="el" href="a05593.html#l00390">setRelativeGain()</a>.
+<p>
+<div class="fragment"><pre>00106 {
+00107 CAudioMixerUser *mixer = CAudioMixerUser::instance();
+00108 <a class="code" href="a05378.html#a242">NLMISC::TTime</a> now = <a class="code" href="a02142.html#NLMISC_1_1CTimee0">NLMISC::CTime::getLocalTime</a>();
+00109
+00110 <span class="keywordflow">switch</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getPatternMode())
+00111 {
+00112 <span class="keywordflow">case</span> CComplexSound::MODE_CHAINED:
+00113 {
+00114 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_17">_SoundSeqIndex</a> = 0;
+00115 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_12">_FadeFactor</a> = 1.0f;
+00116 <span class="keyword">const</span> vector&lt;uint32&gt; &amp;soundSeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getSoundSeq();
+00117 <span class="keywordflow">if</span> (!soundSeq.empty())
+00118 {
+00119 CSound *sound = mixer-&gt;getSoundId(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getSound(soundSeq[_SoundSeqIndex++]));
+00120
+00121 <span class="keywordflow">if</span> (sound == 0)
+00122 <span class="keywordflow">return</span>;
+00123
+00124 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;doFadeIn())
+00125 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_13">_FadeLength</a> = <a class="code" href="a04061.html#a0">min</a>(<a class="code" href="a05167.html#a13">uint32</a>(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getFadeLenght()/<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">_TickPerSecond</a>), sound-&gt;getDuration() /2);
+00126 <span class="keywordflow">else</span>
+00127 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_13">_FadeLength</a> = 0;
+00128
+00129 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> = mixer-&gt;createSource(sound, <span class="keyword">false</span>, 0, 0, _Cluster);
+00130 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> == NULL)
+00131 <span class="keywordflow">return</span>;
+00132 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setPriority(_Priority);
+00133 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setRelativeGain(0);
+00134 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setPos(_Position);
+00135 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setPitch(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;getSound()-&gt;getPitch() * <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a>);
+00136 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;play();
+00137 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_21">_StartTime2</a> = now;
+00138
+00139 <span class="comment">// register for fade in.</span>
+00140 mixer-&gt;registerUpdate(<span class="keyword">this</span>);
+00141 }
+00142 }
+00143 <span class="keywordflow">break</span>;
+00144 <span class="keywordflow">case</span> CComplexSound::MODE_SPARSE:
+00145 {
+00146 <span class="comment">// use Source1, sound sequence, delay sequence and event.</span>
+00147 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_17">_SoundSeqIndex</a> = 0;
+00148 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">_DelaySeqIndex</a> = 0;
+00149
+00150 <span class="keyword">const</span> std::vector&lt;uint32&gt; &amp;delaySeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getDelaySeq();
+00151
+00152 <span class="keywordflow">if</span> (!delaySeq.empty() &amp;&amp; delaySeq[<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">_DelaySeqIndex</a>] != 0)
+00153 {
+00154 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_14">_LastSparseEvent</a> = <span class="keyword">false</span>;
+00155 <span class="comment">// begin with a delay</span>
+00156 mixer-&gt;addEvent(<span class="keyword">this</span>, <a class="code" href="a05167.html#a15">uint64</a>(now + delaySeq[_DelaySeqIndex++]/_TickPerSecond));
+00157 }
+00158 <span class="keywordflow">else</span>
+00159 {
+00160 <span class="keywordflow">if</span> (!delaySeq.empty())
+00161 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">_DelaySeqIndex</a> = 1;
+00162 <span class="keyword">const</span> vector&lt;uint32&gt; &amp;soundSeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getSoundSeq();
+00163 <span class="keywordflow">if</span> (!soundSeq.empty())
+00164 {
+00165 CSound *sound = mixer-&gt;getSoundId(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getSound(soundSeq[_SoundSeqIndex++]));
+00166
+00167 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> = mixer-&gt;createSource(sound, <span class="keyword">false</span>, 0, 0, _Cluster);
+00168 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> == NULL)
+00169 <span class="keywordflow">return</span>;
+00170 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setPriority(_Priority);
+00171 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setRelativeGain(_Gain*_Gain*_Gain);
+00172 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setPos(_Position);
+00173 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setPitch(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;getSound()-&gt;getPitch() * <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a>);
+00174 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;play();
+00175 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_20">_StartTime1</a> = now;
+00176
+00177 <span class="comment">// register event for next sound.</span>
+00178 <span class="keyword">const</span> std::vector&lt;uint32&gt; &amp;delaySeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getDelaySeq();
+00179 <span class="keywordflow">if</span> (!delaySeq.empty() &amp;&amp; <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">_DelaySeqIndex</a> &lt; delaySeq.size())
+00180 {
+00181 <span class="comment">// event for next sound.</span>
+00182 mixer-&gt;addEvent(<span class="keyword">this</span>, <a class="code" href="a05167.html#a15">uint64</a>(now + sound-&gt;getDuration() + delaySeq[<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">_DelaySeqIndex</a>++]/<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">_TickPerSecond</a>));
+00183 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">_DelaySeqIndex</a> &gt;= delaySeq.size() &amp;&amp; !<a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a>)
+00184 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_14">_LastSparseEvent</a> = <span class="keyword">true</span>;
+00185 <span class="keywordflow">else</span>
+00186 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_14">_LastSparseEvent</a> = <span class="keyword">false</span>;
+00187 }
+00188 <span class="keywordflow">else</span>
+00189 {
+00190 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_14">_LastSparseEvent</a> = <span class="keyword">true</span>;
+00191 <span class="comment">// event for stop</span>
+00192 mixer-&gt;addEvent(<span class="keyword">this</span>, now + sound-&gt;getDuration());
+00193 }
+00194 }
+00195 }
+00196
+00197 }
+00198 <span class="keywordflow">break</span>;
+00199 <span class="keywordflow">case</span> CComplexSound::MODE_ALL_IN_ONE:
+00200 {
+00201 <span class="comment">// just spanw all the listed source.</span>
+00202 <span class="keyword">const</span> std::vector&lt;NLMISC::TStringId&gt; &amp;sounds = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getSounds();
+00203
+00204 std::vector&lt;NLMISC::TStringId&gt;::const_iterator first(sounds.begin()), last(sounds.end());
+00205
+00206 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.empty())
+00207 {
+00208 <span class="comment">// create the sources</span>
+00209 <span class="keywordflow">for</span> (; first != last; ++first)
+00210 {
+00211 CSound *sound = mixer-&gt;getSoundId(*first);
+00212 <span class="keywordflow">if</span> (sound != NULL)
+00213 {
+00214 <a class="code" href="a03429.html#NLSOUND_1_1USourceb0">USource</a> *source = mixer-&gt;createSource(sound, <span class="keyword">false</span>, 0, 0, _Cluster);
+00215 <span class="keywordflow">if</span> (source != NULL)
+00216 {
+00217 source-&gt;setPriority(_Priority);
+00218 source-&gt;setRelativeGain(_Gain*_Gain*_Gain);
+00219 source-&gt;setPos(_Position);
+00220 source-&gt;setPitch(source-&gt;getSound()-&gt;getPitch() * <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a>);
+00221 source-&gt;play();
+00222
+00223 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.push_back(source);
+00224 }
+00225 }
+00226 }
+00227 }
+00228 <span class="keywordflow">else</span>
+00229 {
+00230 <span class="comment">// just replay the existing source.</span>
+00231 std::vector&lt;USource *&gt;::iterator first(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.begin()), last(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.end());
+00232
+00233 <span class="keywordflow">for</span> (; first != last; ++first)
+00234 {
+00235 (*first)-&gt;setRelativeGain(_Gain*_Gain*_Gain);
+00236 (*first)-&gt;setPos(_Position);
+00237 (*first)-&gt;setPitch((*first)-&gt;getSound()-&gt;getPitch() * <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a>);
+00238 (*first)-&gt;play();
+00239 }
+00240 }
+00241
+00242 <span class="keywordflow">if</span> (!<a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a>)
+00243 {
+00244 <span class="comment">// event to stop the sound</span>
+00245 mixer-&gt;addEvent(<span class="keyword">this</span>, NLMISC::CTime::getLocalTime() + <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getDuration());
+00246 }
+00247 }
+00248 <span class="keywordflow">break</span>;
+00249 <span class="keywordflow">default</span>:
+00250 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"Unknow pattern mode. Can't play."</span>);
+00251 }
+00252
+00253 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_15">_Muted</a> = <span class="keyword">false</span>;
+00254 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona19" doxytag="NLSOUND::CComplexSource::set3DPositionVector" ></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::CSourceCommon::set3DPositionVector </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> *&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> [inline, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the position vector to return for a stereo source (default: NULL).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06428.html#l00088">88</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+References <a class="el" href="a06428.html#l00125">NLSOUND::CSourceCommon::_3DPosition</a>.
+<p>
+Referenced by <a class="el" href="a05465.html#l01576">NLSOUND::CAudioMixerUser::createSource()</a>, and <a class="el" href="a05427.html#l00092">NLSOUND::CAmbiantSource::initPos()</a>.
+<p>
+<div class="fragment"><pre>00088 { <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp0">_3DPosition</a> = pos; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_1" doxytag="NLSOUND::CComplexSource::setDirection" ></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::CComplexSource::setDirection </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>dir</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 direction vector (3D mode only, ignored in stereo mode) (default: (0,0,0) as non-directional).
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona20">NLSOUND::CSourceCommon</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00338">338</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00133">_AllSources</a>, <a class="el" href="a05594.html#l00130">_Source1</a>, <a class="el" href="a05594.html#l00131">_Source2</a>, and <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_7">NLSOUND::USource::setDirection()</a>.
+<p>
+<div class="fragment"><pre>00339 {
+00340 CSourceCommon::setDirection(dir);
+00341
+00342 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> != NULL)
+00343 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setDirection(dir);
+00344 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> != NULL)
+00345 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setDirection(dir);
+00346
+00347 std::vector&lt;USource *&gt;::iterator first(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.begin()), last(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.end());
+00348 <span class="keywordflow">for</span> (; first != last; ++first)
+00349 {
+00350 (*first)-&gt;setDirection(dir);
+00351 }
+00352 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_2" doxytag="NLSOUND::CComplexSource::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::CComplexSource::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>
+Get the direction vector.
+<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>
+Reimplemented from <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona21">NLSOUND::CSourceCommon</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00358">358</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00133">_AllSources</a>, <a class="el" href="a05594.html#l00150">_FadeFactor</a>, <a class="el" href="a05594.html#l00139">_Muted</a>, <a class="el" href="a05594.html#l00158">_PatternSound</a>, <a class="el" href="a05594.html#l00130">_Source1</a>, <a class="el" href="a05594.html#l00131">_Source2</a>, <a class="el" href="a05592.html#l00059">NLSOUND::CComplexSound::getPatternMode()</a>, <a class="el" href="a05593.html#l00105">playStuf()</a>, and <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_11">NLSOUND::USource::setRelativeGain()</a>.
+<p>
+<div class="fragment"><pre>00359 {
+00360 CSourceCommon::setGain(gain);
+00361
+00362 <span class="comment">// update the gain of the played source.</span>
+00363 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getPatternMode() == CComplexSound::MODE_CHAINED)
+00364 {
+00365 <span class="comment">// set sub source volume with fade value.</span>
+00366 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> != NULL)
+00367 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setRelativeGain((1.0f - _FadeFactor) * _Gain*_Gain*_Gain);
+00368 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> != NULL)
+00369 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setRelativeGain(_FadeFactor * _Gain*_Gain*_Gain);
+00370
+00371 }
+00372 <span class="keywordflow">else</span>
+00373 {
+00374 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> != NULL)
+00375 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setRelativeGain(_Gain*_Gain*_Gain);
+00376 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> != NULL)
+00377 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setRelativeGain(_Gain*_Gain*_Gain);
+00378 }
+00379
+00380 std::vector&lt;USource *&gt;::iterator first(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.begin()), last(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.end());
+00381 <span class="keywordflow">for</span> (; first != last; ++first)
+00382 {
+00383 (*first)-&gt;setGain(_Gain);
+00384 }
+00385
+00386 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_15">_Muted</a> &amp;&amp; <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp8">_Playing</a>)
+00387 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_9">playStuf</a>();
+00388 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona22" doxytag="NLSOUND::CComplexSource::setLooping" ></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::CSourceCommon::setLooping </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>loop</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set looping on/off for future playbacks (default: off).
+<p>
+
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcez2137_4">NLSOUND::USource</a>.
+<p>
+Reimplemented in <a class="el" href="a03395.html#NLSOUND_1_1CSimpleSourcez1338_4">NLSOUND::CSimpleSource</a>.
+<p>
+Definition at line <a class="el" href="a06427.html#l00091">91</a> of file <a class="el" href="a06427.html">source_common.cpp</a>.
+<p>
+<div class="fragment"><pre>00092 {
+00093 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a> = <a class="code" href="a05373.html#a2">l</a>;
+00094 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona23" doxytag="NLSOUND::CComplexSource::setPitch" ></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::CSourceCommon::setPitch </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pitch</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_9">NLSOUND::USource</a>.
+<p>
+Reimplemented in <a class="el" href="a03395.html#NLSOUND_1_1CSimpleSourcez1340_6">NLSOUND::CSimpleSource</a>.
+<p>
+Definition at line <a class="el" href="a06427.html#l00157">157</a> of file <a class="el" href="a06427.html">source_common.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05465.html#l01017">NLSOUND::CAudioMixerUser::addUserControledSource()</a>.
+<p>
+<div class="fragment"><pre>00158 {
+00159 <span class="comment">// nlassert( (pitch &gt; 0) &amp;&amp; (pitch &lt;= 1.0f ) );</span>
+00160 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a> = pitch;
+00161 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_3" doxytag="NLSOUND::CComplexSource::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::CComplexSource::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 -&gt; 3D position st mode -&gt; x is the pan value (from left (-1) to right (1)), set y and z to 0
+<p>
+Reimplemented from <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona24">NLSOUND::CSourceCommon</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00303">303</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00133">_AllSources</a>, <a class="el" href="a05594.html#l00130">_Source1</a>, <a class="el" href="a05594.html#l00131">_Source2</a>, and <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_10">NLSOUND::USource::setPos()</a>.
+<p>
+<div class="fragment"><pre>00304 {
+00305 CSourceCommon::setPos(pos);
+00306
+00307 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> != NULL)
+00308 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setPos(pos);
+00309 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> != NULL)
+00310 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setPos(pos);
+00311
+00312 std::vector&lt;USource *&gt;::iterator first(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.begin()), last(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.end());
+00313 <span class="keywordflow">for</span> (; first != last; ++first)
+00314 {
+00315 (*first)-&gt;setPos(pos);
+00316 }
+00317 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona25" doxytag="NLSOUND::CComplexSource::setPriority" ></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::CSourceCommon::setPriority </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05381.html#a82">TSoundPriority</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Change the priority of the source.
+<p>
+
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcea1">NLSOUND::USource</a>.
+<p>
+Definition at line <a class="el" href="a06427.html#l00076">76</a> of file <a class="el" href="a06427.html">source_common.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05427.html#l00130">NLSOUND::CAmbiantSource::enable()</a>, <a class="el" href="a05427.html#l00092">NLSOUND::CAmbiantSource::initPos()</a>, and <a class="el" href="a05427.html#l00239">NLSOUND::CAmbiantSource::update()</a>.
+<p>
+<div class="fragment"><pre>00077 {
+00078 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp11">_Priority</a> = pr;
+00079
+00080 <span class="comment">// The AudioMixer redispatches as necessary in the update() function [PH]</span>
+00081 <span class="comment">// Redispatch the tracks if needed</span>
+00082 <span class="comment">//if ( redispatch )</span>
+00083 <span class="comment">//{</span>
+00084 <span class="comment">// CAudioMixerUser::instance()-&gt;balanceSources();</span>
+00085 <span class="comment">//}</span>
+00086 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_4" doxytag="NLSOUND::CComplexSource::setRelativeGain" ></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::CComplexSource::setRelativeGain </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>
+Get the gain.
+<p>
+Set the gain amount (value inside [0, 1]) to map between 0 and the nominal gain (which is getSource()-&gt;<a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona5">getGain()</a>). Does nothing if getSource() is null.
+<p>
+Reimplemented from <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona26">NLSOUND::CSourceCommon</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00390">390</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00133">_AllSources</a>, <a class="el" href="a05594.html#l00150">_FadeFactor</a>, <a class="el" href="a05594.html#l00139">_Muted</a>, <a class="el" href="a05594.html#l00158">_PatternSound</a>, <a class="el" href="a05594.html#l00130">_Source1</a>, <a class="el" href="a05594.html#l00131">_Source2</a>, <a class="el" href="a05592.html#l00059">NLSOUND::CComplexSound::getPatternMode()</a>, <a class="el" href="a05593.html#l00105">playStuf()</a>, and <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_11">NLSOUND::USource::setRelativeGain()</a>.
+<p>
+<div class="fragment"><pre>00391 {
+00392 CSourceCommon::setRelativeGain(gain);
+00393
+00394 <span class="comment">// update the gain of the played source.</span>
+00395 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getPatternMode() == CComplexSound::MODE_CHAINED)
+00396 {
+00397 <span class="comment">// set sub source volume with fade value.</span>
+00398 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> != NULL)
+00399 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setRelativeGain((1.0f - _FadeFactor) * _Gain*_Gain*_Gain);
+00400 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> != NULL)
+00401 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setRelativeGain(_FadeFactor * _Gain*_Gain*_Gain);
+00402
+00403 }
+00404 <span class="keywordflow">else</span>
+00405 {
+00406 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> != NULL)
+00407 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setRelativeGain(_Gain*_Gain*_Gain);
+00408 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> != NULL)
+00409 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setRelativeGain(_Gain*_Gain*_Gain);
+00410 }
+00411
+00412 std::vector&lt;USource *&gt;::iterator first(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.begin()), last(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.end());
+00413 <span class="keywordflow">for</span> (; first != last; ++first)
+00414 {
+00415 (*first)-&gt;setRelativeGain(_Gain);
+00416 }
+00417
+00418 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_15">_Muted</a> &amp;&amp; <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp8">_Playing</a>)
+00419 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_9">playStuf</a>();
+00420 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona27" doxytag="NLSOUND::CComplexSource::setSourceRelativeMode" ></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::CSourceCommon::setSourceRelativeMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mode</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the source relative mode. If true, positions are interpreted relative to the listener position (default: false).
+<p>
+
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_12">NLSOUND::USource</a>.
+<p>
+Reimplemented in <a class="el" href="a03395.html#NLSOUND_1_1CSimpleSourcez1340_9">NLSOUND::CSimpleSource</a>.
+<p>
+Definition at line <a class="el" href="a06427.html#l00216">216</a> of file <a class="el" href="a06427.html">source_common.cpp</a>.
+<p>
+References <a class="el" href="a06428.html#l00116">NLSOUND::CSourceCommon::_RelativeMode</a>.
+<p>
+<div class="fragment"><pre>00217 {
+00218 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp12">_RelativeMode</a> = mode;
+00219 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_5" doxytag="NLSOUND::CComplexSource::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::CComplexSource::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, ignored in stereo mode) (default: (0,0,0)).
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona28">NLSOUND::CSourceCommon</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00319">319</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00133">_AllSources</a>, <a class="el" href="a05594.html#l00130">_Source1</a>, <a class="el" href="a05594.html#l00131">_Source2</a>, and <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_13">NLSOUND::USource::setVelocity()</a>.
+<p>
+<div class="fragment"><pre>00320 {
+00321 CSourceCommon::setVelocity(vel);
+00322
+00323 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> != NULL)
+00324 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>-&gt;setVelocity(vel);
+00325 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> != NULL)
+00326 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>-&gt;setVelocity(vel);
+00327
+00328 std::vector&lt;USource *&gt;::iterator first(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.begin()), last(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.end());
+00329 <span class="keywordflow">for</span> (; first != last; ++first)
+00330 {
+00331 (*first)-&gt;setVelocity(vel);
+00332 }
+00333 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1301_3" doxytag="NLSOUND::CComplexSource::stop" ></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::CComplexSource::stop </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stop playing.
+<p>
+
+<p>
+Reimplemented from <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona29">NLSOUND::CSourceCommon</a>.
+<p>
+Definition at line <a class="el" href="a05593.html#l00255">255</a> of file <a class="el" href="a05593.html">complex_source.cpp</a>.
+<p>
+References <a class="el" href="a05594.html#l00133">_AllSources</a>, <a class="el" href="a05594.html#l00158">_PatternSound</a>, <a class="el" href="a05594.html#l00130">_Source1</a>, <a class="el" href="a05594.html#l00131">_Source2</a>, <a class="el" href="a05592.html#l00059">NLSOUND::CComplexSound::getPatternMode()</a>, <a class="el" href="a05465.html#l02075">NLSOUND::CAudioMixerUser::removeEvents()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2137_5">NLSOUND::USource::stop()</a>, and <a class="el" href="a05465.html#l02060">NLSOUND::CAudioMixerUser::unregisterUpdate()</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00577">onEvent()</a>.
+<p>
+<div class="fragment"><pre>00256 {
+00257 CAudioMixerUser *mixer = CAudioMixerUser::instance();
+00258 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>)
+00259 {
+00260 <span class="comment">// _Source1-&gt;stop();</span>
+00261 <span class="comment">// mixer-&gt;removeSource(_Source1);</span>
+00262 <span class="keyword">delete</span> <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>;
+00263
+00264 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> = NULL;
+00265 }
+00266 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>)
+00267 {
+00268 <span class="comment">// _Source2-&gt;stop();</span>
+00269 <span class="comment">// mixer-&gt;removeSource(_Source2);</span>
+00270 <span class="keyword">delete</span> <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>;
+00271
+00272 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> = NULL;
+00273 }
+00274
+00275 std::vector&lt;USource *&gt;::iterator first(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.begin()), last(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.end());
+00276 <span class="keywordflow">for</span> (; first != last; ++first)
+00277 {
+00278 <span class="keywordflow">if</span> ((*first)-&gt;isPlaying())
+00279 (*first)-&gt;stop();
+00280 <span class="keyword">delete</span> *first;
+00281 }
+00282 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a>.clear();
+00283
+00284 <span class="keywordflow">switch</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>-&gt;getPatternMode())
+00285 {
+00286 <span class="keywordflow">case</span> CComplexSound::MODE_CHAINED:
+00287 mixer-&gt;unregisterUpdate(<span class="keyword">this</span>);
+00288 mixer-&gt;removeEvents(<span class="keyword">this</span>);
+00289 <span class="keywordflow">break</span>;
+00290 <span class="keywordflow">case</span> CComplexSound::MODE_SPARSE:
+00291 <span class="keywordflow">case</span> CComplexSound::MODE_ALL_IN_ONE:
+00292 mixer-&gt;removeEvents(<span class="keyword">this</span>);
+00293 <span class="keywordflow">break</span>;
+00294 }
+00295
+00296 CSourceCommon::stop();
+00297 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommona30" doxytag="NLSOUND::CComplexSource::unregisterSpawnCallBack" ></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::CSourceCommon::unregisterSpawnCallBack </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, inherited]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Tells this source not to call its callbacks when it ends. This is valid for spawned sources only.
+<p>
+
+<p>
+Implements <a class="el" href="a03429.html#NLSOUND_1_1USourcez2137_6">NLSOUND::USource</a>.
+<p>
+Definition at line <a class="el" href="a06428.html#l00076">76</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+References <a class="el" href="a06428.html#l00129">NLSOUND::CSourceCommon::_SpawnEndCb</a>.
+<p>
+<div class="fragment"><pre>00076 { <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp14">_SpawnEndCb</a> = NULL; }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp0" doxytag="NLSOUND::CComplexSource::_3DPosition" ></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>* <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp0">NLSOUND::CSourceCommon::_3DPosition</a><code> [protected, inherited]</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="a06428.html#l00125">125</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+Referenced by <a class="el" href="a06427.html#l00141">NLSOUND::CSourceCommon::getPos()</a>, and <a class="el" href="a06428.html#l00088">NLSOUND::CSourceCommon::set3DPositionVector()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_10" doxytag="NLSOUND::CComplexSource::_AllSources" ></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"> std::vector&lt;<a class="el" href="a03429.html">USource</a> *&gt; <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">NLSOUND::CComplexSource::_AllSources</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Definition at line <a class="el" href="a05594.html#l00133">133</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00698">checkup()</a>, <a class="el" href="a05593.html#l00105">playStuf()</a>, <a class="el" href="a05593.html#l00338">setDirection()</a>, <a class="el" href="a05593.html#l00358">setGain()</a>, <a class="el" href="a05593.html#l00303">setPos()</a>, <a class="el" href="a05593.html#l00390">setRelativeGain()</a>, <a class="el" href="a05593.html#l00319">setVelocity()</a>, <a class="el" href="a05593.html#l00255">stop()</a>, and <a class="el" href="a05593.html#l00053">~CComplexSource()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp1" doxytag="NLSOUND::CComplexSource::_CbUserParam" ></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* <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp1">NLSOUND::CSourceCommon::_CbUserParam</a><code> [protected, inherited]</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="a06428.html#l00130">130</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+Referenced by <a class="el" href="a06428.html#l00074">NLSOUND::CSourceCommon::getCallbackUserParam()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp2" doxytag="NLSOUND::CComplexSource::_Cluster" ></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="a02362.html">NL3D::CCluster</a>* <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp2">NLSOUND::CSourceCommon::_Cluster</a><code> [protected, inherited]</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="a06428.html#l00131">131</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+Referenced by <a class="el" href="a06428.html#l00098">NLSOUND::CSourceCommon::getCluster()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_11" doxytag="NLSOUND::CComplexSource::_DelaySeqIndex" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">NLSOUND::CComplexSource::_DelaySeqIndex</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Definition at line <a class="el" href="a05594.html#l00153">153</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00577">onEvent()</a>, and <a class="el" href="a05593.html#l00105">playStuf()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp3" doxytag="NLSOUND::CComplexSource::_Direction" ></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="a02254.html#NLSOUND_1_1CSourceCommonp3">NLSOUND::CSourceCommon::_Direction</a><code> [protected, inherited]</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="a06428.html#l00113">113</a> of file <a class="el" href="a06428.html">source_common.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_12" doxytag="NLSOUND::CComplexSource::_FadeFactor" ></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 <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_12">NLSOUND::CComplexSource::_FadeFactor</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Definition at line <a class="el" href="a05594.html#l00150">150</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00456">onUpdate()</a>, <a class="el" href="a05593.html#l00105">playStuf()</a>, <a class="el" href="a05593.html#l00358">setGain()</a>, and <a class="el" href="a05593.html#l00390">setRelativeGain()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_13" doxytag="NLSOUND::CComplexSource::_FadeLength" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_13">NLSOUND::CComplexSource::_FadeLength</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Definition at line <a class="el" href="a05594.html#l00148">148</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00456">onUpdate()</a>, and <a class="el" href="a05593.html#l00105">playStuf()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp4" doxytag="NLSOUND::CComplexSource::_Gain" ></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 <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp4">NLSOUND::CSourceCommon::_Gain</a><code> [protected, inherited]</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="a06428.html#l00114">114</a> of file <a class="el" href="a06428.html">source_common.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp5" doxytag="NLSOUND::CComplexSource::_InitialGain" ></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 <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp5">NLSOUND::CSourceCommon::_InitialGain</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Gain not affected by setRelativeGain and used to compute _Gain.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06428.html#l00119">119</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+Referenced by <a class="el" href="a06427.html#l00037">NLSOUND::CSourceCommon::CSourceCommon()</a>, <a class="el" href="a06427.html#l00205">NLSOUND::CSourceCommon::getRelativeGain()</a>, <a class="el" href="a06427.html#l00186">NLSOUND::CSourceCommon::setGain()</a>, and <a class="el" href="a06427.html#l00195">NLSOUND::CSourceCommon::setRelativeGain()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_14" doxytag="NLSOUND::CComplexSource::_LastSparseEvent" ></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 <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_14">NLSOUND::CComplexSource::_LastSparseEvent</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Definition at line <a class="el" href="a05594.html#l00155">155</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00577">onEvent()</a>, and <a class="el" href="a05593.html#l00105">playStuf()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp6" doxytag="NLSOUND::CComplexSource::_Looping" ></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 <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp6">NLSOUND::CSourceCommon::_Looping</a><code> [protected, inherited]</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="a06428.html#l00109">109</a> of file <a class="el" href="a06428.html">source_common.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_15" doxytag="NLSOUND::CComplexSource::_Muted" ></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 <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_15">NLSOUND::CComplexSource::_Muted</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+When play is called but the gain is 0, then the sound is muted. This flag keek track of this to restart the source when the gain is updated.
+<p>
+Definition at line <a class="el" href="a05594.html#l00139">139</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00698">checkup()</a>, <a class="el" href="a05593.html#l00092">play()</a>, <a class="el" href="a05593.html#l00105">playStuf()</a>, <a class="el" href="a05593.html#l00358">setGain()</a>, and <a class="el" href="a05593.html#l00390">setRelativeGain()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_16" doxytag="NLSOUND::CComplexSource::_PatternSound" ></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="a02393.html">CComplexSound</a>* <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">NLSOUND::CComplexSource::_PatternSound</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The reference Sound.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05594.html#l00158">158</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00037">CComplexSource()</a>, <a class="el" href="a05593.html#l00069">getSound()</a>, <a class="el" href="a05593.html#l00577">onEvent()</a>, <a class="el" href="a05593.html#l00456">onUpdate()</a>, <a class="el" href="a05593.html#l00105">playStuf()</a>, <a class="el" href="a05593.html#l00358">setGain()</a>, <a class="el" href="a05593.html#l00390">setRelativeGain()</a>, and <a class="el" href="a05593.html#l00255">stop()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp7" doxytag="NLSOUND::CComplexSource::_Pitch" ></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 <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp7">NLSOUND::CSourceCommon::_Pitch</a><code> [protected, inherited]</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="a06428.html#l00115">115</a> of file <a class="el" href="a06428.html">source_common.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp8" doxytag="NLSOUND::CComplexSource::_Playing" ></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 <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp8">NLSOUND::CSourceCommon::_Playing</a><code> [protected, inherited]</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="a06428.html#l00108">108</a> of file <a class="el" href="a06428.html">source_common.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp9" doxytag="NLSOUND::CComplexSource::_PlayStart" ></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#a242">NLMISC::TTime</a> <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp9">NLSOUND::CSourceCommon::_PlayStart</a><code> [protected, inherited]</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="a06428.html#l00122">122</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+Referenced by <a class="el" href="a06427.html#l00222">NLSOUND::CSourceCommon::getTime()</a>, and <a class="el" href="a06427.html#l00107">NLSOUND::CSourceCommon::play()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp10" doxytag="NLSOUND::CComplexSource::_Position" ></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="a02254.html#NLSOUND_1_1CSourceCommonp10">NLSOUND::CSourceCommon::_Position</a><code> [protected, inherited]</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="a06428.html#l00111">111</a> of file <a class="el" href="a06428.html">source_common.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp11" doxytag="NLSOUND::CComplexSource::_Priority" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a05381.html#a82">TSoundPriority</a> <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp11">NLSOUND::CSourceCommon::_Priority</a><code> [protected, inherited]</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="a06428.html#l00107">107</a> of file <a class="el" href="a06428.html">source_common.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp12" doxytag="NLSOUND::CComplexSource::_RelativeMode" ></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 <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp12">NLSOUND::CSourceCommon::_RelativeMode</a><code> [protected, inherited]</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="a06428.html#l00116">116</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+Referenced by <a class="el" href="a06428.html#l00086">NLSOUND::CSourceCommon::getSourceRelativeMode()</a>, and <a class="el" href="a06427.html#l00216">NLSOUND::CSourceCommon::setSourceRelativeMode()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_17" doxytag="NLSOUND::CComplexSource::_SoundSeqIndex" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_17">NLSOUND::CComplexSource::_SoundSeqIndex</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Definition at line <a class="el" href="a05594.html#l00152">152</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00577">onEvent()</a>, <a class="el" href="a05593.html#l00456">onUpdate()</a>, and <a class="el" href="a05593.html#l00105">playStuf()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_18" doxytag="NLSOUND::CComplexSource::_Source1" ></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="a03429.html">USource</a>* <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">NLSOUND::CComplexSource::_Source1</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Definition at line <a class="el" href="a05594.html#l00130">130</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00698">checkup()</a>, <a class="el" href="a05593.html#l00577">onEvent()</a>, <a class="el" href="a05593.html#l00456">onUpdate()</a>, <a class="el" href="a05593.html#l00105">playStuf()</a>, <a class="el" href="a05593.html#l00338">setDirection()</a>, <a class="el" href="a05593.html#l00358">setGain()</a>, <a class="el" href="a05593.html#l00303">setPos()</a>, <a class="el" href="a05593.html#l00390">setRelativeGain()</a>, <a class="el" href="a05593.html#l00319">setVelocity()</a>, and <a class="el" href="a05593.html#l00255">stop()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_19" doxytag="NLSOUND::CComplexSource::_Source2" ></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="a03429.html">USource</a>* <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">NLSOUND::CComplexSource::_Source2</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Definition at line <a class="el" href="a05594.html#l00131">131</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00698">checkup()</a>, <a class="el" href="a05593.html#l00577">onEvent()</a>, <a class="el" href="a05593.html#l00456">onUpdate()</a>, <a class="el" href="a05593.html#l00105">playStuf()</a>, <a class="el" href="a05593.html#l00338">setDirection()</a>, <a class="el" href="a05593.html#l00358">setGain()</a>, <a class="el" href="a05593.html#l00303">setPos()</a>, <a class="el" href="a05593.html#l00390">setRelativeGain()</a>, <a class="el" href="a05593.html#l00319">setVelocity()</a>, and <a class="el" href="a05593.html#l00255">stop()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp13" doxytag="NLSOUND::CComplexSource::_Spawn" ></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 bool <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp13">NLSOUND::CSourceCommon::_Spawn</a><code> [protected, inherited]</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="a06428.html#l00128">128</a> of file <a class="el" href="a06428.html">source_common.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp14" doxytag="NLSOUND::CComplexSource::_SpawnEndCb" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a05381.html#a63">TSpawnEndCallback</a> <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp14">NLSOUND::CSourceCommon::_SpawnEndCb</a><code> [protected, inherited]</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="a06428.html#l00129">129</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+Referenced by <a class="el" href="a06390.html#l00126">NLSOUND::CSimpleSource::play()</a>, <a class="el" href="a06390.html#l00217">NLSOUND::CSimpleSource::stop()</a>, and <a class="el" href="a06428.html#l00076">NLSOUND::CSourceCommon::unregisterSpawnCallBack()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_20" doxytag="NLSOUND::CComplexSource::_StartTime1" ></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#a242">NLMISC::TTime</a> <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_20">NLSOUND::CComplexSource::_StartTime1</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Definition at line <a class="el" href="a05594.html#l00144">144</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00577">onEvent()</a>, <a class="el" href="a05593.html#l00456">onUpdate()</a>, and <a class="el" href="a05593.html#l00105">playStuf()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_21" doxytag="NLSOUND::CComplexSource::_StartTime2" ></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#a242">NLMISC::TTime</a> <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_21">NLSOUND::CComplexSource::_StartTime2</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Definition at line <a class="el" href="a05594.html#l00145">145</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00577">onEvent()</a>, <a class="el" href="a05593.html#l00456">onUpdate()</a>, and <a class="el" href="a05593.html#l00105">playStuf()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CComplexSourcez1303_22" doxytag="NLSOUND::CComplexSource::_TickPerSecond" ></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 <a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">NLSOUND::CComplexSource::_TickPerSecond</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the source relative mode.
+<p>
+Shift the frequency. 1.0f equals identity, each reduction of 50% equals a pitch shift of one octave. 0 is not a legal value.
+<p>
+Definition at line <a class="el" href="a05594.html#l00147">147</a> of file <a class="el" href="a05594.html">complex_source.h</a>.
+<p>
+Referenced by <a class="el" href="a05593.html#l00037">CComplexSource()</a>, <a class="el" href="a05593.html#l00577">onEvent()</a>, <a class="el" href="a05593.html#l00456">onUpdate()</a>, and <a class="el" href="a05593.html#l00105">playStuf()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp15" doxytag="NLSOUND::CComplexSource::_UserVarControler" ></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="a02254.html#NLSOUND_1_1CSourceCommonp15">NLSOUND::CSourceCommon::_UserVarControler</a><code> [protected, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+An optional user var controler.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06428.html#l00134">134</a> of file <a class="el" href="a06428.html">source_common.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLSOUND_1_1CSourceCommonp16" doxytag="NLSOUND::CComplexSource::_Velocity" ></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="a02254.html#NLSOUND_1_1CSourceCommonp16">NLSOUND::CSourceCommon::_Velocity</a><code> [protected, inherited]</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="a06428.html#l00112">112</a> of file <a class="el" href="a06428.html">source_common.h</a>.
+<p>
+Referenced by <a class="el" href="a06428.html#l00078">NLSOUND::CSourceCommon::getVelocity()</a>, and <a class="el" href="a06427.html#l00167">NLSOUND::CSourceCommon::setVelocity()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05594.html">complex_source.h</a><li><a class="el" href="a05593.html">complex_source.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 14:37:11 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>