|
Matthias Clasen |
07ed25 |
diff --git a/libbrasero-media/brasero-drive.c b/libbrasero-media/brasero-drive.c
|
|
Matthias Clasen |
07ed25 |
index 08ab4e7..f3a7136 100644
|
|
Matthias Clasen |
07ed25 |
--- a/libbrasero-media/brasero-drive.c
|
|
Matthias Clasen |
07ed25 |
+++ b/libbrasero-media/brasero-drive.c
|
|
Matthias Clasen |
07ed25 |
@@ -810,7 +810,7 @@ brasero_drive_probe_inside_thread (gpointer data)
|
|
Matthias Clasen |
07ed25 |
const gchar *device;
|
|
Matthias Clasen |
07ed25 |
BraseroScsiErrCode code;
|
|
Matthias Clasen |
07ed25 |
BraseroDrivePrivate *priv;
|
|
Matthias Clasen |
07ed25 |
- BraseroDeviceHandle *handle;
|
|
Matthias Clasen |
07ed25 |
+ BraseroDeviceHandle *handle = NULL;
|
|
Matthias Clasen |
07ed25 |
BraseroDrive *drive = BRASERO_DRIVE (data);
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
priv = BRASERO_DRIVE_PRIVATE (drive);
|
|
Matthias Clasen |
07ed25 |
@@ -833,13 +833,15 @@ brasero_drive_probe_inside_thread (gpointer data)
|
|
Matthias Clasen |
07ed25 |
handle = brasero_device_handle_open (device, FALSE, &code);
|
|
Matthias Clasen |
07ed25 |
}
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
- if (priv->probe_cancelled) {
|
|
Matthias Clasen |
07ed25 |
- BRASERO_MEDIA_LOG ("Open () cancelled");
|
|
Matthias Clasen |
07ed25 |
+ if (!handle) {
|
|
Matthias Clasen |
07ed25 |
+ BRASERO_MEDIA_LOG ("Open () failed: medium busy");
|
|
Matthias Clasen |
07ed25 |
goto end;
|
|
Matthias Clasen |
07ed25 |
}
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
- if (!handle) {
|
|
Matthias Clasen |
07ed25 |
- BRASERO_MEDIA_LOG ("Open () failed: medium busy");
|
|
Matthias Clasen |
07ed25 |
+ if (priv->probe_cancelled) {
|
|
Matthias Clasen |
07ed25 |
+ BRASERO_MEDIA_LOG ("Open () cancelled");
|
|
Matthias Clasen |
07ed25 |
+
|
|
Matthias Clasen |
07ed25 |
+ brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
goto end;
|
|
Matthias Clasen |
07ed25 |
}
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
@@ -848,20 +850,24 @@ brasero_drive_probe_inside_thread (gpointer data)
|
|
Matthias Clasen |
07ed25 |
BRASERO_MEDIA_LOG ("No medium inserted");
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
priv->has_medium = FALSE;
|
|
Matthias Clasen |
07ed25 |
+
|
|
Matthias Clasen |
07ed25 |
+ brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
goto end;
|
|
Matthias Clasen |
07ed25 |
}
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
if (code != BRASERO_SCSI_NOT_READY) {
|
|
Matthias Clasen |
07ed25 |
- brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
BRASERO_MEDIA_LOG ("Device does not respond");
|
|
Matthias Clasen |
07ed25 |
+
|
|
Matthias Clasen |
07ed25 |
+ brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
goto end;
|
|
Matthias Clasen |
07ed25 |
}
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
sleep (2);
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
if (priv->probe_cancelled) {
|
|
Matthias Clasen |
07ed25 |
- brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
BRASERO_MEDIA_LOG ("Device probing cancelled");
|
|
Matthias Clasen |
07ed25 |
+
|
|
Matthias Clasen |
07ed25 |
+ brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
goto end;
|
|
Matthias Clasen |
07ed25 |
}
|
|
Matthias Clasen |
07ed25 |
}
|
|
Matthias Clasen |
07ed25 |
diff --git a/libbrasero-media/brasero-medium.c b/libbrasero-media/brasero-medium.c
|
|
Matthias Clasen |
07ed25 |
index 46762d4..88a801d 100644
|
|
Matthias Clasen |
07ed25 |
--- a/libbrasero-media/brasero-medium.c
|
|
Matthias Clasen |
07ed25 |
+++ b/libbrasero-media/brasero-medium.c
|
|
Matthias Clasen |
07ed25 |
@@ -2978,43 +2978,49 @@ brasero_medium_probe_thread (gpointer self)
|
|
Matthias Clasen |
07ed25 |
handle = brasero_device_handle_open (device, FALSE, &code);
|
|
Matthias Clasen |
07ed25 |
}
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
- if (priv->probe_cancelled)
|
|
Matthias Clasen |
07ed25 |
+ if (!handle) {
|
|
Matthias Clasen |
07ed25 |
+ BRASERO_MEDIA_LOG ("Open () failed: medium busy");
|
|
Matthias Clasen |
07ed25 |
goto end;
|
|
Matthias Clasen |
07ed25 |
+ }
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
- if (handle) {
|
|
Matthias Clasen |
07ed25 |
- BRASERO_MEDIA_LOG ("Open () succeeded");
|
|
Matthias Clasen |
07ed25 |
-
|
|
Matthias Clasen |
07ed25 |
- /* NOTE: if we wanted to know the status we'd need to read the
|
|
Matthias Clasen |
07ed25 |
- * error code variable which is currently NULL */
|
|
Matthias Clasen |
07ed25 |
- while (brasero_spc1_test_unit_ready (handle, &code) != BRASERO_SCSI_OK) {
|
|
Matthias Clasen |
07ed25 |
- if (code == BRASERO_SCSI_NO_MEDIUM) {
|
|
Matthias Clasen |
07ed25 |
- brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
- BRASERO_MEDIA_LOG ("No medium inserted");
|
|
Matthias Clasen |
07ed25 |
- priv->info = BRASERO_MEDIUM_NONE;
|
|
Matthias Clasen |
07ed25 |
- goto end;
|
|
Matthias Clasen |
07ed25 |
- }
|
|
Matthias Clasen |
07ed25 |
- else if (code != BRASERO_SCSI_NOT_READY) {
|
|
Matthias Clasen |
07ed25 |
- brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
- BRASERO_MEDIA_LOG ("Device does not respond");
|
|
Matthias Clasen |
07ed25 |
- goto end;
|
|
Matthias Clasen |
07ed25 |
- }
|
|
Matthias Clasen |
07ed25 |
+ if (priv->probe_cancelled) {
|
|
Matthias Clasen |
07ed25 |
+ brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
+ goto end;
|
|
Matthias Clasen |
07ed25 |
+ }
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
- sleep (2);
|
|
Matthias Clasen |
07ed25 |
+ BRASERO_MEDIA_LOG ("Open () succeeded");
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
- if (priv->probe_cancelled) {
|
|
Matthias Clasen |
07ed25 |
- brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
- BRASERO_MEDIA_LOG ("Device probing cancelled");
|
|
Matthias Clasen |
07ed25 |
- goto end;
|
|
Matthias Clasen |
07ed25 |
- }
|
|
Matthias Clasen |
07ed25 |
+ /* NOTE: if we wanted to know the status we'd need to read the
|
|
Matthias Clasen |
07ed25 |
+ * error code variable which is currently NULL */
|
|
Matthias Clasen |
07ed25 |
+ while (brasero_spc1_test_unit_ready (handle, &code) != BRASERO_SCSI_OK) {
|
|
Matthias Clasen |
07ed25 |
+ if (code == BRASERO_SCSI_NO_MEDIUM) {
|
|
Matthias Clasen |
07ed25 |
+ BRASERO_MEDIA_LOG ("No medium inserted");
|
|
Matthias Clasen |
07ed25 |
+ priv->info = BRASERO_MEDIUM_NONE;
|
|
Matthias Clasen |
07ed25 |
+
|
|
Matthias Clasen |
07ed25 |
+ brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
+ goto end;
|
|
Matthias Clasen |
07ed25 |
}
|
|
Matthias Clasen |
07ed25 |
+ else if (code != BRASERO_SCSI_NOT_READY) {
|
|
Matthias Clasen |
07ed25 |
+ BRASERO_MEDIA_LOG ("Device does not respond");
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
- BRASERO_MEDIA_LOG ("Device ready");
|
|
Matthias Clasen |
07ed25 |
+ brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
+ goto end;
|
|
Matthias Clasen |
07ed25 |
+ }
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
- brasero_medium_init_real (BRASERO_MEDIUM (self), handle);
|
|
Matthias Clasen |
07ed25 |
- brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
+ sleep (2);
|
|
Matthias Clasen |
07ed25 |
+
|
|
Matthias Clasen |
07ed25 |
+ if (priv->probe_cancelled) {
|
|
Matthias Clasen |
07ed25 |
+ BRASERO_MEDIA_LOG ("Device probing cancelled");
|
|
Matthias Clasen |
07ed25 |
+
|
|
Matthias Clasen |
07ed25 |
+ brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
+ goto end;
|
|
Matthias Clasen |
07ed25 |
+ }
|
|
Matthias Clasen |
07ed25 |
}
|
|
Matthias Clasen |
07ed25 |
- else
|
|
Matthias Clasen |
07ed25 |
- BRASERO_MEDIA_LOG ("Open () failed: medium busy");
|
|
Matthias Clasen |
07ed25 |
+
|
|
Matthias Clasen |
07ed25 |
+ BRASERO_MEDIA_LOG ("Device ready");
|
|
Matthias Clasen |
07ed25 |
+
|
|
Matthias Clasen |
07ed25 |
+ brasero_medium_init_real (BRASERO_MEDIUM (self), handle);
|
|
Matthias Clasen |
07ed25 |
+ brasero_device_handle_close (handle);
|
|
Matthias Clasen |
07ed25 |
|
|
Matthias Clasen |
07ed25 |
end:
|
|
Matthias Clasen |
07ed25 |
|