From 8fa3f6da64c4cf18b5ea19fd28fada10ed275da9 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Thu, 13 Jul 2017 23:13:02 -0700 Subject: Add the default auxiliary slot to the active slot array --- Alc/ALc.c | 13 +++++++++++-- Alc/ALu.c | 16 ---------------- 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; } -- cgit v1.2.3