64 |
#define CDRDAO_NA ": n/a" |
#define CDRDAO_NA ": n/a" |
65 |
#define CDRDAO_CD "CD" |
#define CDRDAO_CD "CD" |
66 |
|
|
67 |
static gchar *get_blank_type(Tgrave *Ag) |
static gchar *get_blank_type(Tgrave *Ag, gint Atypemedia) |
68 |
{ |
{ |
69 |
gboolean *Luseautoblank = (gboolean *) sc_grave_get_data(Ag, "useautoblank"); |
gboolean *Luseautoblank = (gboolean *) sc_grave_get_data(Ag, "useautoblank"); |
70 |
|
|
71 |
if (!*Luseautoblank) return g_strdup(""); |
if (!*Luseautoblank || (!(Atypemedia & _MEDIA_CDRW))) return g_strdup(""); |
72 |
|
|
73 |
return g_strdup_printf("blank=%s", conf_get_boolean("fastblank") == TRUE ? "fast" : "all"); |
return g_strdup_printf("blank=%s", conf_get_boolean("fastblank") == TRUE ? "fast" : "all"); |
74 |
} |
} |
87 |
gchar *Latspeed = (gchar *) sc_grave_get_data(Lg, "atspeed"); /* vitesse reel operation */ |
gchar *Latspeed = (gchar *) sc_grave_get_data(Lg, "atspeed"); /* vitesse reel operation */ |
88 |
glong *Llength = (glong *) sc_grave_get_data(Lg, "length"); /* longueur total */ |
glong *Llength = (glong *) sc_grave_get_data(Lg, "length"); /* longueur total */ |
89 |
gchar *f, *e; |
gchar *f, *e; |
90 |
gchar *Ltxt; |
gchar Lsbuf[_BUF_SIZE]; |
91 |
gchar Lsbuf[_BUF_SIZE], Lsbuf2[_BUF_SIZE]; |
gdouble Lpct, Ltava; |
|
gdouble Ltotaldone = 1, Ltotaltodo, Lpct, Lgbuf = 0, Ltava; |
|
92 |
gsize Llu = 0; |
gsize Llu = 0; |
|
gchar *Ltracknum; |
|
93 |
|
|
94 |
GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Lg, "gravetitle")); |
GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Lg, "gravetitle")); |
95 |
GtkProgressBar *Lprogressbar = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, "pb_total")); |
GtkProgressBar *Lprogressbar = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, "pb_total")); |
151 |
} |
} |
152 |
|
|
153 |
if (Lok) { |
if (Lok) { |
|
printf("oui ok => [%.0f] => [%.0f] => [%.0f] => [%.0f]\n", Lde, La, Lgbuf, Lfifo); |
|
154 |
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"), |
155 |
Llasttrack, Lde, La, Latspeed); |
Llasttrack, Lde, La, Latspeed); |
156 |
gtk_label_set_text(Ltitle, Lsbuf); |
gtk_label_set_text(Ltitle, Lsbuf); |
272 |
/* operation de copie d'un cd */ |
/* operation de copie d'un cd */ |
273 |
gboolean copycd(Tgrave *Ag, GError **Aerror) { |
gboolean copycd(Tgrave *Ag, GError **Aerror) { |
274 |
GtkWindow *Lwindow = GTK_WINDOW(sc_grave_get_data(Ag, "window_burn")); |
GtkWindow *Lwindow = GTK_WINDOW(sc_grave_get_data(Ag, "window_burn")); |
|
GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ag, "gravetitle")); |
|
275 |
GtkWidget *Lvitesse = sc_grave_get_widget(Ag, "dstcopyspeed"); |
GtkWidget *Lvitesse = sc_grave_get_widget(Ag, "dstcopyspeed"); |
276 |
GtkWidget *Lsource = sc_grave_get_widget(Ag, "srccopycombo"); |
GtkWidget *Lsource = sc_grave_get_widget(Ag, "srccopycombo"); |
277 |
GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstcopycombo"); |
GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstcopycombo"); |
279 |
gchar *Liso = (gchar *)sc_grave_get_data(Ag, "iso"); |
gchar *Liso = (gchar *)sc_grave_get_data(Ag, "iso"); |
280 |
gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ag, "operationstatus"); |
gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ag, "operationstatus"); |
281 |
gboolean *Labort = (gboolean *) sc_grave_get_data(Ag, "gabort"); |
gboolean *Labort = (gboolean *) sc_grave_get_data(Ag, "gabort"); |
|
gchar *Lbuftitle = NULL; |
|
282 |
gchar **Lcmd; |
gchar **Lcmd; |
283 |
gchar *Lcommandline; |
gchar *Lcommandline; |
284 |
GIOChannel *Lcom, *Lcomerr; |
GIOChannel *Lcom, *Lcomerr; |
304 |
gchar Latspeed[_BUF_SIZE]; /* vitesse reel de l'operation */ |
gchar Latspeed[_BUF_SIZE]; /* vitesse reel de l'operation */ |
305 |
gchar Llasttrack[_BUF_SIZE]; /* derniere piste traite */ |
gchar Llasttrack[_BUF_SIZE]; /* derniere piste traite */ |
306 |
glong Llength; /* longueur total du cd */ |
glong Llength; /* longueur total du cd */ |
307 |
|
gint Lmediadetect1 = _MEDIA_CDRW; |
308 |
|
|
309 |
Lbufvitesse = get_combo_value(Lvitesse); |
Lbufvitesse = get_combo_value(Lvitesse); |
310 |
Lbufsrc = get_combo_value(Lsource); |
Lbufsrc = get_combo_value(Lsource); |
311 |
Lbufgrav = get_combo_value(Lgraveur); |
Lbufgrav = get_combo_value(Lgraveur); |
312 |
Lblank = get_blank_type(Ag); |
Lblank = get_blank_type(Ag, Lmediadetect1); |
313 |
|
|
314 |
*Ltodo = ((Lnbrgravure * 2 ) + (Lsimul ? 2 : 0) + (Lonfly ? Lnbrgravure : 0)); |
*Ltodo = ((Lnbrgravure * 2 ) + (Lsimul ? 2 : 0) + (Lonfly ? Lnbrgravure : 0)); |
315 |
|
|
318 |
sc_grave_set_data(Ag, &Llength, "length"); |
sc_grave_set_data(Ag, &Llength, "length"); |
319 |
sc_grave_set_data(Ag, &Ldosimul, "simul"); |
sc_grave_set_data(Ag, &Ldosimul, "simul"); |
320 |
|
|
|
printf("ici super\n"); |
|
321 |
for (Lcurcd=1; Lcurcd<= Lnbrgravure; |
for (Lcurcd=1; Lcurcd<= Lnbrgravure; |
322 |
((Lsimul && Lnbrpass>1) || (!Lsimul)) ? ( Lcurcd++, Lnbrpass=1 ) : ( Lnbrpass++ )) { |
((Lsimul && Lnbrpass>1) || (!Lsimul)) ? ( Lcurcd++, Lnbrpass=1 ) : ( Lnbrpass++ )) { |
323 |
*Loperationstatus = FALSE; |
*Loperationstatus = FALSE; |
329 |
if (Lcurcd > 1 && !Ldosimul) { |
if (Lcurcd > 1 && !Ldosimul) { |
330 |
/* copie sur un nouveau cd, on demande a l'utilisateur d'inserer le |
/* copie sur un nouveau cd, on demande a l'utilisateur d'inserer le |
331 |
* nouveau cd vierge */ |
* nouveau cd vierge */ |
332 |
gint Lrep; |
/* gint Lrep; |
333 |
GtkWidget *Lconfirm = gtk_message_dialog_new(Lwindow, |
GtkWidget *Lconfirm = gtk_message_dialog_new(Lwindow, |
334 |
GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, |
GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, |
335 |
GTK_BUTTONS_YES_NO, |
GTK_BUTTONS_YES_NO, |
336 |
_("Now you should insert next CD-R, do you want to continue operation ?")); |
_("Now you should insert next CD-R, do you want to continue operation ?")); |
337 |
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm)); |
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm)); |
338 |
gtk_widget_destroy(Lconfirm); |
gtk_widget_destroy(Lconfirm); |
339 |
if (Lrep == GTK_RESPONSE_NO) { |
if (Lrep == GTK_RESPONSE_NO) {*/ |
340 |
|
if (waiting_for_user("", Ag, _MEDIA_CDR + _MEDIA_APPENDABLE , &Lmediadetect1, Lbufgrav)==FALSE) { |
341 |
/* si c'est non alors on arrete */ |
/* si c'est non alors on arrete */ |
342 |
*Labort = TRUE; |
*Labort = TRUE; |
343 |
Lstatus = TRUE; |
Lstatus = TRUE; |
354 |
* si il faut realiser d'autre gravure sur d'autres CD-R */ |
* si il faut realiser d'autre gravure sur d'autres CD-R */ |
355 |
Leject = ((Lcurcd > 1 && (Lwanteject || Lcurcd<Lnbrgravure)) || (Lcurcd == 1 && !Ldosimul && Lwanteject)); |
Leject = ((Lcurcd > 1 && (Lwanteject || Lcurcd<Lnbrgravure)) || (Lcurcd == 1 && !Ldosimul && Lwanteject)); |
356 |
|
|
357 |
if (Lonfly || Ldosimul || Lcurcd == 1) { |
/* if (Lonfly || Ldosimul || Lcurcd == 1) { |
358 |
/* copie a la volé, ou simulation, ou cd numero 1, on n'utilise pas l'image sauvé |
* copie a la volé, ou simulation, ou cd numero 1, on n'utilise pas l'image sauvé |
359 |
* lors de la precedente operation */ |
* lors de la precedente operation */ |
360 |
Lcommandline = g_strdup_printf("%s copy -n -v 2 %s %s %s %s%s --source-device %s --device %s --datafile %s %s %s", |
Lcommandline = g_strdup_printf("%s copy -n -v 2 %s %s %s %s%s --source-device %s --device %s --datafile %s %s %s", |
361 |
conf_get_string("cdrdao"), |
conf_get_string("cdrdao"), |
362 |
Ldosimul ? " --simulate" : "", |
Ldosimul ? " --simulate" : "", |
363 |
Lonfly ? " --on-the-fly" : "--keepimage", |
Lonfly ? " --on-the-fly" : "", |
364 |
Leject ? "--eject" : "", |
Leject ? "--eject" : "", |
365 |
*Lbufvitesse == '0' ? "" : "--speed", *Lbufvitesse == '0' ? "" : Lbufvitesse, |
*Lbufvitesse == '0' ? "" : "--speed", *Lbufvitesse == '0' ? "" : Lbufvitesse, |
366 |
Lbufsrc, Lbufgrav, Liso, |
Lbufsrc, Lbufgrav, Liso, |
367 |
conf_get_boolean("overburn") ? "--overburn" : "", |
conf_get_boolean("overburn") ? "--overburn" : "", |
368 |
conf_get_string("cdrdaopara")); |
conf_get_string("cdrdaopara")); |
369 |
} else { |
/* } else {*/ |
370 |
/* sinon on l'utilise oui ! */ |
/* sinon on l'utilise oui ! */ |
371 |
} |
/* } */ |
372 |
|
|
373 |
_DEB("execution [%s]\n", Lcommandline); |
_DEB("execution [%s]\n", Lcommandline); |
374 |
Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror); |
Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror); |
477 |
|
|
478 |
g_snprintf(Lcommandline, sizeof(Lcommandline)-1, "%s disk-info --device %s", conf_get_string("cdrdao"), Adevice); |
g_snprintf(Lcommandline, sizeof(Lcommandline)-1, "%s disk-info --device %s", conf_get_string("cdrdao"), Adevice); |
479 |
|
|
|
printf("cmd %s\n", Lcommandline); |
|
480 |
Lstatus = g_spawn_command_line_sync(Lcommandline, &Lout, &Lerr, &Lexit, Aerror); |
Lstatus = g_spawn_command_line_sync(Lcommandline, &Lout, &Lerr, &Lexit, Aerror); |
481 |
|
|
|
printf("apres => %d\n%s\n", Lstatus, Lout); |
|
482 |
if (Lstatus == FALSE || Lexit != 0) { |
if (Lstatus == FALSE || Lexit != 0) { |
483 |
g_free(Lout); g_free(Lerr); |
g_free(Lout); g_free(Lerr); |
484 |
return 0; |
return 0; |