/[graveman]/graveman/current/src/cdrdao.c
ViewVC logotype

Diff of /graveman/current/src/cdrdao.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by scresto, Sun Feb 20 17:45:02 2005 UTC revision 1.2 by scresto, Mon Feb 21 01:25:28 2005 UTC
# Line 53  Line 53 
53  #define CDRDAO_BUFFERS "Buffers "  #define CDRDAO_BUFFERS "Buffers "
54  #define CDRDAO_INCOMPATIBLE_MEDIUM "Medium in recorder device is not empty and not appendable"  #define CDRDAO_INCOMPATIBLE_MEDIUM "Medium in recorder device is not empty and not appendable"
55    
56  static gchar *get_blank_type(Tgrave *Ahash)  static gchar *get_blank_type(Tgrave *Ag)
57  {  {
58    gboolean *Luseautoblank = (gboolean *) sc_grave_get_widget(Ahash, "useautoblank");    gboolean *Luseautoblank = (gboolean *) sc_grave_get_data(Ag, "useautoblank");
59    
60    if (!*Luseautoblank) return g_strdup("");    if (!*Luseautoblank) return g_strdup("");
61    
# Line 66  static gchar *get_blank_type(Tgrave *Aha Line 66  static gchar *get_blank_type(Tgrave *Aha
66  gboolean cdrdao_grave_callback(GIOChannel *Astd, GIOCondition Acond, gpointer Adata)  gboolean cdrdao_grave_callback(GIOChannel *Astd, GIOCondition Acond, gpointer Adata)
67  {  {
68    GIOStatus Lstatus;    GIOStatus Lstatus;
69    Tgrave *Lhash = (Tgrave *)Adata;    Tgrave *Lg = (Tgrave *)Adata;
70    gchar Lbuffer[_BUF_SIZE];    gchar Lbuffer[_BUF_SIZE];
71    gint *Lcont = (gint *) sc_grave_get_data(Lhash, "cont"); /* on traite encore des donnees ? */    gint *Lcont = (gint *) sc_grave_get_data(Lg, "cont"); /* on traite encore des donnees ? */
72    GError **Lerreur = (GError **) sc_grave_get_data(Lhash, "gerror"); /* pointeur erreur */    GError **Lerreur = (GError **) sc_grave_get_data(Lg, "gerror"); /* pointeur erreur */
73    gint *Ltodo = (gint *) sc_grave_get_data(Lhash, "todo"); /* nombre de piste a traiter */    gint *Ltodo = (gint *) sc_grave_get_data(Lg, "todo"); /* nombre de piste a traiter */
74    gint *Ldone = (gint *) sc_grave_get_data(Lhash, "done"); /* nombre de piste deja traite */    gint *Ldone = (gint *) sc_grave_get_data(Lg, "done"); /* nombre de piste deja traite */
75    gchar *Llasttrack = (gchar *) sc_grave_get_data(Lhash, "lasttrack"); /* precedente piste traite */    gchar *Llasttrack = (gchar *) sc_grave_get_data(Lg, "lasttrack"); /* precedente piste traite */
76    gchar *Latspeed = (gchar *) sc_grave_get_data(Lhash, "atspeed"); /* vitesse reel operation */    gchar *Latspeed = (gchar *) sc_grave_get_data(Lg, "atspeed"); /* vitesse reel operation */
77    glong *Llength = (glong *) sc_grave_get_data(Lhash, "length"); /* longueur total */    glong *Llength = (glong *) sc_grave_get_data(Lg, "length"); /* longueur total */
78    gchar *f, *e;    gchar *f, *e;
79    gchar *Ltxt;    gchar *Ltxt;
80    gchar Lsbuf[_BUF_SIZE], Lsbuf2[_BUF_SIZE];    gchar Lsbuf[_BUF_SIZE], Lsbuf2[_BUF_SIZE];
# Line 82  gboolean cdrdao_grave_callback(GIOChanne Line 82  gboolean cdrdao_grave_callback(GIOChanne
82    gsize Llu = 0;    gsize Llu = 0;
83    gchar *Ltracknum;    gchar *Ltracknum;
84    
85    GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Lhash, "gravetitle"));    GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Lg, "gravetitle"));
86    GtkProgressBar *Lprogressbar = GTK_PROGRESS_BAR(sc_grave_get_data(Lhash, "pb_total"));    GtkProgressBar *Lprogressbar = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, "pb_total"));
87    GtkProgressBar *Lprogressbar2 = GTK_PROGRESS_BAR(sc_grave_get_data(Lhash, "pb_step"));    GtkProgressBar *Lprogressbar2 = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, "pb_step"));
88    GtkProgressBar *LprogressbarFifo = GTK_PROGRESS_BAR(sc_grave_get_data(Lhash, "pb_fifo"));    GtkProgressBar *LprogressbarFifo = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, "pb_fifo"));
89    GtkProgressBar *LprogressbarBuffer = GTK_PROGRESS_BAR(sc_grave_get_data(Lhash, "pb_buffer"));    GtkProgressBar *LprogressbarBuffer = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, "pb_buffer"));
90        
91    /* fin du callback lorsque l'on recoi un signal comme quoi le pipe est ferme */    /* fin du callback lorsque l'on recoi un signal comme quoi le pipe est ferme */
92    if (Acond == G_IO_HUP || Acond == G_IO_ERR) {    if (Acond == G_IO_HUP || Acond == G_IO_ERR) {
# Line 146  _DEB("===>%s", Lbuffer); Line 146  _DEB("===>%s", Lbuffer);
146          g_snprintf(Lsbuf, sizeof(Lsbuf)-1, _("Writing track %s - %.0f MB of %.0f MB at %s"),          g_snprintf(Lsbuf, sizeof(Lsbuf)-1, _("Writing track %s - %.0f MB of %.0f MB at %s"),
147              Llasttrack, Lde, La, Latspeed);              Llasttrack, Lde, La, Latspeed);
148          gtk_label_set_text(Ltitle, Lsbuf);          gtk_label_set_text(Ltitle, Lsbuf);
149    printf("ici Ltodo = %d done = %d\n", *Ltodo, *Ldone);
150          maj_progress(Lprogressbar2, POURCENT(La, Lde));          Lpct = POURCENT(La, Lde);
151            maj_progress(Lprogressbar2, Lpct);
152    
153            /* avancement total */
154            Ltava = (1.0/ (*Ltodo)) * ((*Ldone)-1+Lpct);
155            maj_progress(Lprogressbar, Ltava);
156    
157          /* barre fifo */          /* barre fifo */
158          g_snprintf(Lsbuf, sizeof(Lsbuf)-1, "%.0f%%", Lfifo);          g_snprintf(Lsbuf, sizeof(Lsbuf)-1, "%.0f%%", Lfifo);
# Line 161  _DEB("===>%s", Lbuffer); Line 166  _DEB("===>%s", Lbuffer);
166        }        }
167    
168      }            }      
 /*  
       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);  
     */  
   
