Skip to content

Commit 92ccacd

Browse files
committed
Pass the device to InitializeEffect and return the error enum from it
1 parent b5ed2a5 commit 92ccacd

File tree

3 files changed

+20
-16
lines changed

3 files changed

+20
-16
lines changed

Alc/ALc.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -2297,7 +2297,7 @@ ALC_API ALCcontext* ALC_APIENTRY alcCreateContext(ALCdevice *device, const ALCin
22972297
UnlockLists();
22982298

22992299
if(device->DefaultSlot)
2300-
InitializeEffect(ALContext, device->DefaultSlot, &DefaultEffect);
2300+
InitializeEffect(device, device->DefaultSlot, &DefaultEffect);
23012301
ALContext->LastError = AL_NO_ERROR;
23022302

23032303
ALCdevice_DecRef(device);

OpenAL32/Include/alAuxEffectSlot.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ ALeffectState *DedicatedCreate(void);
5656
#define ALeffectState_Update(a,b,c) ((a)->Update((a),(b),(c)))
5757
#define ALeffectState_Process(a,b,c,d) ((a)->Process((a),(b),(c),(d)))
5858

59-
ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *EffectSlot, ALeffect *effect);
59+
ALenum InitializeEffect(ALCdevice *Device, ALeffectslot *EffectSlot, ALeffect *effect);
6060

6161
#ifdef __cplusplus
6262
}

OpenAL32/alAuxEffectSlot.c

+18-14
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,12 @@ AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSloti(ALuint effectslot, ALenum param
181181
if(iValue == 0 ||
182182
(effect=LookupEffect(Device, iValue)) != NULL)
183183
{
184-
InitializeEffect(Context, EffectSlot, effect);
185-
Context->UpdateSources = AL_TRUE;
184+
ALenum err;
185+
err = InitializeEffect(Device, EffectSlot, effect);
186+
if(err != AL_NO_ERROR)
187+
alSetError(Context, err);
188+
else
189+
Context->UpdateSources = AL_TRUE;
186190
}
187191
else
188192
alSetError(Context, AL_INVALID_VALUE);
@@ -497,13 +501,13 @@ static ALenum ResizeEffectSlotArray(ALCcontext *Context, ALsizei count)
497501
return AL_NO_ERROR;
498502
}
499503

500-
ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *EffectSlot, ALeffect *effect)
504+
ALenum InitializeEffect(ALCdevice *Device, ALeffectslot *EffectSlot, ALeffect *effect)
501505
{
502506
ALenum newtype = (effect ? effect->type : AL_EFFECT_NULL);
503507
ALeffectState *State = NULL;
504508
ALenum err = AL_NO_ERROR;
505509

506-
LockContext(Context);
510+
LockDevice(Device);
507511
if(newtype == AL_EFFECT_NULL && EffectSlot->effect.type != AL_EFFECT_NULL)
508512
{
509513
State = NoneCreate();
@@ -538,23 +542,21 @@ ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *EffectSlot, ALeffect
538542

539543
if(err != AL_NO_ERROR)
540544
{
541-
UnlockContext(Context);
542-
alSetError(Context, err);
543-
return;
545+
UnlockDevice(Device);
546+
return err;
544547
}
545548

546549
if(State)
547550
{
548551
int oldMode;
549552
oldMode = SetMixerFPUMode();
550553

551-
if(ALeffectState_DeviceUpdate(State, Context->Device) == AL_FALSE)
554+
if(ALeffectState_DeviceUpdate(State, Device) == AL_FALSE)
552555
{
553556
RestoreFPUMode(oldMode);
554-
UnlockContext(Context);
557+
UnlockDevice(Device);
555558
ALeffectState_Destroy(State);
556-
alSetError(Context, AL_OUT_OF_MEMORY);
557-
return;
559+
return AL_OUT_OF_MEMORY;
558560
}
559561
State = ExchangePtr((XchgPtr*)&EffectSlot->EffectState, State);
560562

@@ -566,8 +568,8 @@ ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *EffectSlot, ALeffect
566568
* object was changed, it needs an update before its Process method can
567569
* be called. */
568570
EffectSlot->NeedsUpdate = AL_FALSE;
569-
ALeffectState_Update(EffectSlot->EffectState, Context->Device, EffectSlot);
570-
UnlockContext(Context);
571+
ALeffectState_Update(EffectSlot->EffectState, Device, EffectSlot);
572+
UnlockDevice(Device);
571573

572574
RestoreFPUMode(oldMode);
573575

@@ -580,9 +582,11 @@ ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *EffectSlot, ALeffect
580582
memset(&EffectSlot->effect, 0, sizeof(EffectSlot->effect));
581583
else
582584
memcpy(&EffectSlot->effect, effect, sizeof(*effect));
583-
UnlockContext(Context);
585+
UnlockDevice(Device);
584586
EffectSlot->NeedsUpdate = AL_TRUE;
585587
}
588+
589+
return AL_NO_ERROR;
586590
}
587591

588592

0 commit comments

Comments
 (0)