aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2009-11-01 09:29:20 -0800
committerChris Robinson <[email protected]>2009-11-01 09:29:20 -0800
commitfb258a7416a879bc19b92a2bae262d7d709cea72 (patch)
tree5b2e466dbafa11e1323ef135012aee7ddf6c433a
parent5aed92788715cc957d6adb2b621f49f8ed22e162 (diff)
Properly lock the device when setting it disconnected
-rw-r--r--Alc/ALu.c2
-rw-r--r--Alc/pulseaudio.c4
2 files changed, 2 insertions, 4 deletions
diff --git a/Alc/ALu.c b/Alc/ALu.c
index 2eb8d182..546da2c7 100644
--- a/Alc/ALu.c
+++ b/Alc/ALu.c
@@ -1362,6 +1362,7 @@ ALvoid aluHandleDisconnect(ALCdevice *device)
{
ALuint i;
+ SuspendContext(NULL);
for(i = 0;i < device->NumContexts;i++)
{
ALsource *source;
@@ -1384,4 +1385,5 @@ ALvoid aluHandleDisconnect(ALCdevice *device)
}
device->Connected = ALC_FALSE;
+ ProcessContext(NULL);
}
diff --git a/Alc/pulseaudio.c b/Alc/pulseaudio.c
index fa7e593b..722df4f4 100644
--- a/Alc/pulseaudio.c
+++ b/Alc/pulseaudio.c
@@ -266,9 +266,7 @@ static void context_state_callback2(pa_context *context, void *pdata) //{{{
if(ppa_context_get_state(context) == PA_CONTEXT_FAILED)
{
AL_PRINT("Received context failure!\n");
- SuspendContext(NULL);
aluHandleDisconnect(Device);
- ProcessContext(NULL);
}
}//}}}
@@ -279,9 +277,7 @@ static void stream_state_callback2(pa_stream *stream, void *pdata) //{{{
if(ppa_stream_get_state(stream) == PA_STREAM_FAILED)
{
AL_PRINT("Received stream failure!\n");
- SuspendContext(NULL);
aluHandleDisconnect(Device);
- ProcessContext(NULL);
}
}//}}}