Initial commit: client source
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
#ifndef __MILESLIB_CSOUNDINSTANCE_H__
|
||||
#define __MILESLIB_CSOUNDINSTANCE_H__
|
||||
|
||||
#include "SoundBase.h"
|
||||
|
||||
class ISoundInstance : public CSoundBase
|
||||
{
|
||||
public:
|
||||
ISoundInstance() {}
|
||||
virtual ~ISoundInstance() {}
|
||||
|
||||
virtual bool Initialize() = 0;
|
||||
virtual void Destroy() = 0;
|
||||
virtual bool SetSound(CSoundData* pSound) = 0;
|
||||
virtual void Play(int iLoopCount = 1, DWORD dwPlayCycleTimeLimit = 0) const = 0;
|
||||
virtual void Pause() const = 0;
|
||||
virtual void Resume() const = 0;
|
||||
virtual void Stop() = 0;
|
||||
virtual void GetVolume(float& rfVolume) const = 0;
|
||||
virtual void SetVolume(float volume) const = 0;
|
||||
virtual bool IsDone() const = 0;
|
||||
virtual void SetPosition(float x, float y, float z) const = 0;
|
||||
virtual void SetOrientation(float x_face, float y_face, float z_face,
|
||||
float x_normal, float y_normal, float z_normal) const = 0;
|
||||
virtual void SetVelocity(float x, float y, float z, float fMagnitude) const = 0;
|
||||
};
|
||||
|
||||
class CSoundInstance2D : public ISoundInstance
|
||||
{
|
||||
public:
|
||||
CSoundInstance2D();
|
||||
virtual ~CSoundInstance2D();
|
||||
|
||||
public: // from interface
|
||||
bool Initialize();
|
||||
void Destroy();
|
||||
|
||||
bool SetSound(CSoundData* pSound);
|
||||
void Play(int iLoopCount = 1, DWORD dwPlayCycleTimeLimit = 0) const;
|
||||
void Pause() const;
|
||||
void Resume() const;
|
||||
void Stop();
|
||||
void GetVolume(float& rfVolume) const;
|
||||
void SetVolume(float volume) const;
|
||||
bool IsDone() const;
|
||||
void SetPosition(float x, float y, float z) const;
|
||||
void SetOrientation(float x_face, float y_face, float z_face,
|
||||
float x_normal, float y_normal, float z_normal) const;
|
||||
void SetVelocity(float fx, float fy, float fz, float fMagnitude) const;
|
||||
|
||||
private:
|
||||
HSAMPLE m_sample;
|
||||
CSoundData* m_pSoundData;
|
||||
};
|
||||
|
||||
class CSoundInstance3D : public ISoundInstance
|
||||
{
|
||||
public:
|
||||
CSoundInstance3D();
|
||||
virtual ~CSoundInstance3D();
|
||||
|
||||
public: // from interface
|
||||
bool Initialize();
|
||||
void Destroy();
|
||||
|
||||
bool SetSound(CSoundData * pSound);
|
||||
void Play(int iLoopCount = 1, DWORD dwPlayCycleTimeLimit = 0) const;
|
||||
void Pause() const;
|
||||
void Resume() const;
|
||||
void Stop();
|
||||
void GetVolume(float& rfVolume) const;
|
||||
void SetVolume(float volume) const;
|
||||
bool IsDone() const;
|
||||
|
||||
void SetPosition(float x, float y, float z) const;
|
||||
void SetOrientation(float x_face, float y_face, float z_face,
|
||||
float x_normal, float y_normal, float z_normal) const;
|
||||
void SetVelocity(float fx, float fy, float fz, float fMagnitude) const;
|
||||
|
||||
void UpdatePosition(float fElapsedTime);
|
||||
|
||||
private:
|
||||
H3DSAMPLE m_sample;
|
||||
CSoundData * m_pSoundData;
|
||||
};
|
||||
|
||||
class CSoundInstanceStream : public ISoundInstance
|
||||
{
|
||||
public:
|
||||
CSoundInstanceStream();
|
||||
virtual ~CSoundInstanceStream();
|
||||
|
||||
public: // from interface
|
||||
bool Initialize();
|
||||
void Destroy();
|
||||
|
||||
void SetStream(HSTREAM stream);
|
||||
bool SetSound(CSoundData* pSound);
|
||||
|
||||
void Play(int iLoopCount = 1, DWORD dwPlayCycleTimeLimit = 0) const;
|
||||
void Pause() const;
|
||||
void Resume() const;
|
||||
void Stop();
|
||||
void GetVolume(float& rfVolume) const;
|
||||
void SetVolume(float volume) const;
|
||||
bool IsDone() const;
|
||||
bool IsData() const;
|
||||
|
||||
void SetPosition(float x, float y, float z) const;
|
||||
void SetOrientation(float x_face, float y_face, float z_face,
|
||||
float x_normal, float y_normal, float z_normal) const;
|
||||
void SetVelocity(float fx, float fy, float fz, float fMagnitude) const;
|
||||
|
||||
private:
|
||||
HSTREAM m_stream;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user