aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2017-07-13 23:13:02 -0700
committerChris Robinson <[email protected]>2017-07-13 23:13:02 -0700
commit8fa3f6da64c4cf18b5ea19fd28fada10ed275da9 (patch)
treee845a1586189b468e4c8011a63765eb48830a3b2
parent249afde5f9363384649fc3993bde9dc26c75df4c (diff)
Add the default auxiliary slot to the active slot array
-rw-r--r--Alc/ALc.c13
-rw-r--r--Alc/ALu.c16
2 files changed, 11 insertions, 18 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index ece66273..ccad718b 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -2549,8 +2549,17 @@ static ALvoid InitContext(ALCcontext *Context)
InitUIntMap(&Context->SourceMap, Context->Device->SourcesMax);
InitUIntMap(&Context->EffectSlotMap, Context->Device->AuxiliaryEffectSlotMax);
- auxslots = al_calloc(DEF_ALIGN, sizeof(struct ALeffectslotArray));
- auxslots->count = 0;
+ if(Context->DefaultSlot)
+ {
+ auxslots = al_calloc(DEF_ALIGN, FAM_SIZE(struct ALeffectslotArray, slot, 1));
+ auxslots->count = 1;
+ auxslots->slot[0] = Context->DefaultSlot;
+ }
+ else
+ {
+ auxslots = al_calloc(DEF_ALIGN, sizeof(struct ALeffectslotArray));
+ auxslots->count = 0;
+ }
ATOMIC_INIT(&Context->ActiveAuxSlots, auxslots);
//Set globals
diff --git a/Alc/ALu.c b/Alc/ALu.c
index 25626320..e053b837 100644
--- a/Alc/ALu.c
+++ b/Alc/ALu.c
@@ -1633,14 +1633,6 @@ void aluMixData(ALCdevice *device, ALvoid *buffer, ALsizei size)
{
const struct ALeffectslotArray *auxslots;
- if(ctx->DefaultSlot != NULL)
- {
- ALeffectslot *slot = ctx->DefaultSlot;
- CalcEffectSlotParams(slot, device);
- for(c = 0;c < slot->NumChannels;c++)
- memset(slot->WetBuffer[c], 0, SamplesToDo*sizeof(ALfloat));
- }
-
auxslots = ATOMIC_LOAD(&ctx->ActiveAuxSlots, almemory_order_acquire);
UpdateContextSources(ctx, auxslots);
@@ -1676,14 +1668,6 @@ void aluMixData(ALCdevice *device, ALvoid *buffer, ALsizei size)
state->OutChannels);
}
- if(ctx->DefaultSlot != NULL)
- {
- const ALeffectslot *slot = ctx->DefaultSlot;
- ALeffectState *state = slot->Params.EffectState;
- V(state,process)(SamplesToDo, slot->WetBuffer, state->OutBuffer,
- state->OutChannels);
- }
-
ctx = ctx->next;
}