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: Mon, 28 Mar 2005 19:10:27 -0500

Index: graveman/current/src/cdrecord.c
diff -u graveman/current/src/cdrecord.c:1.25 
graveman/current/src/cdrecord.c:1.26
--- graveman/current/src/cdrecord.c:1.25        Sun Mar 27 23:51:07 2005
+++ graveman/current/src/cdrecord.c     Tue Mar 29 00:10:26 2005
@@ -322,7 +322,7 @@
   gchar *Lmodburn = get_combo_value(sc_grave_get_widget(Ag, "datamodburn"));
   gchar *Lreturn;
 
-  Lreturn = g_strdup_printf("-%s -%s", Lformat, Lmodburn);
+  Lreturn = g_strdup_printf("-%s %s%s", Lformat, Lmodburn && *Lmodburn ? "-" : 
"", Lmodburn);
   
   g_free(Lmodburn); g_free(Lformat);
 
@@ -341,7 +341,7 @@
 /* copie d'une image iso */
 gboolean burn_from_image(gchar *Aop, Tgrave *Ag, GError **Aerror) {
   gchar **Lcmd;
-  gchar *Lcommandline, *Lbufgrav, *Ltxt;
+  gchar *Lcommandline, *Ltxt;
   GIOChannel *Lcom, *Lcomerr;
   guint Lcomevent, Lcomerrevent;
   gint *Lcont = (gint *) sc_grave_get_data(Ag, "cont");
@@ -355,7 +355,6 @@
   gint *Lpid = (gint *) sc_grave_get_data(Ag, "pid");
   gboolean Ldosimul;
   GtkWidget *Lvitesse = sc_grave_get_widgetv(Ag, "dst%sspeed", Aop);
-  GtkWidget *Lgraveur = sc_grave_get_widgetv(Ag, "dst%scombo", Aop);
   GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ag, "gravetitle"));
   GtkToggleButton *Lbtnnotfix = GTK_TOGGLE_BUTTON(sc_grave_get_widgetv(Ag, 
"%snotfix", Aop));
   gboolean Lnotfix = Lbtnnotfix ? gtk_toggle_button_get_active(Lbtnnotfix) : 
FALSE;
@@ -371,8 +370,12 @@
   gboolean Leject = FALSE;
   GtkToggleButton *Ltbtn = NULL;
   gint Lmediadetect1 = _MEDIA_CDRW;
+  Tdriveinfo *Ldevice = NULL;
+  gchar Lgravident[_BUF_SIZE];
+  g_snprintf(Lgravident, sizeof(Lgravident)-1, "dst%scombo", Aop);
 
-  Lbufgrav = get_combo_value(Lgraveur);
+  Ldevice = get_drive_info(Ag, Lgravident);
+  
   Lbufvitesse = get_combo_value(Lvitesse);
 
   if ((Ltbtn = GTK_TOGGLE_BUTTON(sc_grave_get_widgetv(Ag, "%smulti", Aop))))
@@ -398,7 +401,7 @@
       Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
       gtk_widget_destroy(Lconfirm);
       if (Lrep == GTK_RESPONSE_NO) { */
-      Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis, 
&Lmediadetect1, Lbufgrav);
+      Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis, 
&Lmediadetect1, Ldevice);
 
       g_slist_free(Llmediarequis);
           
@@ -425,8 +428,8 @@
 
     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' driveropts=burnfree",
-        conf_get_string("cdrecord"), Lbufgrav, *Lbufvitesse != '0' ? "speed=" 
: "", 
-        *Lbufvitesse != '0' ? Lbufvitesse : "",  
+        conf_get_string("cdrecord"), DRIVE_DEV(Ldevice),
+        *Lbufvitesse != '0' ? "speed=" : "", *Lbufvitesse != '0' ? Lbufvitesse 
: "",  
         Ldosimul ? " -dummy" : "",  /* simulation ? */
         Ldosimul || Lnotfix ? " -nofix" : "", /* fixer le cd apres ecriture ? 
*/
         Lmulti ? " -multi" : "",  /* multi-session */
@@ -527,7 +530,6 @@
   }
 
   g_free(Lbufvitesse);
-  g_free(Lbufgrav);
   
   return Lstatus;
 }
@@ -735,7 +737,6 @@
   GtkWindow *Lwindow = GTK_WINDOW(sc_grave_get_data(Ag, "window_burn"));
   GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ag, "gravetitle"));
   GtkWidget *Lvitesse = sc_grave_get_widget(Ag, "dstaudiospeed");
-  GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstaudiocombo");
   gchar *Lrepertoire = (gchar *)sc_grave_get_data(Ag, "tmpdir");
   gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ag, 
"operationstatus");
   gboolean *Labort = (gboolean *) sc_grave_get_data(Ag, "gabort");
@@ -752,7 +753,8 @@
   
   gint g_out, g_err, Lnbrarg;
   gboolean Lstatus = FALSE;
