brasero r1805 - in trunk: . src



Author: philippr
Date: Wed Jan 21 21:41:30 2009
New Revision: 1805
URL: http://svn.gnome.org/viewvc/brasero?rev=1805&view=rev

Log:
2009-01-21  Philippe Rouquier  <ykw localhost localdomain>

	Try to favour growisofs/libburn over wodim/cdrecord.
	The firsts have MULTI flag as compulsory whereas the seconds don't support
	it at all. That way if MULTI wasn't on the seconds were always used.
	See #567582 â Fails to burn a DVD iso

	* src/brasero-session-cfg.c
	(brasero_session_cfg_add_drive_properties_flags):

Modified:
   trunk/ChangeLog
   trunk/src/brasero-session-cfg.c

Modified: trunk/src/brasero-session-cfg.c
==============================================================================
--- trunk/src/brasero-session-cfg.c	(original)
+++ trunk/src/brasero-session-cfg.c	Wed Jan 21 21:41:30 2009
@@ -231,19 +231,21 @@
 brasero_session_cfg_add_drive_properties_flags (BraseroSessionCfg *self,
 						BraseroBurnFlag flags)
 {
+	BraseroMedia media;
 	BraseroBurnFlag flag;
 	BraseroBurnResult result;
 	BraseroSessionCfgPrivate *priv;
 
 	priv = BRASERO_SESSION_CFG_PRIVATE (self);
 
-	priv->supported = BRASERO_BURN_FLAG_NONE;
-	priv->compulsory = BRASERO_BURN_FLAG_NONE;
+	media = brasero_burn_session_get_dest_media (BRASERO_BURN_SESSION (self));
 
 	/* add flags then wipe out flags from session to check them one by one */
 	flags |= brasero_burn_session_get_flags (BRASERO_BURN_SESSION (self));
 	brasero_burn_session_remove_flag (BRASERO_BURN_SESSION (self), flags);
 
+	priv->supported = BRASERO_BURN_FLAG_NONE;
+	priv->compulsory = BRASERO_BURN_FLAG_NONE;
 	result = brasero_burn_caps_get_flags (priv->caps,
 					      BRASERO_BURN_SESSION (self),
 					      &priv->supported,
@@ -291,6 +293,22 @@
 						     &priv->supported,
 						     &priv->compulsory);
 		}
+		else if (BRASERO_MEDIUM_IS (media, BRASERO_MEDIUM_DVDRW_PLUS)
+		     ||  BRASERO_MEDIUM_IS (media, BRASERO_MEDIUM_DVDRW_RESTRICTED)
+		     ||  BRASERO_MEDIUM_IS (media, BRASERO_MEDIUM_DVDRW_PLUS_DL)) {
+			/* This is a special case to favour libburn/growisofs
+			 * wodim/cdrecord for these types of media. */
+			if (priv->supported & BRASERO_BURN_FLAG_MULTI) {
+				brasero_burn_session_add_flag (BRASERO_BURN_SESSION (self), flag);
+
+				priv->supported = BRASERO_BURN_FLAG_NONE;
+				priv->compulsory = BRASERO_BURN_FLAG_NONE;
+				brasero_burn_caps_get_flags (priv->caps,
+							     BRASERO_BURN_SESSION (self),
+							     &priv->supported,
+							     &priv->compulsory);
+			}
+		}
 	}
 
 	/* Always set this flag whenever possible */



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