[telepathy-gabble/master] Implement the Transport property
Sjoerd Simons
sjoerd.simons at collabora.co.uk
Tue Dec 29 05:34:44 PST 2009
---
src/call-stream.c | 43 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/src/call-stream.c b/src/call-stream.c
index acf1e90..0f2e5b9 100644
--- a/src/call-stream.c
+++ b/src/call-stream.c
@@ -55,9 +55,11 @@ enum
{
PROP_OBJECT_PATH = 1,
PROP_JINGLE_CONTENT,
- PROP_LOCAL_CANDIDATES,
- PROP_ENDPOINTS
+ /* Media interface properties */
+ PROP_LOCAL_CANDIDATES,
+ PROP_ENDPOINTS,
+ PROP_TRANSPORT,
};
#if 0
@@ -139,6 +141,35 @@ gabble_call_stream_get_property (GObject *object,
g_ptr_array_free (arr, TRUE);
break;
}
+ case PROP_TRANSPORT:
+ {
+ JingleTransportType transport;
+ guint i;
+ guint tptransport = G_MAXUINT;
+ guint transport_mapping[][2] = {
+ { JINGLE_TRANSPORT_GOOGLE_P2P,
+ GABBLE_STREAM_TRANSPORT_TYPE_GTALK_P2P },
+ { JINGLE_TRANSPORT_RAW_UDP,
+ GABBLE_STREAM_TRANSPORT_TYPE_RAW_UDP },
+ { JINGLE_TRANSPORT_ICE_UDP,
+ GABBLE_STREAM_TRANSPORT_TYPE_ICE },
+ };
+
+ transport = gabble_jingle_content_get_transport_type (priv->content);
+
+ for (i = 0; i < G_N_ELEMENTS (transport_mapping); i++)
+ {
+ if (transport_mapping[i][0] == transport)
+ {
+ tptransport = transport_mapping[i][1];
+ break;
+ }
+ }
+ g_assert (tptransport < G_MAXUINT);
+ g_value_set_uint (value, tptransport);
+
+ break;
+ }
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -203,6 +234,7 @@ gabble_call_stream_class_init (GabbleCallStreamClass *gabble_call_stream_class)
{ NULL }
};
static TpDBusPropertiesMixinPropImpl stream_media_props[] = {
+ { "Transport", "transport", NULL },
{ "LocalCandidates", "local-candidates", NULL },
{ "Endpoints", "endpoints", NULL },
{ NULL }
@@ -265,6 +297,13 @@ gabble_call_stream_class_init (GabbleCallStreamClass *gabble_call_stream_class)
g_object_class_install_property (object_class, PROP_ENDPOINTS,
param_spec);
+ param_spec = g_param_spec_uint ("transport", "Transport",
+ "The transport of this stream",
+ 0, G_MAXUINT, 0,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ g_object_class_install_property (object_class, PROP_TRANSPORT,
+ param_spec);
+
gabble_call_stream_class->dbus_props_class.interfaces = prop_interfaces;
tp_dbus_properties_mixin_class_init (object_class,
G_STRUCT_OFFSET (GabbleCallStreamClass, dbus_props_class));
--
1.5.6.5
More information about the telepathy-commits
mailing list