mirror of https://github.com/PrimeDecomp/prime.git
66 lines
1.5 KiB
C++
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
|