169    } else if ((f=strstr(Lbuffer, CDRDAO_TRACK))) {    } else if ((f=strstr(Lbuffer, CDRDAO_TRACK))) {
170      /* debut lecture d'une piste */      /* debut lecture d'une piste */
171      f=f+strlen(CDRDAO_TRACK);      f=f+strlen(CDRDAO_TRACK);
# Line 262  _DEB("===>%s", Lbuffer); Line 181  _DEB("===>%s", Lbuffer);
181      /* operation lecture d'une piste en cours */      /* operation lecture d'une piste en cours */
182      glong Lcur = get_2time(Lbuffer);      glong Lcur = get_2time(Lbuffer);
183      if (Lcur > 0) {      if (Lcur > 0) {
184        maj_progress(Lprogressbar2, POURCENT(*Llength, Lcur));        /* avancement operation */
185          Lpct = POURCENT(*Llength, Lcur);
186          maj_progress(Lprogressbar2, Lpct);
187    
188          /* avancement total */
189          Ltava = (1.0/ (*Ltodo)) * ((*Ldone)-1+Lpct);
190          maj_progress(Lprogressbar, Ltava);
191      }      }
192    } else if ((f=strstr(Lbuffer, CDRDAO_LENGTH))) {    } else if ((f=strstr(Lbuffer, CDRDAO_LENGTH))) {
193      /* longueur total du cd */      /* longueur total du cd */
# Line 290  _DEB("===>%s", Lbuffer); Line 215  _DEB("===>%s", Lbuffer);
215      /* mise a jour du titre ecriture de la piste en cours */      /* mise a jour du titre ecriture de la piste en cours */
216      f=f+strlen(CDRDAO_WRITING_TRACK);      f=f+strlen(CDRDAO_WRITING_TRACK);
217      if ((e=next_no_numeric(f))) {      if ((e=next_no_numeric(f))) {
218          gboolean *Lsimul = (gboolean *) sc_grave_get_data(Lg, "simul"); /* simulation */
219          
220        *e=0;        *e=0;
221          if (atoi(f)==1) {
222            (*Ldone)++;
223          }
224        g_snprintf(Llasttrack, _BUF_SIZE-1, "%s", f);        g_snprintf(Llasttrack, _BUF_SIZE-1, "%s", f);
225        g_snprintf(Lsbuf, sizeof(Lsbuf)-1, _("Writing track %s at %s..."), f, Latspeed);        g_snprintf(Lsbuf, sizeof(Lsbuf)-1,
226              *Lsimul ? _("Simulated writing track %s as %s...") : _("Writing track %s at %s..."),
227              f, Latspeed);
228        gtk_label_set_text(Ltitle, Lsbuf);        gtk_label_set_text(Ltitle, Lsbuf);
229      }      }
230    } else if ((f=strstr(Lbuffer, CDRDAO_COPYING_TRACK))) {    } else if ((f=strstr(Lbuffer, CDRDAO_COPYING_TRACK))) {
# Line 308  _DEB("===>%s", Lbuffer); Line 240  _DEB("===>%s", Lbuffer);
240      /* blanking disk */      /* blanking disk */
241      gtk_label_set_text(Ltitle, _("Flushing cache..."));      gtk_label_set_text(Ltitle, _("Flushing cache..."));
242    } else if ((f=strstr(Lbuffer, CDRDAO_SUCCESSFULLY))) {    } else if ((f=strstr(Lbuffer, CDRDAO_SUCCESSFULLY))) {
243      gboolean *Lstatus = (gboolean *) sc_grave_get_data(Lhash, "operationstatus");      gboolean *Lstatus = (gboolean *) sc_grave_get_data(Lg, "operationstatus");
244    
245      /* ok tout s'est bien passe ! */      /* ok tout s'est bien passe ! */
246      *Lstatus = TRUE;      *Lstatus = TRUE;
# Line 330  _DEB("===>%s", Lbuffer); Line 262  _DEB("===>%s", Lbuffer);
262  }  }
263    
264  /* operation de copie d'un cd */  /* operation de copie d'un cd */
265  gboolean copycd(Tgrave *Ahash, GError **Aerror) {  gboolean copycd(Tgrave *Ag, GError **Aerror) {
266    GtkWindow *Lwindow = GTK_WINDOW(sc_grave_get_data(Ahash, "window_burn"));    GtkWindow *Lwindow = GTK_WINDOW(sc_grave_get_data(Ag, "window_burn"));
267    GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ahash, "gravetitle"));    GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ag, "gravetitle"));
268    GtkWidget *Lvitesse = sc_grave_get_widget(Ahash, "dstcopyspeed");    GtkWidget *Lvitesse = sc_grave_get_widget(Ag, "dstcopyspeed");
269    GtkWidget *Lsource = sc_grave_get_widget(Ahash, "srccopycombo");    GtkWidget *Lsource = sc_grave_get_widget(Ag, "srccopycombo");
270    GtkWidget *Lgraveur = sc_grave_get_widget(Ahash, "dstcopycombo");    GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstcopycombo");
271    gchar *Lrepertoire = (gchar *)sc_grave_get_data(Ahash, "tmpdir");    gchar *Lrepertoire = (gchar *)sc_grave_get_data(Ag, "tmpdir");
272    gchar *Liso = (gchar *)sc_grave_get_data(Ahash, "iso");    gchar *Liso = (gchar *)sc_grave_get_data(Ag, "iso");
273    gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ahash, "operationstatus");    gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ag, "operationstatus");
274    gboolean *Labort = (gboolean *) sc_grave_get_data(Ahash, "gabort");    gboolean *Labort = (gboolean *) sc_grave_get_data(Ag, "gabort");
275    gchar *Lbuftitle = NULL;    gchar *Lbuftitle = NULL;
276    gchar **Lcmd;    gchar **Lcmd;
277    gchar *Lcommandline;    gchar *Lcommandline;
278    GIOChannel *Lcom, *Lcomerr;    GIOChannel *Lcom, *Lcomerr;
279    guint Lcomevent, Lcomerrevent;    guint Lcomevent, Lcomerrevent;
280    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 ? */
281    /* nombre d'element total */    /* nombre d'element total */
282    gint *Ldone = (gint *)sc_grave_get_data(Ahash, "done"); /* fais */    gint *Ldone = (gint *)sc_grave_get_data(Ag, "done"); /* fais */
283    gint *Ltodo = (gint *) sc_grave_get_data(Ahash, "todo");    gint *Ltodo = (gint *) sc_grave_get_data(Ag, "todo");
284    gint *Lpid = (gint *) sc_grave_get_data(Ahash, "pid");    gint *Lpid = (gint *) sc_grave_get_data(Ag, "pid");
285        
286    gint g_out, g_err, Lnbrarg;    gint g_out, g_err, Lnbrarg;
287    gboolean Lstatus = FALSE;    gboolean Lstatus = FALSE;
288    gchar *Lbufvitesse, *Lbufgrav, *Lbufsrc;    gchar *Lbufvitesse, *Lbufgrav, *Lbufsrc;
289    gboolean Lsimul = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ahash, "copysimul")));    gboolean Lsimul = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "copysimul")));
290    gboolean Lonfly = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ahash, "copyonfly")));    gboolean Lonfly = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "copyonfly")));
291    gint Lnbrgravure = gtk_spin_button_get_value(GTK_SPIN_BUTTON(sc_grave_get_widget(Ahash, "nbrcdcopy")));    gint Lnbrgravure = gtk_spin_button_get_value(GTK_SPIN_BUTTON(sc_grave_get_widget(Ag, "nbrcdcopy")));
292    gboolean Lwanteject = conf_get_boolean("eject");    gboolean Lwanteject = conf_get_boolean("eject");
293    gint Lcurcd;    gint Lcurcd;
294    gboolean Ldosimul;    gboolean Ldosimul;
# Line 370  gboolean copycd(Tgrave *Ahash, GError ** Line 302  gboolean copycd(Tgrave *Ahash, GError **
302    Lbufvitesse = get_combo_value(Lvitesse);    Lbufvitesse = get_combo_value(Lvitesse);
303    Lbufsrc = get_combo_value(Lsource);    Lbufsrc = get_combo_value(Lsource);
304    Lbufgrav = get_combo_value(Lgraveur);    Lbufgrav = get_combo_value(Lgraveur);
305    Lblank = get_blank_type(Ahash);    Lblank = get_blank_type(Ag);
306    
307    *Ltodo = ((Lnbrgravure) + (Lsimul ? 1 : 0) + (Lonfly ? Lnbrgravure : 0));    *Ltodo = ((Lnbrgravure * 2 ) + (Lsimul ? 2 : 0) + (Lonfly ? Lnbrgravure : 0));
308    
309    sc_grave_set_data(Ahash, &Latspeed, "atspeed");    sc_grave_set_data(Ag, &Latspeed, "atspeed");
310    sc_grave_set_data(Ahash, &Llasttrack, "lasttrack");    sc_grave_set_data(Ag, &Llasttrack, "lasttrack");
311    sc_grave_set_data(Ahash, &Llength, "length");    sc_grave_set_data(Ag, &Llength, "length");
312      sc_grave_set_data(Ag, &Ldosimul, "simul");
313        
314    printf("ici super\n");
315    for (Lcurcd=1; Lcurcd<= Lnbrgravure;    for (Lcurcd=1; Lcurcd<= Lnbrgravure;
316        ((Lsimul && Lnbrpass>1) || (!Lsimul)) ? ( Lcurcd++, Lnbrpass=1 ) : ( Lnbrpass++ )) {        ((Lsimul && Lnbrpass>1) || (!Lsimul)) ? ( Lcurcd++, Lnbrpass=1 ) : ( Lnbrpass++ )) {
317      *Loperationstatus = FALSE;      *Loperationstatus = FALSE;
# Line 413  gboolean copycd(Tgrave *Ahash, GError ** Line 347  gboolean copycd(Tgrave *Ahash, GError **
347       * si il faut realiser d'autre gravure sur d'autres CD-R */       * si il faut realiser d'autre gravure sur d'autres CD-R */
348      Leject = ((Lcurcd > 1 && (Lwanteject || Lcurcd<Lnbrgravure)) || (Lcurcd == 1 && !Ldosimul && Lwanteject));      Leject = ((Lcurcd > 1 && (Lwanteject || Lcurcd<Lnbrgravure)) || (Lcurcd == 1 && !Ldosimul && Lwanteject));
349    
350      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) {
351          /* copie a la volé, ou simulation, ou cd numero 1, on n'utilise pas l'image sauvé
352           * lors de la precedente operation */
353          Lcommandline = g_strdup_printf("%s copy -n -v 2 %s %s %s %s%s --source-device %s --device %s --datafile %s %s %s",
354          conf_get_string("cdrdao"),          conf_get_string("cdrdao"),
355          Ldosimul ? " --simulate" : "",          Ldosimul ? " --simulate" : "",
356          Lonfly ? " --on-the-fly" : "",          Lonfly ? " --on-the-fly" : "--keepimage",
357          Leject ? "--eject" : "",          Leject ? "--eject" : "",
358          *Lbufvitesse == '0' ? "" : "--speed", *Lbufvitesse == '0' ? "" : Lbufvitesse,          *Lbufvitesse == '0' ? "" : "--speed", *Lbufvitesse == '0' ? "" : Lbufvitesse,
359          Lbufsrc, Lbufgrav, Liso,          Lbufsrc, Lbufgrav, Liso,
360          conf_get_boolean("overburn") ? "--overburn" : "",          conf_get_boolean("overburn") ? "--overburn" : "",
361          conf_get_string("cdrdaopara"));          conf_get_string("cdrdaopara"));
362        } else {
363          /* sinon on l'utilise oui ! */
364        }
365    
366  _DEB("execution [%s]\n", Lcommandline);  _DEB("execution [%s]\n", Lcommandline);
367      Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror);      Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror);
# Line 446  _DEB("execution [%s]\n", Lcommandline); Line 386  _DEB("execution [%s]\n", Lcommandline);
386      g_io_channel_set_buffered(Lcom, FALSE);      g_io_channel_set_buffered(Lcom, FALSE);
387      g_io_channel_set_flags( Lcom, G_IO_FLAG_NONBLOCK, NULL );      g_io_channel_set_flags( Lcom, G_IO_FLAG_NONBLOCK, NULL );
388      Lcomevent = g_io_add_watch (Lcom, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI),      Lcomevent = g_io_add_watch (Lcom, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI),
389                                          cdrdao_grave_callback, Ahash);                                          cdrdao_grave_callback, Ag);
390        
391      Lcomerr = g_io_channel_unix_new( g_err );      Lcomerr = g_io_channel_unix_new( g_err );
392      g_io_channel_set_encoding (Lcomerr, NULL, NULL);      g_io_channel_set_encoding (Lcomerr, NULL, NULL);
393      g_io_channel_set_buffered(Lcomerr, FALSE);      g_io_channel_set_buffered(Lcomerr, FALSE);
394      g_io_channel_set_flags( Lcomerr, G_IO_FLAG_NONBLOCK, NULL );      g_io_channel_set_flags( Lcomerr, G_IO_FLAG_NONBLOCK, NULL );
395      Lcomerrevent = g_io_add_watch (Lcomerr, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI),      Lcomerrevent = g_io_add_watch (Lcomerr, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI),
396                                          cdrdao_grave_callback, Ahash);                                            cdrdao_grave_callback, Ag);  
397            
398      while (*Lcont>0 && *Labort == FALSE) {      while (*Lcont>0 && *Labort == FALSE) {
399        gtk_main_iteration();        gtk_main_iteration();
# Line 508  _DEB("execution [%s]\n", Lcommandline); Line 448  _DEB("execution [%s]\n", Lcommandline);
448    g_free(Lbufgrav);    g_free(Lbufgrav);
449    g_free(Lbufvitesse);    g_free(Lbufvitesse);
450    
451    sc_grave_del_data(Ahash, "length");    sc_grave_del_data(Ag, "simul");
452    sc_grave_del_data(Ahash, "lasttrack");    sc_grave_del_data(Ag, "length");
453    sc_grave_del_data(Ahash, "atspeed");    sc_grave_del_data(Ag, "lasttrack");
454      sc_grave_del_data(Ag, "atspeed");
455    
456    return Lstatus;    return Lstatus;
457  }  }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26