# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NLSOUND::CBackgroundSoundManager Class Reference

This manager handle the background sound : primitive positioned sound (point, path and patatoid supported) primitive positioned effect (patatoid only) primitive positioned sample bank (patatoid only) A set of 16 application definable flag that can be used in background sound to filter the sub sounds of a background sound. More...

#include <background_sound_manager.h>

List of all members.

Public Methods

void loadSoundsFromRegion (const NLLIGO::CPrimRegion &region)
 Load the background sounds from a CPrimRegion class. More...

void loadEffecsFromRegion (const NLLIGO::CPrimRegion &region)
 Load the effects from a CPrimRegion class. More...

void loadSamplesFromRegion (const NLLIGO::CPrimRegion &region)
 Load the samples banks from a CPrimRegion class. More...

void load (const std::string &continent)
 Load background sound for a continent. More...

void unload ()
 Remove all data about the current continents. More...

void play ()
 Start to play the background sound. More...

void stop ()
 Stop the background sound. More...

void setListenerPosition (const NLMISC::CVector &listenerPosition)
 Call this method when the listener position change. More...

void updateBackgroundStatus ()
 Call this method to update the bacground sound (sub method od setListenerPosition). More...

const std::vector< NLMISC::CVector > & getZone (uint32 zone, bool *isPath=0)
 Return a patatoid. If isPath is not null, set it. More...

NLMISC::CVector getZoneSourcePos (uint32 zone)
 Return the position of the 3d source for a zone. More...

const UAudioMixer::TBackgroundFlagsgetBackgroundFlags ()
 Set the background flags. More...

void setBackgroundFlags (const UAudioMixer::TBackgroundFlags &backgroundFlags)
 Get the background flags. More...


Private Methods

 CBackgroundSoundManager ()
 Constructor. More...

virtual ~CBackgroundSoundManager ()
 Destructor. More...

void addSound (const std::string &soundName, const std::vector< NLLIGO::CPrimVector > &points, bool isPath)
 Internal use only for loading. More...

template<class CharType> std::vector< std::basic_string<
CharType > > 
split (const std::basic_string< CharType > &str, CharType splitTag)
 TODO : Utility... should be in NLMISC ? More...


Private Attributes

bool _Playing
 Flag for playing background sounds. More...

UAudioMixer::TBackgroundFlags _BackgroundFlags
 Environnement flags. More...

NLMISC::CVector _LastPosition
 The last position of the listener. More...

std::vector< TBanksData_Banks
 Container for the banks primitive. More...

std::set< std::string > _LoadedBanks
 Container for the list of currently loaded banks. More...

std::vector< TSoundData_Layers [BACKGROUND_LAYER]
 Array of vector of sound data. More...


Friends

class CAudioMixerUser


Detailed Description

This manager handle the background sound : primitive positioned sound (point, path and patatoid supported) primitive positioned effect (patatoid only) primitive positioned sample bank (patatoid only) A set of 16 application definable flag that can be used in background sound to filter the sub sounds of a background sound.

  • * - * - * -
Sounds can be put in three separate layer (named a, b and c). In each layer, sounds patatoid are concurent and the smaller in surface muffle the other sounds.

Effets are managed according to the EAX capacity of the driver.

Sample bank patatoid are used to dynamicaly load/unload the sample banks will the player walk the univers.

Author:
Boris Boucher , Nevrax France
Date:
2002

Definition at line 74 of file background_sound_manager.h.


Constructor & Destructor Documentation

NLSOUND::CBackgroundSoundManager::CBackgroundSoundManager   [private]
 

Constructor.

Definition at line 53 of file background_sound_manager.cpp.

NLSOUND::CBackgroundSoundManager::~CBackgroundSoundManager   [private, virtual]
 

Destructor.

Definition at line 58 of file background_sound_manager.cpp.

References unload.


Member Function Documentation

void NLSOUND::CBackgroundSoundManager::addSound const std::string &    soundName,
const std::vector< NLLIGO::CPrimVector > &    points,
bool    isPath
[private]
 

Internal use only for loading.

Definition at line 73 of file background_sound_manager.cpp.

References _Layers, NLSOUND::BACKGROUND_LAYER, CAudioMixerUser, NLMISC::clamp, count, id, min, and nlwarning.

const UAudioMixer::TBackgroundFlags & NLSOUND::CBackgroundSoundManager::getBackgroundFlags  
 

Set the background flags.

Definition at line 63 of file background_sound_manager.cpp.

References _BackgroundFlags.

const std::vector<NLMISC::CVector>& NLSOUND::CBackgroundSoundManager::getZone uint32    zone,
bool *    isPath = 0
 

Return a patatoid. If isPath is not null, set it.

CVector NLSOUND::CBackgroundSoundManager::getZoneSourcePos uint32    zone
 

Return the position of the 3d source for a zone.

Definition at line 665 of file background_sound_manager.cpp.

