[telepathy-gabble/master] Make it possible to retrieve our local candidates

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


---
 src/jingle-content.c          |    8 ++++++++
 src/jingle-content.h          |    1 +
 src/jingle-transport-google.c |   11 +++++++++++
 src/jingle-transport-iceudp.c |   11 +++++++++++
 src/jingle-transport-iface.c  |   11 +++++++++++
 src/jingle-transport-iface.h  |    2 ++
 src/jingle-transport-rawudp.c |   11 +++++++++++
 7 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/src/jingle-content.c b/src/jingle-content.c
index cac4c74..6093ab2 100644
--- a/src/jingle-content.c
+++ b/src/jingle-content.c
@@ -942,6 +942,14 @@ gabble_jingle_content_get_remote_candidates (GabbleJingleContent *c)
   return gabble_jingle_transport_iface_get_remote_candidates (priv->transport);
 }
 
+GList *
+gabble_jingle_content_get_local_candidates (GabbleJingleContent *c)
+{
+  GabbleJingleContentPrivate *priv = c->priv;
+
+  return gabble_jingle_transport_iface_get_local_candidates (priv->transport);
+}
+
 gboolean
 gabble_jingle_content_change_direction (GabbleJingleContent *c,
     JingleContentSenders senders)
diff --git a/src/jingle-content.h b/src/jingle-content.h
index 50d26f6..b331010 100644
--- a/src/jingle-content.h
+++ b/src/jingle-content.h
@@ -120,6 +120,7 @@ void gabble_jingle_content_set_transport_state (GabbleJingleContent *content,
     JingleTransportState state);
 void gabble_jingle_content_remove (GabbleJingleContent *c, gboolean signal_peer);
 GList *gabble_jingle_content_get_remote_candidates (GabbleJingleContent *c);
+GList *gabble_jingle_content_get_local_candidates (GabbleJingleContent *c);
 gboolean gabble_jingle_content_change_direction (GabbleJingleContent *c,
     JingleContentSenders senders);
 void gabble_jingle_content_retransmit_candidates (GabbleJingleContent *self,
diff --git a/src/jingle-transport-google.c b/src/jingle-transport-google.c
index a17deb2..4472e8c 100644
--- a/src/jingle-transport-google.c
+++ b/src/jingle-transport-google.c
@@ -565,6 +565,16 @@ send_candidates (GabbleJingleTransportIface *obj, gboolean all)
 }
 
 static GList *
+get_local_candidates (GabbleJingleTransportIface *iface)
+{
+  GabbleJingleTransportGoogle *transport =
+    GABBLE_JINGLE_TRANSPORT_GOOGLE (iface);
+  GabbleJingleTransportGooglePrivate *priv = transport->priv;
+
+  return priv->local_candidates;
+}
+
+static GList *
 get_remote_candidates (GabbleJingleTransportIface *iface)
 {
   GabbleJingleTransportGoogle *transport =
@@ -594,6 +604,7 @@ transport_iface_init (gpointer g_iface, gpointer iface_data)
   klass->send_candidates = send_candidates;
 
   klass->get_remote_candidates = get_remote_candidates;
+  klass->get_local_candidates = get_local_candidates;
   klass->get_transport_type = get_transport_type;
 }
 
diff --git a/src/jingle-transport-iceudp.c b/src/jingle-transport-iceudp.c
index 1a63349..396cc64 100644
--- a/src/jingle-transport-iceudp.c
+++ b/src/jingle-transport-iceudp.c
@@ -537,6 +537,16 @@ get_remote_candidates (GabbleJingleTransportIface *iface)
   return priv->remote_candidates;
 }
 
+static GList *
+get_local_candidates (GabbleJingleTransportIface *iface)
+{
+  GabbleJingleTransportIceUdp *transport =
+    GABBLE_JINGLE_TRANSPORT_ICEUDP (iface);
+  GabbleJingleTransportIceUdpPrivate *priv = transport->priv;
+
+  return priv->local_candidates;
+}
+
 static JingleTransportType
 get_transport_type (void)
 {
@@ -555,6 +565,7 @@ transport_iface_init (gpointer g_iface, gpointer iface_data)
   klass->send_candidates = send_candidates;
 
   klass->get_remote_candidates = get_remote_candidates;
+  klass->get_local_candidates = get_local_candidates;
   klass->get_transport_type = get_transport_type;
 }
 
diff --git a/src/jingle-transport-iface.c b/src/jingle-transport-iface.c
index 76128a6..f9e40dc 100644
--- a/src/jingle-transport-iface.c
+++ b/src/jingle-transport-iface.c
@@ -125,6 +125,17 @@ gabble_jingle_transport_iface_get_remote_candidates (
   return virtual_method (self);
 }
 
+GList *
+gabble_jingle_transport_iface_get_local_candidates (
+    GabbleJingleTransportIface *self)
+{
+  GList * (*virtual_method)(GabbleJingleTransportIface *) =
+    GABBLE_JINGLE_TRANSPORT_IFACE_GET_CLASS (self)->get_local_candidates;
+
+  g_assert (virtual_method != NULL);
+  return virtual_method (self);
+}
+
 JingleTransportType
 gabble_jingle_transport_iface_get_transport_type (GabbleJingleTransportIface *self)
 {
diff --git a/src/jingle-transport-iface.h b/src/jingle-transport-iface.h
index 9ee4a08..cb29ffc 100644
--- a/src/jingle-transport-iface.h
+++ b/src/jingle-transport-iface.h
@@ -51,6 +51,7 @@ struct _GabbleJingleTransportIfaceClass {
   gboolean (*can_accept) (GabbleJingleTransportIface *);
 
   GList * (*get_remote_candidates) (GabbleJingleTransportIface *);
+  GList * (*get_local_candidates) (GabbleJingleTransportIface *);
   JingleTransportType (*get_transport_type) (void);
 };
 
@@ -83,6 +84,7 @@ gboolean gabble_jingle_transport_iface_can_accept (
     GabbleJingleTransportIface *self);
 
 GList *gabble_jingle_transport_iface_get_remote_candidates (GabbleJingleTransportIface *);
+GList *gabble_jingle_transport_iface_get_local_candidates (GabbleJingleTransportIface *);
 JingleTransportType gabble_jingle_transport_iface_get_transport_type (GabbleJingleTransportIface *);
 
 GabbleJingleTransportIface *gabble_jingle_transport_iface_new (
diff --git a/src/jingle-transport-rawudp.c b/src/jingle-transport-rawudp.c
index a75b35b..3ba83c4 100644
--- a/src/jingle-transport-rawudp.c
+++ b/src/jingle-transport-rawudp.c
@@ -352,6 +352,16 @@ can_accept (GabbleJingleTransportIface *iface)
 }
 
 static GList *
+get_local_candidates (GabbleJingleTransportIface *iface)
+{
+  GabbleJingleTransportRawUdp *transport =
+    GABBLE_JINGLE_TRANSPORT_RAWUDP (iface);
+  GabbleJingleTransportRawUdpPrivate *priv = transport->priv;
+
+  return priv->local_candidates;
+}
+
+static GList *
 get_remote_candidates (GabbleJingleTransportIface *iface)
 {
   GabbleJingleTransportRawUdp *transport =
@@ -384,6 +394,7 @@ transport_iface_init (gpointer g_iface, gpointer iface_data)
   klass->can_accept = can_accept;
 
   klass->get_remote_candidates = get_remote_candidates;
+  klass->get_local_candidates = get_local_candidates;
   klass->get_transport_type = get_transport_type;
 }
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list