diff options
Diffstat (limited to 'docs/doxygen/nel/a02235.html')
-rw-r--r-- | docs/doxygen/nel/a02235.html | 6858 |
1 files changed, 6858 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02235.html b/docs/doxygen/nel/a02235.html new file mode 100644 index 00000000..29959316 --- /dev/null +++ b/docs/doxygen/nel/a02235.html @@ -0,0 +1,6858 @@ +<!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::CAudioMixerUser 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::CAudioMixerUser Class Reference</h1><code>#include <<a class="el" href="a05466.html">audio_mixer_user.h</a>></code> +<p> +<p>Inheritance diagram for NLSOUND::CAudioMixerUser: +<p><center><img src="a02235.png" usemap="#NLSOUND::CAudioMixerUser_map" border="0" alt=""></center> +<map name="NLSOUND::CAudioMixerUser_map"> +<area href="a02236.html" alt="NLSOUND::UAudioMixer" shape="rect" coords="0,0,288,24"> +<area href="a03878.html" alt="NLSOUND::ISoundDriver::IStringMapperProvider" shape="rect" coords="298,0,586,24"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +Implementation of <a class="el" href="a02236.html">UAudioMixer</a><p> +The logical sources (_Sources) are the sources representing all entities in the world, from the client's point of view. The tracks (_Tracks) are the physical sources played by the sound driver. Their number is small.<p> +When there are more sources than tracks, the process of choosing which sources go into the tracks is called "balancing". The source are auto-balanced according to the argument passed to <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera43">init()</a>. The sources are also balanced when<ul> +<li>Adding a new source</li><li>Removing a new source</li><li>Entering/Exiting from an envsound area</li></ul> +<p> +Important: The user is responsible for deleting the sources that have been allocated by <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera9">createSource()</a>, before deleting the audio mixer object.<p> +<dl compact><dt><b>Author:</b></dt><dd>Olivier Cado <p> +Nevrax France </dd></dl> +<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00108">108</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>.<table border=0 cellpadding=0 cellspacing=0> +<tr><td></td></tr> +<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera0">addEvent</a> (<a class="el" href="a02238.html">IMixerEvent</a> *pmixerEvent, const <a class="el" href="a05378.html#a242">NLMISC::TTime</a> &date)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Add an event in the future. <a href="#NLSOUND_1_1CAudioMixerUsera0"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera1">addSource</a> (<a class="el" href="a02254.html">CSourceCommon</a> *source)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a source which was created by an EnvSound. <a href="#NLSOUND_1_1CAudioMixerUsera1"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera2">addSourceWaitingForPlay</a> (<a class="el" href="a03395.html">CSimpleSource</a> *source)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a source for play as possible (for non discadable sound). <a href="#NLSOUND_1_1CAudioMixerUsera2"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera3">addUserControledSource</a> (<a class="el" href="a02254.html">CSourceCommon</a> *source, <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> varName)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera4">applyListenerMove</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &listenerpos)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Take a listener's move into account. <a href="#NLSOUND_1_1CAudioMixerUsera4"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera5">bufferUnloaded</a> (<a class="el" href="a02298.html">IBuffer</a> *<a class="el" href="a04223.html#a589">buffer</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera6">buildSampleBankList</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Load environmental effects. <a href="#NLSOUND_1_1CAudioMixerUsera6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera7">CAudioMixerUser</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#NLSOUND_1_1CAudioMixerUsera7"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03429.html">USource</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera8">createSource</a> (<a class="el" href="a02246.html">TSoundId</a> <a class="el" href="a04223.html#a564">id</a>, bool spawn=false, <a class="el" href="a05381.html#a63">TSpawnEndCallback</a> cb=NULL, void *cbUserParam=NULL, <a class="el" href="a02362.html">NL3D::CCluster</a> *cluster=0, <a class="el" href="a03417.html">CSoundContext</a> *context=0)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a logical sound source (by sound id). To remove a source, just delete it. See createSource(const char*). <a href="#NLSOUND_1_1CAudioMixerUsera8"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03429.html">USource</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera9">createSource</a> (const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> &name, bool spawn=false, <a class="el" href="a05381.html#a63">TSpawnEndCallback</a> cb=NULL, void *cbUserParam=NULL, <a class="el" href="a02362.html">NL3D::CCluster</a> *cluster=0, <a class="el" href="a03417.html">CSoundContext</a> *context=0)</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="a02235.html#NLSOUND_1_1CAudioMixerUsera10">curTime</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera11">decPlayingSource</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera12">decPlayingSourceMuted</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera13">displayDriverBench</a> (<a class="el" href="a02813.html">NLMISC::CLog</a> *log)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera14">enable</a> (bool b)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Disables or reenables the sound. <a href="#NLSOUND_1_1CAudioMixerUsera14"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera15">endDriverBench</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera16">freeTrack</a> (<a class="el" href="a03540.html">CTrack</a> *track)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera17">getAvailableTracksCount</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of available tracks. <a href="#NLSOUND_1_1CAudioMixerUsera17"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const TBackgroundFilterFades & </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera18">getBackgroundFilterFades</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const std::string & </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera19">getBackgroundFlagName</a> (<a class="el" href="a04558.html#a15">uint</a> flagIndex)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const TBackgroundFlags & </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera20">getBackgroundFlags</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const std::string & </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera21">getBackgroundFlagShortName</a> (<a class="el" href="a04558.html#a15">uint</a> flagIndex)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02248.html">CBackgroundSoundManager</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera22">getBackgroundSoundManager</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02363.html">CClusteredSound</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera23">getClusteredSound</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03540.html">CTrack</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera24">getFreeTrack</a> (<a class="el" href="a03395.html">CSimpleSource</a> *source)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03933.html">UListener</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera25">getListener</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the listener interface. <a href="#NLSOUND_1_1CAudioMixerUsera25"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera26">getListenPosVector</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the listen pos vector. <a href="#NLSOUND_1_1CAudioMixerUsera26"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera27">getLoadedSampleBankInfo</a> (std::vector< std::pair< std::string, <a class="el" href="a04558.html#a15">uint</a> > > &result)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera28">getLoadedSampleSize</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera29">getMutedPlayingSourcesCount</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number muted playing source. <a href="#NLSOUND_1_1CAudioMixerUsera29"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string & </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera30">getPackedSheetPath</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera31">getPackedSheetUpdate</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera32">getPlayingSourcesCount</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of playing sources (slow). <a href="#NLSOUND_1_1CAudioMixerUsera32"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera33">getPolyphony</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of mixing tracks (voices). <a href="#NLSOUND_1_1CAudioMixerUsera33"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03419.html">ISoundDriver</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera34">getSoundDriver</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the sound driver. <a href="#NLSOUND_1_1CAudioMixerUsera34"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera35">getSoundId</a> (const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> &name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a TSoundId from a name (returns NULL if not found). <a href="#NLSOUND_1_1CAudioMixerUsera35"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera36">getSoundNames</a> (std::vector< <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> > &names) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the names of the sounds (call this method after loadSounds()). <a href="#NLSOUND_1_1CAudioMixerUsera36"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera37">getSourcesInstanceCount</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of sources instance. <a href="#NLSOUND_1_1CAudioMixerUsera37"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera38">getSourcesStats</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a string showing the playing sources (slow). <a href="#NLSOUND_1_1CAudioMixerUsera38"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera39">getUsedTracksCount</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of used tracks. <a href="#NLSOUND_1_1CAudioMixerUsera39"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera40">getUserVar</a> (<a class="el" href="a05378.html#a236">NLMISC::TStringId</a> varName)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the current value of a user var. <a href="#NLSOUND_1_1CAudioMixerUsera40"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera41">incPlayingSource</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera42">incPlayingSourceMuted</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera43">init</a> (<a class="el" href="a04558.html#a15">uint</a> maxTrack, bool useEax, bool useADPCM, <a class="el" href="a03873.html">NLMISC::IProgressCallback</a> *progressCallBack, bool autoLoadSample=false)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera44">initClusteredSound</a> (<a class="el" href="a03348.html">NL3D::CScene</a> *scene, float minGain, float maxDistance, float portalInterpolate)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera45">initClusteredSound</a> (<a class="el" href="a03351.html">NL3D::UScene</a> *uscene, float minGain, float maxDistance, float portalInterpolate)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera46">initUserVar</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Read all user controled var sheets. <a href="#NLSOUND_1_1CAudioMixerUsera46"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera47">loadBackgroundAudioFromPrimitives</a> (const <a class="el" href="a03123.html">NLLIGO::IPrimitive</a> &audioRoot)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera48">loadBackgroundEffectsFromRegion</a> (const <a class="el" href="a03126.html">NLLIGO::CPrimRegion</a> &region)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Deprecated. <a href="#NLSOUND_1_1CAudioMixerUsera48"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera49">loadBackgroundSamplesFromRegion</a> (const <a class="el" href="a03126.html">NLLIGO::CPrimRegion</a> &region)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Deprecated. <a href="#NLSOUND_1_1CAudioMixerUsera49"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera50">loadBackgroundSound</a> (const std::string &continent, <a class="el" href="a02756.html">NLLIGO::CLigoConfig</a> &config)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera51">loadBackgroundSoundFromRegion</a> (const <a class="el" href="a03126.html">NLLIGO::CPrimRegion</a> &region)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Deprecated. <a href="#NLSOUND_1_1CAudioMixerUsera51"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera52">loadSampleBank</a> (bool async, const std::string &name, std::vector< std::string > *notfoundfiles=NULL)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera53">playBackgroundSound</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera54">registerBufferAssoc</a> (<a class="el" href="a02246.html">CSound</a> *sound, <a class="el" href="a02298.html">IBuffer</a> *<a class="el" href="a04223.html#a589">buffer</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera55">registerUpdate</a> (<a class="el" href="a02239.html">IMixerUpdate</a> *pmixerUpdate)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Register an object in the update list. <a href="#NLSOUND_1_1CAudioMixerUsera55"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera56">reloadSampleBanks</a> (bool async)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera57">removeEvents</a> (<a class="el" href="a02238.html">IMixerEvent</a> *pmixerEvent)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Remove any event programmed for this object. <a href="#NLSOUND_1_1CAudioMixerUsera57"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera58">removeSource</a> (<a class="el" href="a02254.html">CSourceCommon</a> *source)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera59">removeUserControledSource</a> (<a class="el" href="a02254.html">CSourceCommon</a> *source, <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> varName)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera60">reset</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Resets the audio system (deletes all the sources, include envsounds). <a href="#NLSOUND_1_1CAudioMixerUsera60"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera61">selectEnvEffects</a> (const std::string &tag)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Choose the environmental effect(s) corresponding to tag. <a href="#NLSOUND_1_1CAudioMixerUsera61"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera62">setBackgroundFilterFades</a> (const TBackgroundFilterFades &backgroundFilterFades)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera63">setBackgroundFlagName</a> (<a class="el" href="a04558.html#a15">uint</a> flagIndex, const std::string &flagName)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera64">setBackgroundFlags</a> (const TBackgroundFlags &backgroundFlags)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera65">setBackgroundFlagShortName</a> (<a class="el" href="a04558.html#a15">uint</a> flagIndex, const std::string &flagShortName)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera66">setListenerPos</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &pos)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Release track. <a href="#NLSOUND_1_1CAudioMixerUsera66"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera67">setLowWaterMark</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a658">value</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera68">setPackedSheetOption</a> (const std::string &path, bool update)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera69">setPriorityReserve</a> (<a class="el" href="a05381.html#a82">TSoundPriority</a> priorityChannel, <a class="el" href="a04558.html#a15">uint</a> reserve)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera70">setSamplePath</a> (const std::string &path)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the global path to the sample banks. <a href="#NLSOUND_1_1CAudioMixerUsera70"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera71">setUserVar</a> (<a class="el" href="a05378.html#a236">NLMISC::TStringId</a> varName, float <a class="el" href="a04223.html#a658">value</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera72">startDriverBench</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera73">stopBackgroundSound</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera74">unloadSampleBank</a> (const std::string &name)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera75">unregisterBufferAssoc</a> (<a class="el" href="a02246.html">CSound</a> *sound, <a class="el" href="a02298.html">IBuffer</a> *<a class="el" href="a04223.html#a589">buffer</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera76">unregisterUpdate</a> (<a class="el" href="a02239.html">IMixerUpdate</a> *pmixerUpdate)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Unregister an object from the update list. <a href="#NLSOUND_1_1CAudioMixerUsera76"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera77">update</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Update audio mixer (call evenly). <a href="#NLSOUND_1_1CAudioMixerUsera77"></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="a02235.html#NLSOUND_1_1CAudioMixerUsera78">useAPDCM</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera79">writeProfile</a> (std::ostream &out)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Write profiling information about the mixer to the output stream. <a href="#NLSOUND_1_1CAudioMixerUsera79"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera80">~CAudioMixerUser</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#NLSOUND_1_1CAudioMixerUsera80"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">IStringMapperProvider implementation</div></td></tr> +<tr><td colspan="2"><div class="groupText">map a string <br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserz1294_0">map</a> (const std::string &str)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">map a string <a href="#NLSOUND_1_1CAudioMixerUserz1294_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const std::string & </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserz1294_1">unmap</a> (const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> &stringId)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">unmap a string <a href="#NLSOUND_1_1CAudioMixerUserz1294_1"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02235.html">CAudioMixerUser</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsere0">instance</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the audio mixer object. <a href="#NLSOUND_1_1CAudioMixerUsere0"></a><br><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Move the primitive.</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02236.html">UAudioMixer</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2128_7">createAudioMixer</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create the audio mixer singleton and return a pointer to its instance. <a href="#NLSOUND_1_1UAudioMixerz2128_7"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Data Fields</h2></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="a02235.html#NLSOUND_1_1CAudioMixerUsero0">_CreateCount</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>double </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsero1">_CreateTime</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsero2">_Leaving</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Flag set in destructor. <a href="#NLSOUND_1_1CAudioMixerUsero2"></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="a02235.html#NLSOUND_1_1CAudioMixerUsero3">_MaxNbTracks</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Max _NbTracks. <a href="#NLSOUND_1_1CAudioMixerUsero3"></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="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Size of the physical sources array (must be <= MAX_TRACKS). <a href="#NLSOUND_1_1CAudioMixerUsero4"></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="a02235.html#NLSOUND_1_1CAudioMixerUsero5">_PlayingSources</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Number of source currently playing. <a href="#NLSOUND_1_1CAudioMixerUsero5"></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="a02235.html#NLSOUND_1_1CAudioMixerUsero6">_PlayingSourcesMuted</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Number of source doing muted play. <a href="#NLSOUND_1_1CAudioMixerUsero6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery8">TSourceContainer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">All Logical sources. <a href="#NLSOUND_1_1CAudioMixerUsero7"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05378.html#a243">NLMISC::TTicks</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsero8">_StartTime</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03540.html">CTrack</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a> [<a class="el" href="a05381.html#a1">MAX_TRACKS</a>]</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Physical sources array. <a href="#NLSOUND_1_1CAudioMixerUsero9"></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="a02235.html#NLSOUND_1_1CAudioMixerUsero10">_UpdateCount</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>double </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsero11">_UpdateTime</a></td></tr> + +<tr><td colspan=2><br><h2>Protected Types</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::hash_map< <a class="el" href="a05378.html#a236">NLMISC::TStringId</a>,<br> + <a class="el" href="a02237.html">CControledSources</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserx0">TUserVarControlsContainer</a></td></tr> + +<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserb0">getFreeTracks</a> (<a class="el" href="a04558.html#a15">uint</a> nb, <a class="el" href="a03540.html">CTrack</a> **tracks)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns nb available tracks (or NULL). <a href="#NLSOUND_1_1CAudioMixerUserb0"></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="a02235.html#NLSOUND_1_1CAudioMixerUserb1">getPlayingSoundsPos</a> (bool virtualPos, std::vector< std::pair< bool, <a class="el" href="a03128.html">NLMISC::CVector</a> > > &pos)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill a vector of position and mute flag for all playing sound source. <a href="#NLSOUND_1_1CAudioMixerUserb1"></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><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery9">TTimedEventContainer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">_EventList</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">List of event ordered by time. <a href="#NLSOUND_1_1CAudioMixerUserp0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< std::pair< <a class="el" href="a05378.html#a242">NLMISC::TTime</a>,<br> + <a class="el" href="a02238.html">IMixerEvent</a> * > > </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp1">_EventListUpdate</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">List of update for the event list. <a href="#NLSOUND_1_1CAudioMixerUserp1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery6">TEventContainer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp2">_Events</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">List of event ordered by event ptr with there respective multimap iterator. <a href="#NLSOUND_1_1CAudioMixerUserp2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< std::pair< <a class="el" href="a02239.html">IMixerUpdate</a> *,<br> + bool > > </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp3">_UpdateEventList</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">List of update to add or remove (bool param of the pair). <a href="#NLSOUND_1_1CAudioMixerUserp3"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery7">TMixerUpdateContainer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp4">_UpdateList</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">List of object to update. <a href="#NLSOUND_1_1CAudioMixerUserp4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserx0">TUserVarControlsContainer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Container for all user controler and currently controled playing source. <a href="#NLSOUND_1_1CAudioMixerUserp5"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Private Types</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::hash_map< <a class="el" href="a02298.html">IBuffer</a> *,<br> + std::vector< class <a class="el" href="a02246.html">CSound</a> * >,<br> + <a class="el" href="a03908.html">THashPtr</a>< <a class="el" href="a02298.html">IBuffer</a> * > > </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery4">TBufferToSourceContainer</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5">TControledParamId</a> { <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery1">gain_control</a>, +<a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery3">pitch_control</a>, +<a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery2">nb_control</a>, +<a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery0">bad_control</a> + }</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Identify the parameter controled by user var. <a href="#NLSOUND_1_1CAudioMixerUsery5">More...</a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::multimap< <a class="el" href="a02238.html">IMixerEvent</a> *,<br> + TTimedEventContainer::iterator > </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery6">TEventContainer</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::hash_set< <a class="el" href="a02239.html">IMixerUpdate</a> *,<br> + <a class="el" href="a03908.html">THashPtr</a>< <a class="el" href="a02239.html">IMixerUpdate</a> * > > </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery7">TMixerUpdateContainer</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::hash_set< <a class="el" href="a02254.html">CSourceCommon</a> *,<br> + <a class="el" href="a03908.html">THashPtr</a>< <a class="el" href="a02254.html">CSourceCommon</a> * > > </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery8">TSourceContainer</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::multimap< <a class="el" href="a05378.html#a242">NLMISC::TTime</a>,<br> + <a class="el" href="a02424.html">NLMISC::CDbgPtr</a>< <a class="el" href="a02238.html">IMixerEvent</a> > > </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery9">TTimedEventContainer</a></td></tr> + +<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserd0">CAudioMixerUser::tryToLoadSoundBank</a> (const std::string &sampleName)</td></tr> + +<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr0">_AutoLoadSample</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">flag for automatic sample bank loading. <a href="#NLSOUND_1_1CAudioMixerUserr0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr1">_BackgroundFilterNames</a> [TBackgroundFlags::NB_BACKGROUND_FLAGS]</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Array of filter name. <a href="#NLSOUND_1_1CAudioMixerUserr1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr2">_BackgroundFilterShortNames</a> [TBackgroundFlags::NB_BACKGROUND_FLAGS]</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Array of filter short names. <a href="#NLSOUND_1_1CAudioMixerUserr2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02248.html">CBackgroundSoundManager</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Intance of the background sound manager. <a href="#NLSOUND_1_1CAudioMixerUserr3"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery4">TBufferToSourceContainer</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr4">_BufferToSources</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Assoc between buffer and source. Used when buffers are unloaded. <a href="#NLSOUND_1_1CAudioMixerUserr4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02363.html">CClusteredSound</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">_ClusteredSound</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Instance of the clustered sound system. <a href="#NLSOUND_1_1CAudioMixerUserr5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a03540.html">CTrack</a> * > </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The vector of curently free tracks. <a href="#NLSOUND_1_1CAudioMixerUserr6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02768.html">CListenerUser</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr7">_Listener</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The listener instance. <a href="#NLSOUND_1_1CAudioMixerUserr7"></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="a02235.html#NLSOUND_1_1CAudioMixerUserr8">_ListenPosition</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Listener position vector. <a href="#NLSOUND_1_1CAudioMixerUserr8"></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="a02235.html#NLSOUND_1_1CAudioMixerUserr9">_LowWaterMark</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Low water mark. After this number of free voice is reach, reserve can't be overloaded. <a href="#NLSOUND_1_1CAudioMixerUserr9"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr10">_PackedSheetPath</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The path to the packed sheet files. <a href="#NLSOUND_1_1CAudioMixerUserr10"></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="a02235.html#NLSOUND_1_1CAudioMixerUserr11">_PriorityReserve</a> [NbSoundPriorities]</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Table of track reserve for each priority. <a href="#NLSOUND_1_1CAudioMixerUserr11"></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="a02235.html#NLSOUND_1_1CAudioMixerUserr12">_ReserveUsage</a> [NbSoundPriorities]</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Table of current playing source for each priority. <a href="#NLSOUND_1_1CAudioMixerUserr12"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr13">_SamplePath</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The path to the sample banks. This should be specified in the config file. <a href="#NLSOUND_1_1CAudioMixerUserr13"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03419.html">ISoundDriver</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The sound driver instance. <a href="#NLSOUND_1_1CAudioMixerUserr14"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::list< <a class="el" href="a03395.html">CSimpleSource</a> * > </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">_SourceWaitingForPlay</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The list of non discardable sound to play as soon as possible in order of arrival. <a href="#NLSOUND_1_1CAudioMixerUserr15"></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="a02235.html#NLSOUND_1_1CAudioMixerUserr16">_UpdatePackedSheet</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">A flag to update or not the packed sheet. <a href="#NLSOUND_1_1CAudioMixerUserr16"></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="a02235.html#NLSOUND_1_1CAudioMixerUserr17">_UseADPCM</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">flag for usage of ADPCM mixing <a href="#NLSOUND_1_1CAudioMixerUserr17"></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="a02235.html#NLSOUND_1_1CAudioMixerUserr18">_UseEax</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">flag for usage of eax <a href="#NLSOUND_1_1CAudioMixerUserr18"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Static Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02235.html">CAudioMixerUser</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserv0">_Instance</a> = NULL</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The audio mixer singleton instance. <a href="#NLSOUND_1_1CAudioMixerUserv0"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Friends</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsern0">CControledSources</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>class </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsern1">CUserVarSerializer</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsern2">displaySoundInfoClass</a></td></tr> + +</table> +<hr><h2>Member Typedef Documentation</h2> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsery4" doxytag="NLSOUND::CAudioMixerUser::TBufferToSourceContainer" ></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"> typedef std::hash_map<<a class="el" href="a02298.html">IBuffer</a>*, std::vector<class <a class="el" href="a02246.html">CSound</a>*>, <a class="el" href="a03908.html">THashPtr</a><<a class="el" href="a02298.html">IBuffer</a>*> > <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery4">NLSOUND::CAudioMixerUser::TBufferToSourceContainer</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00384">384</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsery6" doxytag="NLSOUND::CAudioMixerUser::TEventContainer" ></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"> typedef std::multimap<<a class="el" href="a02238.html">IMixerEvent</a>*, TTimedEventContainer::iterator> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery6">NLSOUND::CAudioMixerUser::TEventContainer</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00387">387</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsery7" doxytag="NLSOUND::CAudioMixerUser::TMixerUpdateContainer" ></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"> typedef std::hash_set<<a class="el" href="a02239.html">IMixerUpdate</a>*, <a class="el" href="a03908.html">THashPtr</a><<a class="el" href="a02239.html">IMixerUpdate</a>*> > <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery7">NLSOUND::CAudioMixerUser::TMixerUpdateContainer</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00383">383</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsery8" doxytag="NLSOUND::CAudioMixerUser::TSourceContainer" ></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"> typedef std::hash_set<<a class="el" href="a02254.html">CSourceCommon</a>*, <a class="el" href="a03908.html">THashPtr</a><<a class="el" href="a02254.html">CSourceCommon</a>*> > <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery8">NLSOUND::CAudioMixerUser::TSourceContainer</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00382">382</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsery9" doxytag="NLSOUND::CAudioMixerUser::TTimedEventContainer" ></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"> typedef std::multimap<<a class="el" href="a05378.html#a242">NLMISC::TTime</a>, <a class="el" href="a02424.html">NLMISC::CDbgPtr</a><<a class="el" href="a02238.html">IMixerEvent</a>> > <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery9">NLSOUND::CAudioMixerUser::TTimedEventContainer</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00386">386</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserx0" doxytag="NLSOUND::CAudioMixerUser::TUserVarControlsContainer" ></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"> typedef std::hash_map<<a class="el" href="a05378.html#a236">NLMISC::TStringId</a>, <a class="el" href="a02237.html">CControledSources</a>> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserx0">NLSOUND::CAudioMixerUser::TUserVarControlsContainer</a><code> [protected]</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="a05466.html#l00433">433</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. </td> + </tr> +</table> +<hr><h2>Member Enumeration Documentation</h2> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsery5" doxytag="NLSOUND::CAudioMixerUser::TControledParamId" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsery5">NLSOUND::CAudioMixerUser::TControledParamId</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Identify the parameter controled by user var. +<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_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery1" doxytag="gain_control" ></a>gain_control</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery3" doxytag="pitch_control" ></a>pitch_control</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery2" doxytag="nb_control" ></a>nb_control</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery0" doxytag="bad_control" ></a>bad_control</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="a05466.html#l00390">390</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +<div class="fragment"><pre>00391 { +00392 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery1">gain_control</a>, +00393 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery3">pitch_control</a>, +00394 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery2">nb_control</a>, +00395 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery0">bad_control</a> +00396 }; +</pre></div> </td> + </tr> +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera7" doxytag="NLSOUND::CAudioMixerUser::CAudioMixerUser" ></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::CAudioMixerUser::CAudioMixerUser </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> +Constructor. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l00112">112</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00467">_BackgroundFilterNames</a>, <a class="el" href="a05466.html#l00469">_BackgroundFilterShortNames</a>, <a class="el" href="a05466.html#l00575">_CreateCount</a>, <a class="el" href="a05466.html#l00573">_CreateTime</a>, <a class="el" href="a05466.html#l00574">_UpdateCount</a>, <a class="el" href="a05466.html#l00572">_UpdateTime</a>, <a class="el" href="a05622.html#l00154">nlerror</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00112 : <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>(NULL), +00113 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr8">_ListenPosition</a>(CVector::Null), +00114 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a>(0), +00115 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero3">_MaxNbTracks</a>(0), +00116 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero2">_Leaving</a>(<span class="keyword">false</span>), +00117 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>(0), +00118 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero5">_PlayingSources</a>(0), +00119 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero6">_PlayingSourcesMuted</a>(0), +00120 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">_ClusteredSound</a>(0), +00121 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr10">_PackedSheetPath</a>(<span class="stringliteral">""</span>), +00122 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr17">_UseADPCM</a>(<span class="keyword">true</span>), +00123 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr0">_AutoLoadSample</a>(<span class="keyword">false</span>) +00124 { +00125 <span class="keywordflow">if</span> ( <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserv0">_Instance</a> == NULL ) +00126 { +00127 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserv0">_Instance</a> = <span class="keyword">this</span>; +00128 +00129 <span class="preprocessor">#if NL_PROFILE_MIXER</span> +00130 <span class="preprocessor"></span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero11">_UpdateTime</a> = 0.0; +00131 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero1">_CreateTime</a> = 0.0; +00132 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero10">_UpdateCount</a> = 0; +00133 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero0">_CreateCount</a> = 0; +00134 <span class="preprocessor">#endif</span> +00135 <span class="preprocessor"></span> +00136 } +00137 <span class="keywordflow">else</span> +00138 { +00139 <a class="code" href="a04199.html#a3">nlerror</a>( <span class="stringliteral">"Audio mixer singleton instanciated twice"</span> ); +00140 } +00141 +00142 +00143 <span class="comment">// init the filter names and short names</span> +00144 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i<TBackgroundFlags::NB_BACKGROUND_FLAGS; ++i) +00145 { +00146 <span class="keywordtype">char</span> tmp[1024]; +00147 sprintf(tmp, <span class="stringliteral">"Filter%2u"</span>, i); +00148 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr1">_BackgroundFilterNames</a>[i] = tmp; +00149 sprintf(tmp, <span class="stringliteral">"%u"</span>, i); +00150 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr2">_BackgroundFilterShortNames</a>[i] = tmp; +00151 } +00152 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera80" doxytag="NLSOUND::CAudioMixerUser::~CAudioMixerUser" ></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::CAudioMixerUser::~<a class="el" href="a02235.html">CAudioMixerUser</a> </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Destructor. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l00157">157</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, <a class="el" href="a05466.html#l00472">_ClusteredSound</a>, <a class="el" href="a05466.html#l00561">_Leaving</a>, <a class="el" href="a05466.html#l00557">_NbTracks</a>, <a class="el" href="a05466.html#l00462">_SoundDriver</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05465.html#l00288">reset()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00158 { +00159 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"AM: Releasing..."</span> ); +00160 +00161 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">_ClusteredSound</a> != 0) +00162 <span class="keyword">delete</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">_ClusteredSound</a>; +00163 +00164 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a> != 0) +00165 <span class="keyword">delete</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>; +00166 <span class="comment">// CBackgroundSoundManager::release();</span> +00167 +00168 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera60">reset</a>(); +00169 +00170 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero2">_Leaving</a> = <span class="keyword">true</span>; +00171 +00172 <span class="comment">// Release the sound bank</span> +00173 CSoundBank::release(); +00174 <span class="comment">// Release all the SampleBanks</span> +00175 CSampleBank::releaseAll(); +00176 +00177 <span class="comment">// Tracks</span> +00178 <a class="code" href="a04558.html#a15">uint</a> i; +00179 <span class="keywordflow">for</span> ( i=0; i!=<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a>; i++ ) +00180 { +00181 <span class="keywordflow">if</span> ( <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i] ) +00182 <span class="keyword">delete</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]; +00183 } +00184 +00185 <span class="comment">// Sound driver</span> +00186 <span class="keywordflow">if</span> ( <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a> != NULL ) +00187 <span class="keyword">delete</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>; +00188 +00189 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserv0">_Instance</a> = NULL; +00190 +00191 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"AM: Released"</span> ); +00192 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera0" doxytag="NLSOUND::CAudioMixerUser::addEvent" ></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::CAudioMixerUser::addEvent </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02238.html">IMixerEvent</a> * </td> + <td class="mdname" nowrap> <em>pmixerEvent</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a05378.html#a242">NLMISC::TTime</a> & </td> + <td class="mdname" nowrap> <em>date</em></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> +Add an event in the future. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l02068">2068</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00427">_EventListUpdate</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06553.html#l00047">NLMISC::TTime</a>. +<p> +Referenced by <a class="el" href="a05593.html#l00577">NLSOUND::CComplexSource::onEvent()</a>, <a class="el" href="a05593.html#l00456">NLSOUND::CComplexSource::onUpdate()</a>, <a class="el" href="a06390.html#l00126">NLSOUND::CSimpleSource::play()</a>, and <a class="el" href="a05593.html#l00105">NLSOUND::CComplexSource::playStuf()</a>. +<p> +<div class="fragment"><pre>02069 { +02070 <a class="code" href="a04199.html#a6">nlassert</a>(pmixerEvent != 0); +02071 <span class="comment">// nldebug("Adding event %p", pmixerEvent);</span> +02072 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp1">_EventListUpdate</a>.push_back(make_pair(date, pmixerEvent)); +02073 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera1" doxytag="NLSOUND::CAudioMixerUser::addSource" ></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::CAudioMixerUser::addSource </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02254.html">CSourceCommon</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>source</em> </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> +Add a source which was created by an EnvSound. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l01517">1517</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00546">_Sources</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +<div class="fragment"><pre>01518 { +01519 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.find(source) == <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.end()); +01520 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.insert( source ); +01521 +01522 <span class="comment">// _profile(( "AM: ADDSOURCE, SOUND: %d, TRACK: %p, NAME=%s", source->getSound(), source->getTrack(),</span> +01523 <span class="comment">// source->getSound() && (source->getSound()->getName()!="") ? source->getSound()->getName().c_str() : "" ));</span> +01524 +01525 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera2" doxytag="NLSOUND::CAudioMixerUser::addSourceWaitingForPlay" ></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::CAudioMixerUser::addSourceWaitingForPlay </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03395.html">CSimpleSource</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>source</em> </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> +Add a source for play as possible (for non discadable sound). +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l00280">280</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00449">_SourceWaitingForPlay</a>. +<p> +Referenced by <a class="el" href="a06390.html#l00126">NLSOUND::CSimpleSource::play()</a>. +<p> +<div class="fragment"><pre>00281 { +00282 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">_SourceWaitingForPlay</a>.push_back(source); +00283 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera3" doxytag="NLSOUND::CAudioMixerUser::addUserControledSource" ></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::CAudioMixerUser::addUserControledSource </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02254.html">CSourceCommon</a> * </td> + <td class="mdname" nowrap> <em>source</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05378.html#a236">NLMISC::TStringId</a> </td> + <td class="mdname" nowrap> <em>varName</em></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> + +<p> +Definition at line <a class="el" href="a05465.html#l01017">1017</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00435">_UserVarControls</a>, <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery1">gain_control</a>, <a class="el" href="a06407.html#l00090">NLSOUND::CSound::getGain()</a>, <a class="el" href="a06427.html#l00205">NLSOUND::CSourceCommon::getRelativeGain()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcea0">NLSOUND::USource::getSound()</a>, <a class="el" href="a06427.html#l00186">NLSOUND::CSourceCommon::setGain()</a>, <a class="el" href="a06427.html#l00157">NLSOUND::CSourceCommon::setPitch()</a>, and <a class="el" href="a06427.html#l00195">NLSOUND::CSourceCommon::setRelativeGain()</a>. +<p> +<div class="fragment"><pre>01018 { +01019 TUserVarControlsContainer::iterator it(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.find(varName)); +01020 <span class="keywordflow">if</span> (it != <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.end()) +01021 { +01022 <span class="comment">// ok, the var exist, insert this source</span> +01023 it->second.Sources.insert(source); +01024 <span class="comment">// update the controled parameter</span> +01025 <span class="keywordflow">if</span> (it->second.ParamId == <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery1">gain_control</a>) +01026 { +01027 <span class="keywordtype">float</span> relGain = source->getRelativeGain(); +01028 <span class="keywordtype">float</span> gain = source->getSound()->getGain(); +01029 source->setGain(gain * it->second.Value); +01030 source->setRelativeGain(relGain); +01031 } +01032 <span class="keywordflow">else</span> +01033 { +01034 source->setPitch(it->second.Value); +01035 } +01036 } +01037 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera4" doxytag="NLSOUND::CAudioMixerUser::applyListenerMove" ></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::CAudioMixerUser::applyListenerMove </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>listenerpos</em> </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> +Take a listener's move into account. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l01122">1122</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, <a class="el" href="a05466.html#l00478">_ListenPosition</a>, and <a class="el" href="a05471.html#l00861">NLSOUND::CBackgroundSoundManager::updateBackgroundStatus()</a>. +<p> +<div class="fragment"><pre>01123 { +01124 <span class="comment">// Store position</span> +01125 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr8">_ListenPosition</a> = listenerpos; +01126 +01127 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->updateBackgroundStatus(); +01128 +01129 <span class="comment">// Environmental effect</span> +01130 <span class="comment">// computeEnvEffect( listenerpos );</span> +01131 +01132 <span class="comment">/* // Environment sounds</span> +01133 <span class="comment"> if ( _EnvSounds != NULL )</span> +01134 <span class="comment"> {</span> +01135 <span class="comment"> _EnvSounds->recompute();</span> +01136 <span class="comment"> }</span> +01137 <span class="comment">*/</span> +01138 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera5" doxytag="NLSOUND::CAudioMixerUser::bufferUnloaded" ></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::CAudioMixerUser::bufferUnloaded </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02298.html">IBuffer</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>buffer</em> </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> + +<p> +Definition at line <a class="el" href="a05465.html#l01052">1052</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00557">_NbTracks</a>, <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a06390.html#l00082">NLSOUND::CSimpleSource::getBuffer()</a>, <a class="el" href="a06037.html#l00067">NLSOUND::CTrack::getSource()</a>, <a class="el" href="a06390.html#l00217">NLSOUND::CSimpleSource::stop()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>01053 { +01054 <span class="comment">// check all track to find a track playing this buffer.</span> +01055 <a class="code" href="a04558.html#a15">uint</a> i; +01056 <span class="keywordflow">for</span> ( i=0; i!=<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a>; ++i ) +01057 { +01058 CTrack *track = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]; +01059 <span class="keywordflow">if</span> ( track && track->getSource()) +01060 { +01061 <span class="keywordflow">if</span> (track->getSource()->getBuffer() == <a class="code" href="a04223.html#a589">buffer</a>) +01062 { +01063 track->getSource()->stop(); +01064 } +01065 } +01066 } +01067 +01068 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera6" doxytag="NLSOUND::CAudioMixerUser::buildSampleBankList" ></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::CAudioMixerUser::buildSampleBankList </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> +Load environmental effects. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l00560">560</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00481">_SamplePath</a>, <a class="el" href="a05466.html#l00462">_SoundDriver</a>, <a class="el" href="a05466.html#l00512">NLSOUND::CAudioMixerUser::TSampleBankHeader::addSample()</a>, <a class="el" href="a05646.html#l00649">buffer</a>, <a class="el" href="a03419.html#NLSOUND_1_1ISoundDrivera2">NLSOUND::ISoundDriver::createBuffer()</a>, <a class="el" href="a05646.html#l01013">data</a>, <a class="el" href="a05709.html#l00119">NLMISC::CIFile::getFileSize()</a>, <a class="el" href="a05466.html#l00499">NLSOUND::CAudioMixerUser::TSampleBankHeader::Name</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a03419.html#NLSOUND_1_1ISoundDrivera8">NLSOUND::ISoundDriver::readWavBuffer()</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a05708.html#l00571">NLMISC::COFile::serialBuffer()</a>, <a class="el" href="a05708.html#l00355">NLMISC::CIFile::serialBuffer()</a>, <a class="el" href="a05538.html#l02935">size</a>, <a class="el" href="a06417.html#l00098">NLSOUND::TSampleFormat</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00358">init()</a>, and <a class="el" href="a05465.html#l01142">reloadSampleBanks()</a>. +<p> +<div class="fragment"><pre>00561 { +00562 NL_ALLOC_CONTEXT(NLSOUND_UAudioMixer); +00563 <a class="code" href="a04558.html#a15">uint</a> i; +00564 <span class="comment">// regenerate the sample banks list</span> +00565 <span class="keyword">const</span> std::string &sp = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr13">_SamplePath</a>; +00566 +00567 <span class="comment">// build the list of available sample bank directory</span> +00568 vector<string> bankDir; +00569 CPath::getPathContent(sp, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">false</span>, bankDir); +00570 sort(bankDir.begin(), bankDir.end()); +00571 <span class="keywordflow">for</span> (i=0; i<bankDir.size(); ++i) +00572 { +00573 <span class="keywordflow">if</span> (bankDir[i].empty()) +00574 { +00575 bankDir.erase(bankDir.begin()+i); +00576 --i; +00577 } +00578 } +00579 <span class="keywordflow">for</span> (i=0; i<bankDir.size(); ++i) +00580 { +00581 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"Found sample bank dir [%s]"</span>, bankDir[i].c_str()); +00582 } +00583 +00584 <span class="comment">// build the list of available sample bank file</span> +00585 vector<string> bankFile; +00586 CPath::getPathContent(sp, <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, bankFile); +00587 <span class="comment">// filter ou any non sample bank file</span> +00588 <span class="keywordflow">for</span> (i=0; i<bankFile.size(); ++i) +00589 { +00590 <span class="keywordflow">if</span> (bankFile[i].find(<span class="stringliteral">".sample_bank"</span>) != bankFile[i].size() - 12) +00591 { +00592 bankFile.erase(bankFile.begin()+i); +00593 --i; +00594 } +00595 } +00596 sort(bankFile.begin(), bankFile.end()); +00597 <span class="keywordflow">for</span> (i=0; i<bankFile.size(); ++i) +00598 { +00599 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"Found sample bank file [%s]"</span>, bankFile[i].c_str()); +00600 } +00601 +00602 <span class="comment">// now, do a one to one comparison on bank file and sample file date</span> +00603 <span class="keywordflow">for</span> (i=0; i<bankDir.size(); ++i) +00604 { +00605 string bankname = bankDir[i]; +00606 <span class="keywordflow">if</span> (bankname[bankname.size()-1] == <span class="charliteral">'/'</span>) +00607 bankname = bankname.substr(0, bankname.size()-1); +00608 +00609 bankname = bankname.substr(bankname.rfind(<span class="charliteral">'/'</span>)+1); +00610 +00611 <span class="keywordflow">if</span> (i >= bankFile.size() || CFile::getFilenameWithoutExtension(bankFile[i]) > bankname) +00612 { +00613 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"Compiling sample bank [%s]"</span>, bankname.c_str()); +00614 <span class="comment">// need to create a new bank file !</span> +00615 TSampleBankHeader hdr; +00616 +00617 vector<string> sampleList; +00618 CPath::getPathContent(bankDir[i], <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, sampleList); +00619 <span class="comment">// remove any non wav file</span> +00620 <a class="code" href="a04558.html#a15">uint</a> j; +00621 <span class="keywordflow">for</span> (j=0; j<sampleList.size(); ++j) +00622 { +00623 <span class="keywordflow">if</span> (sampleList[j].find(<span class="stringliteral">".wav"</span>) != sampleList[j].size()-4) +00624 { +00625 sampleList.erase(sampleList.begin()+j); +00626 --j; +00627 } +00628 } +00629 sort(sampleList.begin(), sampleList.end()); +00630 +00631 vector<vector<uint8> > adpcmBuffers(sampleList.size()); +00632 vector<vector<sint16> > mono16Buffers(sampleList.size()); +00633 +00634 <span class="keywordflow">for</span> (j=0; j<sampleList.size(); ++j) +00635 { +00636 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">" Adding sample [%s] into bank"</span>, CFile::getFilename(sampleList[j]).c_str()); +00637 <a class="code" href="a02653.html">CIFile</a> sample (sampleList[j]); +00638 <a class="code" href="a04558.html#a7">uint8</a> *<a class="code" href="a04223.html#a637">data</a> = <span class="keyword">new</span> <a class="code" href="a04558.html#a7">uint8</a>[sample.<a class="code" href="a02653.html#NLMISC_1_1CIFilea6">getFileSize</a>()]; +00639 sample.<a class="code" href="a02653.html#NLMISC_1_1CIFilea15">serialBuffer</a>(data, sample.<a class="code" href="a02653.html#NLMISC_1_1CIFilea6">getFileSize</a>()); +00640 IBuffer *<a class="code" href="a04223.html#a589">buffer</a> = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>->createBuffer(); +00641 <a class="code" href="a04223.html#a589">buffer</a>->presetName(CStringMapper::map(CFile::getFilenameWithoutExtension(sampleList[j]))); +00642 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>->readWavBuffer(buffer, CFile::getFilenameWithoutExtension(sampleList[j]), data, sample.<a class="code" href="a02653.html#NLMISC_1_1CIFilea6">getFileSize</a>()); +00643 vector<uint8> adpcmData; +00644 <a class="code" href="a04558.html#a11">uint32</a> nbSample = <a class="code" href="a04223.html#a589">buffer</a>->getBufferADPCMEncoded(adpcmData); +00645 vector<sint16> mono16Data; +00646 <a class="code" href="a04223.html#a589">buffer</a>->getBufferMono16(mono16Data); +00647 <span class="comment">// Sample number MUST be even</span> +00648 <a class="code" href="a04199.html#a6">nlassert</a>(nbSample == (nbSample & 0xfffffffe)); +00649 <a class="code" href="a04199.html#a6">nlassert</a>(adpcmData.size() == nbSample/2); +00650 adpcmBuffers[j].swap(adpcmData); +00651 mono16Buffers[j].swap(mono16Data); +00652 +00653 <a class="code" href="a05381.html#a80">TSampleFormat</a> sf; +00654 <a class="code" href="a04558.html#a15">uint</a> freq; +00655 <a class="code" href="a04223.html#a589">buffer</a>->getFormat(sf, freq); +00656 +00657 <span class="comment">// hdrAdpcm.addSample(CFile::getFilename(sampleList[j]), freq, nbSample, );</span> +00658 hdr.addSample(CFile::getFilename(sampleList[j]), freq, nbSample, mono16Buffers[j].<a class="code" href="a04115.html#a94">size</a>()*2, adpcmBuffers[j].<a class="code" href="a04115.html#a94">size</a>()); +00659 <span class="keyword">delete</span> [] <a class="code" href="a04223.html#a637">data</a>; +00660 } +00661 +00662 <span class="comment">// write the sample bank (if any sample available)</span> +00663 <span class="keywordflow">if</span> (!hdr.Name.empty()) +00664 { +00665 string <a class="code" href="a05377.html#a2">filename</a> = sp+bankname+<span class="stringliteral">".sample_bank"</span>; +00666 <a class="code" href="a03011.html">COFile</a> sbf(filename); +00667 sbf.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(hdr); +00668 <span class="comment">// nldebug("Header seeking = %i", sbf.getPos());</span> +00669 <a class="code" href="a04199.html#a6">nlassert</a>(mono16Buffers.size() == adpcmBuffers.size()); +00670 <span class="keywordflow">for</span> (j=0; j<mono16Buffers.size(); ++j) +00671 { +00672 sbf.<a class="code" href="a03011.html#NLMISC_1_1COFilea12">serialBuffer</a>((uint8*)(&mono16Buffers[j][0]), mono16Buffers[j].<a class="code" href="a04115.html#a94">size</a>()*2); +00673 sbf.<a class="code" href="a03011.html#NLMISC_1_1COFilea12">serialBuffer</a>((uint8*)(&adpcmBuffers[j][0]), adpcmBuffers[j].<a class="code" href="a04115.html#a94">size</a>()); +00674 <span class="comment">// sbf.serialCont(mono16Buffers[j]);</span> +00675 <span class="comment">// sbf.serialCont(adpcmBuffers[j]);</span> +00676 } +00677 <span class="comment">// NB : the next commented line replaced by the next two line.</span> +00678 <span class="comment">// The first generate an access violation at the 64th insert !</span> +00679 <span class="comment">// bankFile.insert(bankFile.begin()+i, filename);</span> +00680 bankFile.insert(bankFile.begin()+i); +00681 bankFile[i] = <a class="code" href="a05377.html#a2">filename</a>; +00682 } +00683 } +00684 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bankname < CFile::getFilenameWithoutExtension(bankDir[i])) +00685 { +00686 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"Removing sample bank file [%s]"</span>, bankname.c_str()); +00687 <span class="comment">// remove an out of date bank file</span> +00688 CFile::deleteFile(bankFile[i]); +00689 bankFile.erase(bankFile.begin()+i); +00690 <span class="comment">// recheck on this index</span> +00691 --i; +00692 } +00693 <span class="keywordflow">else</span> +00694 { +00695 <span class="keywordtype">bool</span> upToDate = <span class="keyword">true</span>; +00696 <span class="comment">// check file list and date</span> +00697 <a class="code" href="a04199.html#a6">nlassert</a>(bankname == CFile::getFilenameWithoutExtension(bankFile[i])); +00698 +00699 <span class="comment">// read the sample bank file header.</span> +00700 <span class="keywordflow">try</span> +00701 { +00702 <a class="code" href="a02653.html">CIFile</a> sbf(bankFile[i]); +00703 TSampleBankHeader hdr; +00704 sbf.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(hdr); +00705 +00706 vector<string> sampleList; +00707 CPath::getPathContent(bankDir[i], <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">true</span>, sampleList); +00708 sort(sampleList.begin(), sampleList.end()); +00709 <span class="keywordflow">if</span> (sampleList.size() == hdr.Name.size()) +00710 { +00711 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> j=0; j<sampleList.size(); ++j) +00712 { +00713 <span class="comment">// check same filename</span> +00714 <span class="keywordflow">if</span> (CFile::getFilename(sampleList[j]) != hdr.Name[j]) +00715 { +00716 upToDate = <span class="keyword">false</span>; +00717 <span class="keywordflow">break</span>; +00718 } +00719 <span class="comment">// check modification date</span> +00720 <span class="keywordflow">if</span> (CFile::getFileModificationDate(sampleList[j]) >= CFile::getFileModificationDate(bankFile[i])) +00721 { +00722 upToDate = <span class="keyword">false</span>; +00723 <span class="keywordflow">break</span>; +00724 } +00725 } +00726 } +00727 } +00728 <span class="keywordflow">catch</span>(<a class="code" href="a02482.html">Exception</a> e) +00729 { +00730 upToDate = <span class="keyword">false</span>; +00731 } +00732 +00733 <span class="keywordflow">if</span> (!upToDate) +00734 { +00735 <a class="code" href="a04199.html#a1">nlinfo</a>(<span class="stringliteral">"Need to update bank file [%s]"</span>, bankname.c_str()); +00736 CFile::deleteFile(bankFile[i]); +00737 bankFile.erase(bankFile.begin()+i); +00738 <span class="comment">// recheck on this index</span> +00739 --i; +00740 } +00741 } +00742 } +00743 <span class="comment">// clear any out of date bank file </span> +00744 <span class="keywordflow">for</span> (; i<bankFile.size(); ++i) +00745 { +00746 CFile::deleteFile(bankFile[i]); +00747 } +00748 +00749 +00750 <span class="comment">/*</span> +00751 <span class="comment"> // clear the exisiting list file</span> +00752 <span class="comment"> {</span> +00753 <span class="comment"> vector<string> fileList;</span> +00754 <span class="comment"> CPath::getPathContent(sp, false, false, true, fileList);</span> +00755 <span class="comment"></span> +00756 <span class="comment"> for (uint i=0; i<fileList.size(); ++i)</span> +00757 <span class="comment"> {</span> +00758 <span class="comment"> if (fileList[i].find(".sample_bank_list") == fileList[i].size() - 17)</span> +00759 <span class="comment"> {</span> +00760 <span class="comment"> CFile::deleteFile(fileList[i]);</span> +00761 <span class="comment"> }</span> +00762 <span class="comment"> }</span> +00763 <span class="comment"> }</span> +00764 <span class="comment"></span> +00765 <span class="comment"> std::vector <std::string> dirList;</span> +00766 <span class="comment"> if(!sp.empty())</span> +00767 <span class="comment"> CPath::getPathContent(sp, false, true, false, dirList);</span> +00768 <span class="comment"></span> +00769 <span class="comment"> while (!dirList.empty())</span> +00770 <span class="comment"> {</span> +00771 <span class="comment"> nldebug("Generating sample bank list for %s", dirList.back().c_str());</span> +00772 <span class="comment"> std::vector<std::string> sampleList;</span> +00773 <span class="comment"> CPath::getPathContent(dirList.back(), true, false, true, sampleList);</span> +00774 <span class="comment"></span> +00775 <span class="comment"> for (uint i=0; i< sampleList.size(); ++i)</span> +00776 <span class="comment"> {</span> +00777 <span class="comment"> sampleList[i] = CFile::getFilename(sampleList[i]);</span> +00778 <span class="comment"> nldebug("+- Adding sample %s to bank", sampleList[i].c_str());</span> +00779 <span class="comment"> }</span> +00780 <span class="comment"></span> +00781 <span class="comment"> std::vector<std::string> temp;</span> +00782 <span class="comment"> NLMISC::explode(dirList.back(), "/", temp, true);</span> +00783 <span class="comment"> nlassert(!temp.empty());</span> +00784 <span class="comment"> std::string listName(temp.back());</span> +00785 <span class="comment"></span> +00786 <span class="comment"> COFile file(_SamplePath+listName+SampleBankListExt);</span> +00787 <span class="comment"> file.serialCont(sampleList);</span> +00788 <span class="comment"> dirList.pop_back();</span> +00789 <span class="comment"> }</span> +00790 <span class="comment">*/</span> +00791 <span class="comment">// update the searh path content</span> +00792 <span class="keywordtype">bool</span> compressed = CPath::isMemoryCompressed(); +00793 <span class="keywordflow">if</span> (!compressed) +00794 CPath::addSearchPath(_SamplePath); +00795 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserd0" doxytag="NLSOUND::CAudioMixerUser::CAudioMixerUser::tryToLoadSoundBank" ></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::CAudioMixerUser::CAudioMixerUser::tryToLoadSoundBank </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>sampleName</em> </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> + </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1UAudioMixerz2128_7" doxytag="NLSOUND::CAudioMixerUser::createAudioMixer" ></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="a02236.html">UAudioMixer</a> * NLSOUND::UAudioMixer::createAudioMixer </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> [static, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Create the audio mixer singleton and return a pointer to its instance. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l00103">103</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +<div class="fragment"><pre>00104 { +00105 NL_ALLOC_CONTEXT(NLSOUND_UAudioMixer); +00106 <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera7">CAudioMixerUser</a>(); +00107 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera8" doxytag="NLSOUND::CAudioMixerUser::createSource" ></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> * NLSOUND::CAudioMixerUser::createSource </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02246.html">TSoundId</a> </td> + <td class="mdname" nowrap> <em>id</em>, </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> = NULL, </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> = NULL, </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 class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03417.html">CSoundContext</a> * </td> + <td class="mdname" nowrap> <em>context</em> = 0</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Add a logical sound source (by sound id). To remove a source, just delete it. See createSource(const char*). +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixera0">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01576">1576</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00439">_AutoLoadSample</a>, <a class="el" href="a05466.html#l00575">_CreateCount</a>, <a class="el" href="a05466.html#l00573">_CreateTime</a>, <a class="el" href="a05466.html#l00478">_ListenPosition</a>, <a class="el" href="a05465.html#l00081">_profile</a>, <a class="el" href="a05465.html#l01528">NLSOUND::checkSound()</a>, <a class="el" href="a05646.html#l00240">count</a>, <a class="el" href="a05465.html#l01732">createSource()</a>, <a class="el" href="a05466.html#l00565">curTime()</a>, <a class="el" href="a06390.html#l00082">NLSOUND::CSimpleSource::getBuffer()</a>, <a class="el" href="a06388.html#l00093">NLSOUND::CSimpleSound::getBuffer()</a>, <a class="el" href="a06389.html#l00075">NLSOUND::CSimpleSound::getBuffername()</a>, <a class="el" href="a05611.html#l00135">NLSOUND::CContextSound::getContextSound()</a>, <a class="el" href="a06407.html#l00090">NLSOUND::CSound::getGain()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_1">NLSOUND::USource::getGain()</a>, <a class="el" href="a06407.html#l00092">NLSOUND::CSound::getPitch()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_2">NLSOUND::USource::getPitch()</a>, <a class="el" href="a05646.html#l00221">id</a>, <a class="el" href="a02298.html#NLSOUND_1_1IBuffera8">NLSOUND::IBuffer::isStereo()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06428.html#l00088">NLSOUND::CSourceCommon::set3DPositionVector()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_8">NLSOUND::USource::setGain()</a>, <a class="el" href="a03429.html#NLSOUND_1_1USourcez2139_9">NLSOUND::USource::setPitch()</a>, <a class="el" href="a06630.html#l00069">NLSOUND::TSoundId</a>, <a class="el" href="a06630.html#l00076">NLSOUND::TSpawnEndCallback</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>01577 { +01578 NL_ALLOC_CONTEXT(NLSOUND_UAudioMixer); +01579 <span class="preprocessor">#if NL_PROFILE_MIXER</span> +01580 <span class="preprocessor"></span> <a class="code" href="a05378.html#a243">TTicks</a> start = CTime::getPerformanceTime(); +01581 <span class="preprocessor">#endif</span> +01582 <span class="preprocessor"></span> +01583 <a class="code" href="a04042.html#a1">_profile</a>(( <span class="stringliteral">"AM: [%u]---------------------------------------------------------------"</span>, <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera10">curTime</a>() )); +01584 <a class="code" href="a04042.html#a1">_profile</a>(( <span class="stringliteral">"AM: CREATESOURCE: SOUND=%p, NAME=%s, TIME=%d"</span>, <span class="keywordtype">id</span>, <a class="code" href="a04223.html#a564">id</a>->getName().c_str(), <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera10">curTime</a>() )); +01585 <a class="code" href="a04042.html#a1">_profile</a>(( <span class="stringliteral">"AM: SOURCES: %d, PLAYING: %d, TRACKS: %d"</span>, getSourcesNumber(), getPlayingSourcesNumber(), getNumberAvailableTracks() )); +01586 +01587 <span class="keywordflow">if</span> ( <span class="keywordtype">id</span> == NULL ) +01588 { +01589 <a class="code" href="a04042.html#a1">_profile</a>((<span class="stringliteral">"AM: FAILED CREATESOURCE"</span>)); +01590 <span class="comment">// nldebug( "AM: Sound not created: invalid sound id" );</span> +01591 <span class="keywordflow">return</span> NULL; +01592 } +01593 +01594 USource *ret = NULL; +01595 +01596 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr0">_AutoLoadSample</a>) +01597 { +01598 <span class="keywordflow">if</span> (<span class="keywordtype">id</span>->getSoundType() == CSound::SOUND_SIMPLE) +01599 { +01600 CSimpleSound *ss = (CSimpleSound*)<span class="keywordtype">id</span>; +01601 <span class="keywordflow">if</span> (ss->getBuffer() == NULL) +01602 { +01603 <span class="keyword">const</span> string sampleName = CStringMapper::unmap(ss->getBuffername()) + <span class="stringliteral">".wav"</span>; +01604 +01605 tryToLoadSoundBank(sampleName); +01606 } +01607 } +01608 <span class="keywordflow">else</span> +01609 { +01610 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a577">count</a> = 0; +01611 retrySound: +01612 ++<a class="code" href="a04223.html#a577">count</a>; +01613 vector<pair<string, CSound*> > subsounds; +01614 <span class="keywordtype">id</span>->getSubSoundList(subsounds); +01615 vector<string> missingFiles; +01616 <span class="comment">// check the sound before anythink else</span> +01617 <span class="keywordtype">bool</span> invalid = !<a class="code" href="a05381.html#a70">checkSound</a>(<span class="keywordtype">id</span>, subsounds, missingFiles); +01618 +01619 <span class="keywordflow">if</span> (invalid) +01620 { +01621 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"The sound %s contain an infinite recursion !"</span>, CStringMapper::unmap(<a class="code" href="a04223.html#a564">id</a>->getName()).c_str()); +01622 <span class="keywordflow">return</span> NULL; +01623 } +01624 +01625 <span class="keywordflow">if</span> (!missingFiles.empty()<span class="comment">/* && count <= missingFiles.size()*/</span>) +01626 { +01627 <span class="comment">// try to load missing sample bank</span> +01628 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i<missingFiles.size(); ++i) +01629 { +01630 <span class="keywordflow">if</span> (missingFiles[i].find(<span class="stringliteral">" (sample)"</span>) != string::npos) +01631 { +01632 <span class="comment">// try to find the sample bank</span> +01633 string sample = missingFiles[i].substr(0, missingFiles[i].find(<span class="stringliteral">" (sample)"</span>)) + <span class="stringliteral">".wav"</span>; +01634 +01635 <span class="keywordflow">if</span> (tryToLoadSoundBank(sample)) +01636 <span class="keywordflow">goto</span> retrySound; +01637 } +01638 } +01639 } +01640 } +01641 } +01642 +01643 <span class="keywordflow">if</span> (<span class="keywordtype">id</span>->getSoundType() == CSound::SOUND_SIMPLE) +01644 { +01645 CSimpleSound *simpleSound = static_cast<CSimpleSound *>(<span class="keywordtype">id</span>); +01646 <span class="comment">// This is a simple sound</span> +01647 <span class="keywordflow">if</span> (simpleSound->getBuffer() == NULL) +01648 { +01649 <span class="keyword">static</span> std::set<std::string> warned; +01650 +01651 <span class="keyword">const</span> std::string &name = CStringMapper::unmap(simpleSound->getBuffername()); +01652 <span class="keywordflow">if</span> (warned.find(name) == warned.end()) +01653 { +01654 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"Can't create the sound '%s'"</span>, name.c_str()); +01655 warned.insert(name); +01656 } +01657 <span class="keywordflow">return</span> NULL; +01658 } +01659 +01660 <span class="comment">// Create source</span> +01661 CSimpleSource *source = <span class="keyword">new</span> CSimpleSource( simpleSound, spawn, cb, userParam, cluster); +01662 +01663 <span class="comment">// nldebug("Mixer : source %p created", source);</span> +01664 +01665 <span class="keywordflow">if</span> (source->getBuffer() != 0) +01666 { +01667 <span class="comment">// Link the position to the listener position if it'a stereo source</span> +01668 <span class="keywordflow">if</span> ( source->getBuffer()->isStereo() ) +01669 { +01670 source->set3DPositionVector( &_ListenPosition ); +01671 } +01672 } +01673 <span class="keywordflow">else</span> +01674 { +01675 <a class="code" href="a04199.html#a6">nlassert</a>(<span class="keyword">false</span>); <span class="comment">// FIXME</span> +01676 } +01677 ret = source; +01678 } +01679 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keywordtype">id</span>->getSoundType() == CSound::SOUND_COMPLEX) +01680 { +01681 CComplexSound *complexSound = static_cast<CComplexSound*>(<span class="keywordtype">id</span>); +01682 <span class="comment">// This is a pattern sound.</span> +01683 ret = <span class="keyword">new</span> CComplexSource(complexSound, spawn, cb, userParam, cluster); +01684 } +01685 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keywordtype">id</span>->getSoundType() == CSound::SOUND_BACKGROUND) +01686 { +01687 <span class="comment">// This is a background sound.</span> +01688 CBackgroundSound *bgSound = static_cast<CBackgroundSound *>(<span class="keywordtype">id</span>); +01689 ret = <span class="keyword">new</span> CBackgroundSource(bgSound, spawn, cb, userParam, cluster); +01690 } +01691 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keywordtype">id</span>->getSoundType() == CSound::SOUND_CONTEXT) +01692 { +01693 <span class="keyword">static</span> CSoundContext defaultContext; +01694 <span class="comment">// This is a context sound.</span> +01695 <span class="keywordflow">if</span> (context == 0) +01696 context = &defaultContext; +01697 +01698 CContextSound *ctxSound = static_cast<CContextSound *>(<span class="keywordtype">id</span>); +01699 CSound *sound = ctxSound->getContextSound(*context); +01700 <span class="keywordflow">if</span> (sound != 0) +01701 { +01702 ret = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera9">createSource</a>(sound, spawn, cb, userParam, cluster); +01703 <span class="comment">// Set the volume of the source according to the context volume</span> +01704 <span class="keywordflow">if</span> (ret != 0) +01705 { +01706 ret->setGain(ret->getGain() * ctxSound->getGain()); +01707 <span class="keywordtype">float</span> pitch = ret->getPitch() * ctxSound->getPitch(); +01708 ret->setPitch(pitch); +01709 } +01710 } +01711 <span class="keywordflow">else</span> +01712 ret = 0; +01713 } +01714 <span class="keywordflow">else</span> +01715 { +01716 <span class="comment">// nlassertex(false, ("Unknown sound class !"));</span> +01717 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"Unknow sound class : %u"</span>, <a class="code" href="a04223.html#a564">id</a>->getSoundType()); +01718 } +01719 +01720 <span class="preprocessor">#if NL_PROFILE_MIXER</span> +01721 <span class="preprocessor"></span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero1">_CreateTime</a> = CTime::ticksToSecond(CTime::getPerformanceTime() - start); +01722 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero0">_CreateCount</a>++; +01723 <span class="preprocessor">#endif</span> +01724 <span class="preprocessor"></span> +01725 <span class="comment">//nldebug( "AM: Source created" ); </span> +01726 <span class="keywordflow">return</span> ret; +01727 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera9" doxytag="NLSOUND::CAudioMixerUser::createSource" ></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> * NLSOUND::CAudioMixerUser::createSource </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> & </td> + <td class="mdname" nowrap> <em>name</em>, </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> = NULL, </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> = NULL, </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 class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03417.html">CSoundContext</a> * </td> + <td class="mdname" nowrap> <em>context</em> = 0</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Add a logical sound source (returns NULL if name not found). If spawn is true, the source will auto-delete after playing. If so, the return USource* pointer is valid only before the time when calling play() plus the duration of the sound. You can pass a callback function that will be called (if not NULL) just before deleting the spawned source. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixera1">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01732">1732</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05465.html#l01510">getSoundId()</a>, and <a class="el" href="a06630.html#l00076">NLSOUND::TSpawnEndCallback</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01576">createSource()</a>, <a class="el" href="a05593.html#l00577">NLSOUND::CComplexSource::onEvent()</a>, <a class="el" href="a05593.html#l00456">NLSOUND::CComplexSource::onUpdate()</a>, <a class="el" href="a05473.html#l00119">NLSOUND::CBackgroundSource::play()</a>, <a class="el" href="a05593.html#l00105">NLSOUND::CComplexSource::playStuf()</a>, and <a class="el" href="a05471.html#l00861">NLSOUND::CBackgroundSoundManager::updateBackgroundStatus()</a>. +<p> +<div class="fragment"><pre>01733 { +01734 <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera9">createSource</a>( <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera35">getSoundId</a>( name ), spawn, cb, userParam, cluster, context); +01735 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera10" doxytag="NLSOUND::CAudioMixerUser::curTime" ></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::CAudioMixerUser::curTime </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00565">565</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a06552.html#l00055">NLMISC::CTime::getLocalTime()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01576">createSource()</a>, and <a class="el" href="a05465.html#l00227">writeProfile()</a>. +<p> +<div class="fragment"><pre>00565 { <span class="keywordflow">return</span> (<a class="code" href="a04558.html#a11">uint32</a>) (<a class="code" href="a02142.html#NLMISC_1_1CTimee0">NLMISC::CTime::getLocalTime</a>() - <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero8">_StartTime</a>); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera11" doxytag="NLSOUND::CAudioMixerUser::decPlayingSource" ></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::CAudioMixerUser::decPlayingSource </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00320">320</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00549">_PlayingSources</a>. +<p> +<div class="fragment"><pre>00320 { --<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero5">_PlayingSources</a>; }; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera12" doxytag="NLSOUND::CAudioMixerUser::decPlayingSourceMuted" ></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::CAudioMixerUser::decPlayingSourceMuted </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00322">322</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00551">_PlayingSourcesMuted</a>. +<p> +<div class="fragment"><pre>00322 { --<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero6">_PlayingSourcesMuted</a>; }; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera13" doxytag="NLSOUND::CAudioMixerUser::displayDriverBench" ></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::CAudioMixerUser::displayDriverBench </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02813.html">NLMISC::CLog</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>log</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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2133_0">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02148">2148</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00462">_SoundDriver</a>, and <a class="el" href="a03419.html#NLSOUND_1_1ISoundDrivera5">NLSOUND::ISoundDriver::displayBench()</a>. +<p> +<div class="fragment"><pre>02149 { +02150 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>) +02151 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>->displayBench(log); +02152 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera14" doxytag="NLSOUND::CAudioMixerUser::enable" ></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::CAudioMixerUser::enable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>b</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> +Disables or reenables the sound. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixera2">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01073">1073</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +<div class="fragment"><pre>01074 { +01075 <span class="comment">// TODO : rewrite this method</span> +01076 +01077 <a class="code" href="a04199.html#a6">nlassert</a>(<span class="keyword">false</span>); +01078 <span class="comment">/* if ( b )</span> +01079 <span class="comment"> {</span> +01080 <span class="comment"> // Reenable</span> +01081 <span class="comment"> _NbTracks = _MaxNbTracks;</span> +01082 <span class="comment"> }</span> +01083 <span class="comment"> else</span> +01084 <span class="comment"> {</span> +01085 <span class="comment"> // Disable</span> +01086 <span class="comment"> uint i;</span> +01087 <span class="comment"> for ( i=0; i!=_NbTracks; i++ )</span> +01088 <span class="comment"> {</span> +01089 <span class="comment"> if ( _Tracks[i] && ! _Tracks[i]->isAvailable() )</span> +01090 <span class="comment"> {</span> +01091 <span class="comment"> _Tracks[i]->getSource()->leaveTrack();</span> +01092 <span class="comment">// nlassert(_PlayingSources.find(_Tracks[i]->getSource()) != _PlayingSources.end());</span> +01093 <span class="comment">// _PlayingSources.erase(_Tracks[i]->getSource());</span> +01094 <span class="comment"> }</span> +01095 <span class="comment"> }</span> +01096 <span class="comment"> _NbTracks = 0;</span> +01097 <span class="comment"> }</span> +01098 <span class="comment">*/</span> +01099 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera15" doxytag="NLSOUND::CAudioMixerUser::endDriverBench" ></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::CAudioMixerUser::endDriverBench </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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2133_1">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02142">2142</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00462">_SoundDriver</a>, and <a class="el" href="a03419.html#NLSOUND_1_1ISoundDrivera6">NLSOUND::ISoundDriver::endBench()</a>. +<p> +<div class="fragment"><pre>02143 { +02144 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>) +02145 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>->endBench(); +02146 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera16" doxytag="NLSOUND::CAudioMixerUser::freeTrack" ></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::CAudioMixerUser::freeTrack </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03540.html">CTrack</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>track</em> </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> + +<p> +Definition at line <a class="el" href="a05465.html#l01217">1217</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00446">_FreeTracks</a>, <a class="el" href="a05466.html#l00454">_ReserveUsage</a>, <a class="el" href="a06428.html#l00059">NLSOUND::CSourceCommon::getPriority()</a>, <a class="el" href="a06037.html#l00067">NLSOUND::CTrack::getSource()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06037.html#l00065">NLSOUND::CTrack::setSource()</a>. +<p> +<div class="fragment"><pre>01218 { +01219 <a class="code" href="a04199.html#a6">nlassert</a>(track != 0); +01220 <a class="code" href="a04199.html#a6">nlassert</a>(track->getSource() != 0); +01221 +01222 <span class="comment">// nldebug("Track %p free by source %p", track, track->getSource());</span> +01223 +01224 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr12">_ReserveUsage</a>[track->getSource()->getPriority()]--; +01225 track->setSource(0); +01226 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.push_back(track); +01227 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera17" doxytag="NLSOUND::CAudioMixerUser::getAvailableTracksCount" ></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> NLSOUND::CAudioMixerUser::getAvailableTracksCount </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the number of available tracks. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2130_0">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01873">1873</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00446">_FreeTracks</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00227">writeProfile()</a>. +<p> +<div class="fragment"><pre>01874 { +01875 <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.size(); +01876 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera18" doxytag="NLSOUND::CAudioMixerUser::getBackgroundFilterFades" ></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="a03920.html">UAudioMixer::TBackgroundFilterFades</a> & NLSOUND::CAudioMixerUser::getBackgroundFilterFades </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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_0">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00829">829</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, and <a class="el" href="a05471.html#l00087">NLSOUND::CBackgroundSoundManager::getBackgroundFilterFades()</a>. +<p> +<div class="fragment"><pre>00830 { +00831 <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->getBackgroundFilterFades(); +00832 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera19" doxytag="NLSOUND::CAudioMixerUser::getBackgroundFlagName" ></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 std::string & NLSOUND::CAudioMixerUser::getBackgroundFlagName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>flagIndex</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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_1">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00808">808</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00467">_BackgroundFilterNames</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00809 { +00810 <span class="keyword">static</span> std::string bad(<span class="stringliteral">""</span>); +00811 <span class="keywordflow">if</span> (flagIndex < TBackgroundFlags::NB_BACKGROUND_FLAGS) +00812 <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr1">_BackgroundFilterNames</a>[flagIndex]; +00813 <span class="keywordflow">else</span> +00814 <span class="keywordflow">return</span> bad; +00815 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera20" doxytag="NLSOUND::CAudioMixerUser::getBackgroundFlags" ></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="a03921.html">UAudioMixer::TBackgroundFlags</a> & NLSOUND::CAudioMixerUser::getBackgroundFlags </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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_2">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00825">825</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, and <a class="el" href="a05471.html#l00076">NLSOUND::CBackgroundSoundManager::getBackgroundFlags()</a>. +<p> +Referenced by <a class="el" href="a06346.html#l00228">NLSOUND::CSampleBank::load()</a>. +<p> +<div class="fragment"><pre>00826 { +00827 <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->getBackgroundFlags(); +00828 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera21" doxytag="NLSOUND::CAudioMixerUser::getBackgroundFlagShortName" ></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 std::string & NLSOUND::CAudioMixerUser::getBackgroundFlagShortName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>flagIndex</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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_3">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00816">816</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00469">_BackgroundFilterShortNames</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00817 { +00818 <span class="keyword">static</span> std::string bad(<span class="stringliteral">""</span>); +00819 <span class="keywordflow">if</span> (flagIndex < TBackgroundFlags::NB_BACKGROUND_FLAGS) +00820 <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr2">_BackgroundFilterShortNames</a>[flagIndex]; +00821 <span class="keywordflow">else</span> +00822 <span class="keywordflow">return</span> bad; +00823 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera22" doxytag="NLSOUND::CAudioMixerUser::getBackgroundSoundManager" ></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="a02248.html">CBackgroundSoundManager</a>* NLSOUND::CAudioMixerUser::getBackgroundSoundManager </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00279">279</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>. +<p> +Referenced by <a class="el" href="a05473.html#l00119">NLSOUND::CBackgroundSource::play()</a>. +<p> +<div class="fragment"><pre>00279 { <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera23" doxytag="NLSOUND::CAudioMixerUser::getClusteredSound" ></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="a02363.html">CClusteredSound</a>* NLSOUND::CAudioMixerUser::getClusteredSound </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00295">295</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00472">_ClusteredSound</a>. +<p> +Referenced by <a class="el" href="a05471.html#l00861">NLSOUND::CBackgroundSoundManager::updateBackgroundStatus()</a>. +<p> +<div class="fragment"><pre>00295 { <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">_ClusteredSound</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera24" doxytag="NLSOUND::CAudioMixerUser::getFreeTrack" ></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="a03540.html">CTrack</a> * NLSOUND::CAudioMixerUser::getFreeTrack </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03395.html">CSimpleSource</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>source</em> </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> + +<p> +Definition at line <a class="el" href="a05465.html#l01152">1152</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00446">_FreeTracks</a>, <a class="el" href="a05466.html#l00478">_ListenPosition</a>, <a class="el" href="a05466.html#l00456">_LowWaterMark</a>, <a class="el" href="a05466.html#l00557">_NbTracks</a>, <a class="el" href="a05466.html#l00452">_PriorityReserve</a>, <a class="el" href="a05466.html#l00454">_ReserveUsage</a>, <a class="el" href="a05466.html#l00449">_SourceWaitingForPlay</a>, <a class="el" href="a06407.html#l00110">NLSOUND::CSound::getMaxDistance()</a>, <a class="el" href="a06389.html#l00067">NLSOUND::CSimpleSound::getMinDistance()</a>, <a class="el" href="a06427.html#l00141">NLSOUND::CSourceCommon::getPos()</a>, <a class="el" href="a06428.html#l00059">NLSOUND::CSourceCommon::getPriority()</a>, <a class="el" href="a06390.html#l00066">NLSOUND::CSimpleSource::getSimpleSound()</a>, <a class="el" href="a06037.html#l00067">NLSOUND::CTrack::getSource()</a>, <a class="el" href="a05381.html#a82a64">NLSOUND::HighestPri</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06037.html#l00065">NLSOUND::CTrack::setSource()</a>, <a class="el" href="a06390.html#l00217">NLSOUND::CSimpleSource::stop()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06390.html#l00126">NLSOUND::CSimpleSource::play()</a>. +<p> +<div class="fragment"><pre>01153 { +01154 <span class="comment">// nldebug("There are %d free tracks", _FreeTracks.size() );</span> +01155 <span class="comment">// at least some track free ?</span> +01156 <span class="keywordflow">if</span> (!<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.empty()) +01157 { +01158 <span class="comment">// under the low water mark or under the reserve</span> +01159 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.size() > <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr9">_LowWaterMark</a> +01160 || <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr12">_ReserveUsage</a>[source->getPriority()] < <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr11">_PriorityReserve</a>[source->getPriority()] ) +01161 { +01162 <span class="comment">// non discardable track or not too many waiting source</span> +01163 <span class="keywordflow">if</span> (source->getPriority() == <a class="code" href="a05381.html#a82a64">HighestPri</a> +01164 || <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.size() > <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">_SourceWaitingForPlay</a>.size()) +01165 { +01166 CTrack *ret = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.back(); +01167 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.pop_back(); +01168 ret->setSource(source); +01169 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr12">_ReserveUsage</a>[source->getPriority()]++; +01170 <span class="comment">// nldebug("Track %p assign to source %p", ret, ret->getSource());</span> +01171 <span class="keywordflow">return</span> ret; +01172 } +01173 } +01174 } +01175 <span class="comment">// try to find a track with a source cuttable</span> +01176 { +01177 <span class="keywordtype">float</span> d1, d2, t1, t2; +01178 d1 = (source->getPos() - <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr8">_ListenPosition</a>).norm(); +01179 t1 = max(0.0f, 1-((d1-source->getSimpleSound()->getMinDistance()) / (source->getSimpleSound()->getMaxDistance() - source->getSimpleSound()->getMinDistance()))); +01180 +01181 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i<<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a>; ++i) +01182 { +01183 CSimpleSource *src2 = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]->getSource(); +01184 <span class="keywordflow">if</span> (src2 != 0) +01185 { +01186 d2 = (src2->getPos() - <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr8">_ListenPosition</a>).norm(); +01187 t2 = max(0.0f, 1-((d2-src2->getSimpleSound()->getMinDistance()) / (src2->getSimpleSound()->getMaxDistance() - src2->getSimpleSound()->getMinDistance()))); +01188 +01189 <span class="keyword">const</span> <span class="keywordtype">float</span> tfactor = 1.3f; +01190 <span class="keywordflow">if</span> (t1 > t2 * tfactor) +01191 <span class="comment">// if (d1 < d2)</span> +01192 { +01193 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"Cutting source %p with source %p (%f > %f*%f)"</span>, src2, source, t1, tfactor, t2); +01194 <span class="comment">// on peut cuter cette voie !</span> +01195 src2->stop(); +01196 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.empty()) +01197 { +01198 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"No free track after cutting a playing sound source !"</span>); +01199 } +01200 <span class="keywordflow">else</span> +01201 { +01202 CTrack *ret = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.back(); +01203 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.pop_back(); +01204 ret->setSource(source); +01205 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr12">_ReserveUsage</a>[source->getPriority()]++; +01206 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"Track %p assign to source %p"</span>, ret, ret->getSource()); +01207 <span class="keywordflow">return</span> ret; +01208 } +01209 } +01210 } +01211 } +01212 } +01213 +01214 <span class="keywordflow">return</span> 0; +01215 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserb0" doxytag="NLSOUND::CAudioMixerUser::getFreeTracks" ></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::CAudioMixerUser::getFreeTracks </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>nb</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03540.html">CTrack</a> ** </td> + <td class="mdname" nowrap> <em>tracks</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [protected]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Returns nb available tracks (or NULL). +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l01110">1110</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00446">_FreeTracks</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>01111 { +01112 std::vector<CTrack*>::iterator first(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.begin()), last(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.end()); +01113 <span class="keywordflow">for</span> (nb =0; first != last; ++first, ++nb) +01114 { +01115 tracks[nb] = *first; +01116 } +01117 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera25" doxytag="NLSOUND::CAudioMixerUser::getListener" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual <a class="el" href="a03933.html">UListener</a>* NLSOUND::CAudioMixerUser::getListener </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the listener interface. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixera3">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05466.html#l00229">229</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00475">_Listener</a>. +<p> +Referenced by <a class="el" href="a05565.html#l00270">NLSOUND::CClusteredSound::update()</a>, and <a class="el" href="a05471.html#l00861">NLSOUND::CBackgroundSoundManager::updateBackgroundStatus()</a>. +<p> +<div class="fragment"><pre>00229 { <span class="keywordflow">return</span> &<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr7">_Listener</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera26" doxytag="NLSOUND::CAudioMixerUser::getListenPosVector" ></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::CAudioMixerUser::getListenPosVector </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]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the listen pos vector. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00262">262</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00478">_ListenPosition</a>. +<p> +Referenced by <a class="el" href="a06390.html#l00126">NLSOUND::CSimpleSource::play()</a>. +<p> +<div class="fragment"><pre>00262 { <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr8">_ListenPosition</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera27" doxytag="NLSOUND::CAudioMixerUser::getLoadedSampleBankInfo" ></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::CAudioMixerUser::getLoadedSampleBankInfo </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< std::pair< std::string, <a class="el" href="a04558.html#a15">uint</a> > > & </td> + <td class="mdname1" valign="top" nowrap> <em>result</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> +Return a list of loaded sample bank with theire size. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2129_0">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01976">1976</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +<div class="fragment"><pre>01977 { +01978 CSampleBank::getLoadedSampleBankInfo(result); +01979 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera28" doxytag="NLSOUND::CAudioMixerUser::getLoadedSampleSize" ></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::CAudioMixerUser::getLoadedSampleSize </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 total size in byte of loaded samples. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2129_1">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01971">1971</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>01972 { +01973 <span class="keywordflow">return</span> CSampleBank::getTotalByteSize(); +01974 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera29" doxytag="NLSOUND::CAudioMixerUser::getMutedPlayingSourcesCount" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual <a class="el" href="a04558.html#a15">uint</a> NLSOUND::CAudioMixerUser::getMutedPlayingSourcesCount </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the number muted playing source. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2130_1">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05466.html#l00251">251</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00551">_PlayingSourcesMuted</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00251 { <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero6">_PlayingSourcesMuted</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera30" doxytag="NLSOUND::CAudioMixerUser::getPackedSheetPath" ></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::string& NLSOUND::CAudioMixerUser::getPackedSheetPath </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00275">275</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00483">_PackedSheetPath</a>. +<p> +Referenced by <a class="el" href="a05471.html#l00618">NLSOUND::CBackgroundSoundManager::load()</a>. +<p> +<div class="fragment"><pre>00275 {<span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr10">_PackedSheetPath</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera31" doxytag="NLSOUND::CAudioMixerUser::getPackedSheetUpdate" ></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::CAudioMixerUser::getPackedSheetUpdate </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00276">276</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00485">_UpdatePackedSheet</a>. +<p> +Referenced by <a class="el" href="a06346.html#l00228">NLSOUND::CSampleBank::load()</a>, and <a class="el" href="a05471.html#l00618">NLSOUND::CBackgroundSoundManager::load()</a>. +<p> +<div class="fragment"><pre>00276 {<span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr16">_UpdatePackedSheet</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserb1" doxytag="NLSOUND::CAudioMixerUser::getPlayingSoundsPos" ></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::CAudioMixerUser::getPlayingSoundsPos </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname" nowrap> <em>virtualPos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< std::pair< bool, <a class="el" href="a03128.html">NLMISC::CVector</a> > > & </td> + <td class="mdname" nowrap> <em>pos</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [protected, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Fill a vector of position and mute flag for all playing sound source. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2130_2">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01230">1230</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00546">_Sources</a>, <a class="el" href="a06427.html#l00141">NLSOUND::CSourceCommon::getPos()</a>, <a class="el" href="a06391.html#l00129">NLSOUND::CSimpleSource::getTrack()</a>, <a class="el" href="a02254.html#NLSOUND_1_1CSourceCommona14">NLSOUND::CSourceCommon::getType()</a>, <a class="el" href="a06390.html#l00103">NLSOUND::CSimpleSource::getVirtualPos()</a>, and <a class="el" href="a06390.html#l00381">NLSOUND::CSimpleSource::isPlaying()</a>. +<p> +<div class="fragment"><pre>01231 { +01232 <span class="keywordtype">int</span> nbplay = 0; +01233 <span class="keywordtype">int</span> nbmute = 0; +01234 <span class="keywordtype">int</span> nbsrc = 0; +01235 +01236 TSourceContainer::iterator first(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.begin()), last(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.end()); +01237 <span class="keywordflow">for</span> (; first != last; ++first) +01238 { +01239 CSourceCommon *ps = *first; +01240 <span class="keywordflow">if</span> (ps->getType() == CSourceCommon::SOURCE_SIMPLE) +01241 { +01242 CSimpleSource *source = static_cast<CSimpleSource*>(*first); +01243 nbsrc++; +01244 +01245 <span class="keywordflow">if</span> (source->isPlaying()) +01246 { +01247 <span class="keywordflow">if</span> (virtualPos) +01248 pos.push_back(make_pair(source->getTrack() == 0, source->getVirtualPos())); +01249 <span class="keywordflow">else</span> +01250 pos.push_back(make_pair(source->getTrack() == 0, source->getPos())); +01251 +01252 <span class="keywordflow">if</span> (source->getTrack() == 0) +01253 nbmute++; +01254 <span class="keywordflow">else</span> +01255 { +01256 <span class="comment">// nldebug ("Source %p playing on track %p", source, source->getTrack());</span> +01257 nbplay ++; +01258 } +01259 } +01260 } +01261 } +01262 +01263 <span class="comment">// nldebug("Total source : %d, playing : %d, muted : %d", nbsrc, nbplay, nbmute);</span> +01264 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera32" doxytag="NLSOUND::CAudioMixerUser::getPlayingSourcesCount" ></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> NLSOUND::CAudioMixerUser::getPlayingSourcesCount </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the number of playing sources (slow). +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2130_3">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01866">1866</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00549">_PlayingSources</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00227">writeProfile()</a>. +<p> +<div class="fragment"><pre>01867 { +01868 <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero5">_PlayingSources</a>; +01869 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera33" doxytag="NLSOUND::CAudioMixerUser::getPolyphony" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual <a class="el" href="a04558.html#a15">uint</a> NLSOUND::CAudioMixerUser::getPolyphony </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the number of mixing tracks (voices). +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2130_4">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05466.html#l00241">241</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00557">_NbTracks</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00241 { <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera34" doxytag="NLSOUND::CAudioMixerUser::getSoundDriver" ></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="a03419.html">ISoundDriver</a> * NLSOUND::CAudioMixerUser::getSoundDriver </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> +Return the sound driver. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l01103">1103</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00462">_SoundDriver</a>. +<p> +Referenced by <a class="el" href="a05459.html#l00150">NLSOUND::CAsyncFileManagerSound::CLoadWavFile::run()</a>. +<p> +<div class="fragment"><pre>01104 { +01105 <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>; +01106 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera35" doxytag="NLSOUND::CAudioMixerUser::getSoundId" ></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::CAudioMixerUser::getSoundId </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>name</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 a TSoundId from a name (returns NULL if not found). +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixera4">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01510">1510</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a06630.html#l00069">NLSOUND::TSoundId</a>. +<p> +Referenced by <a class="el" href="a05471.html#l00093">NLSOUND::CBackgroundSoundManager::addSound()</a>, <a class="el" href="a05465.html#l01732">createSource()</a>, <a class="el" href="a05591.html#l00056">NLSOUND::CComplexSound::getDuration()</a>, <a class="el" href="a05469.html#l00121">NLSOUND::CBackgroundSound::getDuration()</a>, <a class="el" href="a05591.html#l00177">NLSOUND::CComplexSound::getMaxDistance()</a>, <a class="el" href="a05469.html#l00154">NLSOUND::CBackgroundSound::getMaxDistance()</a>, <a class="el" href="a05591.html#l00044">NLSOUND::CComplexSound::getSubSoundList()</a>, <a class="el" href="a05469.html#l00143">NLSOUND::CBackgroundSound::getSubSoundList()</a>, <a class="el" href="a05465.html#l00895">initUserVar()</a>, <a class="el" href="a05593.html#l00577">NLSOUND::CComplexSource::onEvent()</a>, <a class="el" href="a05593.html#l00456">NLSOUND::CComplexSource::onUpdate()</a>, <a class="el" href="a05593.html#l00105">NLSOUND::CComplexSource::playStuf()</a>, and <a class="el" href="a05471.html#l01462">NLSOUND::CBackgroundSoundManager::TSoundData::serial()</a>. +<p> +<div class="fragment"><pre>01511 { +01512 <span class="keywordflow">return</span> CSoundBank::instance()->getSound(name); +01513 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera36" doxytag="NLSOUND::CAudioMixerUser::getSoundNames" ></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::CAudioMixerUser::getSoundNames </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> > & </td> + <td class="mdname1" valign="top" nowrap> <em>names</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the names of the sounds (call this method after loadSounds()). +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2130_5">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01858">1858</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +<div class="fragment"><pre>01859 { +01860 CSoundBank::instance()->getNames(names); +01861 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera37" doxytag="NLSOUND::CAudioMixerUser::getSourcesInstanceCount" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> virtual <a class="el" href="a04558.html#a15">uint</a> NLSOUND::CAudioMixerUser::getSourcesInstanceCount </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the number of sources instance. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2130_6">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05466.html#l00243">243</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00546">_Sources</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00243 { <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.size(); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera38" doxytag="NLSOUND::CAudioMixerUser::getSourcesStats" ></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"> string NLSOUND::CAudioMixerUser::getSourcesStats </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return a string showing the playing sources (slow). +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2130_7">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01887">1887</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00546">_Sources</a>, and <a class="el" href="a05646.html#l00977">s</a>. +<p> +<div class="fragment"><pre>01888 { +01889 <span class="comment">// TODO : rewrite log output</span> +01890 +01891 string <a class="code" href="a04223.html#a626">s</a>; +01892 TSourceContainer::iterator ips; +01893 <span class="keywordflow">for</span> ( ips=<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.begin(); ips!=<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.end(); ++ips ) +01894 { +01895 <span class="keywordflow">if</span> ( (*ips)->isPlaying() ) +01896 { +01897 <span class="comment">// char line [80];</span> +01898 +01899 <span class="comment">/* nlassert( (*ips)->getSound() && (*ips)->getSimpleSound()->getBuffer() );</span> +01900 <span class="comment"> smprintf( line, 80, "%s: %u%% %s %s",</span> +01901 <span class="comment"> (*ips)->getSound()->getName().c_str(),</span> +01902 <span class="comment"> (uint32)((*ips)->getGain()*100.0f),</span> +01903 <span class="comment"> (*ips)->getBuffer()->isStereo()?"ST":"MO",</span> +01904 <span class="comment"> PriToCStr[(*ips)->getPriority()] );</span> +01905 <span class="comment"> s += string(line) + "\n";</span> +01906 <span class="comment">*/</span> } +01907 } +01908 <span class="keywordflow">return</span> <a class="code" href="a04223.html#a626">s</a>; +01909 +01910 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera39" doxytag="NLSOUND::CAudioMixerUser::getUsedTracksCount" ></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> NLSOUND::CAudioMixerUser::getUsedTracksCount </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the number of used tracks. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2130_8">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01878">1878</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00446">_FreeTracks</a>, <a class="el" href="a05466.html#l00557">_NbTracks</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00227">writeProfile()</a>. +<p> +<div class="fragment"><pre>01879 { +01880 <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a> - <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.size(); +01881 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera40" doxytag="NLSOUND::CAudioMixerUser::getUserVar" ></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::CAudioMixerUser::getUserVar </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05378.html#a236">NLMISC::TStringId</a> </td> + <td class="mdname1" valign="top" nowrap> <em>varName</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> +Return the current value of a user var. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2132_0">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01006">1006</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00435">_UserVarControls</a>. +<p> +<div class="fragment"><pre>01007 { +01008 TUserVarControlsContainer::iterator it(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.find(varName)); +01009 <span class="keywordflow">if</span> (it != <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.end()) +01010 { +01011 <span class="keywordflow">return</span> it->second.Value; +01012 } +01013 <span class="comment">// return a default value.</span> +01014 <span class="keywordflow">return</span> 1.0f; +01015 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera41" doxytag="NLSOUND::CAudioMixerUser::incPlayingSource" ></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::CAudioMixerUser::incPlayingSource </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00319">319</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00549">_PlayingSources</a>. +<p> +<div class="fragment"><pre>00319 { ++<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero5">_PlayingSources</a>; }; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera42" doxytag="NLSOUND::CAudioMixerUser::incPlayingSourceMuted" ></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::CAudioMixerUser::incPlayingSourceMuted </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00321">321</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00551">_PlayingSourcesMuted</a>. +<p> +Referenced by <a class="el" href="a06390.html#l00126">NLSOUND::CSimpleSource::play()</a>. +<p> +<div class="fragment"><pre>00321 { ++<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero6">_PlayingSourcesMuted</a>; }; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera43" doxytag="NLSOUND::CAudioMixerUser::init" ></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::CAudioMixerUser::init </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>maxTrack</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>useEax</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>useADPCM</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03873.html">NLMISC::IProgressCallback</a> * </td> + <td class="mdname" nowrap> <em>progressCallBack</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>autoLoadSample</em> = false</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Initialization<p> +In case of failure, can throw one of these <a class="el" href="a03814.html">ESoundDriver</a> (Exception) objects: <a class="el" href="a03819.html">ESoundDriverNotFound</a>, <a class="el" href="a03816.html">ESoundDriverCorrupted</a>, <a class="el" href="a03821.html">ESoundDriverOldVersion</a>, <a class="el" href="a03822.html">ESoundDriverUnknownVersion</a>.<p> +The sources will be auto-balanced every "balance_period" calls to <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera77">update()</a> (set 0 for "never auto-balance") +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2128_0">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00358">358</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00439">_AutoLoadSample</a>, <a class="el" href="a05466.html#l00467">_BackgroundFilterNames</a>, <a class="el" href="a05466.html#l00469">_BackgroundFilterShortNames</a>, <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, <a class="el" href="a05466.html#l00446">_FreeTracks</a>, <a class="el" href="a05466.html#l00475">_Listener</a>, <a class="el" href="a05466.html#l00456">_LowWaterMark</a>, <a class="el" href="a05466.html#l00559">_MaxNbTracks</a>, <a class="el" href="a05466.html#l00557">_NbTracks</a>, <a class="el" href="a05466.html#l00452">_PriorityReserve</a>, <a class="el" href="a05465.html#l00081">_profile</a>, <a class="el" href="a05466.html#l00454">_ReserveUsage</a>, <a class="el" href="a05466.html#l00462">_SoundDriver</a>, <a class="el" href="a05466.html#l00485">_UpdatePackedSheet</a>, <a class="el" href="a05466.html#l00441">_UseADPCM</a>, <a class="el" href="a05466.html#l00443">_UseEax</a>, <a class="el" href="a05465.html#l00560">buildSampleBankList()</a>, <a class="el" href="a05730.html#l00053">NLGEORGES::UFormLoader::createLoader()</a>, <a class="el" href="a02551.html#NLGEORGES_1_1UFormElma1">NLGEORGES::UFormElm::getArrayNode()</a>, <a class="el" href="a02551.html#NLGEORGES_1_1UFormElma3">NLGEORGES::UFormElm::getArraySize()</a>, <a class="el" href="a02551.html#NLGEORGES_1_1UFormElma14">NLGEORGES::UFormElm::getArrayValue()</a>, <a class="el" href="a02551.html#NLGEORGES_1_1UFormElma17">NLGEORGES::UFormElm::getNodeByName()</a>, <a class="el" href="a02551.html#NLGEORGES_1_1UFormElma44">NLGEORGES::UFormElm::getValueByName()</a>, <a class="el" href="a05381.html#a82a64">NLSOUND::HighestPri</a>, <a class="el" href="a05381.html#a82a65">NLSOUND::HighPri</a>, <a class="el" href="a06037.html#l00053">NLSOUND::CTrack::init()</a>, <a class="el" href="a05922.html#l00056">NLSOUND::CListenerUser::init()</a>, <a class="el" href="a05465.html#l00895">initUserVar()</a>, <a class="el" href="a02559.html#NLGEORGES_1_1UFormLoadera0">NLGEORGES::UFormLoader::loadForm()</a>, <a class="el" href="a05465.html#l01803">loadSampleBank()</a>, <a class="el" href="a06167.html#l00320">NLMISC::CPath::lookup()</a>, <a class="el" href="a05381.html#a82a67">NLSOUND::LowPri</a>, <a class="el" href="a05466.html#l00072">NLSOUND::MAX_TRACKS</a>, <a class="el" href="a05381.html#a82a66">NLSOUND::MidPri</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05381.html#a82a68">NLSOUND::NbSoundPriorities</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00111">nlinfo</a>, <a class="el" href="a06209.html#l00058">NLMISC::IProgressCallback::progress()</a>, <a class="el" href="a05730.html#l00060">NLGEORGES::UFormLoader::releaseLoader()</a>, <a class="el" href="a05465.html#l02096">setBackgroundFilterFades()</a>, <a class="el" href="a05465.html#l02091">setBackgroundFlags()</a>, <a class="el" href="a05465.html#l00219">setLowWaterMark()</a>, <a class="el" href="a05465.html#l00214">setPriorityReserve()</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00359 { +00360 NL_ALLOC_CONTEXT(NLSOUND_UAudioMixer); +00361 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"AM: Init..."</span> ); +00362 +00363 <a class="code" href="a04042.html#a1">_profile</a>(( <span class="stringliteral">"AM: ---------------------------------------------------------------"</span> )); +00364 <a class="code" href="a04042.html#a1">_profile</a>(( <span class="stringliteral">"AM: DRIVER: %s"</span>, NLSOUND_DLL_NAME )); +00365 +00366 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr18">_UseEax</a> = useEax; +00367 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr17">_UseADPCM</a> = useADPCM; +00368 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr0">_AutoLoadSample</a> = autoLoadSample; +00369 +00370 <span class="comment">// Init sound driver</span> +00371 <span class="keywordflow">try</span> +00372 { +00373 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a> = ISoundDriver::createDriver(useEax, <span class="keyword">this</span>); +00374 } +00375 <span class="keywordflow">catch</span>(...) +00376 { +00377 <span class="comment">// TODO : is this logic to auto destruct this object in case of failing to create the driver ?</span> +00378 <span class="keyword">delete</span> <span class="keyword">this</span>; +00379 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserv0">_Instance</a> = NULL; +00380 <span class="keywordflow">throw</span>; +00381 } +00382 +00383 <a class="code" href="a04558.html#a15">uint</a> i; +00384 +00385 maxTrack = <a class="code" href="a04061.html#a0">min</a>(maxTrack, MAX_TRACKS); +00386 +00387 <span class="comment">// Init registrable classes</span> +00388 <span class="keyword">static</span> <span class="keywordtype">bool</span> initialized = <span class="keyword">false</span>; +00389 <span class="keywordflow">if</span> (!initialized) +00390 { +00391 initialized = <span class="keyword">true</span>; +00392 } +00393 +00394 <span class="comment">// Init listener</span> +00395 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr7">_Listener</a>.init( _SoundDriver ); +00396 +00397 <span class="comment">// Init tracks (physical sources)</span> +00398 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a> = maxTrack; <span class="comment">// could be chosen by the user, or according to the capabilities of the sound card</span> +00399 <span class="keywordflow">for</span> ( i=0; i<maxTrack; i++ ) +00400 { +00401 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i] = NULL; +00402 } +00403 <span class="keywordflow">try</span> +00404 { +00405 <span class="keywordflow">for</span> ( i=0; i!=<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a>; i++ ) +00406 { +00407 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i] = <span class="keyword">new</span> CTrack(); +00408 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]->init( _SoundDriver ); +00409 <span class="comment">// insert in front because the last inserted wan be sofware buffer...</span> +00410 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.insert(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.begin(), <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]); +00411 } +00412 } +00413 <span class="keywordflow">catch</span> ( ESoundDriver & ) +00414 { +00415 <span class="keyword">delete</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]; +00416 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i] = 0; +00417 <span class="comment">// If the source generation failed, keep only the generated number of sources</span> +00418 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a> = i; +00419 } +00420 +00421 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero3">_MaxNbTracks</a> = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a>; +00422 +00423 <span class="comment">// Init the reserve stuff.</span> +00424 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr9">_LowWaterMark</a> = 0; +00425 <span class="keywordflow">for</span> (i=0; i<<a class="code" href="a05381.html#a82a68">NbSoundPriorities</a>; ++i) +00426 { +00427 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr11">_PriorityReserve</a>[i] = _NbTracks; +00428 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr12">_ReserveUsage</a>[i] = 0; +00429 } +00430 +00431 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero8">_StartTime</a> = CTime::getLocalTime(); +00432 +00433 <span class="comment">// if needed (update == true), build the sample bank list</span> +00434 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr16">_UpdatePackedSheet</a>) +00435 { +00436 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera6">buildSampleBankList</a>(); +00437 } +00438 +00439 +00440 +00441 <span class="comment">// Create the background sound manager.</span> +00442 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a> = <span class="keyword">new</span> CBackgroundSoundManager(); +00443 +00444 <span class="comment">// Load the sound bank singleton</span> +00445 CSoundBank::instance()->load(); +00446 <a class="code" href="a04199.html#a1">nlinfo</a>( <span class="stringliteral">"Initialized audio mixer with %u voices, %s and %s."</span>, +00447 _NbTracks, +00448 useEax ? <span class="stringliteral">"with EAX support"</span> : <span class="stringliteral">"WITHOUT EAX"</span>, +00449 useADPCM ? <span class="stringliteral">"with ADPCM sample source"</span> : <span class="stringliteral">"with 16 bits PCM sample source"</span>); +00450 +00451 <span class="comment">// try to load default configuration from george sheet</span> +00452 +00453 <a class="code" href="a02559.html">NLGEORGES::UFormLoader</a> *formLoader = NULL; +00454 +00455 <span class="keywordflow">try</span> +00456 { +00457 std::string mixerConfigFile = <a class="code" href="a03072.html#NLMISC_1_1CPathe15">NLMISC::CPath::lookup</a>(<span class="stringliteral">"default.mixer_config"</span>, <span class="keyword">false</span>); +00458 <span class="keywordflow">if</span> (!mixerConfigFile.empty()) +00459 { +00460 formLoader = <a class="code" href="a02559.html#NLGEORGES_1_1UFormLoadere0">NLGEORGES::UFormLoader::createLoader</a>(); +00461 +00462 <a class="code" href="a03408.html">NLMISC::CSmartPtr<NLGEORGES::UForm></a> form; +00463 form = formLoader-><a class="code" href="a02559.html#NLGEORGES_1_1UFormLoadera0">loadForm</a>(mixerConfigFile.c_str()); +00464 +00465 <a class="code" href="a02551.html">NLGEORGES::UFormElm</a> &root = form->getRootNode(); +00466 +00467 +00468 <span class="comment">// read track reserve</span> +00469 <a class="code" href="a04558.html#a11">uint32</a> highestRes, highRes, midRes, lowRes; +00470 root.<a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(highestRes, <span class="stringliteral">".HighestPriorityReserve"</span>); +00471 root.<a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(highRes, <span class="stringliteral">".HighPriorityReserve"</span>); +00472 root.<a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(midRes, <span class="stringliteral">".MidPriorityReserve"</span>); +00473 root.<a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(lowRes, <span class="stringliteral">".LowPriorityReserve"</span>); +00474 +00475 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera69">setPriorityReserve</a>(HighestPri, highestRes); +00476 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera69">setPriorityReserve</a>(HighPri, highRes); +00477 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera69">setPriorityReserve</a>(MidPri, midRes); +00478 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera69">setPriorityReserve</a>(LowPri, lowRes); +00479 +00480 <a class="code" href="a04558.html#a11">uint32</a> lowWater; +00481 root.<a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(lowWater, <span class="stringliteral">".LowWaterMark"</span>); +00482 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera67">setLowWaterMark</a>(lowWater); +00483 +00484 <span class="comment">// preload sample bank</span> +00485 <a class="code" href="a02551.html">NLGEORGES::UFormElm</a> *sampleBanks; +00486 root.<a class="code" href="a02551.html#NLGEORGES_1_1UFormElma17">getNodeByName</a>(&sampleBanks, <span class="stringliteral">".SampleBanks"</span>); +00487 +00488 <span class="keywordflow">if</span> (sampleBanks != NULL) +00489 { +00490 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a587">size</a>; +00491 sampleBanks-><a class="code" href="a02551.html#NLGEORGES_1_1UFormElma3">getArraySize</a>(size); +00492 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i<<a class="code" href="a04223.html#a587">size</a>; ++i) +00493 { +00494 std::string name; +00495 sampleBanks-><a class="code" href="a02551.html#NLGEORGES_1_1UFormElma14">getArrayValue</a>(name, i); +00496 +00497 <span class="keywordflow">if</span> (!name.empty()) +00498 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera52">loadSampleBank</a>(<span class="keyword">false</span>, name); +00499 +00500 <span class="keywordflow">if</span> (progressCallBack != 0) +00501 progressCallBack-><a class="code" href="a03873.html#NLMISC_1_1IProgressCallbacka3">progress</a>(<span class="keywordtype">float</span>(i) / size); +00502 } +00503 } +00504 +00505 <span class="comment">// configure background flags names, fades and state</span> +00506 <a class="code" href="a02551.html">NLGEORGES::UFormElm</a> *bgFlags; +00507 root.<a class="code" href="a02551.html#NLGEORGES_1_1UFormElma17">getNodeByName</a>(&bgFlags, <span class="stringliteral">".BackgroundFlags"</span>); +00508 <span class="keywordflow">if</span> (bgFlags != NULL) +00509 { +00510 TBackgroundFlags flags; +00511 TBackgroundFilterFades fades; +00512 +00513 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a587">size</a>; +00514 bgFlags-><a class="code" href="a02551.html#NLGEORGES_1_1UFormElma3">getArraySize</a>(size); +00515 <a class="code" href="a04558.html#a15">uint</a> i; +00516 <span class="keywordflow">for</span> (i=0; i<<a class="code" href="a04061.html#a0">min</a>(size, <a class="code" href="a05167.html#a17">uint</a>(TBackgroundFlags::NB_BACKGROUND_FLAGS)); ++i) +00517 { +00518 <a class="code" href="a02551.html">NLGEORGES::UFormElm</a> *flag; +00519 bgFlags-><a class="code" href="a02551.html#NLGEORGES_1_1UFormElma1">getArrayNode</a>(&flag, i); +00520 +00521 flag-><a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(flags.Flags[i], <span class="stringliteral">".InitialState"</span>); +00522 +00523 <a class="code" href="a04558.html#a11">uint32</a> fadeIn, fadeOut; +00524 flag-><a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(fadeIn, <span class="stringliteral">".FadeIn"</span>); +00525 flag-><a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(fadeOut, <span class="stringliteral">".FadeOut"</span>); +00526 +00527 fades.FadeIns[i] = fadeIn; +00528 fades.FadeOuts[i] = fadeOut; +00529 +00530 flag-><a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(_BackgroundFilterNames[i], <span class="stringliteral">".Name"</span>); +00531 flag-><a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(_BackgroundFilterShortNames[i], <span class="stringliteral">".ShortName"</span>); +00532 } +00533 <span class="keywordflow">for</span> (; i< TBackgroundFlags::NB_BACKGROUND_FLAGS; ++i) +00534 { +00535 <a class="code" href="a04558.html#a11">uint32</a> fadeIn, fadeOut; +00536 <a class="code" href="a02551.html#NLGEORGES_1_1UFormElmw10">NLGEORGES::UFormElm::TWhereIsValue</a> where = <a class="code" href="a02551.html#NLGEORGES_1_1UFormElmw10NLGEORGES_1_1UFormElmw11">NLGEORGES::UFormElm::ValueDefaultDfn</a>; +00537 root.<a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(fadeIn, <span class="stringliteral">".BackgroundFlags[0].FadeIn"</span>, NLGEORGES::UFormElm::Eval, &where); +00538 root.<a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(fadeOut, <span class="stringliteral">".BackgroundFlags[0].FadeOut"</span>, NLGEORGES::UFormElm::Eval, &where); +00539 root.<a class="code" href="a02551.html#NLGEORGES_1_1UFormElma44">getValueByName</a>(flags.Flags[i], <span class="stringliteral">".BackgroundFlags[0].InitialState"</span>, NLGEORGES::UFormElm::Eval, &where); +00540 +00541 fades.FadeIns[i] = fadeIn; +00542 fades.FadeOuts[i] = fadeOut; +00543 } +00544 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera62">setBackgroundFilterFades</a>(fades); +00545 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera64">setBackgroundFlags</a>(flags); +00546 } +00547 +00548 <a class="code" href="a02559.html#NLGEORGES_1_1UFormLoadere1">NLGEORGES::UFormLoader::releaseLoader</a>(formLoader); +00549 } +00550 } +00551 <span class="keywordflow">catch</span>(...) +00552 { +00553 <a class="code" href="a02559.html#NLGEORGES_1_1UFormLoadere1">NLGEORGES::UFormLoader::releaseLoader</a>(formLoader); +00554 } +00555 +00556 <span class="comment">// init the user var bindings</span> +00557 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera46">initUserVar</a>(); +00558 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera44" doxytag="NLSOUND::CAudioMixerUser::initClusteredSound" ></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::CAudioMixerUser::initClusteredSound </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03348.html">NL3D::CScene</a> * </td> + <td class="mdname" nowrap> <em>scene</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>minGain</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>maxDistance</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>portalInterpolate</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Initialisation of the clustered sound system. CNELU version +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2128_1">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00204">204</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00472">_ClusteredSound</a>, and <a class="el" href="a05565.html#l00242">NLSOUND::CClusteredSound::init()</a>. +<p> +<div class="fragment"><pre>00205 { +00206 NL_ALLOC_CONTEXT(NLSOUND_UAudioMixer); +00207 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">_ClusteredSound</a> == 0) +00208 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">_ClusteredSound</a> = <span class="keyword">new</span> CClusteredSound; +00209 +00210 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">_ClusteredSound</a>->init(scene, portalInterpolate, maxDistance, minGain); +00211 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera45" doxytag="NLSOUND::CAudioMixerUser::initClusteredSound" ></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::CAudioMixerUser::initClusteredSound </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03351.html">NL3D::UScene</a> * </td> + <td class="mdname" nowrap> <em>uscene</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>minGain</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>maxDistance</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>portalInterpolate</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Initialisation of the clustered sound system. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2128_2">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00195">195</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +<div class="fragment"><pre>00196 { +00197 <a class="code" href="a03348.html">NL3D::CScene</a> *scene = 0; +00198 <span class="keywordflow">if</span> (uscene != 0) +00199 scene = &(static_cast<NL3D::CSceneUser*>(uscene)->getScene()); +00200 +00201 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera45">initClusteredSound</a>(scene, minGain, maxDistance, portalInterpolate); +00202 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera46" doxytag="NLSOUND::CAudioMixerUser::initUserVar" ></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::CAudioMixerUser::initUserVar </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> +Read all user controled var sheets. +<p> +Temporary container. +<p> +Definition at line <a class="el" href="a05465.html#l00895">895</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00483">_PackedSheetPath</a>, <a class="el" href="a05466.html#l00485">_UpdatePackedSheet</a>, <a class="el" href="a06407.html#l00145">NLSOUND::CSound::_UserVarControler</a>, <a class="el" href="a05466.html#l00435">_UserVarControls</a>, <a class="el" href="a05565.html#l00219">NLSOUND::Container</a>, <a class="el" href="a05465.html#l01510">getSoundId()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00358">init()</a>. +<p> +<div class="fragment"><pre>00896 { +00897 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.clear(); +00899 std::map<std::string, CUserVarSerializer> <a class="code" href="a05381.html#a6">Container</a>; +00900 +00901 <span class="comment">// read all *.user_var_binding sheet in data/sound/user_var folder</span> +00902 +00903 <span class="comment">// load the sound_group sheets</span> +00904 ::loadForm(<span class="stringliteral">"user_var_binding"</span>, <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr10">_PackedSheetPath</a>+<span class="stringliteral">"user_var_binding.packed_sheets"</span>, <a class="code" href="a05381.html#a6">Container</a>, <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr16">_UpdatePackedSheet</a>, <span class="keyword">false</span>); +00905 <span class="comment">// fill the real container.</span> +00906 std::map<std::string, CUserVarSerializer>::iterator first(<a class="code" href="a05381.html#a6">Container</a>.begin()), last(<a class="code" href="a05381.html#a6">Container</a>.end()); +00907 <span class="keywordflow">for</span> (; first != last; ++first) +00908 { +00909 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i<first->second.Controlers.size(); ++i) +00910 { +00911 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.insert(make_pair(first->second.Controlers[i].Name, first->second.Controlers[i])); +00912 } +00913 } +00914 +00915 <span class="comment">// update all the sounds to refer to the controler.</span> +00916 { +00917 TUserVarControlsContainer::iterator first(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.begin()), last(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.end()); +00918 <span class="keywordflow">for</span>(; first != last; ++first) +00919 { +00920 std::vector<NLMISC::TStringId>::iterator first2(first->second.SoundNames.begin()), last2(first->second.SoundNames.end()); +00921 <span class="keywordflow">for</span> (; first2 != last2; ++first2) +00922 { +00923 CSound *sound = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera35">getSoundId</a>(*first2); +00924 <span class="keywordflow">if</span> (sound != 0) +00925 { +00926 <span class="comment">// ok, the sound exist !</span> +00927 sound->_UserVarControler = first->second.Name; +00928 } +00929 } +00930 } +00931 } +00932 +00933 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsere0" doxytag="NLSOUND::CAudioMixerUser::instance" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a02235.html">CAudioMixerUser</a>* NLSOUND::CAudioMixerUser::instance </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, static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Return the audio mixer object. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00115">115</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +<div class="fragment"><pre>00115 { <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserv0">_Instance</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera47" doxytag="NLSOUND::CAudioMixerUser::loadBackgroundAudioFromPrimitives" ></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::CAudioMixerUser::loadBackgroundAudioFromPrimitives </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03123.html">NLLIGO::IPrimitive</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>audioRoot</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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_4">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02116">2116</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, and <a class="el" href="a05471.html#l00272">NLSOUND::CBackgroundSoundManager::loadAudioFromPrimitives()</a>. +<p> +<div class="fragment"><pre>02117 { +02118 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->loadAudioFromPrimitives(audioRoot); +02119 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera48" doxytag="NLSOUND::CAudioMixerUser::loadBackgroundEffectsFromRegion" ></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::CAudioMixerUser::loadBackgroundEffectsFromRegion </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03126.html">NLLIGO::CPrimRegion</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>region</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> +Deprecated. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_5">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02107">2107</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, and <a class="el" href="a05471.html#l00570">NLSOUND::CBackgroundSoundManager::loadEffecsFromRegion()</a>. +<p> +<div class="fragment"><pre>02108 { +02109 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->loadEffecsFromRegion(region); +02110 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera49" doxytag="NLSOUND::CAudioMixerUser::loadBackgroundSamplesFromRegion" ></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::CAudioMixerUser::loadBackgroundSamplesFromRegion </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03126.html">NLLIGO::CPrimRegion</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>region</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> +Deprecated. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_6">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02111">2111</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, and <a class="el" href="a05471.html#l00537">NLSOUND::CBackgroundSoundManager::loadSamplesFromRegion()</a>. +<p> +<div class="fragment"><pre>02112 { +02113 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->loadSamplesFromRegion(region); +02114 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera50" doxytag="NLSOUND::CAudioMixerUser::loadBackgroundSound" ></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::CAudioMixerUser::loadBackgroundSound </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname" nowrap> <em>continent</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02756.html">NLLIGO::CLigoConfig</a> & </td> + <td class="mdname" nowrap> <em>config</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_7">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02131">2131</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, and <a class="el" href="a05471.html#l00618">NLSOUND::CBackgroundSoundManager::load()</a>. +<p> +<div class="fragment"><pre>02132 { +02133 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->load (continent, config); +02134 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera51" doxytag="NLSOUND::CAudioMixerUser::loadBackgroundSoundFromRegion" ></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::CAudioMixerUser::loadBackgroundSoundFromRegion </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03126.html">NLLIGO::CPrimRegion</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>region</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> +Deprecated. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_8">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02102">2102</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, and <a class="el" href="a05471.html#l00574">NLSOUND::CBackgroundSoundManager::loadSoundsFromRegion()</a>. +<p> +<div class="fragment"><pre>02103 { +02104 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->loadSoundsFromRegion(region); +02105 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera52" doxytag="NLSOUND::CAudioMixerUser::loadSampleBank" ></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::CAudioMixerUser::loadSampleBank </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname" nowrap> <em>async</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const std::string & </td> + <td class="mdname" nowrap> <em>name</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< std::string > * </td> + <td class="mdname" nowrap> <em>notfoundfiles</em> = NULL</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Load buffers. Returns the number of buffers successfully loaded. If you specify a non null notfoundfiles vector, it is filled with the names of missing files if any. You can call this method several times, to load several sound banks. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2129_2">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01803">1803</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00462">_SoundDriver</a>, <a class="el" href="a06346.html#l00587">NLSOUND::CSampleBank::countSamples()</a>, <a class="el" href="a06346.html#l00228">NLSOUND::CSampleBank::load()</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00358">init()</a>, and <a class="el" href="a05471.html#l00861">NLSOUND::CBackgroundSoundManager::updateBackgroundStatus()</a>. +<p> +<div class="fragment"><pre>01804 { +01805 NL_ALLOC_CONTEXT(NLSOUND_UAudioMixer); +01806 <span class="comment">// nlassert( filename != NULL );</span> +01807 +01808 <span class="comment">// string path = _SamplePath;</span> +01809 <span class="comment">// path.append("/").append(filename);</span> +01810 +01811 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"Loading samples bank %s..."</span>, name.c_str() ); +01812 +01813 CSampleBank* bank = CSampleBank::findSampleBank(CStringMapper::map(name)); +01814 <span class="keywordflow">if</span> (bank == NULL) +01815 { +01816 <span class="comment">// create a new sample bank</span> +01817 bank = <span class="keyword">new</span> CSampleBank(name, _SoundDriver); +01818 } +01819 +01820 <span class="keywordflow">try</span> +01821 { +01822 bank->load(async); +01823 } +01824 <span class="keywordflow">catch</span> (<a class="code" href="a02482.html">Exception</a>& e) +01825 { +01826 <span class="keywordflow">if</span> (notfoundfiles) +01827 { +01828 notfoundfiles->push_back(name); +01829 } +01830 string reason = e.what(); +01831 <a class="code" href="a04199.html#a2">nlwarning</a>( <span class="stringliteral">"AM: Failed to load the samples: %s"</span>, reason.c_str() ); +01832 } +01833 +01834 +01835 <span class="keywordflow">return</span> bank->countSamples(); +01836 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserz1294_0" doxytag="NLSOUND::CAudioMixerUser::map" ></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="a05378.html#a236">NLMISC::TStringId</a> NLSOUND::CAudioMixerUser::map </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>str</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +map a string +<p> + +<p> +Implements <a class="el" href="a03878.html#NLSOUND_1_1ISoundDriver_1_1IStringMapperProvidera0">NLSOUND::ISoundDriver::IStringMapperProvider</a>. +<p> +Definition at line <a class="el" href="a05466.html#l00122">122</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a06470.html#l00081">NLMISC::CStringMapper::map()</a>. +<p> +<div class="fragment"><pre>00122 { <span class="keywordflow">return</span> <a class="code" href="a03450.html#NLMISC_1_1CStringMappere3">NLMISC::CStringMapper::map</a>(str);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera53" doxytag="NLSOUND::CAudioMixerUser::playBackgroundSound" ></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::CAudioMixerUser::playBackgroundSound </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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_9">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02121">2121</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, and <a class="el" href="a05471.html#l00778">NLSOUND::CBackgroundSoundManager::play()</a>. +<p> +<div class="fragment"><pre>02122 { +02123 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->play (); +02124 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera54" doxytag="NLSOUND::CAudioMixerUser::registerBufferAssoc" ></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::CAudioMixerUser::registerBufferAssoc </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02246.html">CSound</a> * </td> + <td class="mdname" nowrap> <em>sound</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02298.html">IBuffer</a> * </td> + <td class="mdname" nowrap> <em>buffer</em></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> + +<p> +Definition at line <a class="el" href="a05465.html#l02028">2028</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00488">_BufferToSources</a>, and <a class="el" href="a05646.html#l00649">buffer</a>. +<p> +<div class="fragment"><pre>02029 { +02030 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr4">_BufferToSources</a>[<a class="code" href="a04223.html#a589">buffer</a>].push_back(sound); +02031 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera55" doxytag="NLSOUND::CAudioMixerUser::registerUpdate" ></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::CAudioMixerUser::registerUpdate </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02239.html">IMixerUpdate</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pmixerUpdate</em> </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> +Register an object in the update list. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l02053">2053</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00421">_UpdateEventList</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +Referenced by <a class="el" href="a05593.html#l00577">NLSOUND::CComplexSource::onEvent()</a>, and <a class="el" href="a05593.html#l00105">NLSOUND::CComplexSource::playStuf()</a>. +<p> +<div class="fragment"><pre>02054 { +02055 <span class="comment">// nldebug("Registering update %p", pmixerUpdate);</span> +02056 <a class="code" href="a04199.html#a6">nlassert</a>(pmixerUpdate != 0); +02057 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp3">_UpdateEventList</a>.push_back(make_pair(pmixerUpdate, <span class="keyword">true</span>)); +02058 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera56" doxytag="NLSOUND::CAudioMixerUser::reloadSampleBanks" ></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::CAudioMixerUser::reloadSampleBanks </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>async</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> +Reload all the sample bank. Thid method use provided for use in a sound editor or sound tool to update the list of available samples. If true, the samples are loaded in a background thread. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2129_3">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01142">1142</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00481">_SamplePath</a>, <a class="el" href="a05466.html#l00485">_UpdatePackedSheet</a>, and <a class="el" href="a05465.html#l00560">buildSampleBankList()</a>. +<p> +<div class="fragment"><pre>01143 { +01144 CPath::addSearchPath(_SamplePath, <span class="keyword">true</span>, <span class="keyword">false</span>); +01145 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr16">_UpdatePackedSheet</a>) +01146 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera6">buildSampleBankList</a>(); +01147 CSampleBank::reload(async); +01148 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera57" doxytag="NLSOUND::CAudioMixerUser::removeEvents" ></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::CAudioMixerUser::removeEvents </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02238.html">IMixerEvent</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pmixerEvent</em> </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> +Remove any event programmed for this object. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l02075">2075</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00427">_EventListUpdate</a>, <a class="el" href="a05466.html#l00425">_Events</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05646.html#l01126">range</a>. +<p> +Referenced by <a class="el" href="a05593.html#l00255">NLSOUND::CComplexSource::stop()</a>, and <a class="el" href="a05593.html#l00053">NLSOUND::CComplexSource::~CComplexSource()</a>. +<p> +<div class="fragment"><pre>02076 { +02077 <a class="code" href="a04199.html#a6">nlassert</a>(pmixerEvent != 0); +02078 <span class="comment">// nldebug("Removing event %p", pmixerEvent);</span> +02079 <span class="comment">// store the pointer for future removal.</span> +02080 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp1">_EventListUpdate</a>.push_back(make_pair(0, pmixerEvent)); +02081 <span class="comment">// clear the pointer to avoid calling on somethink deleted</span> +02082 pair<TEventContainer::iterator, TEventContainer::iterator> <a class="code" href="a04223.html#a655">range</a> = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp2">_Events</a>.equal_range(pmixerEvent); +02083 TEventContainer::iterator first(<a class="code" href="a04223.html#a655">range</a>.first), last(<a class="code" href="a04223.html#a655">range</a>.second); +02084 <span class="keywordflow">for</span> (; first != last; ++first) +02085 { +02086 first->second->second = 0; +02087 } +02088 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp2">_Events</a>.erase(<a class="code" href="a04223.html#a655">range</a>.first, <a class="code" href="a04223.html#a655">range</a>.second); +02089 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera58" doxytag="NLSOUND::CAudioMixerUser::removeSource" ></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::CAudioMixerUser::removeSource </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02254.html">CSourceCommon</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>source</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> +Delete a logical sound source. If you don't call it, the source will be auto-deleted when deleting the audio mixer object +<p> +Definition at line <a class="el" href="a05465.html#l01740">1740</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00546">_Sources</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>. +<p> +<div class="fragment"><pre>01741 { +01742 <a class="code" href="a04199.html#a6">nlassert</a>( source != NULL ); +01743 +01744 size_t n = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.erase(source); +01745 <a class="code" href="a04199.html#a6">nlassert</a>(n == 1); +01746 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera59" doxytag="NLSOUND::CAudioMixerUser::removeUserControledSource" ></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::CAudioMixerUser::removeUserControledSource </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02254.html">CSourceCommon</a> * </td> + <td class="mdname" nowrap> <em>source</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a05378.html#a236">NLMISC::TStringId</a> </td> + <td class="mdname" nowrap> <em>varName</em></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> + +<p> +Definition at line <a class="el" href="a05465.html#l01039">1039</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00435">_UserVarControls</a>. +<p> +<div class="fragment"><pre>01040 { +01041 TUserVarControlsContainer::iterator it(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.find(varName)); +01042 <span class="keywordflow">if</span> (it != <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.end()) +01043 { +01044 <span class="comment">// ok, the var exist, remove this source</span> +01045 it->second.Sources.erase(source); +01046 } +01047 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera60" doxytag="NLSOUND::CAudioMixerUser::reset" ></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::CAudioMixerUser::reset </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> +Resets the audio system (deletes all the sources, include envsounds). +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixera5">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00288">288</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00561">_Leaving</a>, <a class="el" href="a05466.html#l00557">_NbTracks</a>, <a class="el" href="a05466.html#l00546">_Sources</a>, <a class="el" href="a05466.html#l00449">_SourceWaitingForPlay</a>, <a class="el" href="a06037.html#l00067">NLSOUND::CTrack::getSource()</a>, <a class="el" href="a06428.html#l00064">NLSOUND::CSourceCommon::isPlaying()</a>, <a class="el" href="a05646.html#l01124">src</a>, <a class="el" href="a06427.html#l00120">NLSOUND::CSourceCommon::stop()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00157">~CAudioMixerUser()</a>. +<p> +<div class="fragment"><pre>00289 { +00290 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero2">_Leaving</a> = <span class="keyword">true</span>; +00291 +00292 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">_SourceWaitingForPlay</a>.clear(); +00293 +00294 <span class="comment">// Stop tracks</span> +00295 <a class="code" href="a04558.html#a15">uint</a> i; +00296 <span class="keywordflow">for</span> ( i=0; i!=<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a>; i++ ) +00297 { +00298 <span class="keywordflow">if</span> ( <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i] ) +00299 { +00300 CSimpleSource* <a class="code" href="a04223.html#a652">src</a> = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]->getSource(); +00301 +00302 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a652">src</a> && <a class="code" href="a04223.html#a652">src</a>->isPlaying()) +00303 { +00304 <a class="code" href="a04223.html#a652">src</a>->stop(); +00305 } +00306 } +00307 } +00308 +00309 <span class="comment">// Do a first multipass travesal to stop all playing source</span> +00310 <span class="comment">// We can't do the work in 1 pass because stoping a source can lead to</span> +00311 <span class="comment">// destruction of sub source, invalidating the iterators !</span> +00312 <span class="keywordtype">bool</span> again; +00313 <span class="keywordflow">do</span> +00314 { +00315 again = <span class="keyword">false</span>; +00316 TSourceContainer::iterator first(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.begin()), last(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.end()); +00317 <span class="keywordflow">for</span> (; first != last; ++first) +00318 { +00319 <span class="keywordflow">if</span> ((*first)->isPlaying()) +00320 { +00321 (*first)->stop(); +00322 again = <span class="keyword">true</span>; +00323 <span class="keywordflow">break</span>; +00324 } +00325 } +00326 +00327 } <span class="keywordflow">while</span> (again); +00328 +00329 <span class="comment">// Sources</span> +00330 <span class="keywordflow">while</span> (!<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.empty()) +00331 { +00332 <span class="comment">//removeSource( _Sources.begin(), true ); // 3D sources, the envsounds were removed above</span> +00333 CSourceCommon *source = *(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.begin()); +00334 <span class="keywordflow">if</span> (source->isPlaying()) +00335 source->stop(); +00336 <span class="keywordflow">else</span> +00337 <span class="keyword">delete</span> source; +00338 } +00339 +00340 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero2">_Leaving</a> = <span class="keyword">false</span>; +00341 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera61" doxytag="NLSOUND::CAudioMixerUser::selectEnvEffects" ></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::CAudioMixerUser::selectEnvEffects </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>tag</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> +Choose the environmental effect(s) corresponding to tag. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixera6">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01751">1751</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05622.html#l00333">nlassertex</a>. +<p> +<div class="fragment"><pre>01752 { +01753 <a class="code" href="a04199.html#a8">nlassertex</a>(<span class="keyword">false</span>, (<span class="stringliteral">"Not implemented yet"</span>)); +01754 <span class="comment">/* // Select Env</span> +01755 <span class="comment"> vector<CEnvEffect*>::iterator ipe;</span> +01756 <span class="comment"> for ( ipe=_EnvEffects.begin(); ipe!=_EnvEffects.end(); ++ipe )</span> +01757 <span class="comment"> {</span> +01758 <span class="comment"> (*ipe)->selectEnv( tag );</span> +01759 <span class="comment"> }</span> +01760 <span class="comment"></span> +01761 <span class="comment"> // Compute</span> +01762 <span class="comment"> CVector pos;</span> +01763 <span class="comment"> _Listener.getPos( pos );</span> +01764 <span class="comment"> computeEnvEffect( pos, true );</span> +01765 <span class="comment">*/</span> +01766 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera62" doxytag="NLSOUND::CAudioMixerUser::setBackgroundFilterFades" ></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::CAudioMixerUser::setBackgroundFilterFades </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const TBackgroundFilterFades & </td> + <td class="mdname1" valign="top" nowrap> <em>backgroundFilterFades</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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_10">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02096">2096</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, and <a class="el" href="a05471.html#l00082">NLSOUND::CBackgroundSoundManager::setBackgroundFilterFades()</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00358">init()</a>. +<p> +<div class="fragment"><pre>02097 { +02098 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->setBackgroundFilterFades(backgroundFilterFades); +02099 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera63" doxytag="NLSOUND::CAudioMixerUser::setBackgroundFlagName" ></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::CAudioMixerUser::setBackgroundFlagName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>flagIndex</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const std::string & </td> + <td class="mdname" nowrap> <em>flagName</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_11">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00798">798</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00467">_BackgroundFilterNames</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00799 { +00800 <span class="keywordflow">if</span> (flagIndex < TBackgroundFlags::NB_BACKGROUND_FLAGS) +00801 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr1">_BackgroundFilterNames</a>[flagIndex] = flagName; +00802 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera64" doxytag="NLSOUND::CAudioMixerUser::setBackgroundFlags" ></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::CAudioMixerUser::setBackgroundFlags </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const TBackgroundFlags & </td> + <td class="mdname1" valign="top" nowrap> <em>backgroundFlags</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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_12">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02091">2091</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, and <a class="el" href="a05471.html#l01312">NLSOUND::CBackgroundSoundManager::setBackgroundFlags()</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00358">init()</a>. +<p> +<div class="fragment"><pre>02092 { +02093 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->setBackgroundFlags(backgroundFlags); +02094 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera65" doxytag="NLSOUND::CAudioMixerUser::setBackgroundFlagShortName" ></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::CAudioMixerUser::setBackgroundFlagShortName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>flagIndex</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const std::string & </td> + <td class="mdname" nowrap> <em>flagShortName</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_13">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00803">803</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00469">_BackgroundFilterShortNames</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00804 { +00805 <span class="keywordflow">if</span> (flagIndex < TBackgroundFlags::NB_BACKGROUND_FLAGS) +00806 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr2">_BackgroundFilterShortNames</a>[flagIndex] = flagShortName; +00807 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera66" doxytag="NLSOUND::CAudioMixerUser::setListenerPos" ></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::CAudioMixerUser::setListenerPos </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> +Release track. +<p> +Use this method to set the listener position instead of using getListener->setPos(); It's because we have to update the background sounds in this case. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixera7">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01983">1983</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, <a class="el" href="a05466.html#l00475">_Listener</a>, <a class="el" href="a05471.html#l00850">NLSOUND::CBackgroundSoundManager::setListenerPosition()</a>, and <a class="el" href="a05921.html#l00038">NLSOUND::CListenerUser::setPos()</a>. +<p> +<div class="fragment"><pre>01984 { +01985 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr7">_Listener</a>.setPos(pos); +01986 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->setListenerPosition(pos); +01987 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera67" doxytag="NLSOUND::CAudioMixerUser::setLowWaterMark" ></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::CAudioMixerUser::setLowWaterMark </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>value</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 Low water mark. This value is use to mute sound source that try to play when there priority channel is full (see setPriorityReserve). Set a value 1 to 4 to keep some extra track available when a HighestPri source need to play. By default, the value is set to 0, witch mean no special treatment is done and the mixer will mute sound with no user control at all. Note also that the availability of a track is not guarantie if the sum of the priority reserve (see setPriorityReserve) is grater than the number od available tracks (witch is almos alwais the case). But this value will help the mixer make it's best. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2128_3">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00219">219</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00456">_LowWaterMark</a>, <a class="el" href="a05466.html#l00557">_NbTracks</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00358">init()</a>. +<p> +<div class="fragment"><pre>00220 { +00221 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr9">_LowWaterMark</a> = <a class="code" href="a04061.html#a0">min</a>(_NbTracks, value); +00222 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera68" doxytag="NLSOUND::CAudioMixerUser::setPackedSheetOption" ></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::CAudioMixerUser::setPackedSheetOption </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname" nowrap> <em>path</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>update</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the global path to the packeck sheet files. This must be set BEFORE calling init. Default is to store packed sheet in the current directory. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2128_4">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00343">343</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00483">_PackedSheetPath</a>, and <a class="el" href="a05466.html#l00485">_UpdatePackedSheet</a>. +<p> +<div class="fragment"><pre>00344 { +00345 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr10">_PackedSheetPath</a> = CPath::standardizePath(path, <span class="keyword">true</span>); +00346 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr16">_UpdatePackedSheet</a> = update; +00347 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera69" doxytag="NLSOUND::CAudioMixerUser::setPriorityReserve" ></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::CAudioMixerUser::setPriorityReserve </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="mdname" nowrap> <em>priorityChannel</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>reserve</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the priority channel reserve. Each priority channel can be assign a restrictive reserve value. This value is used when the number free track available for playing drop under the low water mark value (see setLowWaterMark). The mixer count the number of playing source in each priority channel. A priority channel can orverflow it's reserve value only if the low water mark is not reach. In other word, when the number of played source increase, you can control a 'smooth' cut in priority layer. The idea is to try to keep some free track for the HighestPri source. By default, reserve are set for each channel to the number of available tracks. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2128_5">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00214">214</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00557">_NbTracks</a>, <a class="el" href="a05466.html#l00452">_PriorityReserve</a>, <a class="el" href="a05484.html#l00038">min</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00358">init()</a>. +<p> +<div class="fragment"><pre>00215 { +00216 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr11">_PriorityReserve</a>[priorityChannel] = <a class="code" href="a04061.html#a0">min</a>(_NbTracks, reserve); +00217 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera70" doxytag="NLSOUND::CAudioMixerUser::setSamplePath" ></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::CAudioMixerUser::setSamplePath </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>path</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 global path to the sample banks. +<p> +Same as <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsera58">removeSource()</a> but does not delete the object (e.g. when not allocated by new, as the <a class="el" href="a02194.html">CAmbiantSource</a> channels) +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2128_6">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00350">350</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00481">_SamplePath</a>. +<p> +<div class="fragment"><pre>00351 { +00352 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr13">_SamplePath</a> = CPath::standardizePath(path, <span class="keyword">true</span>); +00353 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera71" doxytag="NLSOUND::CAudioMixerUser::setUserVar" ></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::CAudioMixerUser::setUserVar </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a05378.html#a236">NLMISC::TStringId</a> </td> + <td class="mdname" nowrap> <em>varName</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>value</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the value of a user variable. User variable are variable that can be used to control the gain or tranpose of all the instance (source) of a given sound. This has been initialy design to control the gain of any source playing some atmospheric sound (like rain) according to the intensity of the effect (ie small rain or big rain). Binding from user var to sound parameter is done in one or more george sheet .user_var_binding. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2132_1">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00975">975</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00435">_UserVarControls</a>, <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery1">gain_control</a>, and <a class="el" href="a05646.html#l01132">value</a>. +<p> +<div class="fragment"><pre>00976 { +00977 TUserVarControlsContainer::iterator it(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.find(varName)); +00978 <span class="keywordflow">if</span> (it != <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">_UserVarControls</a>.end()) +00979 { +00980 <span class="comment">// ok we found the var !</span> +00981 <span class="comment">// do some work only if the value is different (we don't trust client for</span> +00982 <span class="comment">// being smart ;) )</span> +00983 <span class="comment">// if (it->second.Value != value)</span> +00984 { +00985 it->second.Value = <a class="code" href="a04223.html#a658">value</a>; +00986 <span class="comment">// update all sources</span> +00987 std::set<CSourceCommon*>::iterator first(it->second.Sources.begin()), last(it->second.Sources.end()); +00988 <span class="keywordflow">for</span> (; first != last; ++first) +00989 { +00990 <span class="keywordflow">if</span> (it->second.ParamId == <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsery5NLSOUND_1_1CAudioMixerUsery1">gain_control</a>) +00991 { +00992 <span class="keywordtype">float</span> relGain = (*first)->getRelativeGain(); +00993 <span class="keywordtype">float</span> gain = (*first)->getSound()->getGain(); +00994 (*first)->setGain(gain * value); +00995 (*first)->setRelativeGain(relGain); +00996 } +00997 <span class="keywordflow">else</span> +00998 { +00999 (*first)->setPitch(value); +01000 } +01001 } +01002 } +01003 } +01004 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera72" doxytag="NLSOUND::CAudioMixerUser::startDriverBench" ></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::CAudioMixerUser::startDriverBench </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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2133_2">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02136">2136</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00462">_SoundDriver</a>, and <a class="el" href="a03419.html#NLSOUND_1_1ISoundDrivera9">NLSOUND::ISoundDriver::startBench()</a>. +<p> +<div class="fragment"><pre>02137 { +02138 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>) +02139 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>->startBench(); +02140 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera73" doxytag="NLSOUND::CAudioMixerUser::stopBackgroundSound" ></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::CAudioMixerUser::stopBackgroundSound </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> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2131_14">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l02126">2126</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, and <a class="el" href="a05471.html#l00801">NLSOUND::CBackgroundSoundManager::stop()</a>. +<p> +<div class="fragment"><pre>02127 { +02128 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->stop (); +02129 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera74" doxytag="NLSOUND::CAudioMixerUser::unloadSampleBank" ></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::CAudioMixerUser::unloadSampleBank </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>name</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> +Unload buffers. +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2129_4">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01838">1838</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05622.html#l00101">nldebug</a>, and <a class="el" href="a06346.html#l00503">NLSOUND::CSampleBank::unload()</a>. +<p> +Referenced by <a class="el" href="a05471.html#l00861">NLSOUND::CBackgroundSoundManager::updateBackgroundStatus()</a>. +<p> +<div class="fragment"><pre>01839 { +01840 <span class="comment">// string path = _SamplePath;</span> +01841 <span class="comment">// path.append("/").append(filename);</span> +01842 +01843 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"Unloading samples bank %s..."</span>, name.c_str() ); +01844 CSampleBank *pbank = CSampleBank::findSampleBank(CStringMapper::map(name)); +01845 +01846 <span class="keywordflow">if</span> (pbank != NULL) +01847 { +01848 <span class="comment">// ok, the bank exist.</span> +01849 <span class="keywordflow">return</span> pbank->unload(); +01850 } +01851 <span class="keywordflow">else</span> +01852 <span class="keywordflow">return</span> <span class="keyword">false</span>; +01853 +01854 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserz1294_1" doxytag="NLSOUND::CAudioMixerUser::unmap" ></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 std::string& NLSOUND::CAudioMixerUser::unmap </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a05378.html#a236">NLMISC::TStringId</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>stringId</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +unmap a string +<p> + +<p> +Implements <a class="el" href="a03878.html#NLSOUND_1_1ISoundDriver_1_1IStringMapperProvidera1">NLSOUND::ISoundDriver::IStringMapperProvider</a>. +<p> +Definition at line <a class="el" href="a05466.html#l00124">124</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a06470.html#l00083">NLMISC::CStringMapper::unmap()</a>. +<p> +<div class="fragment"><pre>00124 { <span class="keywordflow">return</span> <a class="code" href="a03450.html#NLMISC_1_1CStringMappere4">NLMISC::CStringMapper::unmap</a>(stringId);} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera75" doxytag="NLSOUND::CAudioMixerUser::unregisterBufferAssoc" ></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::CAudioMixerUser::unregisterBufferAssoc </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02246.html">CSound</a> * </td> + <td class="mdname" nowrap> <em>sound</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02298.html">IBuffer</a> * </td> + <td class="mdname" nowrap> <em>buffer</em></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> + +<p> +Definition at line <a class="el" href="a05465.html#l02033">2033</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00488">_BufferToSources</a>, and <a class="el" href="a05646.html#l00649">buffer</a>. +<p> +<div class="fragment"><pre>02034 { +02035 TBufferToSourceContainer::iterator it(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr4">_BufferToSources</a>.find(buffer)); +02036 <span class="keywordflow">if</span> (it != <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr4">_BufferToSources</a>.end()) +02037 { +02038 std::vector<CSound*>::iterator first(it->second.begin()), last(it->second.end()); +02039 +02040 <span class="keywordflow">for</span> (; first != last; ++first) +02041 { +02042 <span class="keywordflow">if</span> (*first == sound) +02043 { +02044 it->second.erase(first); +02045 <span class="keywordflow">break</span>; +02046 } +02047 } +02048 } +02049 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera76" doxytag="NLSOUND::CAudioMixerUser::unregisterUpdate" ></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::CAudioMixerUser::unregisterUpdate </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02239.html">IMixerUpdate</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pmixerUpdate</em> </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> +Unregister an object from the update list. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l02060">2060</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00421">_UpdateEventList</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05622.html#l00101">nldebug</a>. +<p> +Referenced by <a class="el" href="a05593.html#l00456">NLSOUND::CComplexSource::onUpdate()</a>, <a class="el" href="a05593.html#l00255">NLSOUND::CComplexSource::stop()</a>, <a class="el" href="a05471.html#l00801">NLSOUND::CBackgroundSoundManager::stop()</a>, <a class="el" href="a05471.html#l00861">NLSOUND::CBackgroundSoundManager::updateBackgroundStatus()</a>, and <a class="el" href="a05593.html#l00053">NLSOUND::CComplexSource::~CComplexSource()</a>. +<p> +<div class="fragment"><pre>02061 { +02062 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"Unregistering update %p"</span>, pmixerUpdate); +02063 <a class="code" href="a04199.html#a6">nlassert</a>(pmixerUpdate != 0); +02064 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp3">_UpdateEventList</a>.push_back(make_pair(pmixerUpdate, <span class="keyword">false</span>)); +02065 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera77" doxytag="NLSOUND::CAudioMixerUser::update" ></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::CAudioMixerUser::update </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> +Update audio mixer (call evenly). +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixera8">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l01268">1268</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00465">_BackgroundSoundManager</a>, <a class="el" href="a05466.html#l00472">_ClusteredSound</a>, <a class="el" href="a05466.html#l00423">_EventList</a>, <a class="el" href="a05466.html#l00427">_EventListUpdate</a>, <a class="el" href="a05466.html#l00425">_Events</a>, <a class="el" href="a05466.html#l00475">_Listener</a>, <a class="el" href="a05466.html#l00478">_ListenPosition</a>, <a class="el" href="a05466.html#l00557">_NbTracks</a>, <a class="el" href="a05466.html#l00462">_SoundDriver</a>, <a class="el" href="a05466.html#l00546">_Sources</a>, <a class="el" href="a05466.html#l00449">_SourceWaitingForPlay</a>, <a class="el" href="a05466.html#l00574">_UpdateCount</a>, <a class="el" href="a05466.html#l00421">_UpdateEventList</a>, <a class="el" href="a05466.html#l00419">_UpdateList</a>, <a class="el" href="a05466.html#l00572">_UpdateTime</a>, <a class="el" href="a05466.html#l00443">_UseEax</a>, <a class="el" href="a03419.html#NLSOUND_1_1ISoundDrivera0">NLSOUND::ISoundDriver::commit3DChanges()</a>, <a class="el" href="a05566.html#l00075">NLSOUND::CClusteredSound::CClusterSoundStatus::Direction</a>, <a class="el" href="a05566.html#l00067">NLSOUND::CClusteredSound::CClusterSoundStatus::Dist</a>, <a class="el" href="a05566.html#l00065">NLSOUND::CClusteredSound::CClusterSoundStatus::Gain</a>, <a class="el" href="a06428.html#l00098">NLSOUND::CSourceCommon::getCluster()</a>, <a class="el" href="a05565.html#l00459">NLSOUND::CClusteredSound::getClusterSoundStatus()</a>, <a class="el" href="a06428.html#l00082">NLSOUND::CSourceCommon::getGain()</a>, <a class="el" href="a06552.html#l00055">NLMISC::CTime::getLocalTime()</a>, <a class="el" href="a05922.html#l00077">NLSOUND::CListenerUser::getOrientation()</a>, <a class="el" href="a06427.html#l00141">NLSOUND::CSourceCommon::getPos()</a>, <a class="el" href="a06427.html#l00205">NLSOUND::CSourceCommon::getRelativeGain()</a>, <a class="el" href="a06037.html#l00067">NLSOUND::CTrack::getSource()</a>, <a class="el" href="a05788.html#l00056">H_AUTO</a>, <a class="el" href="a06037.html#l00063">NLSOUND::CTrack::isPlaying()</a>, <a class="el" href="a05466.html#l00568">NL_PROFILE_MIXER</a>, <a class="el" href="a05622.html#l00101">nldebug</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05566.html#l00083">NLSOUND::CClusteredSound::CClusterSoundStatus::Obstruction</a>, <a class="el" href="a05566.html#l00077">NLSOUND::CClusteredSound::CClusterSoundStatus::Occlusion</a>, <a class="el" href="a05566.html#l00079">NLSOUND::CClusteredSound::CClusterSoundStatus::OcclusionLFFactor</a>, <a class="el" href="a05566.html#l00081">NLSOUND::CClusteredSound::CClusterSoundStatus::OcclusionRoomRatio</a>, <a class="el" href="a02238.html#NLSOUND_1_1CAudioMixerUser_1_1IMixerEventa0">NLSOUND::CAudioMixerUser::IMixerEvent::onEvent()</a>, <a class="el" href="a05566.html#l00073">NLSOUND::CClusteredSound::CClusterSoundStatus::PosAlpha</a>, <a class="el" href="a05566.html#l00071">NLSOUND::CClusteredSound::CClusterSoundStatus::Position</a>, <a class="el" href="a05646.html#l01126">range</a>, <a class="el" href="a06390.html#l00326">NLSOUND::CSimpleSource::setGain()</a>, <a class="el" href="a06390.html#l00258">NLSOUND::CSimpleSource::setPos()</a>, <a class="el" href="a06390.html#l00217">NLSOUND::CSimpleSource::stop()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05565.html#l00270">NLSOUND::CClusteredSound::update()</a>, and <a class="el" href="a05471.html#l00861">NLSOUND::CBackgroundSoundManager::updateBackgroundStatus()</a>. +<p> +<div class="fragment"><pre>01269 { +01270 <a class="code" href="a04365.html#a4">H_AUTO</a>(NLSOUND_AudioMixerUpdate) +01271 <span class="comment">/* static NLMISC::TTime lastUpdate = NLMISC::CTime::getLocalTime();</span> +01272 <span class="comment"> NLMISC::TTime now = NLMISC::CTime::getLocalTime();</span> +01273 <span class="comment"></span> +01274 <span class="comment"> nldebug("Mixer update : %u ms", uint(now - lastUpdate));</span> +01275 <span class="comment"> lastUpdate = now;</span> +01276 <span class="comment">*/</span> +01277 #<span class="keywordflow">if</span> <a class="code" href="a04043.html#a0">NL_PROFILE_MIXER</a> +01278 <a class="code" href="a05378.html#a243">TTicks</a> start = CTime::getPerformanceTime(); +01279 <span class="preprocessor">#endif</span> +01280 <span class="preprocessor"></span> +01281 <span class="comment">// update the object.</span> +01282 { +01283 <a class="code" href="a04365.html#a4">H_AUTO</a>(NLSOUND_AudioMixerUpdateObjet) +01284 <span class="comment">// 1st, update the event list</span> +01285 { +01286 std::vector<std::pair<IMixerUpdate*, bool> >::iterator first(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp3">_UpdateEventList</a>.begin()), last(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp3">_UpdateEventList</a>.end()); +01287 <span class="keywordflow">for</span> (; first != last; ++first) +01288 { +01289 <span class="keywordflow">if</span> (first->second) +01290 { +01291 <span class="comment">// nldebug("Inserting update %p", first->first);</span> +01292 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp4">_UpdateList</a>.insert(first->first); +01293 } +01294 <span class="keywordflow">else</span> +01295 { +01296 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"Removing update %p"</span>, first->first); +01297 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp4">_UpdateList</a>.erase(first->first); +01298 } +01299 } +01300 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp3">_UpdateEventList</a>.clear(); +01301 } +01302 <span class="comment">// 2nd, do the update</span> +01303 { +01304 TMixerUpdateContainer::iterator first(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp4">_UpdateList</a>.begin()), last(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp4">_UpdateList</a>.end()); +01305 <span class="keywordflow">for</span> (; first != last; ++first) +01306 { +01307 <span class="keywordflow">if</span>( *first == 0) +01308 { +01309 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"NULL pointeur in update list !"</span>); +01310 } +01311 <span class="keywordflow">else</span> +01312 { +01313 <span class="comment">// call the update method.</span> +01314 <span class="keyword">const</span> IMixerUpdate *<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera77">update</a> = *first; +01315 const_cast<IMixerUpdate*>(update)->onUpdate(); +01316 } +01317 } +01318 } +01319 } +01320 <span class="comment">// send the event.</span> +01321 { +01322 <a class="code" href="a04365.html#a4">H_AUTO</a>(NLSOUND_AudioMixerUpdateSendEvent) +01323 <span class="comment">// 1st, update the event list</span> +01324 { +01325 std::vector<std::pair<NLMISC::TTime, IMixerEvent*> >::iterator first(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp1">_EventListUpdate</a>.begin()), last(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp1">_EventListUpdate</a>.end()); +01326 <span class="keywordflow">for</span> (; first != last; ++first) +01327 { +01328 <span class="keywordflow">if</span> (first->first != 0) +01329 { +01330 <span class="comment">// add an event</span> +01331 <span class="comment">// nldebug ("Add event %p", first->second);</span> +01332 <span class="comment">// TTimedEventContainer::iterator it(_EventList.insert(*first));</span> +01333 TTimedEventContainer::iterator it(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">_EventList</a>.insert(make_pair(first->first, <a class="code" href="a02424.html">NLMISC::CDbgPtr<IMixerEvent></a>(first->second)))); +01334 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp2">_Events</a>.insert(make_pair(first->second, it)); +01335 } +01336 <span class="keywordflow">else</span> +01337 { +01338 <span class="comment">// remove the events</span> +01339 pair<TEventContainer::iterator, TEventContainer::iterator> <a class="code" href="a04223.html#a655">range</a> = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp2">_Events</a>.equal_range(first->second); +01340 TEventContainer::iterator first2(<a class="code" href="a04223.html#a655">range</a>.first), last2(<a class="code" href="a04223.html#a655">range</a>.second); +01341 <span class="keywordflow">for</span> (; first2 != last2; ++first2) +01342 { +01343 <span class="comment">// remove the event</span> +01344 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"Remove event %p"</span>, first2->second->second.ptr()); +01345 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">_EventList</a>.erase(first2->second->first); +01346 } +01347 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp2">_Events</a>.erase(<a class="code" href="a04223.html#a655">range</a>.first, <a class="code" href="a04223.html#a655">range</a>.second); +01348 } +01349 } +01350 +01351 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp1">_EventListUpdate</a>.clear(); +01352 } +01353 <span class="comment">// 2nd, call the events</span> +01354 <a class="code" href="a05378.html#a242">TTime</a> now = <a class="code" href="a02142.html#NLMISC_1_1CTimee0">NLMISC::CTime::getLocalTime</a>(); +01355 <span class="keywordflow">while</span> (!<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">_EventList</a>.empty() && <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">_EventList</a>.begin()->first <= now) +01356 { +01357 CAudioMixerUser::IMixerEvent *CurrentEvent = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">_EventList</a>.begin()->second; +01358 <span class="keywordflow">if</span> (CurrentEvent != NULL) +01359 { +01360 <span class="comment">// nldebug("Sending Event %p", _EventList.begin()->second);</span> +01361 CurrentEvent->onEvent(); +01362 } +01363 TEventContainer::iterator it(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp2">_Events</a>.lower_bound(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">_EventList</a>.begin()->second)); +01364 <span class="keywordflow">while</span> (it->first == <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">_EventList</a>.begin()->second.ptr()) +01365 { +01366 <span class="keywordflow">if</span> (it->second == <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">_EventList</a>.begin()) +01367 { +01368 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp2">_Events</a>.erase(it); +01369 <span class="keywordflow">break</span>; +01370 } +01371 it++; +01372 } +01373 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">_EventList</a>.erase(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">_EventList</a>.begin()); +01374 <span class="preprocessor">#if defined(NL_DEBUG) || defined(NL_DEBUG_FAST)</span> +01375 <span class="preprocessor"></span> CurrentEvent = 0; +01376 <span class="preprocessor">#endif</span> +01377 <span class="preprocessor"></span> } +01378 } +01379 +01380 <span class="comment">// update the background sound</span> +01381 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">_BackgroundSoundManager</a>->updateBackgroundStatus(); +01382 +01383 <a class="code" href="a04558.html#a15">uint</a> i; +01384 <span class="comment">// Check all playing track and stop any terminated buffer.</span> +01385 <span class="keywordflow">for</span> (i=0; i<<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a>; ++i) +01386 { +01387 <span class="keywordflow">if</span> (!<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]->isPlaying()) +01388 { +01389 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]->getSource() != 0) +01390 { +01391 CSimpleSource *source = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]->getSource(); +01392 source->stop(); +01393 } +01394 +01395 <span class="comment">// try to play any waiting source.</span> +01396 <span class="keywordflow">if</span> (!<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">_SourceWaitingForPlay</a>.empty()) +01397 { +01398 <span class="comment">// check if the source still exist before trying to play it</span> +01399 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.find(<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">_SourceWaitingForPlay</a>.front()) != <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">_Sources</a>.end()) +01400 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">_SourceWaitingForPlay</a>.front()->play(); +01401 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"Before POP Sources waiting : %u"</span>, <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">_SourceWaitingForPlay</a>.size()); +01402 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">_SourceWaitingForPlay</a>.pop_front(); +01403 <a class="code" href="a04199.html#a0">nldebug</a>(<span class="stringliteral">"After POP Sources waiting : %u"</span>, <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">_SourceWaitingForPlay</a>.size()); +01404 } +01405 } +01406 } +01407 +01408 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">_ClusteredSound</a>) +01409 { +01410 <a class="code" href="a04365.html#a4">H_AUTO</a>(NLSOUND_UpdateClusteredSound) +01411 <span class="comment">// update the clustered sound...</span> +01412 CVector view, up; +01413 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr7">_Listener</a>.getOrientation(view, up); +01414 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">_ClusteredSound</a>->update(_ListenPosition, view, up); +01415 +01416 <span class="comment">// update all playng track according to there cluster status</span> +01417 <span class="keywordflow">for</span> (i=0; i<_NbTracks; ++i) +01418 { +01419 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]->isPlaying()) +01420 { +01421 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]->getSource() != 0) +01422 { +01423 CSimpleSource *source = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">_Tracks</a>[i]->getSource(); +01424 <span class="keywordflow">if</span> (source->getCluster() != 0) +01425 { +01426 <span class="comment">// need to check the cluster status</span> +01427 <span class="keyword">const</span> CClusteredSound::CClusterSoundStatus *css = <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">_ClusteredSound</a>->getClusterSoundStatus(source->getCluster()); +01428 <span class="keywordflow">if</span> (css != 0) +01429 { +01430 <span class="comment">// there is some data here, update the virtual position of the sound.</span> +01431 <span class="keywordtype">float</span> dist = (css->Position - source->getPos()).norm(); +01432 CVector vpos(_ListenPosition + css->Direction * (css->Dist + dist)); +01433 <span class="comment">// _Tracks[i]->DrvSource->setPos(source->getPos() * (1-css->PosAlpha) + css->Position*(css->PosAlpha));</span> +01434 _Tracks[i]->DrvSource->setPos(source->getPos() * (1-css->PosAlpha) + vpos*(css->PosAlpha)); +01435 <span class="comment">// update the relative gain</span> +01436 _Tracks[i]->DrvSource->setGain(source->getRelativeGain()*source->getGain()*css->Gain); +01437 <span class="preprocessor">#if EAX_AVAILABLE == 1</span> +01438 <span class="preprocessor"></span> <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr18">_UseEax</a>) +01439 { +01440 <a class="code" href="a04365.html#a4">H_AUTO</a>(NLSOUND_SetEaxProperties) +01441 <span class="comment">// update the occlusion parameters</span> +01442 _Tracks[i]->DrvSource->setEAXProperty(DSPROPERTY_EAXBUFFER_OCCLUSION, (<span class="keywordtype">void</span>*)&css->Occlusion, <span class="keyword">sizeof</span>(css->Occlusion)); +01443 _Tracks[i]->DrvSource->setEAXProperty(DSPROPERTY_EAXBUFFER_OCCLUSIONLFRATIO, (<span class="keywordtype">void</span>*)&css->OcclusionLFFactor, <span class="keyword">sizeof</span>(css->OcclusionLFFactor)); +01444 <span class="comment">// if (lastRatio[i] != css->OcclusionRoomRatio)</span> +01445 <span class="comment">// {</span> +01446 _Tracks[i]->DrvSource->setEAXProperty(DSPROPERTY_EAXBUFFER_OCCLUSIONROOMRATIO, (<span class="keywordtype">void</span>*)&css->OcclusionRoomRatio, <span class="keyword">sizeof</span>(css->OcclusionRoomRatio)); +01447 <span class="comment">// lastRatio[i] = css->OcclusionRoomRatio;</span> +01448 <span class="comment">// nldebug("Setting room ration.");</span> +01449 <span class="comment">// }</span> +01450 _Tracks[i]->DrvSource->setEAXProperty(DSPROPERTY_EAXBUFFER_OBSTRUCTION, (<span class="keywordtype">void</span>*)&css->Obstruction, <span class="keyword">sizeof</span>(css->Obstruction)); +01451 } +01452 <span class="preprocessor">#endif</span> +01453 <span class="preprocessor"></span> } +01454 } +01455 } +01456 } +01457 } +01458 } +01459 +01460 +01461 <span class="comment">// Debug info</span> +01462 <span class="comment">/*uint32 i;</span> +01463 <span class="comment"> nldebug( "List of the %u tracks", _NbTracks );</span> +01464 <span class="comment"> for ( i=0; i!=_NbTracks; i++ )</span> +01465 <span class="comment"> {</span> +01466 <span class="comment"> CSimpleSource *su;</span> +01467 <span class="comment"> if ( su = _Tracks[i]->getSource() )</span> +01468 <span class="comment"> {</span> +01469 <span class="comment"> nldebug( "%u: %p %s %s %s %s, vol %u",</span> +01470 <span class="comment"> i, &_Tracks[i]->DrvSource, _Tracks[i]->isAvailable()?"FREE":"USED",</span> +01471 <span class="comment"> _Tracks[i]->isAvailable()?"":(su->isPlaying()?"PLAYING":"STOPPED"),</span> +01472 <span class="comment"> _Tracks[i]->isAvailable()?"":PriToCStr[su->getPriority()],</span> +01473 <span class="comment"> _Tracks[i]->isAvailable()?"":(su->getSound()?su->getSound()->getFilename().c_str():""),</span> +01474 <span class="comment"> (uint)(su->getGain()*100.0f) );</span> +01475 <span class="comment"> }</span> +01476 <span class="comment"> }*/</span> +01477 +01478 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>->commit3DChanges(); +01479 +01480 <span class="preprocessor">#if NL_PROFILE_MIXER</span> +01481 <span class="preprocessor"></span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero11">_UpdateTime</a> = CTime::ticksToSecond(CTime::getPerformanceTime() - start); +01482 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero10">_UpdateCount</a>++; +01483 <span class="preprocessor">#endif</span> +01484 <span class="preprocessor"></span> +01485 <span class="comment">/* // display the track using...</span> +01486 <span class="comment"> {</span> +01487 <span class="comment"> char tmp[2048] = "";</span> +01488 <span class="comment"> string str;</span> +01489 <span class="comment"></span> +01490 <span class="comment"> for (uint i=0; i<_NbTracks/2; ++i)</span> +01491 <span class="comment"> {</span> +01492 <span class="comment"> sprintf(tmp, "[%2u]%8p ", i, _Tracks[i]->getSource());</span> +01493 <span class="comment"> str += tmp;</span> +01494 <span class="comment"> }</span> +01495 <span class="comment"> nldebug((string("Status1: ")+str).c_str());</span> +01496 <span class="comment"> str = "";</span> +01497 <span class="comment"> for (i=_NbTracks/2; i<_NbTracks; ++i)</span> +01498 <span class="comment"> {</span> +01499 <span class="comment"> sprintf(tmp, "[%2u]%8p ", i, _Tracks[i]->getSource());</span> +01500 <span class="comment"> str += tmp;</span> +01501 <span class="comment"> }</span> +01502 <span class="comment">// nldebug((string("Status2: ")+str).c_str());</span> +01503 <span class="comment"> }</span> +01504 <span class="comment">*/</span> +01505 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera78" doxytag="NLSOUND::CAudioMixerUser::useAPDCM" ></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::CAudioMixerUser::useAPDCM </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00177">177</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +References <a class="el" href="a05466.html#l00441">_UseADPCM</a>. +<p> +<div class="fragment"><pre>00177 { <span class="keywordflow">return</span> <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr17">_UseADPCM</a>;}; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsera79" doxytag="NLSOUND::CAudioMixerUser::writeProfile" ></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::CAudioMixerUser::writeProfile </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::ostream & </td> + <td class="mdname1" valign="top" nowrap> <em>out</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> +Write profiling information about the mixer to the output stream. +<p> + +<p> +Implements <a class="el" href="a02236.html#NLSOUND_1_1UAudioMixerz2130_9">NLSOUND::UAudioMixer</a>. +<p> +Definition at line <a class="el" href="a05465.html#l00227">227</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. +<p> +References <a class="el" href="a05466.html#l00575">_CreateCount</a>, <a class="el" href="a05466.html#l00573">_CreateTime</a>, <a class="el" href="a05466.html#l00446">_FreeTracks</a>, <a class="el" href="a05466.html#l00557">_NbTracks</a>, <a class="el" href="a05466.html#l00551">_PlayingSourcesMuted</a>, <a class="el" href="a05466.html#l00452">_PriorityReserve</a>, <a class="el" href="a05466.html#l00454">_ReserveUsage</a>, <a class="el" href="a05466.html#l00462">_SoundDriver</a>, <a class="el" href="a05466.html#l00449">_SourceWaitingForPlay</a>, <a class="el" href="a05466.html#l00574">_UpdateCount</a>, <a class="el" href="a05466.html#l00572">_UpdateTime</a>, <a class="el" href="a05466.html#l00565">curTime()</a>, <a class="el" href="a05465.html#l01873">getAvailableTracksCount()</a>, <a class="el" href="a05465.html#l01866">getPlayingSourcesCount()</a>, <a class="el" href="a05465.html#l01878">getUsedTracksCount()</a>, <a class="el" href="a05381.html#a82a64">NLSOUND::HighestPri</a>, <a class="el" href="a05381.html#a82a65">NLSOUND::HighPri</a>, <a class="el" href="a05381.html#a82a67">NLSOUND::LowPri</a>, <a class="el" href="a05381.html#a82a66">NLSOUND::MidPri</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a03419.html#NLSOUND_1_1ISoundDrivera10">NLSOUND::ISoundDriver::writeProfile()</a>. +<p> +<div class="fragment"><pre>00228 { +00229 <span class="comment">// compute number of muted source</span> +00230 <a class="code" href="a04558.html#a15">uint</a> nb = 0; +00231 +00232 <span class="comment">/* TSourceContainer::iterator first(_Sources.begin()), last(_Sources.end());</span> +00233 <span class="comment"> for (; first != last; ++first)</span> +00234 <span class="comment"> {</span> +00235 <span class="comment"> CSimpleSource *psu = *first;</span> +00236 <span class="comment"> if (psu->getTrack() == NULL)</span> +00237 <span class="comment"> {</span> +00238 <span class="comment"> ++nb;</span> +00239 <span class="comment"> }</span> +00240 <span class="comment"> }</span> +00241 <span class="comment">*/</span> +00242 <span class="comment">/* hash_set<CSimpleSource*>::const_iterator ips;</span> +00243 <span class="comment"> for ( ips=_Sources.begin(); ips!=_Sources.end(); ++ips )</span> +00244 <span class="comment"> {</span> +00245 <span class="comment"> CSimpleSource *psu = *ips;</span> +00246 <span class="comment"> if (psu->getTrack() == NULL)</span> +00247 <span class="comment"> {</span> +00248 <span class="comment"> ++nb;</span> +00249 <span class="comment"> }</span> +00250 <span class="comment"> }</span> +00251 <span class="comment">*/</span> +00252 out << <span class="stringliteral">"Mixer: \n"</span>; +00253 out << <span class="stringliteral">"Playing sources: "</span> << <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera32">getPlayingSourcesCount</a>() << <span class="stringliteral">" \n"</span>; +00254 out << <span class="stringliteral">"Available tracks: "</span> << <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera17">getAvailableTracksCount</a>() << <span class="stringliteral">" \n"</span>; +00255 out << <span class="stringliteral">"Used tracks: "</span> << <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera39">getUsedTracksCount</a>() << <span class="stringliteral">" \n"</span>; +00256 <span class="comment">// out << "Muted sources: " << nb << " \n";</span> +00257 <span class="comment">// out << "Muted sources: " << max(0, sint(_PlayingSources.size())-sint(_NbTracks)) << " \n";</span> +00258 <span class="comment">// out << "Muted sources: " << max(0, sint(_PlayingSources)-sint(_NbTracks)) << " \n";</span> +00259 out << <span class="stringliteral">"Muted sources: "</span> << (<span class="keywordtype">int</span>)<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero6">_PlayingSourcesMuted</a> << <span class="stringliteral">"\n"</span>; +00260 out << <span class="stringliteral">"Sources waiting for play: "</span> << <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">_SourceWaitingForPlay</a>.size() << <span class="stringliteral">" \n"</span>; +00261 out << <span class="stringliteral">"HighestPri: "</span> << (<span class="keywordtype">int</span>)<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr12">_ReserveUsage</a>[<a class="code" href="a05381.html#a82a64">HighestPri</a>] << <span class="stringliteral">" / "</span> << (<span class="keywordtype">int</span>)<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr11">_PriorityReserve</a>[<a class="code" href="a05381.html#a82a64">HighestPri</a>] << <span class="stringliteral">" \n"</span>; +00262 out << <span class="stringliteral">"HighPri: "</span> << (<span class="keywordtype">int</span>)<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr12">_ReserveUsage</a>[<a class="code" href="a05381.html#a82a65">HighPri</a>] << <span class="stringliteral">" / "</span> << (<span class="keywordtype">int</span>)<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr11">_PriorityReserve</a>[<a class="code" href="a05381.html#a82a65">HighPri</a>] << <span class="stringliteral">"\n"</span>; +00263 out << <span class="stringliteral">"MidPri: "</span> << (<span class="keywordtype">int</span>)<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr12">_ReserveUsage</a>[<a class="code" href="a05381.html#a82a66">MidPri</a>] << <span class="stringliteral">" / "</span> << (<span class="keywordtype">int</span>)<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr11">_PriorityReserve</a>[<a class="code" href="a05381.html#a82a66">MidPri</a>] << <span class="stringliteral">" \n"</span>; +00264 out << <span class="stringliteral">"LowPri: "</span> << (<span class="keywordtype">int</span>)<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr12">_ReserveUsage</a>[<a class="code" href="a05381.html#a82a67">LowPri</a>] << <span class="stringliteral">" / "</span> << (<span class="keywordtype">int</span>)<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr11">_PriorityReserve</a>[<a class="code" href="a05381.html#a82a67">LowPri</a>] << <span class="stringliteral">" \n"</span>; +00265 out << <span class="stringliteral">"FreeTracks: "</span> << <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">_FreeTracks</a>.size() << <span class="stringliteral">" / "</span> << <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero4">_NbTracks</a> << <span class="stringliteral">" \n"</span>; +00266 out << <span class="stringliteral">"Average update time: "</span> << std::setw(10) << (1000.0 * <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero11">_UpdateTime</a> / <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero10">_UpdateCount</a>) << <span class="stringliteral">" msec\n"</span>; +00267 out << <span class="stringliteral">"Average create time: "</span> << std::setw(10) <<(1000.0 * <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero1">_CreateTime</a> / <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero0">_CreateCount</a>) << <span class="stringliteral">" msec\n"</span>; +00268 out << <span class="stringliteral">"Estimated CPU: "</span> << std::setiosflags(ios::right) << std::setprecision(6) << std::setw(10) << (100.0 * 1000.0 * (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero11">_UpdateTime</a> + <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsero1">_CreateTime</a>) / <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUsera10">curTime</a>()) << <span class="stringliteral">"%\n"</span>; +00269 +00270 <span class="keywordflow">if</span> (<a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>) +00271 { +00272 out << <span class="stringliteral">"\n"</span>; +00273 out << <span class="stringliteral">"Driver: \n"</span>; +00274 <a class="code" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">_SoundDriver</a>->writeProfile(out); +00275 } +00276 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Friends And Related Function Documentation</h2> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsern0" doxytag="NLSOUND::CAudioMixerUser::CControledSources" ></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"> friend struct <a class="el" href="a02237.html">CControledSources</a><code> [friend]</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="a05466.html#l00414">414</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsern1" doxytag="NLSOUND::CAudioMixerUser::CUserVarSerializer" ></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"> friend class <a class="el" href="a03639.html">CUserVarSerializer</a><code> [friend]</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="a05466.html#l00415">415</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsern2" doxytag="NLSOUND::CAudioMixerUser::displaySoundInfoClass" ></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"> friend struct displaySoundInfoClass<code> [friend]</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="a05466.html#l00578">578</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr0" doxytag="NLSOUND::CAudioMixerUser::_AutoLoadSample" ></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="a02235.html#NLSOUND_1_1CAudioMixerUserr0">NLSOUND::CAudioMixerUser::_AutoLoadSample</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +flag for automatic sample bank loading. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00439">439</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01576">createSource()</a>, and <a class="el" href="a05465.html#l00358">init()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr1" doxytag="NLSOUND::CAudioMixerUser::_BackgroundFilterNames" ></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::string <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr1">NLSOUND::CAudioMixerUser::_BackgroundFilterNames</a>[TBackgroundFlags::NB_BACKGROUND_FLAGS]<code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Array of filter name. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00467">467</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00112">CAudioMixerUser()</a>, <a class="el" href="a05465.html#l00808">getBackgroundFlagName()</a>, <a class="el" href="a05465.html#l00358">init()</a>, and <a class="el" href="a05465.html#l00798">setBackgroundFlagName()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr2" doxytag="NLSOUND::CAudioMixerUser::_BackgroundFilterShortNames" ></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::string <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr2">NLSOUND::CAudioMixerUser::_BackgroundFilterShortNames</a>[TBackgroundFlags::NB_BACKGROUND_FLAGS]<code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Array of filter short names. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00469">469</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00112">CAudioMixerUser()</a>, <a class="el" href="a05465.html#l00816">getBackgroundFlagShortName()</a>, <a class="el" href="a05465.html#l00358">init()</a>, and <a class="el" href="a05465.html#l00803">setBackgroundFlagShortName()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr3" doxytag="NLSOUND::CAudioMixerUser::_BackgroundSoundManager" ></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="a02248.html">CBackgroundSoundManager</a>* <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr3">NLSOUND::CAudioMixerUser::_BackgroundSoundManager</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Intance of the background sound manager. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00465">465</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01122">applyListenerMove()</a>, <a class="el" href="a05465.html#l00829">getBackgroundFilterFades()</a>, <a class="el" href="a05465.html#l00825">getBackgroundFlags()</a>, <a class="el" href="a05466.html#l00279">getBackgroundSoundManager()</a>, <a class="el" href="a05465.html#l00358">init()</a>, <a class="el" href="a05465.html#l02116">loadBackgroundAudioFromPrimitives()</a>, <a class="el" href="a05465.html#l02107">loadBackgroundEffectsFromRegion()</a>, <a class="el" href="a05465.html#l02111">loadBackgroundSamplesFromRegion()</a>, <a class="el" href="a05465.html#l02131">loadBackgroundSound()</a>, <a class="el" href="a05465.html#l02102">loadBackgroundSoundFromRegion()</a>, <a class="el" href="a05465.html#l02121">playBackgroundSound()</a>, <a class="el" href="a05465.html#l02096">setBackgroundFilterFades()</a>, <a class="el" href="a05465.html#l02091">setBackgroundFlags()</a>, <a class="el" href="a05465.html#l01983">setListenerPos()</a>, <a class="el" href="a05465.html#l02126">stopBackgroundSound()</a>, <a class="el" href="a05465.html#l01268">update()</a>, and <a class="el" href="a05465.html#l00157">~CAudioMixerUser()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr4" doxytag="NLSOUND::CAudioMixerUser::_BufferToSources" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsery4">TBufferToSourceContainer</a> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr4">NLSOUND::CAudioMixerUser::_BufferToSources</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Assoc between buffer and source. Used when buffers are unloaded. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00488">488</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l02028">registerBufferAssoc()</a>, and <a class="el" href="a05465.html#l02033">unregisterBufferAssoc()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr5" doxytag="NLSOUND::CAudioMixerUser::_ClusteredSound" ></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="a02363.html">CClusteredSound</a>* <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr5">NLSOUND::CAudioMixerUser::_ClusteredSound</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Instance of the clustered sound system. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00472">472</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05466.html#l00295">getClusteredSound()</a>, <a class="el" href="a05465.html#l00204">initClusteredSound()</a>, <a class="el" href="a05465.html#l01268">update()</a>, and <a class="el" href="a05465.html#l00157">~CAudioMixerUser()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero0" doxytag="NLSOUND::CAudioMixerUser::_CreateCount" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsero0">NLSOUND::CAudioMixerUser::_CreateCount</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00575">575</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00112">CAudioMixerUser()</a>, <a class="el" href="a05465.html#l01576">createSource()</a>, and <a class="el" href="a05465.html#l00227">writeProfile()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero1" doxytag="NLSOUND::CAudioMixerUser::_CreateTime" ></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"> double <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsero1">NLSOUND::CAudioMixerUser::_CreateTime</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00573">573</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00112">CAudioMixerUser()</a>, <a class="el" href="a05465.html#l01576">createSource()</a>, and <a class="el" href="a05465.html#l00227">writeProfile()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserp0" doxytag="NLSOUND::CAudioMixerUser::_EventList" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsery9">TTimedEventContainer</a> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp0">NLSOUND::CAudioMixerUser::_EventList</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +List of event ordered by time. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00423">423</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01268">update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserp1" doxytag="NLSOUND::CAudioMixerUser::_EventListUpdate" ></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<std::pair<<a class="el" href="a05378.html#a242">NLMISC::TTime</a>, <a class="el" href="a02238.html">IMixerEvent</a>*> > <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp1">NLSOUND::CAudioMixerUser::_EventListUpdate</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +List of update for the event list. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00427">427</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l02068">addEvent()</a>, <a class="el" href="a05465.html#l02075">removeEvents()</a>, and <a class="el" href="a05465.html#l01268">update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserp2" doxytag="NLSOUND::CAudioMixerUser::_Events" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsery6">TEventContainer</a> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp2">NLSOUND::CAudioMixerUser::_Events</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +List of event ordered by event ptr with there respective multimap iterator. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00425">425</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l02075">removeEvents()</a>, and <a class="el" href="a05465.html#l01268">update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr6" doxytag="NLSOUND::CAudioMixerUser::_FreeTracks" ></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="a03540.html">CTrack</a>*> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr6">NLSOUND::CAudioMixerUser::_FreeTracks</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The vector of curently free tracks. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00446">446</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01217">freeTrack()</a>, <a class="el" href="a05465.html#l01873">getAvailableTracksCount()</a>, <a class="el" href="a05465.html#l01152">getFreeTrack()</a>, <a class="el" href="a05465.html#l01110">getFreeTracks()</a>, <a class="el" href="a05465.html#l01878">getUsedTracksCount()</a>, <a class="el" href="a05465.html#l00358">init()</a>, and <a class="el" href="a05465.html#l00227">writeProfile()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserv0" doxytag="NLSOUND::CAudioMixerUser::_Instance" ></a><p> +<table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top"> <a class="el" href="a02235.html">CAudioMixerUser</a> * <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserv0">NLSOUND::CAudioMixerUser::_Instance</a> = NULL<code> [static, private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The audio mixer singleton instance. +<p> + +<p> +Definition at line <a class="el" href="a05465.html#l00085">85</a> of file <a class="el" href="a05465.html">audio_mixer_user.cpp</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero2" doxytag="NLSOUND::CAudioMixerUser::_Leaving" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsero2">NLSOUND::CAudioMixerUser::_Leaving</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Flag set in destructor. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00561">561</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00288">reset()</a>, and <a class="el" href="a05465.html#l00157">~CAudioMixerUser()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr7" doxytag="NLSOUND::CAudioMixerUser::_Listener" ></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="a02768.html">CListenerUser</a> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr7">NLSOUND::CAudioMixerUser::_Listener</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The listener instance. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00475">475</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05466.html#l00229">getListener()</a>, <a class="el" href="a05465.html#l00358">init()</a>, <a class="el" href="a05465.html#l01983">setListenerPos()</a>, and <a class="el" href="a05465.html#l01268">update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr8" doxytag="NLSOUND::CAudioMixerUser::_ListenPosition" ></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="a02235.html#NLSOUND_1_1CAudioMixerUserr8">NLSOUND::CAudioMixerUser::_ListenPosition</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Listener position vector. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00478">478</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01122">applyListenerMove()</a>, <a class="el" href="a05465.html#l01576">createSource()</a>, <a class="el" href="a05465.html#l01152">getFreeTrack()</a>, <a class="el" href="a05466.html#l00262">getListenPosVector()</a>, and <a class="el" href="a05465.html#l01268">update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr9" doxytag="NLSOUND::CAudioMixerUser::_LowWaterMark" ></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="a02235.html#NLSOUND_1_1CAudioMixerUserr9">NLSOUND::CAudioMixerUser::_LowWaterMark</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Low water mark. After this number of free voice is reach, reserve can't be overloaded. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00456">456</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01152">getFreeTrack()</a>, <a class="el" href="a05465.html#l00358">init()</a>, and <a class="el" href="a05465.html#l00219">setLowWaterMark()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero3" doxytag="NLSOUND::CAudioMixerUser::_MaxNbTracks" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsero3">NLSOUND::CAudioMixerUser::_MaxNbTracks</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Max _NbTracks. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00559">559</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00358">init()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero4" doxytag="NLSOUND::CAudioMixerUser::_NbTracks" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsero4">NLSOUND::CAudioMixerUser::_NbTracks</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Size of the physical sources array (must be <= MAX_TRACKS). +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00557">557</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01052">bufferUnloaded()</a>, <a class="el" href="a05465.html#l01152">getFreeTrack()</a>, <a class="el" href="a05466.html#l00241">getPolyphony()</a>, <a class="el" href="a05465.html#l01878">getUsedTracksCount()</a>, <a class="el" href="a05465.html#l00358">init()</a>, <a class="el" href="a05465.html#l00288">reset()</a>, <a class="el" href="a05465.html#l00219">setLowWaterMark()</a>, <a class="el" href="a05465.html#l00214">setPriorityReserve()</a>, <a class="el" href="a05465.html#l01268">update()</a>, <a class="el" href="a05465.html#l00227">writeProfile()</a>, and <a class="el" href="a05465.html#l00157">~CAudioMixerUser()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr10" doxytag="NLSOUND::CAudioMixerUser::_PackedSheetPath" ></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::string <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr10">NLSOUND::CAudioMixerUser::_PackedSheetPath</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The path to the packed sheet files. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00483">483</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05466.html#l00275">getPackedSheetPath()</a>, <a class="el" href="a05465.html#l00895">initUserVar()</a>, and <a class="el" href="a05465.html#l00343">setPackedSheetOption()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero5" doxytag="NLSOUND::CAudioMixerUser::_PlayingSources" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsero5">NLSOUND::CAudioMixerUser::_PlayingSources</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Number of source currently playing. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00549">549</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05466.html#l00320">decPlayingSource()</a>, <a class="el" href="a05465.html#l01866">getPlayingSourcesCount()</a>, and <a class="el" href="a05466.html#l00319">incPlayingSource()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero6" doxytag="NLSOUND::CAudioMixerUser::_PlayingSourcesMuted" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsero6">NLSOUND::CAudioMixerUser::_PlayingSourcesMuted</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Number of source doing muted play. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00551">551</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05466.html#l00322">decPlayingSourceMuted()</a>, <a class="el" href="a05466.html#l00251">getMutedPlayingSourcesCount()</a>, <a class="el" href="a05466.html#l00321">incPlayingSourceMuted()</a>, and <a class="el" href="a05465.html#l00227">writeProfile()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr11" doxytag="NLSOUND::CAudioMixerUser::_PriorityReserve" ></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="a02235.html#NLSOUND_1_1CAudioMixerUserr11">NLSOUND::CAudioMixerUser::_PriorityReserve</a>[NbSoundPriorities]<code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Table of track reserve for each priority. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00452">452</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01152">getFreeTrack()</a>, <a class="el" href="a05465.html#l00358">init()</a>, <a class="el" href="a05465.html#l00214">setPriorityReserve()</a>, and <a class="el" href="a05465.html#l00227">writeProfile()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr12" doxytag="NLSOUND::CAudioMixerUser::_ReserveUsage" ></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="a02235.html#NLSOUND_1_1CAudioMixerUserr12">NLSOUND::CAudioMixerUser::_ReserveUsage</a>[NbSoundPriorities]<code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Table of current playing source for each priority. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00454">454</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01217">freeTrack()</a>, <a class="el" href="a05465.html#l01152">getFreeTrack()</a>, <a class="el" href="a05465.html#l00358">init()</a>, and <a class="el" href="a05465.html#l00227">writeProfile()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr13" doxytag="NLSOUND::CAudioMixerUser::_SamplePath" ></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::string <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr13">NLSOUND::CAudioMixerUser::_SamplePath</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The path to the sample banks. This should be specified in the config file. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00481">481</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00560">buildSampleBankList()</a>, <a class="el" href="a05465.html#l01142">reloadSampleBanks()</a>, and <a class="el" href="a05465.html#l00350">setSamplePath()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr14" doxytag="NLSOUND::CAudioMixerUser::_SoundDriver" ></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="a03419.html">ISoundDriver</a>* <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr14">NLSOUND::CAudioMixerUser::_SoundDriver</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The sound driver instance. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00462">462</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00560">buildSampleBankList()</a>, <a class="el" href="a05465.html#l02148">displayDriverBench()</a>, <a class="el" href="a05465.html#l02142">endDriverBench()</a>, <a class="el" href="a05465.html#l01103">getSoundDriver()</a>, <a class="el" href="a05465.html#l00358">init()</a>, <a class="el" href="a05465.html#l01803">loadSampleBank()</a>, <a class="el" href="a05465.html#l02136">startDriverBench()</a>, <a class="el" href="a05465.html#l01268">update()</a>, <a class="el" href="a05465.html#l00227">writeProfile()</a>, and <a class="el" href="a05465.html#l00157">~CAudioMixerUser()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero7" doxytag="NLSOUND::CAudioMixerUser::_Sources" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsery8">TSourceContainer</a> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsero7">NLSOUND::CAudioMixerUser::_Sources</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +All Logical sources. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00546">546</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01517">addSource()</a>, <a class="el" href="a05465.html#l01230">getPlayingSoundsPos()</a>, <a class="el" href="a05466.html#l00243">getSourcesInstanceCount()</a>, <a class="el" href="a05465.html#l01887">getSourcesStats()</a>, <a class="el" href="a05465.html#l01740">removeSource()</a>, <a class="el" href="a05465.html#l00288">reset()</a>, and <a class="el" href="a05465.html#l01268">update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr15" doxytag="NLSOUND::CAudioMixerUser::_SourceWaitingForPlay" ></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::list<<a class="el" href="a03395.html">CSimpleSource</a>*> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserr15">NLSOUND::CAudioMixerUser::_SourceWaitingForPlay</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The list of non discardable sound to play as soon as possible in order of arrival. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00449">449</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00280">addSourceWaitingForPlay()</a>, <a class="el" href="a05465.html#l01152">getFreeTrack()</a>, <a class="el" href="a05465.html#l00288">reset()</a>, <a class="el" href="a05465.html#l01268">update()</a>, and <a class="el" href="a05465.html#l00227">writeProfile()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero8" doxytag="NLSOUND::CAudioMixerUser::_StartTime" ></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#a243">NLMISC::TTicks</a> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsero8">NLSOUND::CAudioMixerUser::_StartTime</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00563">563</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero9" doxytag="NLSOUND::CAudioMixerUser::_Tracks" ></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="a03540.html">CTrack</a>* <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsero9">NLSOUND::CAudioMixerUser::_Tracks</a>[<a class="el" href="a05381.html#a1">MAX_TRACKS</a>] + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Physical sources array. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00555">555</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero10" doxytag="NLSOUND::CAudioMixerUser::_UpdateCount" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsero10">NLSOUND::CAudioMixerUser::_UpdateCount</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00574">574</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00112">CAudioMixerUser()</a>, <a class="el" href="a05465.html#l01268">update()</a>, and <a class="el" href="a05465.html#l00227">writeProfile()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserp3" doxytag="NLSOUND::CAudioMixerUser::_UpdateEventList" ></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<std::pair<<a class="el" href="a02239.html">IMixerUpdate</a>*, bool> > <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp3">NLSOUND::CAudioMixerUser::_UpdateEventList</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +List of update to add or remove (bool param of the pair). +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00421">421</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l02053">registerUpdate()</a>, <a class="el" href="a05465.html#l02060">unregisterUpdate()</a>, and <a class="el" href="a05465.html#l01268">update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserp4" doxytag="NLSOUND::CAudioMixerUser::_UpdateList" ></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="a02235.html#NLSOUND_1_1CAudioMixerUsery7">TMixerUpdateContainer</a> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp4">NLSOUND::CAudioMixerUser::_UpdateList</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +List of object to update. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00419">419</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01268">update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr16" doxytag="NLSOUND::CAudioMixerUser::_UpdatePackedSheet" ></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="a02235.html#NLSOUND_1_1CAudioMixerUserr16">NLSOUND::CAudioMixerUser::_UpdatePackedSheet</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +A flag to update or not the packed sheet. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00485">485</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05466.html#l00276">getPackedSheetUpdate()</a>, <a class="el" href="a05465.html#l00358">init()</a>, <a class="el" href="a05465.html#l00895">initUserVar()</a>, <a class="el" href="a05465.html#l01142">reloadSampleBanks()</a>, and <a class="el" href="a05465.html#l00343">setPackedSheetOption()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUsero11" doxytag="NLSOUND::CAudioMixerUser::_UpdateTime" ></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"> double <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUsero11">NLSOUND::CAudioMixerUser::_UpdateTime</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00572">572</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00112">CAudioMixerUser()</a>, <a class="el" href="a05465.html#l01268">update()</a>, and <a class="el" href="a05465.html#l00227">writeProfile()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr17" doxytag="NLSOUND::CAudioMixerUser::_UseADPCM" ></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="a02235.html#NLSOUND_1_1CAudioMixerUserr17">NLSOUND::CAudioMixerUser::_UseADPCM</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +flag for usage of ADPCM mixing +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00441">441</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00358">init()</a>, and <a class="el" href="a05466.html#l00177">useAPDCM()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserr18" doxytag="NLSOUND::CAudioMixerUser::_UseEax" ></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="a02235.html#NLSOUND_1_1CAudioMixerUserr18">NLSOUND::CAudioMixerUser::_UseEax</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +flag for usage of eax +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00443">443</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l00358">init()</a>, and <a class="el" href="a05465.html#l01268">update()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLSOUND_1_1CAudioMixerUserp5" doxytag="NLSOUND::CAudioMixerUser::_UserVarControls" ></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="a02235.html#NLSOUND_1_1CAudioMixerUserx0">TUserVarControlsContainer</a> <a class="el" href="a02235.html#NLSOUND_1_1CAudioMixerUserp5">NLSOUND::CAudioMixerUser::_UserVarControls</a><code> [protected]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Container for all user controler and currently controled playing source. +<p> + +<p> +Definition at line <a class="el" href="a05466.html#l00435">435</a> of file <a class="el" href="a05466.html">audio_mixer_user.h</a>. +<p> +Referenced by <a class="el" href="a05465.html#l01017">addUserControledSource()</a>, <a class="el" href="a05465.html#l01006">getUserVar()</a>, <a class="el" href="a05465.html#l00895">initUserVar()</a>, <a class="el" href="a05465.html#l01039">removeUserControledSource()</a>, and <a class="el" href="a05465.html#l00975">setUserVar()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a05466.html">audio_mixer_user.h</a><li><a class="el" href="a05465.html">audio_mixer_user.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 14:30:13 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> |