Initial commit: client source

This commit is contained in:
Andreas Lierschaft
2026-08-17 20:03:02 +02:00
commit 9ae37cd0ea
869 changed files with 227899 additions and 0 deletions
+118
View File
@@ -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