prime/include/Kyoto/Audio/CAudioSys.hpp

66 lines
1.5 KiB
C++

#ifndef _CAUDIOSYS
#define _CAUDIOSYS
#include "types.h"
#include "Kyoto/Math/CVector3f.hpp"
enum ETRKSampleRate {
kTSR_Zero,
kTSR_One,
// TODO
};
enum ETRKRepeatMode {
// TODO
};
class CAudioSys {
public:
enum ESurroundModes { kSM_Mono, kSM_Stereo, kSM_Surround };
struct C3DEmitterParmData {
C3DEmitterParmData(const CVector3f& pos, const CVector3f& dir, float maxDist, float distComp,
uint flags, ushort sfxId, float maxVol, float minVol, bool important,
uchar prio)
: x0_pos(pos)
, xc_dir(dir)
, x18_maxDist(maxDist)
, x1c_distComp(distComp)
, x20_flags(flags)
, x24_sfxId(sfxId)
, x26_maxVol(maxVol)
, x27_minVol(minVol)
, x28_important(important)
, x29_prio(prio) {}
CVector3f x0_pos;
CVector3f xc_dir;
float x18_maxDist;
float x1c_distComp;
uint x20_flags;
ushort x24_sfxId;
float x26_maxVol;
float x27_minVol;
bool x28_important; // Can't be allocated over, regardless of priority
uchar x29_prio;
};
CAudioSys(uchar, uchar, uchar, uchar, uint);
~CAudioSys();
static void SysSetVolume(uchar, uint, uchar);
static void SysSetSfxVolume(uchar, ushort, uchar, uchar);
static void SetDefaultVolumeScale(short);
static void SetVolumeScale(short);
static void SetSurroundMode(ESurroundModes);
static void TrkSetSampleRate(ETRKSampleRate);
static short GetDefaultVolumeScale();
static const uchar kMaxVolume;
};
#endif // _CAUDIOSYS