static void rb_removable_media_manager_eject_cb (GObject *object, GAsyncResult *result, RBRemovableMediaManager *mgr) { GError *error = NULL; if (G_IS_VOLUME (object)) { GVolume *volume = G_VOLUME (object); rb_debug ("finishing ejection of volume"); g_volume_eject_finish (volume, result, &error); if (error == NULL) { rb_removable_media_manager_remove_volume (mgr, volume); } } else if (G_IS_MOUNT (object)) { GMount *mount = G_MOUNT (object); rb_debug ("finishing ejection of mount"); g_mount_eject_finish (mount, result, &error); if (error == NULL) { rb_removable_media_manager_remove_mount (mgr, mount); } } if (error != NULL) { if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_FAILED_HANDLED)) { rb_error_dialog (NULL, _("Unable to eject"), "%s", error->message); } else { rb_debug ("eject failure has already been handled"); } g_error_free (error); } g_object_unref (mgr); }
static void _vfs_backend_mount_callback (gpointer pObject, GAsyncResult *res, gpointer *data) //static void _vfs_backend_mount_callback (gboolean succeeded, char *error, char *detailed_error, gpointer *data) { cd_message ("%s (%d)", __func__, GPOINTER_TO_INT (data[1])); CairoDockFMMountCallback pCallback = data[0]; GError *erreur = NULL; gboolean bSuccess; if (GPOINTER_TO_INT (data[1]) == 1) bSuccess = (g_file_mount_mountable_finish (G_FILE (pObject), res, &erreur) != NULL); //bSuccess = (g_volume_mount_finish (G_VOLUME (pObject), res, &erreur)); else if (GPOINTER_TO_INT (data[1]) == 0) bSuccess = g_mount_unmount_finish (G_MOUNT (pObject), res, &erreur); else bSuccess = g_mount_eject_finish (G_MOUNT (pObject), res, &erreur); if (erreur != NULL) { cd_warning ("Attention : %s", erreur->message); g_error_free (erreur); } cd_message ("(un)mount fini -> %d", bSuccess); pCallback (GPOINTER_TO_INT (data[1]) == 1, bSuccess, data[2], data[3], data[4]); //g_free (data[2]); //g_object_unref (pObject); //g_free (data); }