gchar *channel;
guint handle_type;
guint handle;
- guint id;
} IdleData;
static gboolean
EmpathyTpTube *tube;
static TpDBusDaemon *daemon = NULL;
- DEBUG ("New tube to be handled id=%d", idle_data->id);
+ DEBUG ("New tube to be handled");
if (!daemon)
daemon = tp_dbus_daemon_new (tp_get_bus ());
idle_data->handle, NULL);
tp_channel_run_until_ready (channel, NULL, NULL);
- tube = empathy_tp_tube_new (channel, idle_data->id);
+ tube = empathy_tp_tube_new (channel);
g_signal_emit (idle_data->thandler, signals[NEW_TUBE], 0, tube);
g_object_unref (tube);
const gchar *channel,
guint handle_type,
guint handle,
- guint id,
DBusGMethodInvocation *context)
{
EmpathyTubeHandler *thandler = EMPATHY_TUBE_HANDLER (self);
data->channel = g_strdup (channel);
data->handle_type = handle_type;
data->handle = handle;
- data->id = id;
g_idle_add_full (G_PRIORITY_HIGH, tube_handler_handle_tube_idle_cb,
data, NULL);
gchar *object_path;
GError *error = NULL;
- g_return_val_if_fail (type <= TP_TUBE_TYPE_STREAM, NULL);
+ g_return_val_if_fail (type < NUM_TP_TUBE_TYPES, NULL);
g_return_val_if_fail (service != NULL, NULL);
bus_name = empathy_tube_handler_build_bus_name (type, service);
goto OUT;
}
+ DEBUG ("Creating tube handler %s", bus_name);
thandler = g_object_new (EMPATHY_TYPE_TUBE_HANDLER, NULL);
dbus_g_connection_register_g_object (tp_get_bus (), object_path,
G_OBJECT (thandler));
}
gchar *
-empathy_tube_handler_build_bus_name (TpTubeType type, const gchar *service)
+empathy_tube_handler_build_bus_name (TpTubeType type,
+ const gchar *service)
{
- gchar *service_escaped;
gchar *str = NULL;
const gchar *prefix = NULL;
- g_return_val_if_fail (type <= TP_TUBE_TYPE_STREAM, NULL);
+ g_return_val_if_fail (type < NUM_TP_TUBE_TYPES, NULL);
g_return_val_if_fail (service != NULL, NULL);
if (type == TP_TUBE_TYPE_DBUS)
- prefix = "org.gnome.Empathy.DTubeHandler.%s";
+ prefix = "org.gnome.Empathy.DTubeHandler.";
else if (type == TP_TUBE_TYPE_STREAM)
- prefix = "org.gnome.Empathy.StreamTubeHandler.%s";
+ prefix = "org.gnome.Empathy.StreamTubeHandler.";
else
g_return_val_if_reached (NULL);
- service_escaped = tp_escape_as_identifier (service);
- str = g_strdup_printf (prefix, service_escaped);
- g_free (service_escaped);
+ str = g_strconcat (prefix, service, NULL);
return str;
}
gchar *
-empathy_tube_handler_build_object_path (TpTubeType type, const gchar *service)
+empathy_tube_handler_build_object_path (TpTubeType type,
+ const gchar *service)
{
- gchar *service_escaped;
- gchar *str = NULL;
- const gchar *prefix = NULL;
+ gchar *bus_name;
+ gchar *str;
- g_return_val_if_fail (type <= TP_TUBE_TYPE_STREAM, NULL);
+ g_return_val_if_fail (type < NUM_TP_TUBE_TYPES, NULL);
g_return_val_if_fail (service != NULL, NULL);
- if (type == TP_TUBE_TYPE_DBUS)
- prefix = "/org/gnome/Empathy/DTubeHandler/%s";
- else if (type == TP_TUBE_TYPE_STREAM)
- prefix = "/org/gnome/Empathy/StreamTubeHandler/%s";
- else
- g_return_val_if_reached (NULL);
-
- service_escaped = tp_escape_as_identifier (service);
- str = g_strdup_printf (prefix, service_escaped);
- g_free (service_escaped);
+ bus_name = empathy_tube_handler_build_bus_name (type, service);
+ str = g_strdelimit (g_strdup_printf ("/%s", bus_name), ".", '/');
+ g_free (bus_name);
return str;
}