aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2018-09-19 21:31:46 -0700
committerChris Robinson <[email protected]>2018-09-19 21:31:46 -0700
commitea95a8adef036602770546fb14bcaf713ec40b8b (patch)
treec6f1031e1896d7bde80903e66124330b85613593
parent6eb980d1b23bec90226b2012a0346f7be8407fdd (diff)
Combine nearly-duplicate structures
-rw-r--r--Alc/ALu.c6
-rw-r--r--Alc/panning.c10
-rw-r--r--OpenAL32/Include/alMain.h19
-rw-r--r--OpenAL32/Include/alu.h4
4 files changed, 15 insertions, 24 deletions
diff --git a/Alc/ALu.c b/Alc/ALu.c
index 0d0dab12..4d966ba3 100644
--- a/Alc/ALu.c
+++ b/Alc/ALu.c
@@ -644,7 +644,7 @@ static void CalcPanningAndFilters(ALvoice *voice, const ALfloat Azi, const ALflo
NfcFilterAdjust(&voice->Direct.Params[0].NFCtrlFilter, w0);
for(i = 0;i < MAX_AMBI_ORDER+1;i++)
- voice->Direct.ChannelsPerOrder[i] = Device->Dry.NumChannelsPerOrder[i];
+ voice->Direct.ChannelsPerOrder[i] = Device->NumChannelsPerOrder[i];
voice->Flags |= VOICE_HAS_NFC;
}
@@ -888,7 +888,7 @@ static void CalcPanningAndFilters(ALvoice *voice, const ALfloat Azi, const ALflo
NfcFilterAdjust(&voice->Direct.Params[c].NFCtrlFilter, w0);
for(i = 0;i < MAX_AMBI_ORDER+1;i++)
- voice->Direct.ChannelsPerOrder[i] = Device->Dry.NumChannelsPerOrder[i];
+ voice->Direct.ChannelsPerOrder[i] = Device->NumChannelsPerOrder[i];
voice->Flags |= VOICE_HAS_NFC;
}
@@ -949,7 +949,7 @@ static void CalcPanningAndFilters(ALvoice *voice, const ALfloat Azi, const ALflo
NfcFilterAdjust(&voice->Direct.Params[c].NFCtrlFilter, w0);
for(i = 0;i < MAX_AMBI_ORDER+1;i++)
- voice->Direct.ChannelsPerOrder[i] = Device->Dry.NumChannelsPerOrder[i];
+ voice->Direct.ChannelsPerOrder[i] = Device->NumChannelsPerOrder[i];
voice->Flags |= VOICE_HAS_NFC;
}
diff --git a/Alc/panning.c b/Alc/panning.c
index 6bd42709..0ddfd07e 100644
--- a/Alc/panning.c
+++ b/Alc/panning.c
@@ -41,8 +41,8 @@
extern inline void CalcDirectionCoeffs(const ALfloat dir[3], ALfloat spread, ALfloat coeffs[MAX_AMBI_COEFFS]);
extern inline void CalcAngleCoeffs(ALfloat azimuth, ALfloat elevation, ALfloat spread, ALfloat coeffs[MAX_AMBI_COEFFS]);
extern inline float ScaleAzimuthFront(float azimuth, float scale);
-extern inline void ComputeDryPanGains(const DryMixParams *dry, const ALfloat coeffs[MAX_AMBI_COEFFS], ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS]);
-extern inline void ComputeFirstOrderGains(const BFMixParams *foa, const ALfloat mtx[4], ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS]);
+extern inline void ComputeDryPanGains(const MixParams *dry, const ALfloat coeffs[MAX_AMBI_COEFFS], ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS]);
+extern inline void ComputeFirstOrderGains(const MixParams *foa, const ALfloat mtx[4], ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS]);
static const ALsizei FuMa2ACN[MAX_AMBI_COEFFS] = {
@@ -396,9 +396,9 @@ static void InitNearFieldCtrl(ALCdevice *device, ALfloat ctrl_dist, ALsizei orde
TRACE("Using near-field reference distance: %.2f meters\n", device->AvgSpeakerDist);
for(i = 0;i < order+1;i++)
- device->Dry.NumChannelsPerOrder[i] = chans_per_order[i];
+ device->NumChannelsPerOrder[i] = chans_per_order[i];
for(;i < MAX_AMBI_ORDER+1;i++)
- device->Dry.NumChannelsPerOrder[i] = 0;
+ device->NumChannelsPerOrder[i] = 0;
}
}
@@ -943,7 +943,7 @@ void aluInitRenderer(ALCdevice *device, ALint hrtf_id, enum HrtfRequestMode hrtf
device->Dry.CoeffCount = 0;
device->Dry.NumChannels = 0;
for(i = 0;i < MAX_AMBI_ORDER+1;i++)
- device->Dry.NumChannelsPerOrder[i] = 0;
+ device->NumChannelsPerOrder[i] = 0;
device->AvgSpeakerDist = 0.0f;
memset(device->ChannelDelay, 0, sizeof(device->ChannelDelay));
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index d25f62b2..f90108d6 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -582,7 +582,7 @@ typedef struct DistanceComp {
*/
#define BUFFERSIZE 2048
-typedef struct DryMixParams {
+typedef struct MixParams {
AmbiConfig Ambi;
/* Number of coefficients in each Ambi.Coeffs to mix together (4 for first-
* order, 9 for second-order, etc). If the count is 0, Ambi.Map is used
@@ -592,17 +592,7 @@ typedef struct DryMixParams {
ALfloat (*Buffer)[BUFFERSIZE];
ALsizei NumChannels;
- ALsizei NumChannelsPerOrder[MAX_AMBI_ORDER+1];
-} DryMixParams;
-
-typedef struct BFMixParams {
- AmbiConfig Ambi;
- /* Will only be 4 or 0. */
- ALsizei CoeffCount;
-
- ALfloat (*Buffer)[BUFFERSIZE];
- ALsizei NumChannels;
-} BFMixParams;
+} MixParams;
typedef struct RealMixParams {
enum Channel ChannelName[MAX_OUTPUT_CHANNELS];
@@ -691,10 +681,11 @@ struct ALCdevice_struct {
alignas(16) ALfloat TempBuffer[4][BUFFERSIZE];
/* The "dry" path corresponds to the main output. */
- DryMixParams Dry;
+ MixParams Dry;
+ ALsizei NumChannelsPerOrder[MAX_AMBI_ORDER+1];
/* First-order ambisonics output, to be upsampled to the dry buffer if different. */
- BFMixParams FOAOut;
+ MixParams FOAOut;
/* "Real" output, which will be written to the device buffer. May alias the
* dry buffer.
diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h
index 8ee4edfe..ac0c866f 100644
--- a/OpenAL32/Include/alu.h
+++ b/OpenAL32/Include/alu.h
@@ -500,7 +500,7 @@ void ComputePanningGainsBF(const BFChannelConfig *chanmap, ALsizei numchans, con
* Computes panning gains using the given channel decoder coefficients and the
* pre-calculated direction or angle coefficients.
*/
-inline void ComputeDryPanGains(const DryMixParams *dry, const ALfloat coeffs[MAX_AMBI_COEFFS], ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS])
+inline void ComputeDryPanGains(const MixParams *dry, const ALfloat coeffs[MAX_AMBI_COEFFS], ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS])
{
if(dry->CoeffCount > 0)
ComputePanningGainsMC(dry->Ambi.Coeffs, dry->NumChannels, dry->CoeffCount,
@@ -515,7 +515,7 @@ inline void ComputeDryPanGains(const DryMixParams *dry, const ALfloat coeffs[MAX
* a 1x4 'slice' of a transform matrix for the input channel, used to scale and
* orient the sound samples.
*/
-inline void ComputeFirstOrderGains(const BFMixParams *foa, const ALfloat mtx[4], ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS])
+inline void ComputeFirstOrderGains(const MixParams *foa, const ALfloat mtx[4], ALfloat ingain, ALfloat gains[MAX_OUTPUT_CHANNELS])
{
if(foa->CoeffCount > 0)
ComputePanningGainsMC(foa->Ambi.Coeffs, foa->NumChannels, 4, mtx, ingain, gains);