[Telepathy-commits] [telepathy-salut/master] add salut_tube_stream_offer
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Wed Mar 11 09:15:25 PDT 2009
---
src/tube-stream.c | 34 ++++++++++++++++++++++++++++++++++
src/tube-stream.h | 2 ++
2 files changed, 36 insertions(+), 0 deletions(-)
diff --git a/src/tube-stream.c b/src/tube-stream.c
index 0626116..962d5c5 100644
--- a/src/tube-stream.c
+++ b/src/tube-stream.c
@@ -109,6 +109,7 @@ enum
OPENED,
NEW_CONNECTION,
CLOSED,
+ OFFERED,
LAST_SIGNAL
};
@@ -1635,6 +1636,15 @@ salut_tube_stream_class_init (SalutTubeStreamClass *salut_tube_stream_class)
salut_signals_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+ signals[OFFERED] =
+ g_signal_new ("tube-offered",
+ G_OBJECT_CLASS_TYPE (salut_tube_stream_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
+ 0,
+ NULL, NULL,
+ salut_signals_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
salut_tube_stream_class->dbus_props_class.interfaces = prop_interfaces;
tp_dbus_properties_mixin_class_init (object_class,
G_STRUCT_OFFSET (SalutTubeStreamClass, dbus_props_class));
@@ -2470,6 +2480,30 @@ salut_tube_stream_get_supported_socket_types (void)
return ret;
}
+gboolean
+salut_tube_stream_offer (SalutTubeStream *self,
+ GError **error)
+{
+ SalutTubeStreamPrivate *priv = SALUT_TUBE_STREAM_GET_PRIVATE (self);
+
+ g_assert (priv->state == SALUT_TUBE_CHANNEL_STATE_NOT_OFFERED);
+
+ if (priv->handle_type == TP_HANDLE_TYPE_CONTACT)
+ {
+ /* 1-1 tube. Send tube offer message */
+ /* TODO */
+ }
+ else
+ {
+ /* muc tube is open as soon it's offered */
+ priv->state = SALUT_TUBE_CHANNEL_STATE_OPEN;
+ g_signal_emit (G_OBJECT (self), signals[OPENED], 0);
+ }
+
+ g_signal_emit (G_OBJECT (self), signals[OFFERED], 0);
+ return TRUE;
+}
+
static void
tube_iface_init (gpointer g_iface,
gpointer iface_data)
diff --git a/src/tube-stream.h b/src/tube-stream.h
index 5326905..d7b2558 100644
--- a/src/tube-stream.h
+++ b/src/tube-stream.h
@@ -86,6 +86,8 @@ gboolean salut_tube_stream_check_params (TpSocketAddressType address_type,
GHashTable * salut_tube_stream_get_supported_socket_types (void);
+gboolean salut_tube_stream_offer (SalutTubeStream *self, GError **error);
+
G_END_DECLS
#endif /* #ifndef __SALUT_TUBE_STREAM_H__ */
--
1.5.6.5
More information about the telepathy-commits
mailing list