summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Ratajsky <[email protected]>2014-07-20 10:35:28 +0200
committerMichal Ratajsky <[email protected]>2014-07-20 10:35:28 +0200
commit32049d16801b8c0b53448eba4b41df8765a94f84 (patch)
tree6a232dfd4c472aebb79af722cf61855086f56dfb
parentc965e0de05231c7da6c11d5cc1a8d97b6d156f1b (diff)
downloadlibmatemixer-32049d16801b8c0b53448eba4b41df8765a94f84.tar.bz2
libmatemixer-32049d16801b8c0b53448eba4b41df8765a94f84.tar.xz
Fix setting ext-stream parent and generalize it in PulseClientStream
-rw-r--r--backends/pulse/pulse-client-stream.c17
-rw-r--r--backends/pulse/pulse-ext-stream.c16
-rw-r--r--backends/pulse/pulse-sink-input.c6
-rw-r--r--backends/pulse/pulse-source-output.c6
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 <pulse/pulseaudio.h>
#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),