[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