diff options
Diffstat (limited to 'OpenAL32/Include/alSource.h')
-rw-r--r-- | OpenAL32/Include/alSource.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h index 53d7f53c..0572cbc1 100644 --- a/OpenAL32/Include/alSource.h +++ b/OpenAL32/Include/alSource.h @@ -11,6 +11,10 @@ extern "C" { #endif +#define SRC_HISTORY_BITS (7) +#define SRC_HISTORY_LENGTH (1<<SRC_HISTORY_BITS) +#define SRC_HISTORY_MASK (SRC_HISTORY_LENGTH-1) + typedef enum { POINT_RESAMPLER = 0, LINEAR_RESAMPLER, @@ -90,20 +94,21 @@ typedef struct ALsource ALuint SampleSize; /* HRTF info */ - ALfloat HrtfHistory[MAXCHANNELS][HRTF_LENGTH]; + ALfloat HrtfHistory[MAXCHANNELS][SRC_HISTORY_LENGTH][2]; ALuint HrtfOffset; - // Current target parameters used for mixing - ALboolean NeedsUpdate; + /* Current target parameters used for mixing */ struct { ALint Step; - ALfloat HrtfCoeffs[MAXCHANNELS][HRTF_LENGTH][2]; + ALfloat HrtfCoeffs[MAXCHANNELS][HRIR_LENGTH][2]; + ALuint HrtfDelay[MAXCHANNELS][2]; /* A mixing matrix. First subscript is the channel number of the input * data (regardless of channel configuration) and the second is the * channel target (eg. FRONT_LEFT) */ ALfloat DryGains[MAXCHANNELS][MAXCHANNELS]; + FILTER iirFilter; ALfloat history[MAXCHANNELS*2]; @@ -113,6 +118,7 @@ typedef struct ALsource ALfloat history[MAXCHANNELS]; } Send[MAX_SENDS]; } Params; + ALboolean NeedsUpdate; ALvoid (*Update)(struct ALsource *self, const ALCcontext *context); ALvoid (*DoMix)(struct ALsource *self, ALCdevice *Device, |