aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/hrtf.h
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2014-02-23 21:11:01 -0800
committerChris Robinson <[email protected]>2014-02-23 21:11:01 -0800
commitc68ce288d06372ff5cfd4c060c1f7b00058ca4d9 (patch)
tree7866ada518c731f01f3556907a084654874d6b99 /Alc/hrtf.h
parent5731534e8d3582c2332a99e7355aa88534aa706b (diff)
Move HRTF macros and function declarations to a separate header
Diffstat (limited to 'Alc/hrtf.h')
-rw-r--r--Alc/hrtf.h28
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 */