-  gchar *Lbufvitesse, *Lbufgrav;
+  gchar *Lbufvitesse;
+  Tdriveinfo *Ldevice = get_drive_info(Ag, "dstaudiocombo");
   gboolean Lsimul = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, 
"audiosimul")));
   gboolean Lnotfix = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, 
"audionotfix")));
   gboolean Ldaomode = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, 
"audiodao")));
@@ -768,7 +770,6 @@
 
   Lfileslist = make_audio_fileslist(*Ltodo);
   Lbufvitesse = get_combo_value(Lvitesse);
-  Lbufgrav = get_combo_value(Lgraveur);
 
   *Ltodo = (*Ltodo) * ((Lnbrgravure) + (Lsimul ? 1 : 0));
 
@@ -791,7 +792,7 @@
       Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
       gtk_widget_destroy(Lconfirm);
       if (Lrep == GTK_RESPONSE_NO) {*/
-      Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis , 
&Lmediadetect1, Lbufgrav);
+      Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis , 
&Lmediadetect1, Ldevice);
 
       g_slist_free(Llmediarequis);
           
@@ -814,7 +815,8 @@
 
     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 driveropts=burnfree", 
-        conf_get_string("cdrecord"), Lbufgrav, *Lbufvitesse == '0' ? "" : 
"speed=", *Lbufvitesse == '0' ? "" : Lbufvitesse,
+        conf_get_string("cdrecord"), DRIVE_DEV(Ldevice),
+        *Lbufvitesse == '0' ? "" : "speed=", *Lbufvitesse == '0' ? "" : 
Lbufvitesse,
         Ldosimul ? " -dummy" : "",  /* simulation ? */ 
         Ldosimul || Lnotfix ? " -nofix" : "", /* fixer le cd apres ecriture ? 
*/
         Ldaomode ? " -dao" : "",  /* ecriture en mode DAO, pas de pause entre 
les pistes */
@@ -910,7 +912,6 @@
     strcpy(Llasttrack, "00");
   }
 
-  g_free(Lbufgrav);
   g_free(Lbufvitesse);
   g_free(Lfileslist);
 
@@ -1160,6 +1161,8 @@
   return TRUE;
 }
 
+/* retourne les informations sur le disque courant pour par exemple
+ * continuer une gravure multi session */
 gchar *cdrecord_get_mediainfo(Tgrave *Ag, gchar *Adevice, GError **Aerror)
 {
   gchar **Lcmd;
@@ -1171,7 +1174,7 @@
   gchar Lmsinfo[_BUF_SIZE] = "";
   GIOChannel *Lcom;
   guint Lcomevent;
-  gint Lnbrarg, g_out;
+  gint Lnbrarg, g_out, g_err;
   guint Ltimeout;
 
   (*Lcont) = 2;
@@ -1180,14 +1183,18 @@
   sc_grave_set_data(Ag, &Lmsinfo, "msinfo");
   
   Lcommandline = g_strdup_printf("%s dev=%s -msinfo", 
conf_get_string("cdrecord"), Adevice);
-_DEB("execution [%s]", Lcommandline);
+printf("???\n");
+_DEB("1execution [%s]", Lcommandline);
+printf("???\n");
   Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror);
+  printf("youpi c'est la teuf !\n");
   g_free(Lcommandline);
   if (Lstatus != FALSE) { 
     *Lcont = 2;
 
+  printf("youpi c'est la teuf 2!\n");
     Lstatus = g_spawn_async_with_pipes(NULL, Lcmd, NULL, (GSpawnFlags) 
(G_SPAWN_DO_NOT_REAP_CHILD),
-        NULL, NULL, Lpid, NULL, &g_out, NULL, Aerror);
+        NULL, NULL, Lpid, NULL, &g_out, &g_err, Aerror);
 
     Lcom = g_io_channel_unix_new( g_out );
     g_io_channel_set_encoding (Lcom, NULL, NULL);
@@ -1198,14 +1205,24 @@
     while (*Lcont > 0 && *Labort == FALSE) {
      gtk_main_iteration();
     }
+    exit_prog(*Lpid, FALSE, Aerror, NULL);
+
+    g_source_remove(Lcomevent);
+    g_io_channel_shutdown(Lcom, FALSE, NULL);
+    g_io_channel_unref(Lcom);
+    g_spawn_close_pid(*Lpid);
   }
   g_strfreev(Lcmd);
 
   sc_grave_del_data(Ag, "msinfo");
 
+  printf("youpi c'est la teuf 3!\n");
   /* attente de la fin du timeout */ 
   g_source_remove(Ltimeout);
-  
+  sc_chomp(Lmsinfo);
+  _DEB("msinfo = [%s]\n", Lmsinfo);
+  printf("msinfo = [%s]\n", Lmsinfo);
+
   return *Lmsinfo ? g_strdup(Lmsinfo) : NULL;
 }
 




reply via email to

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