[Telepathy-commits] [telepathy-salut/master] SalutContactChannel: export interfaces as a GObject property

Simon McVittie simon.mcvittie at collabora.co.uk
Wed Aug 13 11:09:26 PDT 2008


20080609093908-53eee-a51b7d2aec7088f52f2e0a9dbfb326aeb7545f68.gz

Signed-off-by: Sjoerd Simons <sjoerd.simons at collabora.co.uk>
---
 src/salut-contact-channel.c |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/salut-contact-channel.c b/src/salut-contact-channel.c
index 8096934..8a1e053 100644
--- a/src/salut-contact-channel.c
+++ b/src/salut-contact-channel.c
@@ -43,6 +43,11 @@ G_DEFINE_TYPE_WITH_CODE(SalutContactChannel, salut_contact_channel,
   G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_TYPE_CONTACT_LIST, NULL);
 )
 
+static const gchar *salut_contact_channel_interfaces[] = {
+    TP_IFACE_CHANNEL_INTERFACE_GROUP,
+    NULL
+};
+
 /* properties */
 enum
 {
@@ -51,6 +56,7 @@ enum
   PROP_HANDLE_TYPE,
   PROP_HANDLE,
   PROP_CONNECTION,
+  PROP_INTERFACES,
   LAST_PROPERTY
 };
 
@@ -144,6 +150,9 @@ salut_contact_channel_get_property (GObject    *object,
     case PROP_CONNECTION:
       g_value_set_object (value, priv->conn);
       break;
+      case PROP_INTERFACES:
+        g_value_set_static_boxed (value, salut_contact_channel_interfaces);
+        break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
       break;
@@ -214,6 +223,13 @@ salut_contact_channel_class_init (SalutContactChannelClass *salut_contact_channe
                                     G_PARAM_STATIC_BLURB);
   g_object_class_install_property (object_class, PROP_CONNECTION, param_spec);
 
+  param_spec = g_param_spec_boxed ("interfaces", "Extra D-Bus interfaces",
+      "Additional Channel.Interface.* interfaces",
+      G_TYPE_STRV,
+      G_PARAM_READABLE |
+      G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME);
+  g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
+
   g_object_class_override_property (object_class, PROP_OBJECT_PATH,
       "object-path");
   g_object_class_override_property (object_class, PROP_CHANNEL_TYPE,
@@ -325,10 +341,10 @@ salut_contact_channel_get_handle (TpSvcChannel *iface,
  */
 static void
 salut_contact_channel_get_interfaces (TpSvcChannel *iface,
-                                       DBusGMethodInvocation *context) {
-  const char *interfaces[] = { TP_IFACE_CHANNEL_INTERFACE_GROUP, NULL };
-
-  tp_svc_channel_return_from_get_interfaces (context, interfaces);
+                                      DBusGMethodInvocation *context)
+{
+  tp_svc_channel_return_from_get_interfaces (context,
+      salut_contact_channel_interfaces);
 }
 
 
-- 
1.5.6.3




More information about the Telepathy-commits mailing list