Go to the documentation of this file.00001 #ifndef __NYTRO_AudioProvider_H
00002 #define __NYTRO_AudioProvider_H
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "system/nyCommon.h"
00012 #include "system/nyProvider.h"
00013 #include "math/nyMath.h"
00014 #include "audio/nySoundSource.h"
00015
00016 namespace Nytro
00017 {
00019 namespace Audio
00020 {
00023 class NYTRO_API AudioProvider : public Provider
00024 {
00025 public:
00026
00028 enum AudioProviderClassId
00029 {
00030 eClassId_SoundBuffer,
00031 eClassId_SoundSource,
00032 eClassId_SoundBlocker
00033 };
00034
00035 AudioProvider();
00036 virtual ~AudioProvider();
00037
00038
00039
00040
00041 virtual void setFrequency( int32 aValue );
00042 virtual void setSoundBufferSize( int32 aValue );
00043 virtual void setMaxChannels( int32 aValue );
00044 virtual void setSoundListener( const Vector3D& rPos, const Vector3D& rVel, const Vector3D& rForward, const Vector3D& rTop );
00045 virtual void setDistanceFactor( float32 aValue );
00046 virtual void setDopplerFactor( float32 aValue );
00047 virtual void setRolloffFactor( float32 aValue );
00048 virtual void setDriver( int32 aIndex );
00049 virtual void setOutput( int32 aIndex );
00050
00051
00052
00053
00054 virtual int32 getFrequency();
00055 virtual int32 getSoundBufferSize();
00056 virtual int32 getMaxChannels();
00057 virtual vector<string>& getDrivers();
00058 virtual vector<string>& getOutputs();
00059 virtual void getSoundListener( Vector3D& rPos, Vector3D& rVel, Vector3D& rForward, Vector3D& rTop );
00060 virtual float32 getDistanceFactor();
00061 virtual float32 getDopplerFactor();
00062 virtual float32 getRolloffFactor();
00063 virtual float32 getCpuUsage();
00064 virtual int32 getDriver();
00065 virtual int32 getOutput();
00066 SoundSource* getGameSoundTrack( const char* pName );
00067 SoundSource* getCurrentGameSoundTrack();
00068 float32 getGameSoundTrackCrossFadeSpeed();
00069
00070
00071
00072
00073 virtual void updateSoundSystem();
00074 virtual void stopAllSounds();
00075 virtual void resumeAllSounds();
00080 virtual void setGameSoundTrack( const char* pName, SoundSource* pNode );
00083 void changeGameSoundTrack( const char* pName );
00086 void stopGameSoundTrack( bool bFadeOut = true );
00087 void setGameSoundTrackCrossFadeSpeed( float32 aSpeed );
00088 void removeGameSoundTrack( const char* pName );
00089 void removeAllGameSoundTracks();
00090
00091 protected:
00092
00093 int32 m_frequency;
00094 int32 m_maxChannels;
00095 int32 m_soundBufferSize;
00096 vector<string> m_drivers;
00097 vector<string> m_outputs;
00098 int32 m_currentDriver, m_currentOutput;
00099 map<string,SoundSource*> m_gameSoundTracks;
00100 float32 m_gameSoundTrackCrossFadeTimer, m_gameSoundTrackCrossFadeSpeed;
00101 bool m_bIsCrossFadingGameSoundTrack;
00102 string m_currentGameSoundTrack, m_nextGameSoundTrack;
00103 };
00104 };
00105 };
00106
00107 #endif