[telepathy-stream-engine/refs/tags/telepathy-stream-engine_0.5.10] Use switch in sync handler
Olivier Crête
olivier.crete at collabora.co.uk
Mon Oct 26 09:28:22 PDT 2009
---
src/tp-stream-engine.c | 102 +++++++++++++++++++++++-------------------------
1 files changed, 49 insertions(+), 53 deletions(-)
diff --git a/src/tp-stream-engine.c b/src/tp-stream-engine.c
index b585f03..18fb598 100644
--- a/src/tp-stream-engine.c
+++ b/src/tp-stream-engine.c
@@ -971,62 +971,58 @@ static GstBusSyncReply
bus_sync_handler (GstBus *bus G_GNUC_UNUSED, GstMessage *message, gpointer data)
{
TpStreamEngine *self = TP_STREAM_ENGINE (data);
- GList *item;
- gboolean handled = FALSE;
-
- if (GST_MESSAGE_TYPE (message) != GST_MESSAGE_ELEMENT)
- return GST_BUS_PASS;
-
- if (!gst_structure_has_name (message->structure, "prepare-xwindow-id"))
- return GST_BUS_PASS;
-
- g_mutex_lock (self->priv->mutex);
-
- if (self->priv->preview)
- {
- handled = tp_stream_engine_video_sink_bus_sync_message (
- TP_STREAM_ENGINE_VIDEO_SINK (self->priv->preview), message);
- if (handled)
- goto done;
- }
-
- for (item = g_list_first (self->priv->preview_sinks);
- item && !handled;
- item = g_list_next (item))
- {
- TpStreamEngineVideoSink *preview =
- TP_STREAM_ENGINE_VIDEO_SINK (item->data);
-
- handled = tp_stream_engine_video_sink_bus_sync_message (preview, message);
- if (handled)
- goto done;
- }
-
- for (item = g_list_first (self->priv->output_sinks);
- item && !handled;
- item = g_list_next (item))
- {
- TpStreamEngineVideoSink *output =
- TP_STREAM_ENGINE_VIDEO_SINK (item->data);
-
- handled = tp_stream_engine_video_sink_bus_sync_message (output,
- message);
- if (handled)
- goto done;
- }
-
- done:
- g_mutex_unlock (self->priv->mutex);
-
-
- if (handled)
+ switch (GST_MESSAGE_TYPE (message))
{
- gst_message_unref (message);
- return GST_BUS_DROP;
+ case GST_MESSAGE_ELEMENT:
+ {
+ GList *item;
+ gboolean handled = FALSE;
+
+ if (!gst_structure_has_name (message->structure, "prepare-xwindow-id"))
+ return GST_BUS_PASS;
+
+
+ g_mutex_lock (self->priv->mutex);
+ for (item = g_list_first (self->priv->preview_sinks);
+ item && !handled;
+ item = g_list_next (item))
+ {
+ TpStreamEngineVideoSink *preview = item->data;
+
+ handled = tp_stream_engine_video_sink_bus_sync_message (preview, message);
+ if (handled)
+ break;
+ }
+
+ if (!handled)
+ {
+ for (item = g_list_first (self->priv->output_sinks);
+ item && !handled;
+ item = g_list_next (item))
+ {
+ TpStreamEngineVideoSink *output = item->data;
+
+ handled = tp_stream_engine_video_sink_bus_sync_message (output,
+ message);
+ if (handled)
+ break;
+ }
+ }
+ g_mutex_unlock (self->priv->mutex);
+
+ if (handled)
+ {
+ gst_message_unref (message);
+ return GST_BUS_DROP;
+ }
+ else
+ return GST_BUS_PASS;
+ }
+ break;
+ default:
+ return GST_BUS_PASS;
}
- else
- return GST_BUS_PASS;
}
static void
--
1.5.6.5
More information about the telepathy-commits
mailing list