[telepathy-salut/master] make salut_tubes_channel_tube_request more generic
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Fri Jun 26 07:28:06 PDT 2009
---
src/salut-muc-manager.c | 4 ++--
src/salut-tubes-channel.c | 15 +++++++++++++--
src/salut-tubes-channel.h | 3 ++-
src/salut-tubes-manager.c | 2 +-
4 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/src/salut-muc-manager.c b/src/salut-muc-manager.c
index 85c41a1..8050974 100644
--- a/src/salut-muc-manager.c
+++ b/src/salut-muc-manager.c
@@ -865,8 +865,8 @@ salut_muc_manager_request (SalutMucManager *self,
}
g_assert (tubes_chan != NULL);
- new_channel = salut_tubes_channel_tube_request (tubes_chan, channel_type,
- service);
+ new_channel = salut_tubes_channel_tube_request (tubes_chan, request_token,
+ request_properties, require_new);
g_assert (new_channel != NULL);
/* announce channels */
diff --git a/src/salut-tubes-channel.c b/src/salut-tubes-channel.c
index 6e24310..02f4532 100644
--- a/src/salut-tubes-channel.c
+++ b/src/salut-tubes-channel.c
@@ -1002,26 +1002,37 @@ generate_tube_id (void)
SalutTubeIface *
salut_tubes_channel_tube_request (SalutTubesChannel *self,
- const gchar *channel_type,
- const gchar *service)
+ gpointer request_token,
+ GHashTable *request_properties,
+ gboolean require_new)
{
SalutTubesChannelPrivate *priv = SALUT_TUBES_CHANNEL_GET_PRIVATE (self);
SalutTubeIface *tube;
+ const gchar *channel_type;
+ const gchar *service;
guint tube_id;
TpTubeType type;
GHashTable *parameters;
tube_id = generate_tube_id ();
+ channel_type = tp_asv_get_string (request_properties,
+ TP_IFACE_CHANNEL ".ChannelType");
+
if (!tp_strdiff (channel_type, TP_IFACE_CHANNEL_TYPE_STREAM_TUBE))
{
type = TP_TUBE_TYPE_STREAM;
+ service = tp_asv_get_string (request_properties,
+ TP_IFACE_CHANNEL_TYPE_STREAM_TUBE ".Service");
+
}
/* Temporarily disabled since the implementation is incomplete */
#if 0
else if (!tp_strdiff (channel_type, TP_IFACE_CHANNEL_TYPE_DBUS_TUBE))
{
type = TP_TUBE_TYPE_DBUS;
+ service = tp_asv_get_string (request_properties,
+ TP_IFACE_CHANNEL_TYPE_DBUS_TUBE ".ServiceName");
}
#endif
else
diff --git a/src/salut-tubes-channel.h b/src/salut-tubes-channel.h
index 32cf59b..8c10fc1 100644
--- a/src/salut-tubes-channel.h
+++ b/src/salut-tubes-channel.h
@@ -86,7 +86,8 @@ void salut_tubes_channel_message_close_received (SalutTubesChannel *self,
TpHandle initiator_handle, guint tube_id);
SalutTubeIface *salut_tubes_channel_tube_request (SalutTubesChannel *self,
- const gchar *channel_type, const gchar *service);
+ gpointer request_token, GHashTable *request_properties,
+ gboolean require_new);
void salut_tubes_channel_send_iq_offer (SalutTubesChannel *self);
diff --git a/src/salut-tubes-manager.c b/src/salut-tubes-manager.c
index ce2c2a5..680d9fe 100644
--- a/src/salut-tubes-manager.c
+++ b/src/salut-tubes-manager.c
@@ -1059,7 +1059,7 @@ salut_tubes_manager_requestotron (SalutTubesManager *self,
}
new_channel = salut_tubes_channel_tube_request (tubes_channel,
- channel_type, service);
+ request_token, request_properties, require_new);
g_assert (new_channel != NULL);
if (request_token != NULL)
--
1.5.6.5
More information about the telepathy-commits
mailing list