[Telepathy-commits] [telepathy-salut/master] SalutContactChannel: implement D-Bus properties from spec 0.17.7

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


20080609094252-53eee-7027ec63e9de6e2281b2435ccdc7bc9e19a64307.gz

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

diff --git a/src/salut-contact-channel.c b/src/salut-contact-channel.c
index 2cb782c..182fc5f 100644
--- a/src/salut-contact-channel.c
+++ b/src/salut-contact-channel.c
@@ -27,6 +27,7 @@
 #include <telepathy-glib/channel-iface.h>
 #include <telepathy-glib/dbus.h>
 #include <telepathy-glib/interfaces.h>
+#include <telepathy-glib/svc-generic.h>
 #include <telepathy-glib/util.h>
 
 #include "salut-connection.h"
@@ -36,6 +37,8 @@ channel_iface_init (gpointer g_iface, gpointer iface_data);
 
 G_DEFINE_TYPE_WITH_CODE(SalutContactChannel, salut_contact_channel,
   G_TYPE_OBJECT,
+    G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_DBUS_PROPERTIES,
+      tp_dbus_properties_mixin_iface_init);
   G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_IFACE, NULL);
   G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL, channel_iface_init);
   G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_INTERFACE_GROUP,
@@ -200,6 +203,21 @@ salut_contact_channel_set_property (GObject     *object,
 static void
 salut_contact_channel_class_init (SalutContactChannelClass *salut_contact_channel_class)
 {
+  static TpDBusPropertiesMixinPropImpl channel_props[] = {
+      { "TargetHandleType", "handle-type", NULL },
+      { "TargetHandle", "handle", NULL },
+      { "ChannelType", "channel-type", NULL },
+      { "Interfaces", "interfaces", NULL },
+      { NULL }
+  };
+  static TpDBusPropertiesMixinIfaceImpl prop_interfaces[] = {
+      { TP_IFACE_CHANNEL,
+        tp_dbus_properties_mixin_getter_gobject_properties,
+        NULL,
+        channel_props,
+      },
+      { NULL }
+  };
   GObjectClass *object_class = G_OBJECT_CLASS (salut_contact_channel_class);
   GParamSpec *param_spec;
 
@@ -239,6 +257,10 @@ salut_contact_channel_class_init (SalutContactChannelClass *salut_contact_channe
       "handle-type");
   g_object_class_override_property (object_class, PROP_HANDLE, "handle");
 
+  salut_contact_channel_class->dbus_props_class.interfaces = prop_interfaces;
+  tp_dbus_properties_mixin_class_init (object_class,
+      G_STRUCT_OFFSET (SalutContactChannelClass, dbus_props_class));
+
   tp_group_mixin_class_init (object_class,
       G_STRUCT_OFFSET (SalutContactChannelClass, group_class),
       NULL, NULL);
diff --git a/src/salut-contact-channel.h b/src/salut-contact-channel.h
index 443ef0c..2563d8b 100644
--- a/src/salut-contact-channel.h
+++ b/src/salut-contact-channel.h
@@ -31,7 +31,9 @@ typedef struct _SalutContactChannelClass SalutContactChannelClass;
 
 struct _SalutContactChannelClass {
     GObjectClass parent_class;
+
     TpGroupMixinClass group_class;
+    TpDBusPropertiesMixinClass dbus_props_class;
 };
 
 struct _SalutContactChannel {
-- 
1.5.6.3




More information about the Telepathy-commits mailing list