aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/ALc.c
diff options
context:
space:
mode:
Diffstat (limited to 'Alc/ALc.c')
-rw-r--r--Alc/ALc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index 7332fd9e..78d25a28 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -763,7 +763,11 @@ ALCAPI ALCboolean ALCAPIENTRY alcCaptureCloseDevice(ALCdevice *pDevice)
ALCAPI void ALCAPIENTRY alcCaptureStart(ALCdevice *pDevice)
{
if(IsDevice(pDevice) && pDevice->IsCaptureDevice)
+ {
+ SuspendContext(NULL);
ALCdevice_StartCapture(pDevice);
+ ProcessContext(NULL);
+ }
else
alcSetError(pDevice, ALC_INVALID_DEVICE);
}
@@ -771,7 +775,11 @@ ALCAPI void ALCAPIENTRY alcCaptureStart(ALCdevice *pDevice)
ALCAPI void ALCAPIENTRY alcCaptureStop(ALCdevice *pDevice)
{
if(IsDevice(pDevice) && pDevice->IsCaptureDevice)
+ {
+ SuspendContext(NULL);
ALCdevice_StopCapture(pDevice);
+ ProcessContext(NULL);
+ }
else
alcSetError(pDevice, ALC_INVALID_DEVICE);
}
@@ -779,7 +787,11 @@ ALCAPI void ALCAPIENTRY alcCaptureStop(ALCdevice *pDevice)
ALCAPI void ALCAPIENTRY alcCaptureSamples(ALCdevice *pDevice, ALCvoid *pBuffer, ALCsizei lSamples)
{
if(IsDevice(pDevice) && pDevice->IsCaptureDevice)
+ {
+ SuspendContext(NULL);
ALCdevice_CaptureSamples(pDevice, pBuffer, lSamples);
+ ProcessContext(NULL);
+ }
else
alcSetError(pDevice, ALC_INVALID_DEVICE);
}