diff options
-rw-r--r-- | Alc/ALu.c | 44 | ||||
-rw-r--r-- | Alc/mixer.c | 8 | ||||
-rw-r--r-- | OpenAL32/Include/alSource.h | 6 |
3 files changed, 29 insertions, 29 deletions
@@ -270,12 +270,12 @@ ALvoid CalcNonAttnSourceParams(ALsource *ALSource, const ALCcontext *ALContext) if(chans[c].channel == LFE) { /* Skip LFE */ - ALSource->Params.Hrtf.Delay[c][0] = 0; - ALSource->Params.Hrtf.Delay[c][1] = 0; + ALSource->Params.Direct.Hrtf.Delay[c][0] = 0; + ALSource->Params.Direct.Hrtf.Delay[c][1] = 0; for(i = 0;i < HRIR_LENGTH;i++) { - ALSource->Params.Hrtf.Coeffs[c][i][0] = 0.0f; - ALSource->Params.Hrtf.Coeffs[c][i][1] = 0.0f; + ALSource->Params.Direct.Hrtf.Coeffs[c][i][0] = 0.0f; + ALSource->Params.Direct.Hrtf.Coeffs[c][i][1] = 0.0f; } } else @@ -285,8 +285,8 @@ ALvoid CalcNonAttnSourceParams(ALsource *ALSource, const ALCcontext *ALContext) GetLerpedHrtfCoeffs(Device->Hrtf, 0.0f, chans[c].angle, DryGain*ListenerGain, - ALSource->Params.Hrtf.Coeffs[c], - ALSource->Params.Hrtf.Delay[c]); + ALSource->Params.Direct.Hrtf.Coeffs[c], + ALSource->Params.Direct.Hrtf.Delay[c]); } } ALSource->Hrtf.Counter = 0; @@ -713,8 +713,8 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext) if(ALSource->Hrtf.Moving) { /* Calculate the normalized HRTF transition factor (delta). */ - delta = CalcHrtfDelta(ALSource->Params.Hrtf.Gain, DryGain, - ALSource->Params.Hrtf.Dir, Position); + delta = CalcHrtfDelta(ALSource->Params.Direct.Hrtf.Gain, DryGain, + ALSource->Params.Direct.Hrtf.Dir, Position); /* If the delta is large enough, get the moving HRIR target * coefficients, target delays, steppping values, and counter. */ if(delta > 0.001f) @@ -722,27 +722,27 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext) ALSource->Hrtf.Counter = GetMovingHrtfCoeffs(Device->Hrtf, ev, az, DryGain, delta, ALSource->Hrtf.Counter, - ALSource->Params.Hrtf.Coeffs[0], - ALSource->Params.Hrtf.Delay[0], - ALSource->Params.Hrtf.CoeffStep, - ALSource->Params.Hrtf.DelayStep); - ALSource->Params.Hrtf.Gain = DryGain; - ALSource->Params.Hrtf.Dir[0] = Position[0]; - ALSource->Params.Hrtf.Dir[1] = Position[1]; - ALSource->Params.Hrtf.Dir[2] = Position[2]; + ALSource->Params.Direct.Hrtf.Coeffs[0], + ALSource->Params.Direct.Hrtf.Delay[0], + ALSource->Params.Direct.Hrtf.CoeffStep, + ALSource->Params.Direct.Hrtf.DelayStep); + ALSource->Params.Direct.Hrtf.Gain = DryGain; + ALSource->Params.Direct.Hrtf.Dir[0] = Position[0]; + ALSource->Params.Direct.Hrtf.Dir[1] = Position[1]; + ALSource->Params.Direct.Hrtf.Dir[2] = Position[2]; } } else { /* Get the initial (static) HRIR coefficients and delays. */ GetLerpedHrtfCoeffs(Device->Hrtf, ev, az, DryGain, - ALSource->Params.Hrtf.Coeffs[0], - ALSource->Params.Hrtf.Delay[0]); + ALSource->Params.Direct.Hrtf.Coeffs[0], + ALSource->Params.Direct.Hrtf.Delay[0]); ALSource->Hrtf.Counter = 0; - ALSource->Params.Hrtf.Gain = DryGain; - ALSource->Params.Hrtf.Dir[0] = Position[0]; - ALSource->Params.Hrtf.Dir[1] = Position[1]; - ALSource->Params.Hrtf.Dir[2] = Position[2]; + ALSource->Params.Direct.Hrtf.Gain = DryGain; + ALSource->Params.Direct.Hrtf.Dir[0] = Position[0]; + ALSource->Params.Direct.Hrtf.Dir[1] = Position[1]; + ALSource->Params.Direct.Hrtf.Dir[2] = Position[2]; } } else diff --git a/Alc/mixer.c b/Alc/mixer.c index e2e80054..7dd4bbe4 100644 --- a/Alc/mixer.c +++ b/Alc/mixer.c @@ -106,10 +106,10 @@ static void MixDirect_Hrtf_##sampler(ALsource *Source, ALCdevice *Device, \ ALuint SamplesToDo, ALuint BufferSize) \ { \ const ALuint NumChannels = Source->NumChannels; \ - const ALint *RESTRICT DelayStep = Source->Params.Hrtf.DelayStep; \ + const ALint *RESTRICT DelayStep = Source->Params.Direct.Hrtf.DelayStep; \ ALfloat (*RESTRICT DryBuffer)[MAXCHANNELS]; \ ALfloat *RESTRICT ClickRemoval, *RESTRICT PendingClicks; \ - ALfloat (*RESTRICT CoeffStep)[2] = Source->Params.Hrtf.CoeffStep; \ + ALfloat (*RESTRICT CoeffStep)[2] = Source->Params.Direct.Hrtf.CoeffStep; \ ALuint pos, frac; \ FILTER *DryFilter; \ ALuint BufferIdx; \ @@ -126,8 +126,8 @@ static void MixDirect_Hrtf_##sampler(ALsource *Source, ALCdevice *Device, \ \ for(i = 0;i < NumChannels;i++) \ { \ - ALfloat (*RESTRICT TargetCoeffs)[2] = Source->Params.Hrtf.Coeffs[i]; \ - ALuint *RESTRICT TargetDelay = Source->Params.Hrtf.Delay[i]; \ + ALfloat (*RESTRICT TargetCoeffs)[2] = Source->Params.Direct.Hrtf.Coeffs[i];\ + ALuint *RESTRICT TargetDelay = Source->Params.Direct.Hrtf.Delay[i]; \ ALfloat *RESTRICT History = Source->Hrtf.History[i]; \ ALfloat (*RESTRICT Values)[2] = Source->Hrtf.Values[i]; \ ALint Counter = maxu(Source->Hrtf.Counter, OutPos) - OutPos; \ diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h index 53286a03..88ced697 100644 --- a/OpenAL32/Include/alSource.h +++ b/OpenAL32/Include/alSource.h @@ -46,9 +46,11 @@ typedef struct HrtfParams { } HrtfParams; typedef struct DirectParams { + HrtfParams Hrtf; + /* 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). */ + * target (eg. FRONT_LEFT). Not used with HRTF. */ ALfloat Gains[MAXCHANNELS][MAXCHANNELS]; /* A low-pass filter, using 2 chained one-pole filters. */ @@ -150,8 +152,6 @@ typedef struct ALsource ALint Step; - HrtfParams Hrtf; - DirectParams Direct; struct ALeffectslot *Slot[MAX_SENDS]; |