diff options
author | Chris Robinson <[email protected]> | 2014-02-23 21:11:01 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2014-02-23 21:11:01 -0800 |
commit | c68ce288d06372ff5cfd4c060c1f7b00058ca4d9 (patch) | |
tree | 7866ada518c731f01f3556907a084654874d6b99 /Alc/hrtf.h | |
parent | 5731534e8d3582c2332a99e7355aa88534aa706b (diff) |
Move HRTF macros and function declarations to a separate header
Diffstat (limited to 'Alc/hrtf.h')
-rw-r--r-- | Alc/hrtf.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Alc/hrtf.h b/Alc/hrtf.h new file mode 100644 index 00000000..d9022d02 --- /dev/null +++ b/Alc/hrtf.h @@ -0,0 +1,28 @@ +#ifndef ALC_HRTF_H +#define ALC_HRTF_H + +#include "AL/al.h" +#include "AL/alc.h" + +enum DevFmtChannels; + +struct Hrtf; + +#define HRIR_BITS (7) +#define HRIR_LENGTH (1<<HRIR_BITS) +#define HRIR_MASK (HRIR_LENGTH-1) +#define HRTFDELAY_BITS (20) +#define HRTFDELAY_FRACONE (1<<HRTFDELAY_BITS) +#define HRTFDELAY_MASK (HRTFDELAY_FRACONE-1) + +const struct Hrtf *GetHrtf(ALCdevice *device); +ALCboolean FindHrtfFormat(const ALCdevice *device, enum DevFmtChannels *chans, ALCuint *srate); + +void FreeHrtfs(void); + +ALuint GetHrtfIrSize(const struct Hrtf *Hrtf); +ALfloat CalcHrtfDelta(ALfloat oldGain, ALfloat newGain, const ALfloat olddir[3], const ALfloat newdir[3]); +void GetLerpedHrtfCoeffs(const struct Hrtf *Hrtf, ALfloat elevation, ALfloat azimuth, ALfloat gain, ALfloat (*coeffs)[2], ALuint *delays); +ALuint GetMovingHrtfCoeffs(const struct Hrtf *Hrtf, ALfloat elevation, ALfloat azimuth, ALfloat gain, ALfloat delta, ALint counter, ALfloat (*coeffs)[2], ALuint *delays, ALfloat (*coeffStep)[2], ALint *delayStep); + +#endif /* ALC_HRTF_H */ |