aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include/alu.h
diff options
context:
space:
mode:
Diffstat (limited to 'OpenAL32/Include/alu.h')
-rw-r--r--OpenAL32/Include/alu.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h
index 50ef1f5e..af2ea857 100644
--- a/OpenAL32/Include/alu.h
+++ b/OpenAL32/Include/alu.h
@@ -138,16 +138,19 @@ typedef struct MixGains {
ALfloat Target;
} MixGains;
+typedef struct MixHrtfParams {
+ const HrtfParams *Target;
+ HrtfParams *Current;
+ struct {
+ alignas(16) ALfloat Coeffs[HRIR_LENGTH][2];
+ ALint Delay[2];
+ } Steps;
+} MixHrtfParams;
typedef struct DirectParams {
ALfloat (*OutBuffer)[BUFFERSIZE];
ALuint OutChannels;
- /* Last direction (relative to listener) and gain of a moving source. */
- aluVector LastDir;
- ALfloat LastGain;
- ALuint HrtfCounter;
-
struct {
enum ActiveFilters ActiveType;
ALfilterState LowPass;
@@ -155,7 +158,8 @@ typedef struct DirectParams {
} Filters[MAX_INPUT_CHANNELS];
struct {
- HrtfParams Params;
+ HrtfParams Current;
+ HrtfParams Target;
HrtfState State;
} Hrtf[MAX_INPUT_CHANNELS];
@@ -191,7 +195,7 @@ typedef void (*MixerFunc)(const ALfloat *data, ALuint OutChans,
ALuint Counter, ALuint OutPos, ALuint BufferSize);
typedef void (*HrtfMixerFunc)(ALfloat (*restrict OutBuffer)[BUFFERSIZE], const ALfloat *data,
ALuint Counter, ALuint Offset, ALuint OutPos,
- const ALuint IrSize, const HrtfParams *hrtfparams,
+ const ALuint IrSize, const MixHrtfParams *hrtfparams,
HrtfState *hrtfstate, ALuint BufferSize);