static void on_connect_activate (GtkAction *action, gpointer data) { int connected; const char *path; const char *address; connected = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (action), "connected")); /* Don't try connecting if something is already in progress */ if (connected == CONNECTING || connected == DISCONNECTING) return; path = g_object_get_data (G_OBJECT (action), "device-path"); if (connected == DISCONNECTED) { if (bluetooth_applet_connect_device (applet, path, connection_action_callback, action) != FALSE) connected = DISCONNECTING; } else if (connected == CONNECTED) { if (bluetooth_applet_disconnect_device (applet, path, connection_action_callback, action) != FALSE) connected = CONNECTING; } else { g_assert_not_reached (); } g_object_set_data_full (G_OBJECT (action), "connected", GINT_TO_POINTER (connected), NULL); address = g_object_get_data (G_OBJECT (action), "address"); set_device_status_label (address, connected); }
static void _device_widget_disconnect_cb (DawatiBtDevice *device, DawatiBtShell *shell) { DawatiBtShellPrivate *priv = GET_PRIVATE (shell); char *path; g_object_get (device, "device-path", &path, NULL); bluetooth_applet_disconnect_device (priv->applet, path, NULL, NULL); }