[telepathy-gabble/master] Add functions to see if the direction is sending or receiving from our pov

Sjoerd Simons sjoerd.simons at collabora.co.uk
Tue Dec 29 05:35:21 PST 2009


---
 src/jingle-content.c |   37 +++++++++++++++++++++++++++++++++++++
 src/jingle-content.h |    3 +++
 2 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/src/jingle-content.c b/src/jingle-content.c
index d32eb1c..863a84a 100644
--- a/src/jingle-content.c
+++ b/src/jingle-content.c
@@ -1081,3 +1081,40 @@ gabble_jingle_content_get_transport_type (GabbleJingleContent *c)
 {
   return gabble_jingle_transport_iface_get_transport_type (c->priv->transport);
 }
+
+static gboolean
+jingle_content_has_direction (GabbleJingleContent *self,
+  gboolean sending)
+{
+  GabbleJingleContentPrivate *priv = self->priv;
+  gboolean initiated_by_us;
+
+  g_object_get (self->session, "local-initiator",
+    &initiated_by_us, NULL);
+
+  switch (priv->senders)
+    {
+      case JINGLE_CONTENT_SENDERS_BOTH:
+        return TRUE;
+      case JINGLE_CONTENT_SENDERS_NONE:
+        return FALSE;
+      case JINGLE_CONTENT_SENDERS_INITIATOR:
+        return sending ? initiated_by_us : !initiated_by_us;
+      case JINGLE_CONTENT_SENDERS_RESPONDER:
+        return sending ? !initiated_by_us : initiated_by_us;
+    }
+
+  return FALSE;
+}
+
+gboolean
+gabble_jingle_content_sending (GabbleJingleContent *self)
+{
+  return jingle_content_has_direction (self, TRUE);
+}
+
+gboolean
+gabble_jingle_content_receiving (GabbleJingleContent *self)
+{
+  return jingle_content_has_direction (self, FALSE);
+}
diff --git a/src/jingle-content.h b/src/jingle-content.h
index b331010..9cbf810 100644
--- a/src/jingle-content.h
+++ b/src/jingle-content.h
@@ -138,5 +138,8 @@ const gchar *gabble_jingle_content_get_transport_ns (GabbleJingleContent *self);
 
 void gabble_jingle_content_maybe_send_description (GabbleJingleContent *self);
 
+gboolean gabble_jingle_content_sending (GabbleJingleContent *self);
+gboolean gabble_jingle_content_receiving (GabbleJingleContent *self);
+
 #endif /* __JINGLE_CONTENT_H__ */
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list