From 32049d16801b8c0b53448eba4b41df8765a94f84 Mon Sep 17 00:00:00 2001 From: Michal Ratajsky Date: Sun, 20 Jul 2014 10:35:28 +0200 Subject: Fix setting ext-stream parent and generalize it in PulseClientStream --- backends/pulse/pulse-client-stream.c | 17 +++++++++++++++++ backends/pulse/pulse-ext-stream.c | 16 ---------------- backends/pulse/pulse-sink-input.c | 6 ------ backends/pulse/pulse-source-output.c | 6 ------ 4 files changed, 17 insertions(+), 28 deletions(-) diff --git a/backends/pulse/pulse-client-stream.c b/backends/pulse/pulse-client-stream.c index d725146..b99c498 100644 --- a/backends/pulse/pulse-client-stream.c +++ b/backends/pulse/pulse-client-stream.c @@ -26,6 +26,8 @@ #include #include "pulse-client-stream.h" +#include "pulse-sink.h" +#include "pulse-source.h" #include "pulse-stream.h" struct _PulseClientStreamPrivate @@ -335,6 +337,7 @@ pulse_client_stream_get_parent (MateMixerClientStream *client) static gboolean pulse_client_stream_set_parent (MateMixerClientStream *client, MateMixerStream *parent) { + MateMixerStreamFlags flags; PulseClientStream *pclient; PulseClientStreamClass *klass; @@ -347,6 +350,20 @@ pulse_client_stream_set_parent (MateMixerClientStream *client, MateMixerStream * if (pclient->priv->parent == parent) return TRUE; + flags = mate_mixer_stream_get_flags (MATE_MIXER_STREAM (pclient)); + + /* Validate the parent stream */ + if (flags & MATE_MIXER_STREAM_INPUT && !PULSE_IS_SOURCE (parent)) { + g_warning ("Could not change stream parent to %s: not a parent input stream", + mate_mixer_stream_get_name (MATE_MIXER_STREAM (parent))); + return FALSE; + } else if (flags & MATE_MIXER_STREAM_OUTPUT && !PULSE_IS_SINK (parent)) { + g_warning ("Could not change stream parent to %s: not a parent output stream", + mate_mixer_stream_get_name (MATE_MIXER_STREAM (parent))); + return FALSE; + } + + /* Set the parent */ if (klass->set_parent (pclient, PULSE_STREAM (parent)) == FALSE) return FALSE; diff --git a/backends/pulse/pulse-ext-stream.c b/backends/pulse/pulse-ext-stream.c index 96164e8..a12a22a 100644 --- a/backends/pulse/pulse-ext-stream.c +++ b/backends/pulse/pulse-ext-stream.c @@ -30,8 +30,6 @@ #include "pulse-client-stream.h" #include "pulse-ext-stream.h" #include "pulse-helpers.h" -#include "pulse-sink.h" -#include "pulse-source.h" #include "pulse-stream.h" static void pulse_ext_stream_class_init (PulseExtStreamClass *klass); @@ -242,7 +240,6 @@ pulse_ext_stream_set_volume (PulseStream *pstream, pa_cvolume *cvolume) static gboolean pulse_ext_stream_set_parent (PulseClientStream *pclient, PulseStream *parent) { - MateMixerStreamFlags flags; PulseStream *pstream; const pa_channel_map *map; const pa_cvolume *cvolume; @@ -251,19 +248,6 @@ pulse_ext_stream_set_parent (PulseClientStream *pclient, PulseStream *parent) g_return_val_if_fail (PULSE_IS_EXT_STREAM (pclient), FALSE); g_return_val_if_fail (PULSE_IS_STREAM (parent), FALSE); - flags = mate_mixer_stream_get_flags (MATE_MIXER_STREAM (pclient)); - - /* Validate the parent stream */ - if (flags & MATE_MIXER_STREAM_INPUT && !PULSE_IS_SOURCE (parent)) { - g_warning ("Could not change stream parent to %s: not a parent input stream", - mate_mixer_stream_get_name (MATE_MIXER_STREAM (parent))); - return FALSE; - } else if (!PULSE_IS_SINK (parent)) { - g_warning ("Could not change stream parent to %s: not a parent output stream", - mate_mixer_stream_get_name (MATE_MIXER_STREAM (parent))); - return FALSE; - } - pstream = PULSE_STREAM (pclient); info.name = mate_mixer_stream_get_name (MATE_MIXER_STREAM (pstream)); diff --git a/backends/pulse/pulse-sink-input.c b/backends/pulse/pulse-sink-input.c index 54cd3b3..1d5f9c2 100644 --- a/backends/pulse/pulse-sink-input.c +++ b/backends/pulse/pulse-sink-input.c @@ -253,12 +253,6 @@ pulse_sink_input_set_parent (PulseClientStream *pclient, PulseStream *parent) g_return_val_if_fail (PULSE_IS_SINK_INPUT (pclient), FALSE); - if (!PULSE_IS_SINK (parent)) { - g_warning ("Could not change stream parent to %s: not a parent output stream", - mate_mixer_stream_get_name (MATE_MIXER_STREAM (parent))); - return FALSE; - } - pstream = PULSE_STREAM (pclient); return pulse_connection_move_sink_input (pulse_stream_get_connection (pstream), diff --git a/backends/pulse/pulse-source-output.c b/backends/pulse/pulse-source-output.c index c46b65b..6cbd888 100644 --- a/backends/pulse/pulse-source-output.c +++ b/backends/pulse/pulse-source-output.c @@ -243,12 +243,6 @@ pulse_source_output_set_parent (PulseClientStream *pclient, PulseStream *parent) g_return_val_if_fail (PULSE_IS_SOURCE_OUTPUT (pclient), FALSE); - if (!PULSE_IS_SOURCE (parent)) { - g_warning ("Could not change stream parent to %s: not a parent input stream", - mate_mixer_stream_get_name (MATE_MIXER_STREAM (parent))); - return FALSE; - } - pstream = PULSE_STREAM (pclient); return pulse_connection_move_sink_input (pulse_stream_get_connection (pstream), -- cgit v1.2.1