[brasero] Small improvement in medium choosing



commit 9afe1758467ccb8f20cff1bd493253110caa253e
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date:   Sun Aug 2 11:00:03 2009 +0200

    Small improvement in medium choosing

 libbrasero-burn/brasero-dest-selection.c |   25 +++++++++++++------------
 libbrasero-media/scsi-inquiry.h          |    8 ++++----
 2 files changed, 17 insertions(+), 16 deletions(-)
---
diff --git a/libbrasero-burn/brasero-dest-selection.c b/libbrasero-burn/brasero-dest-selection.c
index 752f0e8..5271bd9 100644
--- a/libbrasero-burn/brasero-dest-selection.c
+++ b/libbrasero-burn/brasero-dest-selection.c
@@ -235,7 +235,8 @@ brasero_dest_selection_finalize (GObject *object)
 }
 
 static goffset
-_get_medium_free_space (BraseroMedium *medium)
+_get_medium_free_space (BraseroMedium *medium,
+                        goffset session_blocks)
 {
 	BraseroMedia media;
 	goffset blocks = 0;
@@ -244,15 +245,15 @@ _get_medium_free_space (BraseroMedium *medium)
 	media = brasero_burn_library_get_media_capabilities (media);
 
 	/* NOTE: we always try to blank a medium when we can */
-	if (media & BRASERO_MEDIUM_REWRITABLE)
-		brasero_medium_get_free_space (medium,
-					       NULL,
-					       &blocks);
-	else {
-		brasero_medium_get_free_space (medium,
-					       NULL,
-					       &blocks);
-	}
+	brasero_medium_get_free_space (medium,
+				       NULL,
+				       &blocks);
+
+	if ((media & BRASERO_MEDIUM_REWRITABLE)
+	&& blocks < session_blocks)
+		brasero_medium_get_capacity (medium,
+		                             NULL,
+		                             &blocks);
 
 	return blocks;
 }
@@ -317,12 +318,12 @@ brasero_dest_selection_foreach_medium (BraseroMedium *medium,
 choose_closest_size:
 
 	brasero_burn_session_get_size (session, &session_blocks, NULL);
-	medium_blocks = _get_medium_free_space (medium);
+	medium_blocks = _get_medium_free_space (medium, session_blocks);
 
 	if (medium_blocks - session_blocks <= 0)
 		return TRUE;
 
-	burner_blocks = _get_medium_free_space (brasero_drive_get_medium (burner));
+	burner_blocks = _get_medium_free_space (brasero_drive_get_medium (burner), session_blocks);
 	if (burner_blocks - session_blocks <= 0)
 		brasero_burn_session_set_burner (session, brasero_medium_get_drive (medium));
 	else if (burner_blocks - session_blocks > medium_blocks - session_blocks)
diff --git a/libbrasero-media/scsi-inquiry.h b/libbrasero-media/scsi-inquiry.h
index 0788dc9..035df08 100644
--- a/libbrasero-media/scsi-inquiry.h
+++ b/libbrasero-media/scsi-inquiry.h
@@ -77,8 +77,8 @@ struct _BraseroScsiInquiry {
 	uchar rel_addr			:1;
 
 	uchar vendor			[8];
-	uchar name			[8];
-	uchar revision			[8];
+	uchar name			[16];
+	uchar revision			[4];
 };
 
 #else
@@ -123,8 +123,8 @@ struct _BraseroScsiInquiry {
 	uchar vs2				:1;
 
 	uchar vendor			[8];
-	uchar name			[8];
-	uchar revision			[8];
+	uchar name			[16];
+	uchar revision			[4];
 };
 
 #endif



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