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 |
|
|
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]; |
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) { |
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); |
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); |
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 */ |
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))) { |
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; |
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; |
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; |
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); |
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(); |
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 |
} |
} |