diff options
Diffstat (limited to 'docs/doxygen/nel/a02394.html')
-rw-r--r-- | docs/doxygen/nel/a02394.html | 3070 |
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 Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NLSOUND::CComplexSource Class Reference</h1><code>#include <<a class="el" href="a05594.html">complex_source.h</a>></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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_0">checkup</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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 </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> &dir)</td></tr> + +<tr><td class="mdescLeft"> </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 </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"> </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 </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> &pos)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </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"> </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 </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> &vel)</td></tr> + +<tr><td class="mdescLeft"> </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> </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"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_7">onEvent</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_8">onUpdate</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_9">playStuf</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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< <a class="el" href="a03429.html">USource</a> * > </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_10">_AllSources</a></td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">_DelaySeqIndex</a></td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_12">_FadeFactor</a></td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_13">_FadeLength</a></td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_14">_LastSparseEvent</a></td></tr> + +<tr><td class="mdescLeft"> </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 </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> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a></td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_17">_SoundSeqIndex</a></td></tr> + +<tr><td class="mdescLeft"> </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> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a></td></tr> + +<tr><td class="mdescLeft"> </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> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a></td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_20">_StartTime1</a></td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_21">_StartTime2</a></td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">_TickPerSecond</a></td></tr> + +<tr><td class="mdescLeft"> </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 </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> </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"> </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 * </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"> </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> * </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 </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> &dir) const </td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona5">getGain</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona6">getLooping</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona7">getPitch</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona8">getPos</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona9">getPriority</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona10">getRelativeGain</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcea10">getSound</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona12">getSourceRelativeMode</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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 </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> &vel) const </td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona17">isSpawn</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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 </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"> </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 </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"> </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 </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 </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"> </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 </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"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona30">unregisterSpawnCallBack</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcea20">~CComplexSource</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1301_0">getTime</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1301_1">isPlaying</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1301_2">play</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02394.html#NLSOUND_1_1CComplexSourcez1301_3">stop</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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> * </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 * </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> * </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> </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 </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp5">_InitialGain</a></td></tr> + +<tr><td class="mdescLeft"> </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 </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 </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 </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> </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> </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> </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 </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 </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> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a02254.html#NLSOUND_1_1CSourceCommonp15">_UserVarControler</a></td></tr> + +<tr><td class="mdescLeft"> </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> </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> + + </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> </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> </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> </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 & 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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02393.html">CComplexSound</a> * </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 </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> </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 * </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> * </td> + <td class="mdname" nowrap> <em>cluster</em> = 0</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Constructor. +<p> + +<p> +Definition at line <a class="el" href="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->getSoundType() == CSound::SOUND_COMPLEX); +00043 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a> = static_cast<CComplexSound*>(soundPattern); +00044 +00045 <span class="comment">// read original parameters</span> +00046 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp4">_Gain</a> = soundPattern->getGain(); +00047 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a> = soundPattern->getPitch(); +00048 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a> = soundPattern->getLooping(); +00049 <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp11">_Priority</a> = soundPattern->getPriority(); +00050 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">_TickPerSecond</a> = soundPattern->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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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()->unregisterUpdate(<span class="keyword">this</span>); +00058 CAudioMixerUser::instance()->removeEvents(<span class="keyword">this</span>); +00059 +00060 std::vector<USource *>::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->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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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 && <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->getSound()->getLooping() && !<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->isPlaying()) +00704 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->play(); +00705 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a> != NULL && <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>->getSound()->getLooping() && !<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>->isPlaying()) +00706 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>->play(); +00707 +00708 std::vector<USource *>::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 && source->getSound()->getLooping() && !source->isPlaying()) +00713 source->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">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>dir</em> </td> + <td class="md" valign="top"> ) </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> + + </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">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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> & NLSOUND::CSourceCommon::getPos </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, private, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>vel</em> </td> + <td class="md" valign="top"> ) </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> + + </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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [private, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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>->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>->setRelativeGain(0); +00593 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>->setPitch(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>->getSound()->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>->setPos(_Position); +00595 <span class="comment">// start the source 2</span> +00596 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>->play(); +00597 <span class="comment">// register for update.</span> +00598 mixer->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>->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->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->stop();</span> +00612 <span class="comment">// mixer->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->stop();</span> +00625 <span class="comment">// mixer->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<uint32> &delaySeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getDelaySeq(); +00631 <span class="keyword">const</span> vector<uint32> &soundSeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getSoundSeq(); +00632 +00633 <span class="keywordflow">if</span> (<a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp6">_Looping</a> && <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">_DelaySeqIndex</a> >= delaySeq.size()) +00634 { +00635 _DelaySeqIndex = 1; +00636 <span class="comment">/* if (!delaySeq.empty() && 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() && !<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> >= soundSeq.size()) +00646 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_17">_SoundSeqIndex</a> = 0; +00647 +00648 CSound *sound = mixer->getSoundId(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getSound(soundSeq[_SoundSeqIndex++])); +00649 +00650 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> = mixer->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>->setPriority(_Priority); +00657 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->setRelativeGain(_Gain*_Gain*_Gain); +00658 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->setPitch(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->getSound()->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>->setPos(_Position); +00660 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->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() && _DelaySeqIndex < delaySeq.size()) +00665 { +00666 <span class="comment">// event for next sound.</span> +00667 mixer->addEvent(<span class="keyword">this</span>, <a class="code" href="a05167.html#a15">uint64</a>(now + sound->getDuration() + delaySeq[_DelaySeqIndex++]/<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">_TickPerSecond</a>)); +00668 <span class="keywordflow">if</span> (_DelaySeqIndex == delaySeq.size() && !<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->addEvent(<span class="keyword">this</span>, now + sound->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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [private, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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>->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> > 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> >= 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->stop();</span> +00485 <span class="comment">// mixer->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>->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<uint32> &soundSeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getSoundSeq(); +00502 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_17">_SoundSeqIndex</a> < soundSeq.size()) +00503 { +00504 sound2 = mixer->getSoundId(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->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->getSoundId(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->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->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<uint32>(<a class="code" href="a05167.html#a13">uint32</a>(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getFadeLenght()/<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">_TickPerSecond</a>), (sound2->getDuration()) / 2, (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->getSound()->getDuration())/2); +00521 _Source2 = mixer->createSource(sound2, <span class="keyword">false</span>, 0, 0, _Cluster); +00522 <span class="keywordflow">if</span> (_Source2) +00523 { +00524 _Source2->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>->getSound()->getName()).c_str(), <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->getSound()->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->addEvent(<span class="keyword">this</span>, _StartTime1 + <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->getSound()->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>->getSound()->getName()).c_str(), <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->getSound()->getDuration()); +00534 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->doFadeOut()) +00535 { +00536 <span class="comment">// set the event to begin fade out.</span> +00537 mixer->addEvent(<span class="keyword">this</span>, _StartTime1 + <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->getSound()->getDuration() - <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getFadeLenght()); +00538 } +00539 <span class="keywordflow">else</span> +00540 { +00541 <span class="comment">// set the event at end of sound.</span> +00542 mixer->addEvent(<span class="keyword">this</span>, _StartTime1 + <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->getSound()->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>->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->unregisterUpdate(<span class="keyword">this</span>); +00556 } +00557 <span class="keywordflow">else</span> +00558 { +00559 <span class="comment">// nldebug("XFade : %4.3f <=> %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>->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->setRelativeGain(float(sqrt(_FadeFactor)) * _Gain);</span> +00572 _Source2->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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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>->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<uint32> &soundSeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getSoundSeq(); +00117 <span class="keywordflow">if</span> (!soundSeq.empty()) +00118 { +00119 CSound *sound = mixer->getSoundId(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->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>->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>->getFadeLenght()/<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_22">_TickPerSecond</a>), sound->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->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>->setPriority(_Priority); +00133 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>->setRelativeGain(0); +00134 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>->setPos(_Position); +00135 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>->setPitch(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_19">_Source2</a>->getSound()->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>->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->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<uint32> &delaySeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getDelaySeq(); +00151 +00152 <span class="keywordflow">if</span> (!delaySeq.empty() && 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->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<uint32> &soundSeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getSoundSeq(); +00163 <span class="keywordflow">if</span> (!soundSeq.empty()) +00164 { +00165 CSound *sound = mixer->getSoundId(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getSound(soundSeq[_SoundSeqIndex++])); +00166 +00167 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a> = mixer->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>->setPriority(_Priority); +00171 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->setRelativeGain(_Gain*_Gain*_Gain); +00172 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->setPos(_Position); +00173 <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->setPitch(<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_18">_Source1</a>->getSound()->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>->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<uint32> &delaySeq = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getDelaySeq(); +00179 <span class="keywordflow">if</span> (!delaySeq.empty() && <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_11">_DelaySeqIndex</a> < delaySeq.size()) +00180 { +00181 <span class="comment">// event for next sound.</span> +00182 mixer->addEvent(<span class="keyword">this</span>, <a class="code" href="a05167.html#a15">uint64</a>(now + sound->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> >= delaySeq.size() && !<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->addEvent(<span class="keyword">this</span>, now + sound->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<NLMISC::TStringId> &sounds = <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->getSounds(); +00203 +00204 std::vector<NLMISC::TStringId>::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->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->createSource(sound, <span class="keyword">false</span>, 0, 0, _Cluster); +00215 <span class="keywordflow">if</span> (source != NULL) +00216 { +00217 source->setPriority(_Priority); +00218 source->setRelativeGain(_Gain*_Gain*_Gain); +00219 source->setPos(_Position); +00220 source->setPitch(source->getSound()->getPitch() * <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a>); +00221 source->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<USource *>::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)->setRelativeGain(_Gain*_Gain*_Gain); +00236 (*first)->setPos(_Position); +00237 (*first)->setPitch((*first)->getSound()->getPitch() * <a class="code" href="a02254.html#NLSOUND_1_1CSourceCommonp7">_Pitch</a>); +00238 (*first)->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->addEvent(<span class="keyword">this</span>, NLMISC::CTime::getLocalTime() + <a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_16">_PatternSound</a>->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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pos</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>dir</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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>->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>->setDirection(dir); +00346 +00347 std::vector<USource *>::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)->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">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>gain</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the direction vector. +<p> +Set the gain (volume value inside [0 , 1]). (default: 1) 0.0 -> silence 0.5 -> -6dB 1.0 -> no attenuation values > 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>->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>->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>->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>->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>->setRelativeGain(_Gain*_Gain*_Gain); +00378 } +00379 +00380 std::vector<USource *>::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)->setGain(_Gain); +00384 } +00385 +00386 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_15">_Muted</a> && <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">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>loop</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>pitch</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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 > 0) && (pitch <= 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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>pos</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the position vector (default: (0,0,0)). 3D mode -> 3D position st mode -> 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>->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>->setPos(pos); +00311 +00312 std::vector<USource *>::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)->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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05381.html#a82">TSoundPriority</a> </td> + <td class="mdname1" valign="top" nowrap> <em>pr</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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()->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">( </td> + <td class="md" nowrap valign="top">float </td> + <td class="mdname1" valign="top" nowrap> <em>gain</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the gain. +<p> +Set the gain amount (value inside [0, 1]) to map between 0 and the nominal gain (which is getSource()-><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>->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>->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>->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>->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>->setRelativeGain(_Gain*_Gain*_Gain); +00410 } +00411 +00412 std::vector<USource *>::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)->setRelativeGain(_Gain); +00416 } +00417 +00418 <span class="keywordflow">if</span> (<a class="code" href="a02394.html#NLSOUND_1_1CComplexSourcez1303_15">_Muted</a> && <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">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>mode</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>vel</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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>->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>->setVelocity(vel); +00327 +00328 std::vector<USource *>::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)->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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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->stop();</span> +00261 <span class="comment">// mixer->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->stop();</span> +00269 <span class="comment">// mixer->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<USource *>::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)->isPlaying()) +00279 (*first)->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>->getPatternMode()) +00285 { +00286 <span class="keywordflow">case</span> CComplexSound::MODE_CHAINED: +00287 mixer->unregisterUpdate(<span class="keyword">this</span>); +00288 mixer->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->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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </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> + + </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> + + </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<<a class="el" href="a03429.html">USource</a> *> <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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> + + </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> |