void NLSOUND::CBackgroundSoundManager::load const std::string &    continent
 

Load background sound for a continent.

It'll automatically unload the old continent before loading the new one. This method load the 'audio' regions (specifying the sounds), the 'effect' regions and the 'sample' regions. Continent is for example "matis" or "fyros". It'll add .prim to the continent name and lookup() to find zones. So, don't forget to add sound .prim in the CPath system for the lookup

void NLSOUND::CBackgroundSoundManager::loadEffecsFromRegion const NLLIGO::CPrimRegion   region
 

Load the effects from a CPrimRegion class.

Definition at line 250 of file background_sound_manager.cpp.

void NLSOUND::CBackgroundSoundManager::loadSamplesFromRegion const NLLIGO::CPrimRegion   region
 

Load the samples banks from a CPrimRegion class.

Definition at line 195 of file background_sound_manager.cpp.

References _Banks, min, nlwarning, split, and NLLIGO::CPrimRegion::VZones.

void NLSOUND::CBackgroundSoundManager::loadSoundsFromRegion const NLLIGO::CPrimRegion   region
 

Load the background sounds from a CPrimRegion class.

void NLSOUND::CBackgroundSoundManager::play  
 

Start to play the background sound.

Definition at line 369 of file background_sound_manager.cpp.

References _Playing, and updateBackgroundStatus.

void NLSOUND::CBackgroundSoundManager::setBackgroundFlags const UAudioMixer::TBackgroundFlags   backgroundFlags
 

Get the background flags.

Definition at line 68 of file background_sound_manager.cpp.

References _BackgroundFlags.

void NLSOUND::CBackgroundSoundManager::setListenerPosition const NLMISC::CVector   listenerPosition
 

Call this method when the listener position change.

template<class CharType>
std::vector<std::basic_string<CharType> > NLSOUND::CBackgroundSoundManager::split const std::basic_string< CharType > &    str,
CharType    splitTag
[inline, private]
 

TODO : Utility... should be in NLMISC ?

Definition at line 138 of file background_sound_manager.h.

Referenced by loadSamplesFromRegion.

void NLSOUND::CBackgroundSoundManager::stop  
 

Stop the background sound.

Definition at line 380 of file background_sound_manager.cpp.

References _Layers, _Playing, NLSOUND::BACKGROUND_LAYER, and CAudioMixerUser.

Referenced by unload.

void NLSOUND::CBackgroundSoundManager::unload  
 

Remove all data about the current continents.

Definition at line 400 of file background_sound_manager.cpp.

References _Layers, NLSOUND::BACKGROUND_LAYER, CAudioMixerUser, and stop.

Referenced by ~CBackgroundSoundManager.

void NLSOUND::CBackgroundSoundManager::updateBackgroundStatus  
 

Call this method to update the bacground sound (sub method od setListenerPosition).

Definition at line 433 of file background_sound_manager.cpp.

References _Banks, _LastPosition, _Layers, _LoadedBanks, _Playing, NLSOUND::BACKGROUND_LAYER, CAudioMixerUser, NLMISC::clamp, NLSOUND::INSIDE_FALLOF, and NLMISC::CVector::z.

Referenced by play.


Friends And Related Function Documentation

friend class CAudioMixerUser [friend]
 

Definition at line 126 of file background_sound_manager.h.

Referenced by addSound, stop, unload, and updateBackgroundStatus.


Member Data Documentation

UAudioMixer::TBackgroundFlags NLSOUND::CBackgroundSoundManager::_BackgroundFlags [private]
 

Environnement flags.

Definition at line 165 of file background_sound_manager.h.

Referenced by getBackgroundFlags, and setBackgroundFlags.

std::vector<TBanksData> NLSOUND::CBackgroundSoundManager::_Banks [private]
 

Container for the banks primitive.

Definition at line 186 of file background_sound_manager.h.

Referenced by loadSamplesFromRegion, and updateBackgroundStatus.

NLMISC::CVector NLSOUND::CBackgroundSoundManager::_LastPosition [private]
 

The last position of the listener.

Definition at line 168 of file background_sound_manager.h.

Referenced by updateBackgroundStatus.

std::vector<TSoundData> NLSOUND::CBackgroundSoundManager::_Layers[BACKGROUND_LAYER] [private]
 

Array of vector of sound data.

Definition at line 220 of file background_sound_manager.h.

Referenced by addSound, stop, unload, and updateBackgroundStatus.

std::set<std::string> NLSOUND::CBackgroundSoundManager::_LoadedBanks [private]
 

Container for the list of currently loaded banks.

Definition at line 188 of file background_sound_manager.h.

Referenced by updateBackgroundStatus.

bool NLSOUND::CBackgroundSoundManager::_Playing [private]
 

Flag for playing background sounds.

Definition at line 162 of file background_sound_manager.h.

Referenced by play, stop, and updateBackgroundStatus.


The documentation for this class was generated from the following files: