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/cdrdao.c


From: sylvain cresto
Subject: [Graveman-cvs] Changes to graveman/current/src/cdrdao.c
Date: Sun, 20 Feb 2005 20:25:40 -0500

Index: graveman/current/src/cdrdao.c
diff -u graveman/current/src/cdrdao.c:1.1 graveman/current/src/cdrdao.c:1.2
--- graveman/current/src/cdrdao.c:1.1   Sun Feb 20 17:45:02 2005
+++ graveman/current/src/cdrdao.c       Mon Feb 21 01:25:28 2005
@@ -53,9 +53,9 @@
 #define CDRDAO_BUFFERS "Buffers "
 #define CDRDAO_INCOMPATIBLE_MEDIUM "Medium in recorder device is not empty and 
not appendable"
 
-static gchar *get_blank_type(Tgrave *Ahash)
+static gchar *get_blank_type(Tgrave *Ag)
 {
-  gboolean *Luseautoblank = (gboolean *) sc_grave_get_widget(Ahash, 
"useautoblank");
+  gboolean *Luseautoblank = (gboolean *) sc_grave_get_data(Ag, "useautoblank");
 
   if (!*Luseautoblank) return g_strdup("");
 
@@ -66,15 +66,15 @@
 gboolean cdrdao_grave_callback(GIOChannel *Astd, GIOCondition Acond, gpointer 
Adata)
 {
   GIOStatus Lstatus;
-  Tgrave *Lhash = (Tgrave *)Adata;
+  Tgrave *Lg = (Tgrave *)Adata;
   gchar Lbuffer[_BUF_SIZE];
-  gint *Lcont = (gint *) sc_grave_get_data(Lhash, "cont"); /* on traite encore 
des donnees ? */
-  GError **Lerreur = (GError **) sc_grave_get_data(Lhash, "gerror"); /* 
pointeur erreur */
-  gint *Ltodo = (gint *) sc_grave_get_data(Lhash, "todo"); /* nombre de piste 
a traiter */
-  gint *Ldone = (gint *) sc_grave_get_data(Lhash, "done"); /* nombre de piste 
deja traite */
-  gchar *Llasttrack = (gchar *) sc_grave_get_data(Lhash, "lasttrack"); /* 
precedente piste traite */
-  gchar *Latspeed = (gchar *) sc_grave_get_data(Lhash, "atspeed"); /* vitesse 
reel operation */
-  glong *Llength = (glong *) sc_grave_get_data(Lhash, "length"); /* longueur 
total */
+  gint *Lcont = (gint *) sc_grave_get_data(Lg, "cont"); /* on traite encore 
des donnees ? */
+  GError **Lerreur = (GError **) sc_grave_get_data(Lg, "gerror"); /* pointeur 
erreur */
+  gint *Ltodo = (gint *) sc_grave_get_data(Lg, "todo"); /* nombre de piste a 
traiter */
+  gint *Ldone = (gint *) sc_grave_get_data(Lg, "done"); /* nombre de piste 
deja traite */
+  gchar *Llasttrack = (gchar *) sc_grave_get_data(Lg, "lasttrack"); /* 
precedente piste traite */
+  gchar *Latspeed = (gchar *) sc_grave_get_data(Lg, "atspeed"); /* vitesse 
reel operation */
+  glong *Llength = (glong *) sc_grave_get_data(Lg, "length"); /* longueur 
total */
   gchar *f, *e;
   gchar *Ltxt;
   gchar Lsbuf[_BUF_SIZE], Lsbuf2[_BUF_SIZE];
@@ -82,11 +82,11 @@
   gsize Llu = 0;
   gchar *Ltracknum;
 
-  GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Lhash, "gravetitle"));
-  GtkProgressBar *Lprogressbar = GTK_PROGRESS_BAR(sc_grave_get_data(Lhash, 
"pb_total"));
-  GtkProgressBar *Lprogressbar2 = GTK_PROGRESS_BAR(sc_grave_get_data(Lhash, 
"pb_step"));
-  GtkProgressBar *LprogressbarFifo = GTK_PROGRESS_BAR(sc_grave_get_data(Lhash, 
"pb_fifo"));
-  GtkProgressBar *LprogressbarBuffer = 
GTK_PROGRESS_BAR(sc_grave_get_data(Lhash, "pb_buffer"));
+  GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Lg, "gravetitle"));
+  GtkProgressBar *Lprogressbar = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, 
"pb_total"));
+  GtkProgressBar *Lprogressbar2 = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, 
"pb_step"));
+  GtkProgressBar *LprogressbarFifo = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, 
"pb_fifo"));
+  GtkProgressBar *LprogressbarBuffer = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, 
"pb_buffer"));
   
   /* fin du callback lorsque l'on recoi un signal comme quoi le pipe est ferme 
*/
   if (Acond == G_IO_HUP || Acond == G_IO_ERR) {
@@ -146,8 +146,13 @@
         g_snprintf(Lsbuf, sizeof(Lsbuf)-1, _("Writing track %s - %.0f MB of 
%.0f MB at %s"),
             Llasttrack, Lde, La, Latspeed);
         gtk_label_set_text(Ltitle, Lsbuf);
-
-        maj_progress(Lprogressbar2, POURCENT(La, Lde));
+printf("ici Ltodo = %d done = %d\n", *Ltodo, *Ldone);
+        Lpct = POURCENT(La, Lde);
+        maj_progress(Lprogressbar2, Lpct);
+
+        /* avancement total */
+        Ltava = (1.0/ (*Ltodo)) * ((*Ldone)-1+Lpct);
+        maj_progress(Lprogressbar, Ltava);
 
         /* barre fifo */
         g_snprintf(Lsbuf, sizeof(Lsbuf)-1, "%.0f%%", Lfifo);
@@ -161,92 +166,6 @@
       }
 
     }      
-/*
-      Ltracknum = f;
-
-
-      
-      if (!(f=strchr(f, ':'))) return TRUE;
-      *(f++)=0;
-      g_strstrip(Ltracknum);
-    
-      if (!(e = strstr(f, CDRECORD_OF))) return TRUE;
-    
-
-      *e=0; e=e+strlen(CDRECORD_OF);
-      Ltotaldone = atof(ltrim(f));
-
-      * champ total a graver *
-      f=e;
-      if (!(e=strstr(f, CDRECORD_MB))) {
-        maj_audio_title(Ltitle, Ltracknum, NULL, 0, Ltotaldone);
-        return TRUE;
-      }
-      *e=0; e=e+strlen(CDRECORD_MB);
-      Ltotaltodo = atof(ltrim(f));
-
-      * champ fifo *
-      if (!(f=strstr(e, CDRECORD_FIFO))) {
-        maj_audio_title(Ltitle, Ltracknum, NULL, Ltotaltodo, Ltotaldone);
-        return TRUE;
-      }
-      f=f+strlen(CDRECORD_FIFO);
-
-      if ((e = strchr(++f, ')'))) {
-        *e++=0;
-      } else {
-        e = f;
-      }
-      Lfifo = atof(ltrim(f));
-
-      * champ buf *
-      if (!(f=strstr(e, CDRECORD_BUF))) {
-        maj_audio_title(Ltitle, Ltracknum, NULL, Ltotaltodo, Ltotaldone);
-        return TRUE;
-      }
-      f=f+strlen(CDRECORD_BUF);
-                               
-      if ((e = strchr(++f, ']'))) {
-        *e++=0;
-        Lgbuf = atof(ltrim(f));
-      } else {
-        e = f;
-      }
-
-      e=ltrim(e);
-      if ((f=strchr(e, 'x'))) {
-        *(++f)=0;
-        maj_audio_title(Ltitle, Ltracknum, e, Ltotaltodo, Ltotaldone);
-      }
-
-      * barres de progression *
-      * avancement operation *
-      Lpct = (1.0/Ltotaltodo) * Ltotaldone;
-      gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(Lprogressbar2), Lpct);
-      g_snprintf(Lsbuf2, sizeof(Lsbuf2)-1, "%.0f%%", Lpct*100);
-      gtk_progress_bar_set_text(GTK_PROGRESS_BAR(Lprogressbar2), Lsbuf2);
-
-      * avancement total *
-      if (*Ltracknum && (!*Llasttrack || strcmp(Llasttrack, Ltracknum))) {
-        if (strcmp(Llasttrack, "00")) *Ldone=(*Ldone)+1;
-        g_strlcpy(Llasttrack, Ltracknum, _BUF_SIZE - 1);
-      }
-      Ltava = (1.0/ (*Ltodo)) * ((*Ldone)-1+Lpct);
-      gtk_progress_bar_set_fraction(Lprogressbar, Ltava);
-      g_snprintf(Lsbuf2, sizeof(Lsbuf2)-1, "%.0f%%", Ltava*100);
-      gtk_progress_bar_set_text(Lprogressbar, Lsbuf2);
-
-      * barre fifo *
-      g_snprintf(Lsbuf, sizeof(Lsbuf)-1, "%.0f%%", Lfifo);
-      gtk_progress_bar_set_fraction(LprogressbarFifo, Lfifo * 0.01);
-      gtk_progress_bar_set_text(LprogressbarFifo, Lsbuf);
-
-      * barre buffer *
-      g_snprintf(Lsbuf, sizeof(Lsbuf)-1, "%.0f%%", Lgbuf);
-      gtk_progress_bar_set_fraction(LprogressbarBuffer, Lgbuf * 0.01);
-      gtk_progress_bar_set_text(LprogressbarBuffer, Lsbuf);
-    */
-
   } else if ((f=strstr(Lbuffer, CDRDAO_TRACK))) {
     /* debut lecture d'une piste */
     f=f+strlen(CDRDAO_TRACK);
@@ -262,7 +181,13 @@
     /* operation lecture d'une piste en cours */
     glong Lcur = get_2time(Lbuffer);
     if (Lcur > 0) {
-      maj_progress(Lprogressbar2, POURCENT(*Llength, Lcur));
+      /* avancement operation */
+      Lpct = POURCENT(*Llength, Lcur);
+      maj_progress(Lprogressbar2, Lpct);
+
+      /* avancement total */
+      Ltava = (1.0/ (*Ltodo)) * ((*Ldone)-1+Lpct);
+      maj_progress(Lprogressbar, Ltava);
     }
   } else if ((f=strstr(Lbuffer, CDRDAO_LENGTH))) {
     /* longueur total du cd */
@@ -290,9 +215,16 @@
     /* mise a jour du titre ecriture de la piste en cours */
     f=f+strlen(CDRDAO_WRITING_TRACK);
     if ((e=next_no_numeric(f))) {
+      gboolean *Lsimul = (gboolean *) sc_grave_get_data(Lg, "simul"); /* 
simulation */
+      
       *e=0;
+      if (atoi(f)==1) {
+        (*Ldone)++;
+      }
       g_snprintf(Llasttrack, _BUF_SIZE-1, "%s", f);
-      g_snprintf(Lsbuf, sizeof(Lsbuf)-1, _("Writing track %s at %s..."), f, 
Latspeed);
+      g_snprintf(Lsbuf, sizeof(Lsbuf)-1,
+          *Lsimul ? _("Simulated writing track %s as %s...") : _("Writing 
track %s at %s..."),
+          f, Latspeed);
       gtk_label_set_text(Ltitle, Lsbuf);
     }
   } else if ((f=strstr(Lbuffer, CDRDAO_COPYING_TRACK))) {
@@ -308,7 +240,7 @@
     /* blanking disk */
     gtk_label_set_text(Ltitle, _("Flushing cache..."));
   } else if ((f=strstr(Lbuffer, CDRDAO_SUCCESSFULLY))) {
-    gboolean *Lstatus = (gboolean *) sc_grave_get_data(Lhash, 
"operationstatus");
+    gboolean *Lstatus = (gboolean *) sc_grave_get_data(Lg, "operationstatus");
 
     /* ok tout s'est bien passe ! */
     *Lstatus = TRUE;
@@ -330,33 +262,33 @@
 }
 
 /* operation de copie d'un cd */
-gboolean copycd(Tgrave *Ahash, GError **Aerror) {
-  GtkWindow *Lwindow = GTK_WINDOW(sc_grave_get_data(Ahash, "window_burn"));
-  GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ahash, "gravetitle"));
-  GtkWidget *Lvitesse = sc_grave_get_widget(Ahash, "dstcopyspeed");
-  GtkWidget *Lsource = sc_grave_get_widget(Ahash, "srccopycombo");
-  GtkWidget *Lgraveur = sc_grave_get_widget(Ahash, "dstcopycombo");
-  gchar *Lrepertoire = (gchar *)sc_grave_get_data(Ahash, "tmpdir");
-  gchar *Liso = (gchar *)sc_grave_get_data(Ahash, "iso");
-  gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ahash, 
"operationstatus");
-  gboolean *Labort = (gboolean *) sc_grave_get_data(Ahash, "gabort");
+gboolean copycd(Tgrave *Ag, GError **Aerror) {
+  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, "dstcopyspeed");
+  GtkWidget *Lsource = sc_grave_get_widget(Ag, "srccopycombo");
+  GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstcopycombo");
+  gchar *Lrepertoire = (gchar *)sc_grave_get_data(Ag, "tmpdir");
+  gchar *Liso = (gchar *)sc_grave_get_data(Ag, "iso");
+  gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ag, 
"operationstatus");
+  gboolean *Labort = (gboolean *) sc_grave_get_data(Ag, "gabort");
   gchar *Lbuftitle = NULL;
   gchar **Lcmd;
   gchar *Lcommandline;
   GIOChannel *Lcom, *Lcomerr;
   guint Lcomevent, Lcomerrevent;
-  gint *Lcont = (gint *) sc_grave_get_data(Ahash, "cont"); /* on traite encore 
des donnees ? */
+  gint *Lcont = (gint *) sc_grave_get_data(Ag, "cont"); /* on traite encore 
des donnees ? */
   /* nombre d'element total */
-  gint *Ldone = (gint *)sc_grave_get_data(Ahash, "done"); /* fais */
-  gint *Ltodo = (gint *) sc_grave_get_data(Ahash, "todo");
-  gint *Lpid = (gint *) sc_grave_get_data(Ahash, "pid");
+  gint *Ldone = (gint *)sc_grave_get_data(Ag, "done"); /* fais */
+  gint *Ltodo = (gint *) sc_grave_get_data(Ag, "todo");
+  gint *Lpid = (gint *) sc_grave_get_data(Ag, "pid");
   
   gint g_out, g_err, Lnbrarg;
   gboolean Lstatus = FALSE;
   gchar *Lbufvitesse, *Lbufgrav, *Lbufsrc;
-  gboolean Lsimul = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ahash, 
"copysimul")));
-  gboolean Lonfly = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ahash, 
"copyonfly")));
-  gint Lnbrgravure = 
gtk_spin_button_get_value(GTK_SPIN_BUTTON(sc_grave_get_widget(Ahash, 
"nbrcdcopy")));
+  gboolean Lsimul = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, 
"copysimul")));
+  gboolean Lonfly = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, 
"copyonfly")));
+  gint Lnbrgravure = 
gtk_spin_button_get_value(GTK_SPIN_BUTTON(sc_grave_get_widget(Ag, 
"nbrcdcopy")));
   gboolean Lwanteject = conf_get_boolean("eject");
   gint Lcurcd;
   gboolean Ldosimul;
@@ -370,14 +302,16 @@
   Lbufvitesse = get_combo_value(Lvitesse);
   Lbufsrc = get_combo_value(Lsource);
   Lbufgrav = get_combo_value(Lgraveur);
-  Lblank = get_blank_type(Ahash);
+  Lblank = get_blank_type(Ag);
 
-  *Ltodo = ((Lnbrgravure) + (Lsimul ? 1 : 0) + (Lonfly ? Lnbrgravure : 0));
+  *Ltodo = ((Lnbrgravure * 2 ) + (Lsimul ? 2 : 0) + (Lonfly ? Lnbrgravure : 
0));
 
-  sc_grave_set_data(Ahash, &Latspeed, "atspeed");
-  sc_grave_set_data(Ahash, &Llasttrack, "lasttrack");
-  sc_grave_set_data(Ahash, &Llength, "length");
+  sc_grave_set_data(Ag, &Latspeed, "atspeed");
+  sc_grave_set_data(Ag, &Llasttrack, "lasttrack");
+  sc_grave_set_data(Ag, &Llength, "length");
+  sc_grave_set_data(Ag, &Ldosimul, "simul");
   
+printf("ici super\n");
   for (Lcurcd=1; Lcurcd<= Lnbrgravure;
       ((Lsimul && Lnbrpass>1) || (!Lsimul)) ? ( Lcurcd++, Lnbrpass=1 ) : ( 
Lnbrpass++ )) { 
     *Loperationstatus = FALSE;
@@ -413,15 +347,21 @@
      * si il faut realiser d'autre gravure sur d'autres CD-R */
     Leject = ((Lcurcd > 1 && (Lwanteject || Lcurcd<Lnbrgravure)) || (Lcurcd == 
1 && !Ldosimul && Lwanteject));
 
-    Lcommandline = g_strdup_printf("%s copy -n -v 2 %s %s %s %s%s 
--source-device %s --device %s --datafile %s %s %s",
+    if (Lonfly || Ldosimul || Lcurcd == 1) {
+      /* copie a la volé, ou simulation, ou cd numero 1, on n'utilise pas 
l'image sauvé
+       * lors de la precedente operation */
+      Lcommandline = g_strdup_printf("%s copy -n -v 2 %s %s %s %s%s 
--source-device %s --device %s --datafile %s %s %s",
         conf_get_string("cdrdao"), 
         Ldosimul ? " --simulate" : "",
-        Lonfly ? " --on-the-fly" : "",
+        Lonfly ? " --on-the-fly" : "--keepimage",
         Leject ? "--eject" : "",
         *Lbufvitesse == '0' ? "" : "--speed", *Lbufvitesse == '0' ? "" : 
Lbufvitesse,
         Lbufsrc, Lbufgrav, Liso,
         conf_get_boolean("overburn") ? "--overburn" : "",
         conf_get_string("cdrdaopara"));
+    } else {
+      /* sinon on l'utilise oui ! */
+    }
 
 _DEB("execution [%s]\n", Lcommandline);
     Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror);
@@ -446,14 +386,14 @@
     g_io_channel_set_buffered(Lcom, FALSE);
     g_io_channel_set_flags( Lcom, G_IO_FLAG_NONBLOCK, NULL );
     Lcomevent = g_io_add_watch (Lcom, (G_IO_IN | G_IO_HUP | G_IO_ERR | 
G_IO_PRI),
-                                        cdrdao_grave_callback, Ahash);
+                                        cdrdao_grave_callback, Ag);
   
     Lcomerr = g_io_channel_unix_new( g_err );
     g_io_channel_set_encoding (Lcomerr, NULL, NULL);
     g_io_channel_set_buffered(Lcomerr, FALSE);
     g_io_channel_set_flags( Lcomerr, G_IO_FLAG_NONBLOCK, NULL );
     Lcomerrevent = g_io_add_watch (Lcomerr, (G_IO_IN | G_IO_HUP | G_IO_ERR | 
G_IO_PRI),
-                                        cdrdao_grave_callback, Ahash);  
+                                        cdrdao_grave_callback, Ag);  
     
     while (*Lcont>0 && *Labort == FALSE) {
       gtk_main_iteration(); 
@@ -508,9 +448,10 @@
   g_free(Lbufgrav);
   g_free(Lbufvitesse);
 
-  sc_grave_del_data(Ahash, "length");
-  sc_grave_del_data(Ahash, "lasttrack");
-  sc_grave_del_data(Ahash, "atspeed");
+  sc_grave_del_data(Ag, "simul");
+  sc_grave_del_data(Ag, "length");
+  sc_grave_del_data(Ag, "lasttrack");
+  sc_grave_del_data(Ag, "atspeed");
 
   return Lstatus;
 }




reply via email to

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