[Telepathy-commits] [telepathy-sofiasip/master] Implemented TargetID DBus property for text Channels
Mikhail Zabaluev
mikhail.zabaluev at nokia.com
Tue Sep 9 09:13:00 PDT 2008
---
src/sip-text-channel.c | 68 +++++++++++++++++++++++++++++------------------
1 files changed, 42 insertions(+), 26 deletions(-)
diff --git a/src/sip-text-channel.c b/src/sip-text-channel.c
index a867dac..a135d18 100644
--- a/src/sip-text-channel.c
+++ b/src/sip-text-channel.c
@@ -78,6 +78,7 @@ enum
PROP_CHANNEL_TYPE,
PROP_HANDLE_TYPE,
PROP_HANDLE,
+ PROP_TARGET_ID,
PROP_INTERFACES,
/* PROP_CREATOR, */
LAST_PROPERTY
@@ -199,18 +200,19 @@ static void tpsip_text_channel_finalize(GObject *object);
static void
tpsip_text_channel_class_init(TpsipTextChannelClass *klass)
{
- static TpDBusPropertiesMixinPropImpl channel_props[] = {
+ static const TpDBusPropertiesMixinPropImpl channel_props[] = {
{ "TargetHandleType", "handle-type", NULL },
{ "TargetHandle", "handle", NULL },
+ { "TargetID", "target-id", NULL },
{ "ChannelType", "channel-type", NULL },
{ "Interfaces", "interfaces", NULL },
{ NULL }
};
- static TpDBusPropertiesMixinIfaceImpl prop_interfaces[] = {
+ static const TpDBusPropertiesMixinIfaceImpl prop_interfaces[] = {
{ TP_IFACE_CHANNEL,
tp_dbus_properties_mixin_getter_gobject_properties,
NULL,
- channel_props,
+ (TpDBusPropertiesMixinPropImpl *) channel_props,
},
{ NULL }
};
@@ -229,28 +231,33 @@ tpsip_text_channel_class_init(TpsipTextChannelClass *klass)
object_class->dispose = tpsip_text_channel_dispose;
object_class->finalize = tpsip_text_channel_finalize;
+ g_object_class_override_property (object_class, PROP_HANDLE_TYPE,
+ "handle-type");
+ g_object_class_override_property (object_class, PROP_HANDLE, "handle");
+ g_object_class_override_property (object_class, PROP_OBJECT_PATH,
+ "object-path");
+ g_object_class_override_property (object_class, PROP_CHANNEL_TYPE,
+ "channel-type");
+
param_spec = g_param_spec_object("connection", "TpsipConnection object",
"SIP connection object that owns this SIP media channel object.",
TPSIP_TYPE_CONNECTION,
- G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE |
- G_PARAM_STATIC_NICK | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB);
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
g_object_class_install_property(object_class, PROP_CONNECTION, param_spec);
param_spec = g_param_spec_boxed ("interfaces", "Extra D-Bus interfaces",
"Addition Channel.Interface.* interfaces", G_TYPE_STRV,
- G_PARAM_READABLE |
- G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME);
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
g_object_class_install_property (object_class, PROP_INTERFACES, param_spec);
- g_object_class_override_property (object_class, PROP_HANDLE_TYPE,
- "handle-type");
- g_object_class_override_property (object_class, PROP_HANDLE, "handle");
- g_object_class_override_property (object_class, PROP_OBJECT_PATH,
- "object-path");
- g_object_class_override_property (object_class, PROP_CHANNEL_TYPE,
- "channel-type");
+ param_spec = g_param_spec_string ("target-id", "Peer's SIP URI",
+ "The URI string obtained by inspecting the peer handle",
+ NULL,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ g_object_class_install_property (object_class, PROP_TARGET_ID, param_spec);
- klass->dbus_props_class.interfaces = prop_interfaces;
+ klass->dbus_props_class.interfaces =
+ (TpDBusPropertiesMixinIfaceImpl *) prop_interfaces;
tp_dbus_properties_mixin_class_init (object_class,
G_STRUCT_OFFSET (TpsipTextChannelClass, dbus_props_class));
}
@@ -277,21 +284,30 @@ tpsip_text_channel_get_property(GObject *object,
g_value_set_string(value, TP_IFACE_CHANNEL_TYPE_TEXT);
break;
- case PROP_HANDLE_TYPE:
+ case PROP_HANDLE_TYPE:
g_value_set_uint(value, TP_HANDLE_TYPE_CONTACT);
- break;
+ break;
- case PROP_HANDLE:
- g_value_set_uint(value, priv->handle);
- break;
+ case PROP_HANDLE:
+ g_value_set_uint(value, priv->handle);
+ break;
- case PROP_INTERFACES:
- g_value_set_static_boxed (value, tpsip_text_channel_interfaces);
- break;
+ case PROP_TARGET_ID:
+ {
+ TpHandleRepoIface *repo = tp_base_connection_get_handles (
+ (TpBaseConnection *) priv->conn, TP_HANDLE_TYPE_CONTACT);
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
- break;
+ g_value_set_string (value, tp_handle_inspect (repo, priv->handle));
+ }
+ break;
+
+ case PROP_INTERFACES:
+ g_value_set_static_boxed (value, tpsip_text_channel_interfaces);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
+ break;
}
}
--
1.5.6.3
More information about the Telepathy-commits
mailing list