[Telepathy-commits] [telepathy-gabble/master] GabbleMediaStream: make relay-info settable at construct time

Simon McVittie simon.mcvittie at collabora.co.uk
Wed Mar 4 04:42:49 PST 2009


---
 src/media-stream.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/media-stream.c b/src/media-stream.c
index e737d9c..2e1eef9 100644
--- a/src/media-stream.c
+++ b/src/media-stream.c
@@ -122,6 +122,8 @@ struct _GabbleMediaStreamPrivate
   gchar *nat_traversal;
   /* GPtrArray(GValueArray(STRING, UINT)) */
   GPtrArray *stun_servers;
+  /* GPtrArray(GHashTable(string => GValue)) */
+  GPtrArray *relay_info;
 
   /* These are really booleans, but gboolean is signed. Thanks, GLib */
   unsigned closed:1;
@@ -348,8 +350,7 @@ gabble_media_stream_get_property (GObject    *object,
       g_value_set_boolean (value, priv->created_locally);
       break;
     case PROP_RELAY_INFO:
-      /* a stub implementation, for now */
-      g_value_take_boxed (value, g_ptr_array_sized_new (0));
+      g_value_set_boxed (value, priv->relay_info);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -441,6 +442,10 @@ gabble_media_stream_set_property (GObject      *object,
       g_assert (priv->nat_traversal == NULL);
       priv->nat_traversal = g_value_dup_string (value);
       break;
+    case PROP_RELAY_INFO:
+      g_assert (priv->relay_info == NULL);
+      priv->relay_info = g_value_dup_boxed (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
       break;
@@ -577,7 +582,7 @@ gabble_media_stream_class_init (GabbleMediaStreamClass *gabble_media_stream_clas
   param_spec = g_param_spec_boxed ("relay-info", "Relay info",
       "Array of mappings containing relay server information",
       TP_ARRAY_TYPE_STRING_VARIANT_MAP_LIST,
-      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+      G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
   g_object_class_install_property (object_class, PROP_RELAY_INFO, param_spec);
 
   param_spec = g_param_spec_string ("nat-traversal", "NAT traversal",
@@ -693,6 +698,9 @@ gabble_media_stream_finalize (GObject *object)
   if (priv->stun_servers != NULL)
     g_boxed_free (tp_type_dbus_array_su (), priv->stun_servers);
 
+  if (priv->relay_info != NULL)
+    g_boxed_free (TP_ARRAY_TYPE_STRING_VARIANT_MAP_LIST, priv->relay_info);
+
   g_value_unset (&priv->native_codecs);
   g_value_unset (&priv->native_candidates);
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list