[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