[brasero/gnome-2-28] Also check whether the drive is probing when checking whether there is something inside



commit e895195676941fbdbe2f2f5d7328966d32558be1
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date:   Tue Oct 13 21:04:03 2009 +0200

    Also check whether the drive is probing when checking whether there is something inside

 libbrasero-burn/brasero-burn.c |   25 ++++++++++++++++++++-----
 1 files changed, 20 insertions(+), 5 deletions(-)
---
diff --git a/libbrasero-burn/brasero-burn.c b/libbrasero-burn/brasero-burn.c
index 1fc4924..54f669c 100644
--- a/libbrasero-burn/brasero-burn.c
+++ b/libbrasero-burn/brasero-burn.c
@@ -330,7 +330,7 @@ brasero_burn_eject (BraseroBurn *self,
 	brasero_burn_sleep (self, 500);
 
 	/* Retry several times, since sometimes the drives are really busy */
-	while (brasero_drive_get_medium (drive)) {
+	while (brasero_drive_get_medium (drive) || brasero_drive_probing (drive)) {
 		counter ++;
 		if (counter > MAX_EJECT_ATTEMPTS) {
 			gchar *name;
@@ -528,13 +528,12 @@ brasero_burn_ask_for_src_media (BraseroBurn *burn,
 				BraseroMedia required_media,
 				GError **error)
 {
-	BraseroMedia media;
 	BraseroMedium *medium;
 	BraseroBurnPrivate *priv = BRASERO_BURN_PRIVATE (burn);
 
 	medium = brasero_drive_get_medium (priv->src);
-	media = brasero_medium_get_status (medium);
-	if (media != BRASERO_MEDIUM_NONE) {
+	if (brasero_medium_get_status (medium) != BRASERO_MEDIUM_NONE
+	||  brasero_drive_probing (priv->src)) {
 		BraseroBurnResult result;
 		result = brasero_burn_eject_src_media (burn, error);
 		if (result != BRASERO_BURN_OK)
@@ -569,7 +568,8 @@ brasero_burn_ask_for_dest_media (BraseroBurn *burn,
 	}
 
 	medium = brasero_drive_get_medium (priv->dest);
-	if (medium || brasero_medium_get_status (medium) != BRASERO_MEDIUM_NONE) {
+	if (brasero_medium_get_status (medium) != BRASERO_MEDIUM_NONE
+	||  brasero_drive_probing (priv->dest)) {
 		BraseroBurnResult result;
 
 		result = brasero_burn_eject_dest_media (burn, error);
@@ -607,6 +607,11 @@ brasero_burn_lock_src_media (BraseroBurn *burn,
 
 again:
 
+	if (brasero_drive_probing (priv->src)) {
+		brasero_burn_sleep (burn, 500);
+		goto again;
+	}
+
 	medium = brasero_drive_get_medium (priv->src);
 	if (brasero_volume_is_mounted (BRASERO_VOLUME (medium))) {
 		if (!brasero_volume_umount (BRASERO_VOLUME (medium), TRUE, NULL))
@@ -694,6 +699,11 @@ brasero_burn_lock_rewritable_media (BraseroBurn *burn,
 
  again:
 
+	if (brasero_drive_probing (priv->dest)) {
+		brasero_burn_sleep (burn, 500);
+		goto again;
+	}
+
 	medium = brasero_drive_get_medium (priv->dest);
 	if (!brasero_medium_can_be_rewritten (medium)) {
 		g_set_error (error,
@@ -1082,6 +1092,11 @@ brasero_burn_lock_checksum_media (BraseroBurn *burn,
 
 again:
 
+	if (brasero_drive_probing (priv->dest)) {
+		brasero_burn_sleep (burn, 500);
+		goto again;
+	}
+
 	medium = brasero_drive_get_medium (priv->dest);
 	media = brasero_medium_get_status (medium);
 	error_type = BRASERO_BURN_ERROR_NONE;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]