From d1f4a31b5ed5cef6ed57242f3343925e63efd9f9 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Sep 2013 16:44:57 +0200 Subject: output/pulse: require libpulse 0.9.16 Remove all #ifdefs. Old versions of libpulse are not being tested, and thus I'm removing support. --- configure.ac | 2 +- src/output/PulseOutputPlugin.cxx | 54 +++------------------------------------- 2 files changed, 4 insertions(+), 52 deletions(-) diff --git a/configure.ac b/configure.ac index 45d35dce3..f529cc5a8 100644 --- a/configure.ac +++ b/configure.ac @@ -1375,7 +1375,7 @@ fi AM_CONDITIONAL(ENABLE_PIPE_OUTPUT, test x$enable_pipe_output = xyes) dnl -------------------------------- PulseAudio ------------------------------- -MPD_AUTO_PKG(pulse, PULSE, [libpulse], +MPD_AUTO_PKG(pulse, PULSE, [libpulse >= 0.9.16], [PulseAudio output plugin], [libpulse not found]) if test x$enable_pulse = xyes; then AC_DEFINE([HAVE_PULSE], 1, diff --git a/src/output/PulseOutputPlugin.cxx b/src/output/PulseOutputPlugin.cxx index d035d10b7..5394edfac 100644 --- a/src/output/PulseOutputPlugin.cxx +++ b/src/output/PulseOutputPlugin.cxx @@ -38,13 +38,6 @@ #define MPD_PULSE_NAME "Music Player Daemon" -#if !defined(PA_CHECK_VERSION) -/** - * This macro was implemented in libpulse 0.9.16. - */ -#define PA_CHECK_VERSION(a,b,c) false -#endif - struct PulseOutput { struct audio_output base; @@ -59,14 +52,6 @@ struct PulseOutput { struct pa_stream *stream; size_t writable; - -#if !PA_CHECK_VERSION(0,9,11) - /** - * We need this variable because pa_stream_is_corked() wasn't - * added before 0.9.11. - */ - bool pause; -#endif }; /** @@ -278,9 +263,7 @@ pulse_output_delete_stream(PulseOutput *po) assert(po != nullptr); assert(po->stream != nullptr); -#if PA_CHECK_VERSION(0,9,8) pa_stream_set_suspended_callback(po->stream, nullptr, nullptr); -#endif pa_stream_set_state_callback(po->stream, nullptr, nullptr); pa_stream_set_write_callback(po->stream, nullptr, nullptr); @@ -482,8 +465,6 @@ pulse_output_wait_connection(PulseOutput *po, GError **error_r) } } -#if PA_CHECK_VERSION(0,9,8) - static void pulse_output_stream_suspended_cb(gcc_unused pa_stream *stream, void *userdata) { @@ -497,8 +478,6 @@ pulse_output_stream_suspended_cb(gcc_unused pa_stream *stream, void *userdata) pa_threaded_mainloop_signal(po->mainloop, 0); } -#endif - static void pulse_output_stream_state_cb(pa_stream *stream, void *userdata) { @@ -564,10 +543,8 @@ pulse_output_setup_stream(PulseOutput *po, const pa_sample_spec *ss, return false; } -#if PA_CHECK_VERSION(0,9,8) pa_stream_set_suspended_callback(po->stream, pulse_output_stream_suspended_cb, po); -#endif pa_stream_set_state_callback(po->stream, pulse_output_stream_state_cb, po); @@ -645,10 +622,6 @@ pulse_output_open(struct audio_output *ao, AudioFormat &audio_format, pa_threaded_mainloop_unlock(po->mainloop); -#if !PA_CHECK_VERSION(0,9,11) - po->pause = false; -#endif - return true; } @@ -711,22 +684,6 @@ pulse_output_wait_stream(PulseOutput *po, GError **error_r) } } -/** - * Determines whether the stream is paused. On libpulse older than - * 0.9.11, it uses a custom pause flag. - */ -static bool -pulse_output_stream_is_paused(PulseOutput *po) -{ - assert(po->stream != nullptr); - -#if !defined(PA_CHECK_VERSION) || !PA_CHECK_VERSION(0,9,11) - return po->pause; -#else - return pa_stream_is_corked(po->stream); -#endif -} - /** * Sets cork mode on the stream. */ @@ -756,9 +713,6 @@ pulse_output_stream_pause(PulseOutput *po, bool pause, return false; } -#if !PA_CHECK_VERSION(0,9,11) - po->pause = pause; -#endif return true; } @@ -770,7 +724,7 @@ pulse_output_delay(struct audio_output *ao) pa_threaded_mainloop_lock(po->mainloop); - if (po->base.pause && pulse_output_stream_is_paused(po) && + if (po->base.pause && pa_stream_is_corked(po->stream) && pa_stream_get_state(po->stream) == PA_STREAM_READY) /* idle while paused */ result = 1000; @@ -803,7 +757,7 @@ pulse_output_play(struct audio_output *ao, const void *chunk, size_t size, /* unpause if previously paused */ - if (pulse_output_stream_is_paused(po) && + if (pa_stream_is_corked(po->stream) && !pulse_output_stream_pause(po, false, error_r)) { pa_threaded_mainloop_unlock(po->mainloop); return 0; @@ -812,14 +766,12 @@ pulse_output_play(struct audio_output *ao, const void *chunk, size_t size, /* wait until the server allows us to write */ while (po->writable == 0) { -#if PA_CHECK_VERSION(0,9,8) if (pa_stream_is_suspended(po->stream)) { pa_threaded_mainloop_unlock(po->mainloop); g_set_error(error_r, pulse_output_quark(), 0, "suspended"); return 0; } -#endif pa_threaded_mainloop_wait(po->mainloop); @@ -907,7 +859,7 @@ pulse_output_pause(struct audio_output *ao) /* cork the stream */ - if (!pulse_output_stream_is_paused(po) && + if (!pa_stream_is_corked(po->stream) && !pulse_output_stream_pause(po, true, &error)) { pa_threaded_mainloop_unlock(po->mainloop); g_warning("%s", error->message); -- cgit v1.2.3