aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2009-12-01 22:42:43 -0800
committerChris Robinson <[email protected]>2009-12-01 22:42:43 -0800
commit0e1e8503e0f6fb73d06ba0dff6e5b2771b1df856 (patch)
tree0f8688ca0c47d852b198c7851de30383cf16730a
parent974d0b4e915ff79affc1fc3932069dbe3df734f1 (diff)
Properly accept PulseAudio's mainloop signal on connection failure
-rw-r--r--Alc/pulseaudio.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/Alc/pulseaudio.c b/Alc/pulseaudio.c
index a20e73fb..42ed84f3 100644
--- a/Alc/pulseaudio.c
+++ b/Alc/pulseaudio.c
@@ -229,15 +229,13 @@ static void context_state_callback(pa_context *context, void *pdata) //{{{
pa_context_state_t state;
state = ppa_context_get_state(context);
- if(state == PA_CONTEXT_READY)
+ if(state == PA_CONTEXT_READY || !PA_CONTEXT_IS_GOOD(state))
{
if(ppa_threaded_mainloop_in_thread(data->loop))
ppa_threaded_mainloop_signal(data->loop, 1);
else
ppa_threaded_mainloop_signal(data->loop, 0);
}
- else if(!PA_CONTEXT_IS_GOOD(state))
- ppa_threaded_mainloop_signal(data->loop, 0);
}//}}}
static void stream_state_callback(pa_stream *stream, void *pdata) //{{{
@@ -247,15 +245,13 @@ static void stream_state_callback(pa_stream *stream, void *pdata) //{{{
pa_stream_state_t state;
state = ppa_stream_get_state(stream);
- if(state == PA_STREAM_READY)
+ if(state == PA_STREAM_READY || !PA_STREAM_IS_GOOD(state))
{
if(ppa_threaded_mainloop_in_thread(data->loop))
ppa_threaded_mainloop_signal(data->loop, 1);
else
ppa_threaded_mainloop_signal(data->loop, 0);
}
- else if(!PA_STREAM_IS_GOOD(state))
- ppa_threaded_mainloop_signal(data->loop, 0);
}//}}}
static void stream_buffer_attr_callback(pa_stream *stream, void *pdata) //{{{
@@ -400,6 +396,7 @@ static ALCboolean pulse_open(ALCdevice *device, const ALCchar *device_name) //{{
ppa_context_unref(data->context);
data->context = NULL;
+ ppa_threaded_mainloop_accept(data->loop);
ppa_threaded_mainloop_unlock(data->loop);
goto out;
}
@@ -591,6 +588,7 @@ static ALCboolean pulse_reset_playback(ALCdevice *device) //{{{
ppa_stream_unref(data->stream);
data->stream = NULL;
+ ppa_threaded_mainloop_accept(data->loop);
ppa_threaded_mainloop_unlock(data->loop);
return ALC_FALSE;
}
@@ -733,9 +731,11 @@ static ALCboolean pulse_open_capture(ALCdevice *device, const ALCchar *device_na
ppa_strerror(ppa_context_errno(data->context)));
ppa_stream_unref(data->stream);
+ data->stream = NULL;
+
+ ppa_threaded_mainloop_accept(data->loop);
ppa_threaded_mainloop_unlock(data->loop);
- data->stream = NULL;
pulse_close(device);
pulse_unload();
return ALC_FALSE;