[Telepathy-commits] [telepathy-salut/master] Add property "tubes-channel" to SalutStreamTube and SalutDBusTube object. They have a reference on the SalutTubesChannel object in order to call salut_tubes_channel_send_iq_offer()

Alban Crequy alban.crequy at collabora.co.uk
Fri Feb 6 03:14:52 PST 2009


---
 src/salut-tubes-channel.c |    4 ++--
 src/tube-dbus.c           |   12 ++++++++++++
 src/tube-dbus.h           |    5 +++--
 src/tube-iface.c          |   13 +++++++++++++
 src/tube-stream.c         |   32 ++++++++++++++++++++++----------
 src/tube-stream.h         |    1 +
 6 files changed, 53 insertions(+), 14 deletions(-)

diff --git a/src/salut-tubes-channel.c b/src/salut-tubes-channel.c
index 82f1977..adefa16 100644
--- a/src/salut-tubes-channel.c
+++ b/src/salut-tubes-channel.c
@@ -1234,12 +1234,12 @@ create_new_tube (SalutTubesChannel *self,
   switch (type)
     {
     case TP_TUBE_TYPE_DBUS:
-      tube = SALUT_TUBE_IFACE (salut_tube_dbus_new (priv->conn,
+      tube = SALUT_TUBE_IFACE (salut_tube_dbus_new (priv->conn, self,
           priv->handle, priv->handle_type, priv->self_handle, muc_connection,
           initiator, service, parameters, tube_id));
       break;
     case TP_TUBE_TYPE_STREAM:
-      tube = SALUT_TUBE_IFACE (salut_tube_stream_new (priv->conn,
+      tube = SALUT_TUBE_IFACE (salut_tube_stream_new (priv->conn, self,
           priv->xmpp_connection_manager, priv->handle, priv->handle_type,
           priv->self_handle, initiator, service, parameters, tube_id,
           portnum, iq_req));
diff --git a/src/tube-dbus.c b/src/tube-dbus.c
index 645e76f..e66f951 100644
--- a/src/tube-dbus.c
+++ b/src/tube-dbus.c
@@ -70,6 +70,7 @@ static guint signals[LAST_SIGNAL] = {0};
 enum
 {
   PROP_CONNECTION = 1,
+  PROP_TUBES_CHANNEL,
   PROP_HANDLE,
   PROP_HANDLE_TYPE,
   PROP_SELF_HANDLE,
@@ -92,6 +93,7 @@ typedef struct _SalutTubeDBusPrivate SalutTubeDBusPrivate;
 struct _SalutTubeDBusPrivate
 {
   SalutConnection *conn;
+  SalutTubesChannel *tubes_channel;
   TpHandle handle;
   TpHandleType handle_type;
   TpHandle self_handle;
@@ -534,6 +536,9 @@ salut_tube_dbus_get_property (GObject *object,
       case PROP_CONNECTION:
         g_value_set_object (value, priv->conn);
         break;
+      case PROP_TUBES_CHANNEL:
+        g_value_set_object (value, priv->tubes_channel);
+        break;
       case PROP_HANDLE:
         g_value_set_uint (value, priv->handle);
         break;
@@ -599,6 +604,9 @@ salut_tube_dbus_set_property (GObject *object,
       case PROP_CONNECTION:
         priv->conn = g_value_get_object (value);
         break;
+      case PROP_TUBES_CHANNEL:
+        priv->tubes_channel = g_value_get_object (value);
+        break;
       case PROP_HANDLE:
         priv->handle = g_value_get_uint (value);
         break;
@@ -760,6 +768,8 @@ salut_tube_dbus_class_init (SalutTubeDBusClass *salut_tube_dbus_class)
 
   g_object_class_override_property (object_class, PROP_CONNECTION,
     "connection");
+  g_object_class_override_property (object_class, PROP_TUBES_CHANNEL,
+    "tubes-channel");
   g_object_class_override_property (object_class, PROP_HANDLE,
     "handle");
   g_object_class_override_property (object_class, PROP_HANDLE_TYPE,
@@ -1074,6 +1084,7 @@ data_received_cb (GibberBytestreamIface *stream,
 
 SalutTubeDBus *
 salut_tube_dbus_new (SalutConnection *conn,
+                     SalutTubesChannel *tubes_channel,
                      TpHandle handle,
                      TpHandleType handle_type,
                      TpHandle self_handle,
@@ -1085,6 +1096,7 @@ salut_tube_dbus_new (SalutConnection *conn,
 {
   SalutTubeDBus *tube = g_object_new (SALUT_TYPE_TUBE_DBUS,
       "connection", conn,
+      "tubes-channel", tubes_channel,
       "handle", handle,
       "handle-type", handle_type,
       "self-handle", self_handle,
diff --git a/src/tube-dbus.h b/src/tube-dbus.h
index 4b5a87c..d8177d0 100644
--- a/src/tube-dbus.h
+++ b/src/tube-dbus.h
@@ -23,6 +23,7 @@
 #include <glib-object.h>
 
 #include "salut-connection.h"
+#include "salut-tubes-channel.h"
 #include <gibber/gibber-muc-connection.h>
 #include <gibber/gibber-bytestream-iface.h>
 
@@ -60,8 +61,8 @@ GType salut_tube_dbus_get_type (void);
                               SalutTubeDBusClass))
 
 SalutTubeDBus *
-salut_tube_dbus_new (SalutConnection *conn, TpHandle handle,
-    TpHandleType handle_type, TpHandle self_handle,
+salut_tube_dbus_new (SalutConnection *conn, SalutTubesChannel *tubes_channel,
+    TpHandle handle, TpHandleType handle_type, TpHandle self_handle,
     GibberMucConnection *muc_connection, TpHandle initiator,
     const gchar *service, GHashTable *parameters, guint id);
 
diff --git a/src/tube-iface.c b/src/tube-iface.c
index 244d3ba..4ea7351 100644
--- a/src/tube-iface.c
+++ b/src/tube-iface.c
@@ -20,6 +20,7 @@
 #include "tube-iface.h"
 
 #include "salut-connection.h"
+#include "salut-tubes-channel.h"
 
 #include <glib.h>
 
@@ -98,6 +99,18 @@ salut_tube_iface_base_init (gpointer klass)
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
       g_object_interface_install_property (klass, param_spec);
 
+      param_spec = g_param_spec_object (
+          "tubes-channel",
+          "SalutTubesChannel object",
+          "Salut tubes object that implements the old interface.",
+          SALUT_TYPE_TUBES_CHANNEL,
+          G_PARAM_CONSTRUCT_ONLY |
+          G_PARAM_READWRITE |
+          G_PARAM_STATIC_NAME |
+          G_PARAM_STATIC_NICK |
+          G_PARAM_STATIC_BLURB);
+      g_object_interface_install_property (klass, param_spec);
+
      param_spec = g_param_spec_uint (
           "handle",
           "Handle",
diff --git a/src/tube-stream.c b/src/tube-stream.c
index 7874e44..e382ae4 100644
--- a/src/tube-stream.c
+++ b/src/tube-stream.c
@@ -86,6 +86,7 @@ static guint signals[LAST_SIGNAL] = {0};
 enum
 {
   PROP_CONNECTION = 1,
+  PROP_TUBES_CHANNEL,
   PROP_HANDLE,
   PROP_HANDLE_TYPE,
   PROP_SELF_HANDLE,
@@ -109,6 +110,7 @@ typedef struct _SalutTubeStreamPrivate SalutTubeStreamPrivate;
 struct _SalutTubeStreamPrivate
 {
   SalutConnection *conn;
+  SalutTubesChannel *tubes_channel;
   TpHandle handle;
   TpHandleType handle_type;
   TpHandle self_handle;
@@ -959,6 +961,9 @@ salut_tube_stream_get_property (GObject *object,
 
   switch (property_id)
     {
+      case PROP_TUBES_CHANNEL:
+        g_value_set_object (value, priv->tubes_channel);
+        break;
       case PROP_CONNECTION:
         g_value_set_object (value, priv->conn);
         break;
@@ -1027,6 +1032,9 @@ salut_tube_stream_set_property (GObject *object,
 
   switch (property_id)
     {
+      case PROP_TUBES_CHANNEL:
+        priv->tubes_channel = g_value_get_object (value);
+        break;
       case PROP_CONNECTION:
         priv->conn = g_value_get_object (value);
         break;
@@ -1249,6 +1257,8 @@ salut_tube_stream_class_init (SalutTubeStreamClass *salut_tube_stream_class)
 
   g_object_class_override_property (object_class, PROP_CONNECTION,
     "connection");
+  g_object_class_override_property (object_class, PROP_TUBES_CHANNEL,
+    "tubes-channel");
   g_object_class_override_property (object_class, PROP_HANDLE,
     "handle");
   g_object_class_override_property (object_class, PROP_HANDLE_TYPE,
@@ -1416,19 +1426,21 @@ data_received_cb (GibberBytestreamIface *bytestream,
 
 SalutTubeStream *
 salut_tube_stream_new (SalutConnection *conn,
-                        SalutXmppConnectionManager *xmpp_connection_manager,
-                        TpHandle handle,
-                        TpHandleType handle_type,
-                        TpHandle self_handle,
-                        TpHandle initiator,
-                        const gchar *service,
-                        GHashTable *parameters,
-                        guint id,
-                        guint portnum,
-                        GibberXmppStanza *iq_req)
+                       SalutTubesChannel *tubes_channel,
+                       SalutXmppConnectionManager *xmpp_connection_manager,
+                       TpHandle handle,
+                       TpHandleType handle_type,
+                       TpHandle self_handle,
+                       TpHandle initiator,
+                       const gchar *service,
+                       GHashTable *parameters,
+                       guint id,
+                       guint portnum,
+                       GibberXmppStanza *iq_req)
 {
   return g_object_new (SALUT_TYPE_TUBE_STREAM,
       "connection", conn,
+      "tubes-channel", tubes_channel,
       "xmpp-connection-manager", xmpp_connection_manager,
       "handle", handle,
       "handle-type", handle_type,
diff --git a/src/tube-stream.h b/src/tube-stream.h
index 771e6f0..61804a1 100644
--- a/src/tube-stream.h
+++ b/src/tube-stream.h
@@ -61,6 +61,7 @@ GType salut_tube_stream_get_type (void);
                               SalutTubeStreamClass))
 
 SalutTubeStream *salut_tube_stream_new (SalutConnection *conn,
+    SalutTubesChannel *tubes_channel,
     SalutXmppConnectionManager *xmpp_connection_manager, TpHandle handle,
     TpHandleType handle_type, TpHandle self_handle, TpHandle initiator,
     const gchar *service, GHashTable *parameters, guint id, guint portnum,
-- 
1.5.6.5




More information about the telepathy-commits mailing list