[Telepathy-commits] [telepathy-mission-control/master] Add mcd_dispatcher_context_get_channel_by_type()

Alberto Mardegan alberto.mardegan at nokia.com
Mon Nov 10 05:06:54 PST 2008


This is a convenience function for the filters.
---
 .../libmissioncontrol-server-sections.txt          |    1 +
 src/mcd-dispatcher-context.h                       |    2 +
 src/mcd-dispatcher.c                               |   24 ++++++++++++++++++++
 3 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/doc/reference/libmissioncontrol-server/libmissioncontrol-server-sections.txt b/doc/reference/libmissioncontrol-server/libmissioncontrol-server-sections.txt
index 3ab1f70..1ef021c 100644
--- a/doc/reference/libmissioncontrol-server/libmissioncontrol-server-sections.txt
+++ b/doc/reference/libmissioncontrol-server/libmissioncontrol-server-sections.txt
@@ -271,6 +271,7 @@ mcd_dispatcher_context_get_channel_object
 mcd_dispatcher_context_get_connection_object
 mcd_dispatcher_context_get_channel
 mcd_dispatcher_context_get_channels
+mcd_dispatcher_context_get_channel_by_type
 mcd_dispatcher_context_get_connection
 mcd_dispatcher_context_get_chan_handler
 mcd_dispatcher_context_get_members
diff --git a/src/mcd-dispatcher-context.h b/src/mcd-dispatcher-context.h
index b2f2bbd..403be22 100644
--- a/src/mcd-dispatcher-context.h
+++ b/src/mcd-dispatcher-context.h
@@ -101,6 +101,8 @@ TpConnection *mcd_dispatcher_context_get_connection_object (McdDispatcherContext
 McdChannel * mcd_dispatcher_context_get_channel (McdDispatcherContext * ctx);
 const GList *mcd_dispatcher_context_get_channels
     (McdDispatcherContext *context);
+McdChannel *mcd_dispatcher_context_get_channel_by_type
+    (McdDispatcherContext *context, GQuark type);
 
 McdConnection *mcd_dispatcher_context_get_connection
     (McdDispatcherContext *context);
diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index fdd79f5..5948064 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -2231,6 +2231,30 @@ mcd_dispatcher_context_get_channels (McdDispatcherContext *context)
     return context->channels;
 }
 
+/**
+ * mcd_dispatcher_context_get_channel_by_type:
+ * @context: the #McdDispatcherContext.
+ * @type: the #GQuark representing the channel type.
+ *
+ * Returns: the first #McdChannel of the requested type, or %NULL.
+ */
+McdChannel *
+mcd_dispatcher_context_get_channel_by_type (McdDispatcherContext *context,
+                                            GQuark type)
+{
+    GList *list;
+
+    g_return_val_if_fail (context != NULL, NULL);
+    for (list = context->channels; list != NULL; list = list->next)
+    {
+        McdChannel *channel = MCD_CHANNEL (list->data);
+
+        if (mcd_channel_get_channel_type_quark (channel) == type)
+            return channel;
+    }
+    return NULL;
+}
+
 McdChannelHandler *
 mcd_dispatcher_context_get_chan_handler (McdDispatcherContext * ctx)
 {
-- 
1.5.6.5




More information about the Telepathy-commits mailing list