diff options
-rw-r--r-- | Alc/ALu.c | 4 | ||||
-rw-r--r-- | Alc/mixer_c.c | 4 | ||||
-rw-r--r-- | Alc/mixer_sse.c | 4 | ||||
-rw-r--r-- | OpenAL32/Include/alBuffer.h | 1 | ||||
-rw-r--r-- | OpenAL32/Include/alSource.h | 15 | ||||
-rw-r--r-- | OpenAL32/alBuffer.c | 8 | ||||
-rw-r--r-- | OpenAL32/alSource.c | 2 |
7 files changed, 20 insertions, 18 deletions
@@ -313,7 +313,7 @@ ALvoid CalcNonAttnSourceParams(ALsource *ALSource, const ALCcontext *ALContext) } SrcMatrix = ALSource->Params.Direct.Gains; - for(i = 0;i < MaxChannels;i++) + for(i = 0;i < MAX_INPUT_CHANNELS;i++) { for(c = 0;c < MaxChannels;c++) SrcMatrix[i][c] = 0.0f; @@ -859,7 +859,7 @@ ALvoid CalcSourceParams(ALsource *ALSource, const ALCcontext *ALContext) ALfloat DirGain = 0.0f; ALfloat AmbientGain; - for(i = 0;i < MaxChannels;i++) + for(i = 0;i < MAX_INPUT_CHANNELS;i++) { for(j = 0;j < MaxChannels;j++) Matrix[i][j] = 0.0f; diff --git a/Alc/mixer_c.c b/Alc/mixer_c.c index 2cfbcedc..045a8b1f 100644 --- a/Alc/mixer_c.c +++ b/Alc/mixer_c.c @@ -96,7 +96,7 @@ void MixDirect_C(const DirectParams *params, const ALfloat *restrict data, ALuin for(c = 0;c < MaxChannels;c++) { DrySend = params->Gains[srcchan][c]; - if(DrySend < 0.00001f) + if(!(DrySend > 0.00001f)) continue; if(OutPos == 0) @@ -119,7 +119,7 @@ void MixSend_C(const SendParams *params, const ALfloat *restrict data, ALfloat WetSend = params->Gain; ALuint pos; - if(WetSend < 0.00001f) + if(!(WetSend > 0.00001f)) return; if(OutPos == 0) diff --git a/Alc/mixer_sse.c b/Alc/mixer_sse.c index f929469c..d348f9da 100644 --- a/Alc/mixer_sse.c +++ b/Alc/mixer_sse.c @@ -155,7 +155,7 @@ void MixDirect_SSE(const DirectParams *params, const ALfloat *restrict data, ALu __m128 gain; DrySend = params->Gains[srcchan][c]; - if(DrySend < 0.00001f) + if(!(DrySend > 0.00001f)) continue; if(OutPos == 0) @@ -189,7 +189,7 @@ void MixSend_SSE(const SendParams *params, const ALfloat *restrict data, __m128 gain; ALuint pos; - if(WetGain < 0.00001f) + if(!(WetGain > 0.00001f)) return; if(OutPos == 0) diff --git a/OpenAL32/Include/alBuffer.h b/OpenAL32/Include/alBuffer.h index f1d64666..19390e5e 100644 --- a/OpenAL32/Include/alBuffer.h +++ b/OpenAL32/Include/alBuffer.h @@ -57,6 +57,7 @@ enum FmtChannels { FmtX61 = UserFmtX61, FmtX71 = UserFmtX71, }; +#define MAX_INPUT_CHANNELS (8) ALuint BytesFromFmt(enum FmtType type); ALuint ChannelsFromFmt(enum FmtChannels chans); diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h index 8766c85e..e049d987 100644 --- a/OpenAL32/Include/alSource.h +++ b/OpenAL32/Include/alSource.h @@ -6,6 +6,7 @@ #include "alMain.h" #include "alu.h" #include "alFilter.h" +#include "alBuffer.h" #ifdef __cplusplus extern "C" { @@ -31,17 +32,17 @@ typedef struct ALbufferlistitem typedef struct HrtfState { ALboolean Moving; ALuint Counter; - ALIGN(16) ALfloat History[MaxChannels][SRC_HISTORY_LENGTH]; - ALIGN(16) ALfloat Values[MaxChannels][HRIR_LENGTH][2]; + ALIGN(16) ALfloat History[MAX_INPUT_CHANNELS][SRC_HISTORY_LENGTH]; + ALIGN(16) ALfloat Values[MAX_INPUT_CHANNELS][HRIR_LENGTH][2]; ALuint Offset; } HrtfState; typedef struct HrtfParams { ALfloat Gain; ALfloat Dir[3]; - ALIGN(16) ALfloat Coeffs[MaxChannels][HRIR_LENGTH][2]; + ALIGN(16) ALfloat Coeffs[MAX_INPUT_CHANNELS][HRIR_LENGTH][2]; ALIGN(16) ALfloat CoeffStep[HRIR_LENGTH][2]; - ALuint Delay[MaxChannels][2]; + ALuint Delay[MAX_INPUT_CHANNELS][2]; ALint DelayStep[2]; ALuint IrSize; } HrtfParams; @@ -59,9 +60,9 @@ typedef struct DirectParams { /* 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. FrontLeft). Not used with HRTF. */ - ALfloat Gains[MaxChannels][MaxChannels]; + ALfloat Gains[MAX_INPUT_CHANNELS][MaxChannels]; - ALfilterState Filter[MaxChannels]; + ALfilterState Filter[MAX_INPUT_CHANNELS]; } DirectParams; typedef struct SendParams { @@ -71,7 +72,7 @@ typedef struct SendParams { * output buffer. */ ALfloat Gain; - ALfilterState Filter[MaxChannels]; + ALfilterState Filter[MAX_INPUT_CHANNELS]; } SendParams; diff --git a/OpenAL32/alBuffer.c b/OpenAL32/alBuffer.c index 44eacaff..d12fe80a 100644 --- a/OpenAL32/alBuffer.c +++ b/OpenAL32/alBuffer.c @@ -1087,8 +1087,8 @@ static ALalaw EncodeALaw(ALshort val) static void DecodeIMA4Block(ALshort *dst, const ALima4 *src, ALint numchans) { - ALint sample[MaxChannels], index[MaxChannels]; - ALuint code[MaxChannels]; + ALint sample[MAX_INPUT_CHANNELS], index[MAX_INPUT_CHANNELS]; + ALuint code[MAX_INPUT_CHANNELS]; ALsizei j,k,c; for(c = 0;c < numchans;c++) @@ -1749,7 +1749,7 @@ DECL_TEMPLATE(ALubyte3, ALubyte3) static void Convert_##T##_ALima4(T *dst, const ALima4 *src, ALuint numchans, \ ALuint len) \ { \ - ALshort tmp[65*MaxChannels]; /* Max samples an IMA4 frame can be */ \ + ALshort tmp[65*MAX_INPUT_CHANNELS]; /* Max samples an IMA4 frame can be */\ ALuint i, j, k; \ \ i = 0; \ @@ -1785,7 +1785,7 @@ DECL_TEMPLATE(ALubyte3) static void Convert_ALima4_##T(ALima4 *dst, const T *src, ALuint numchans, \ ALuint len) \ { \ - ALshort tmp[65*MaxChannels]; /* Max samples an IMA4 frame can be */ \ + ALshort tmp[65*MAX_INPUT_CHANNELS]; /* Max samples an IMA4 frame can be */\ ALint sample[MaxChannels] = {0,0,0,0,0,0,0,0}; \ ALint index[MaxChannels] = {0,0,0,0,0,0,0,0}; \ ALuint i, j; \ diff --git a/OpenAL32/alSource.c b/OpenAL32/alSource.c index c59cec2b..1dd9716c 100644 --- a/OpenAL32/alSource.c +++ b/OpenAL32/alSource.c @@ -2326,7 +2326,7 @@ ALvoid SetSourceState(ALsource *Source, ALCcontext *Context, ALenum state) if(Source->state != AL_PLAYING) { - for(j = 0;j < MaxChannels;j++) + for(j = 0;j < MAX_INPUT_CHANNELS;j++) { for(k = 0;k < SRC_HISTORY_LENGTH;k++) Source->Hrtf.History[j][k] = 0.0f; |