From 440e79153ffd3b38ba5494f92c7ba7767cd590b3 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 27 Jul 2011 09:32:12 +0200 Subject: [PATCH] pulse: Set PA_CONTEXT_NOAUTOSPAWN when fallback is available Signed-off-by: Takashi Iwai --- pulse/ctl_pulse.c | 2 +- pulse/pcm_pulse.c | 2 +- pulse/pulse.c | 12 +++++++++--- pulse/pulse.h | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/pulse/ctl_pulse.c b/pulse/ctl_pulse.c index 8b5ff9e..242b77d 100644 --- a/pulse/ctl_pulse.c +++ b/pulse/ctl_pulse.c @@ -712,7 +712,7 @@ SND_CTL_PLUGIN_DEFINE_FUNC(pulse) goto error; } - err = pulse_connect(ctl->p, server, !fallback_name); + err = pulse_connect(ctl->p, server, fallback_name != NULL); if (err < 0) goto error; diff --git a/pulse/pcm_pulse.c b/pulse/pcm_pulse.c index 15b29e0..d6c6792 100644 --- a/pulse/pcm_pulse.c +++ b/pulse/pcm_pulse.c @@ -1052,7 +1052,7 @@ SND_PCM_PLUGIN_DEFINE_FUNC(pulse) pcm->handle_underrun = handle_underrun; - err = pulse_connect(pcm->p, server, !fallback_name); + err = pulse_connect(pcm->p, server, fallback_name != NULL); if (err < 0) goto error; diff --git a/pulse/pulse.c b/pulse/pulse.c index 6d9613d..c34671b 100644 --- a/pulse/pulse.c +++ b/pulse/pulse.c @@ -188,13 +188,19 @@ void pulse_free(snd_pulse_t * p) free(p); } -int pulse_connect(snd_pulse_t * p, const char *server, int show_error) +int pulse_connect(snd_pulse_t * p, const char *server, int can_fallback) { int err; + pa_context_flags_t flags; pa_context_state_t state; assert(p); + if (can_fallback) + flags = PA_CONTEXT_NOAUTOSPAWN; + else + flags = 0; + if (!p->context || !p->mainloop) return -EBADFD; @@ -204,7 +210,7 @@ int pulse_connect(snd_pulse_t * p, const char *server, int show_error) pa_threaded_mainloop_lock(p->mainloop); - err = pa_context_connect(p->context, server, 0, NULL); + err = pa_context_connect(p->context, server, flags, NULL); if (err < 0) goto error; @@ -225,7 +231,7 @@ int pulse_connect(snd_pulse_t * p, const char *server, int show_error) return 0; error: - if (show_error) + if (!can_fallback) SNDERR("PulseAudio: Unable to connect: %s\n", pa_strerror(pa_context_errno(p->context))); diff --git a/pulse/pulse.h b/pulse/pulse.h index 9f32a7f..9b337bc 100644 --- a/pulse/pulse.h +++ b/pulse/pulse.h @@ -42,7 +42,7 @@ int pulse_wait_operation(snd_pulse_t * p, pa_operation * o); snd_pulse_t *pulse_new(void); void pulse_free(snd_pulse_t * p); -int pulse_connect(snd_pulse_t * p, const char *server, int show_error); +int pulse_connect(snd_pulse_t * p, const char *server, int can_fallback); void pulse_poll_activate(snd_pulse_t * p); void pulse_poll_deactivate(snd_pulse_t * p); -- 2.47.1