graveman-cvs
[Top][All Lists]
Advanced

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

[Graveman-cvs] Changes to graveman/current/src/cdrecord.c


From: sylvain cresto
Subject: [Graveman-cvs] Changes to graveman/current/src/cdrecord.c
Date: Sun, 27 Mar 2005 18:51:28 -0500

Index: graveman/current/src/cdrecord.c
diff -u graveman/current/src/cdrecord.c:1.24 
graveman/current/src/cdrecord.c:1.25
--- graveman/current/src/cdrecord.c:1.24        Tue Mar 22 00:27:13 2005
+++ graveman/current/src/cdrecord.c     Sun Mar 27 23:51:07 2005
@@ -56,6 +56,7 @@
 #define CDRECORD_MAX_CDREAD_SPEED "Maximum read  speed:"
 #define CDRECORD_MAX_CDREAD_SPEED_CD "(CD"
 #define CDRECORD_MAX_CDREAD_SPEED_DVD " DVD "
+#define CDRECORD_BURNFREE "Prepare writer to use BURN-Free technology"
 
 /* effacer un cdrw ou cloturer un cdr */
 #define CDRECORD_BLANKING_TIME "Blanking time:"
@@ -165,7 +166,7 @@
   }
   
   Lstatus = g_io_channel_read_line(Astd, &Lbuffer, NULL, NULL, NULL);  
-  if (!Lbuffer) return FALSE;
+  if (!Lbuffer) return TRUE;
     
   g_strstrip(Lbuffer);  
 _DEB("scan lecteur = %s\n", Lbuffer);
@@ -242,6 +243,7 @@
   return TRUE;
 }
 
+/* mise a jour capacité du lecteur */
 gboolean maj_drive_info(Tdriveinfo *Adrive, gchar *Adev, GError **Aerror)
 {
   gchar *Lcommandline, *Lout = NULL, *Lerr = NULL;
@@ -296,6 +298,20 @@
   Adrive->vitessedvd = sdvd ? atoi(sdvd) : -1;
   _DEB("== le type => %d\n", Ltype);
   _DEB("== donc la vitesse de lecture => %d\n", Adrive->vitesse  );
+
+
+  /* ok maintenant on regarde si le lecteur supporte le burnfree, si oui on 
l'utilisera
+   * lors des gravures */
+  Lcommandline = g_strdup_printf("%s -checkdrive dev=%s driveropts=help", 
conf_get_string("cdrecord"), Adev);
+_DEB("==================%s\n", Lcommandline);  
+  Lstatus = g_spawn_command_line_sync(Lcommandline, &Lout, &Lerr, &Lexit, 
Aerror);
+  g_free(Lcommandline);
+  if (Lstatus == TRUE) {
+    if (strstr(Lout, CDRECORD_BURNFREE)) Ltype += _BURN_FREE;
+  }
+  g_free(Lout);
+  g_free(Lerr);
+
   return TRUE;
 }
 
@@ -371,6 +387,9 @@
     if (Lcurcd > 1 && !Ldosimul) {
       /* copie sur un nouveau cd, on demande a l'utilisateur d'inserer le
        * nouveau cd vierge */
+      GSList *Llmediarequis = g_slist_append(NULL, GINT_TO_POINTER(_MEDIA_CDR 
+ _MEDIA_APPENDABLE));
+      gboolean Lstatus;
+
 /*      gint Lrep;
       GtkWidget *Lconfirm = gtk_message_dialog_new(Lwindow,
                                               GTK_DIALOG_MODAL, 
GTK_MESSAGE_QUESTION,
@@ -379,7 +398,11 @@
       Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
       gtk_widget_destroy(Lconfirm);
       if (Lrep == GTK_RESPONSE_NO) { */
-      if (waiting_for_user("", Ag, _MEDIA_CDR + _MEDIA_APPENDABLE , 
&Lmediadetect1, Lbufgrav)==FALSE) {
+      Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis, 
&Lmediadetect1, Lbufgrav);
+
+      g_slist_free(Llmediarequis);
+          
+      if (Lstatus==FALSE) {
         /* si c'est non alors on arrete */
         *Labort = TRUE;
         Lstatus = TRUE;
@@ -401,7 +424,7 @@
     g_free(Ltxt);
 
     Lblank = get_blank_type(Ag, Lmediadetect1);
-    Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s %s %s %s 
%s %s %s %s '%s'",
+    Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s %s %s %s 
%s %s %s %s '%s' driveropts=burnfree",
         conf_get_string("cdrecord"), Lbufgrav, *Lbufvitesse != '0' ? "speed=" 
: "", 
         *Lbufvitesse != '0' ? Lbufvitesse : "",  
         Ldosimul ? " -dummy" : "",  /* simulation ? */
@@ -758,6 +781,8 @@
     if (Lcurcd > 1 && !Ldosimul) {
       /* copie sur un nouveau cd, on demande a l'utilisateur d'inserer le
        * nouveau cd vierge */
+      GSList *Llmediarequis = g_slist_append(NULL, GINT_TO_POINTER(_MEDIA_CDR 
+ _MEDIA_APPENDABLE));
+      gboolean Lstatus;
 /*      gint Lrep;
       GtkWidget *Lconfirm = gtk_message_dialog_new(Lwindow,
                                               GTK_DIALOG_MODAL, 
GTK_MESSAGE_QUESTION,
@@ -766,7 +791,11 @@
       Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
       gtk_widget_destroy(Lconfirm);
       if (Lrep == GTK_RESPONSE_NO) {*/
-      if (waiting_for_user("", Ag, _MEDIA_CDR + _MEDIA_APPENDABLE , 
&Lmediadetect1, Lbufgrav)==FALSE) {
+      Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis , 
&Lmediadetect1, Lbufgrav);
+
+      g_slist_free(Llmediarequis);
+          
+      if (Lstatus==FALSE) {
         /* si c'est non alors on arrete */
         *Labort = TRUE;
         Lstatus = TRUE;
@@ -784,7 +813,7 @@
     Leject = ((Lcurcd > 1 && (Lwanteject || Lcurcd<Lnbrgravure)) || (Lcurcd == 
1 && !Ldosimul && Lwanteject));
 
     Lblank = get_blank_type(Ag, Lmediadetect1);
-    Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s%s %s %s 
%s %s %s -pad -audio %s", 
+    Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s%s %s %s 
%s %s %s -pad -audio %s driveropts=burnfree", 
         conf_get_string("cdrecord"), Lbufgrav, *Lbufvitesse == '0' ? "" : 
"speed=", *Lbufvitesse == '0' ? "" : Lbufvitesse,
         Ldosimul ? " -dummy" : "",  /* simulation ? */ 
         Ldosimul || Lnotfix ? " -nofix" : "", /* fixer le cd apres ecriture ? 
*/
@@ -901,7 +930,7 @@
   }
 
   Lstatus = g_io_channel_read_line(Astd, &Lbuffer, NULL, NULL, NULL);  
-  if (!Lbuffer) return FALSE;
+  if (!Lbuffer) return TRUE;
 
 _DEB("===>%s", Lbuffer);
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]