client/MilesLib/SoundManager3D.h

45 lines
1.0 KiB
C++

#ifndef __MILESLIB_CSOUNDMANAGER3D_H__
#define __MILESLIB_CSOUNDMANAGER3D_H__
#include "SoundBase.h"
#include "SoundInstance.h"
class CSoundManager3D : public CSoundBase
{
public:
enum
{
INSTANCE_MAX_COUNT = 32,
MAX_PROVIDERS = 32,
};
public:
CSoundManager3D();
virtual ~CSoundManager3D();
bool Initialize();
void Destroy();
int GetEmptyInstanceIndex();
int SetInstance(const char * c_szFileName);
ISoundInstance * GetInstance(DWORD dwIndex);
void SetListenerDirection(float fxDir, float fyDir, float fzDir, float fxUp, float fyUp, float fzUp);
void SetListenerPosition(float x, float y, float z);
void SetListenerVelocity(float fDistanceX, float fDistanceY, float fDistanceZ, float fNagnitude);
void Lock(int iIndex);
void Unlock(int iIndex);
protected:
bool IsValidInstanceIndex(int iIndex);
protected:
bool m_bLockingFlag[INSTANCE_MAX_COUNT];
CSoundInstance3D m_Instances[INSTANCE_MAX_COUNT];
H3DPOBJECT m_pListener;
bool m_bInit;
};
#endif