aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Alc/ALc.c13
-rw-r--r--OpenAL32/Include/alMain.h2
2 files changed, 11 insertions, 4 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index 3f4fb706..426d39f8 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -596,6 +596,7 @@ static ALvoid InitContext(ALCcontext *pContext)
//Validate pContext
pContext->LastError = AL_NO_ERROR;
pContext->InUse = AL_FALSE;
+ pContext->Suspended = AL_FALSE;
//Set globals
pContext->DistanceModel = AL_INVERSE_DISTANCE_CLAMPED;
@@ -772,8 +773,10 @@ ALCAPI ALCenum ALCAPIENTRY alcGetError(ALCdevice *device)
*/
ALCAPI ALCvoid ALCAPIENTRY alcSuspendContext(ALCcontext *pContext)
{
- // Not a lot happens here !
- (void)pContext;
+ SuspendContext(NULL);
+ if(IsContext(pContext))
+ pContext->Suspended = AL_TRUE;
+ ProcessContext(NULL);
}
@@ -784,8 +787,10 @@ ALCAPI ALCvoid ALCAPIENTRY alcSuspendContext(ALCcontext *pContext)
*/
ALCAPI ALCvoid ALCAPIENTRY alcProcessContext(ALCcontext *pContext)
{
- // Not a lot happens here !
- (void)pContext;
+ SuspendContext(NULL);
+ if(IsContext(pContext))
+ pContext->Suspended = AL_FALSE;
+ ProcessContext(NULL);
}
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index cb290e0c..b33f797b 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -316,6 +316,8 @@ struct ALCcontext_struct
ALenum LastError;
ALboolean InUse;
+ ALboolean Suspended;
+
ALenum DistanceModel;
ALboolean SourceDistanceModel;