diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2010-11-23 16:10:58 +0000 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2010-11-23 16:11:13 +0000 |
commit | d56b1f06f7576b17208943374105f7e87b49ee61 (patch) | |
tree | a2c5cad95901f878c1c5925b0974f3dee0e13ba2 | |
parent | 1c9931a882038ac20ab45fe6de015cb8b76a841b (diff) | |
parent | 2003aeb88be1545739f92dcd3a4c99e7d0898d07 (diff) |
Merge branch 'get-bus'
Reviewed-by: Mikhail Zabaluev <mikhail.zabaluev@nokia.com>
-rw-r--r-- | src/sip-media-channel.c | 8 | ||||
-rw-r--r-- | src/sip-media-session.c | 28 | ||||
-rw-r--r-- | src/sip-media-stream.c | 21 | ||||
-rw-r--r-- | src/sip-text-channel.c | 6 |
4 files changed, 48 insertions, 15 deletions
diff --git a/src/sip-media-channel.c b/src/sip-media-channel.c index c6d6df5..8f896ed 100644 --- a/src/sip-media-channel.c +++ b/src/sip-media-channel.c @@ -189,7 +189,7 @@ tpsip_media_channel_constructed (GObject *obj) TpBaseConnection *conn = (TpBaseConnection *)(priv->conn); GObjectClass *parent_object_class = G_OBJECT_CLASS (tpsip_media_channel_parent_class); - DBusGConnection *bus; + TpDBusDaemon *bus; TpHandleRepoIface *contact_repo; TpIntSet *set; @@ -203,10 +203,10 @@ tpsip_media_channel_constructed (GObject *obj) tp_handle_ref (contact_repo, priv->handle); /* register object on the bus */ - bus = tp_get_bus (); + bus = tp_base_connection_get_dbus_daemon (conn); DEBUG("registering object to dbus path=%s", priv->object_path); - dbus_g_connection_register_g_object (bus, priv->object_path, obj); + tp_dbus_daemon_register_object (bus, priv->object_path, obj); /* initialize group mixin */ tp_group_mixin_init (obj, @@ -1622,6 +1622,8 @@ priv_create_session (TpsipMediaChannel *channel, NULL); session = g_object_new (TPSIP_TYPE_MEDIA_SESSION, + "dbus-daemon", + tp_base_connection_get_dbus_daemon (conn), "media-channel", channel, "object-path", object_path, "nua-handle", nh, diff --git a/src/sip-media-session.c b/src/sip-media-session.c index 73b7482..8272200 100644 --- a/src/sip-media-session.c +++ b/src/sip-media-session.c @@ -72,6 +72,7 @@ enum enum { PROP_MEDIA_CHANNEL = 1, + PROP_DBUS_DAEMON, PROP_OBJECT_PATH, PROP_NUA_OP, PROP_PEER, @@ -122,6 +123,7 @@ typedef struct _TpsipMediaSessionPrivate TpsipMediaSessionPrivate; struct _TpsipMediaSessionPrivate { + TpDBusDaemon *dbus_daemon; TpsipMediaChannel *channel; /* see gobj. prop. 'media-channel' */ gchar *object_path; /* see gobj. prop. 'object-path' */ nua_handle_t *nua_op; /* see gobj. prop. 'nua-handle' */ @@ -192,14 +194,13 @@ tpsip_media_session_constructor (GType type, guint n_props, { GObject *obj; TpsipMediaSessionPrivate *priv; - DBusGConnection *bus; obj = G_OBJECT_CLASS (tpsip_media_session_parent_class)-> constructor (type, n_props, props); priv = TPSIP_MEDIA_SESSION_GET_PRIVATE (TPSIP_MEDIA_SESSION (obj)); - bus = tp_get_bus (); - dbus_g_connection_register_g_object (bus, priv->object_path, obj); + g_assert (TP_IS_DBUS_DAEMON (priv->dbus_daemon)); + tp_dbus_daemon_register_object (priv->dbus_daemon, priv->object_path, obj); return obj; } @@ -212,7 +213,11 @@ static void tpsip_media_session_get_property (GObject *object, TpsipMediaSession *session = TPSIP_MEDIA_SESSION (object); TpsipMediaSessionPrivate *priv = TPSIP_MEDIA_SESSION_GET_PRIVATE (session); - switch (property_id) { + switch (property_id) + { + case PROP_DBUS_DAEMON: + g_value_set_object (value, priv->dbus_daemon); + break; case PROP_MEDIA_CHANNEL: g_value_set_object (value, priv->channel); break; @@ -296,7 +301,12 @@ static void tpsip_media_session_set_property (GObject *object, TpsipMediaSession *session = TPSIP_MEDIA_SESSION (object); TpsipMediaSessionPrivate *priv = TPSIP_MEDIA_SESSION_GET_PRIVATE (session); - switch (property_id) { + switch (property_id) + { + case PROP_DBUS_DAEMON: + g_assert (priv->dbus_daemon == NULL); /* construct-only */ + priv->dbus_daemon = g_value_dup_object (value); + break; case PROP_MEDIA_CHANNEL: priv->channel = TPSIP_MEDIA_CHANNEL (g_value_get_object (value)); break; @@ -343,6 +353,11 @@ tpsip_media_session_class_init (TpsipMediaSessionClass *klass) object_class->dispose = tpsip_media_session_dispose; object_class->finalize = tpsip_media_session_finalize; + param_spec = g_param_spec_object ("dbus-daemon", "TpDBusDaemon", + "Connection to D-Bus.", TP_TYPE_DBUS_DAEMON, + G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (object_class, PROP_DBUS_DAEMON, param_spec); + param_spec = g_param_spec_object ("media-channel", "TpsipMediaChannel object", "SIP media channel object that owns this media session object" " (not reference counted).", @@ -442,6 +457,8 @@ tpsip_media_session_dispose (GObject *object) if (priv->glare_timer_id) g_source_remove (priv->glare_timer_id); + tp_clear_object (&priv->dbus_daemon); + if (G_OBJECT_CLASS (tpsip_media_session_parent_class)->dispose) G_OBJECT_CLASS (tpsip_media_session_parent_class)->dispose (object); @@ -2118,6 +2135,7 @@ tpsip_media_session_add_stream (TpsipMediaSession *self, direction &= ~TP_MEDIA_STREAM_DIRECTION_RECEIVE; stream = g_object_new (TPSIP_TYPE_MEDIA_STREAM, + "dbus-daemon", priv->dbus_daemon, "media-session", self, "media-type", media_type, "object-path", object_path, diff --git a/src/sip-media-stream.c b/src/sip-media-stream.c index 37e14df..d3826bb 100644 --- a/src/sip-media-stream.c +++ b/src/sip-media-stream.c @@ -84,6 +84,7 @@ static guint signals[SIG_LAST_SIGNAL] = {0}; enum { PROP_MEDIA_SESSION = 1, + PROP_DBUS_DAEMON, PROP_OBJECT_PATH, PROP_ID, PROP_MEDIA_TYPE, @@ -105,6 +106,7 @@ typedef struct _TpsipMediaStreamPrivate TpsipMediaStreamPrivate; struct _TpsipMediaStreamPrivate { + TpDBusDaemon *dbus_daemon; TpsipMediaSession *session; /* see gobj. prop. 'media-session' */ gchar *object_path; /* see gobj. prop. 'object-path' */ guint id; /* see gobj. prop. 'id' */ @@ -200,7 +202,6 @@ tpsip_media_stream_constructed (GObject *obj) TPSIP_MEDIA_STREAM (obj)); GObjectClass *parent_object_class = G_OBJECT_CLASS (tpsip_media_stream_parent_class); - DBusGConnection *bus; /* call base class method */ if (parent_object_class->constructed != NULL) @@ -220,8 +221,8 @@ tpsip_media_stream_constructed (GObject *obj) } /* go for the bus */ - bus = tp_get_bus (); - dbus_g_connection_register_g_object (bus, priv->object_path, obj); + g_assert (TP_IS_DBUS_DAEMON (priv->dbus_daemon)); + tp_dbus_daemon_register_object (priv->dbus_daemon, priv->object_path, obj); } static void @@ -235,6 +236,9 @@ tpsip_media_stream_get_property (GObject *object, switch (property_id) { + case PROP_DBUS_DAEMON: + g_value_set_object (value, priv->dbus_daemon); + break; case PROP_MEDIA_SESSION: g_value_set_object (value, priv->session); break; @@ -288,6 +292,10 @@ tpsip_media_stream_set_property (GObject *object, switch (property_id) { + case PROP_DBUS_DAEMON: + g_assert (priv->dbus_daemon == NULL); /* construct-only */ + priv->dbus_daemon = g_value_dup_object (value); + break; case PROP_MEDIA_SESSION: priv->session = g_value_get_object (value); break; @@ -358,6 +366,11 @@ tpsip_media_stream_class_init (TpsipMediaStreamClass *klass) object_class->dispose = tpsip_media_stream_dispose; object_class->finalize = tpsip_media_stream_finalize; + param_spec = g_param_spec_object ("dbus-daemon", "TpDBusDaemon", + "Connection to D-Bus.", TP_TYPE_DBUS_DAEMON, + G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (object_class, PROP_DBUS_DAEMON, param_spec); + param_spec = g_param_spec_object ("media-session", "TpsipMediaSession object", "SIP media session object that owns this media stream object.", TPSIP_TYPE_MEDIA_SESSION, @@ -516,7 +529,7 @@ tpsip_media_stream_dispose (GObject *object) priv->dispose_has_run = TRUE; - /* release any references held by the object here */ + tp_clear_object (&priv->dbus_daemon); if (G_OBJECT_CLASS (tpsip_media_stream_parent_class)->dispose) G_OBJECT_CLASS (tpsip_media_stream_parent_class)->dispose (object); diff --git a/src/sip-text-channel.c b/src/sip-text-channel.c index 23159fd..49e0b5a 100644 --- a/src/sip-text-channel.c +++ b/src/sip-text-channel.c @@ -161,7 +161,7 @@ tpsip_text_channel_constructed (GObject *obj) TpsipTextChannelPrivate *priv; TpBaseConnection *base_conn; TpHandleRepoIface *contact_handles; - DBusGConnection *bus; + TpDBusDaemon *bus; TpChannelTextMessageType types[] = { TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL, }; @@ -201,8 +201,8 @@ tpsip_text_channel_constructed (GObject *obj) TP_DELIVERY_REPORTING_SUPPORT_FLAG_RECEIVE_SUCCESSES, supported_content_types); - bus = tp_get_bus(); - dbus_g_connection_register_g_object(bus, priv->object_path, obj); + bus = tp_base_connection_get_dbus_daemon (base_conn); + tp_dbus_daemon_register_object (bus, priv->object_path, obj); } |