322 |
gchar *Lmodburn = get_combo_value(sc_grave_get_widget(Ag, "datamodburn")); |
gchar *Lmodburn = get_combo_value(sc_grave_get_widget(Ag, "datamodburn")); |
323 |
gchar *Lreturn; |
gchar *Lreturn; |
324 |
|
|
325 |
Lreturn = g_strdup_printf("-%s -%s", Lformat, Lmodburn); |
Lreturn = g_strdup_printf("-%s %s%s", Lformat, Lmodburn && *Lmodburn ? "-" : "", Lmodburn); |
326 |
|
|
327 |
g_free(Lmodburn); g_free(Lformat); |
g_free(Lmodburn); g_free(Lformat); |
328 |
|
|
341 |
/* copie d'une image iso */ |
/* copie d'une image iso */ |
342 |
gboolean burn_from_image(gchar *Aop, Tgrave *Ag, GError **Aerror) { |
gboolean burn_from_image(gchar *Aop, Tgrave *Ag, GError **Aerror) { |
343 |
gchar **Lcmd; |
gchar **Lcmd; |
344 |
gchar *Lcommandline, *Lbufgrav, *Ltxt; |
gchar *Lcommandline, *Ltxt; |
345 |
GIOChannel *Lcom, *Lcomerr; |
GIOChannel *Lcom, *Lcomerr; |
346 |
guint Lcomevent, Lcomerrevent; |
guint Lcomevent, Lcomerrevent; |
347 |
gint *Lcont = (gint *) sc_grave_get_data(Ag, "cont"); |
gint *Lcont = (gint *) sc_grave_get_data(Ag, "cont"); |
355 |
gint *Lpid = (gint *) sc_grave_get_data(Ag, "pid"); |
gint *Lpid = (gint *) sc_grave_get_data(Ag, "pid"); |
356 |
gboolean Ldosimul; |
gboolean Ldosimul; |
357 |
GtkWidget *Lvitesse = sc_grave_get_widgetv(Ag, "dst%sspeed", Aop); |
GtkWidget *Lvitesse = sc_grave_get_widgetv(Ag, "dst%sspeed", Aop); |
|
GtkWidget *Lgraveur = sc_grave_get_widgetv(Ag, "dst%scombo", Aop); |
|
358 |
GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ag, "gravetitle")); |
GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ag, "gravetitle")); |
359 |
GtkToggleButton *Lbtnnotfix = GTK_TOGGLE_BUTTON(sc_grave_get_widgetv(Ag, "%snotfix", Aop)); |
GtkToggleButton *Lbtnnotfix = GTK_TOGGLE_BUTTON(sc_grave_get_widgetv(Ag, "%snotfix", Aop)); |
360 |
gboolean Lnotfix = Lbtnnotfix ? gtk_toggle_button_get_active(Lbtnnotfix) : FALSE; |
gboolean Lnotfix = Lbtnnotfix ? gtk_toggle_button_get_active(Lbtnnotfix) : FALSE; |
370 |
gboolean Leject = FALSE; |
gboolean Leject = FALSE; |
371 |
GtkToggleButton *Ltbtn = NULL; |
GtkToggleButton *Ltbtn = NULL; |
372 |
gint Lmediadetect1 = _MEDIA_CDRW; |
gint Lmediadetect1 = _MEDIA_CDRW; |
373 |
|
Tdriveinfo *Ldevice = NULL; |
374 |
|
gchar Lgravident[_BUF_SIZE]; |
375 |
|
g_snprintf(Lgravident, sizeof(Lgravident)-1, "dst%scombo", Aop); |
376 |
|
|
377 |
Lbufgrav = get_combo_value(Lgraveur); |
Ldevice = get_drive_info(Ag, Lgravident); |
378 |
|
|
379 |
Lbufvitesse = get_combo_value(Lvitesse); |
Lbufvitesse = get_combo_value(Lvitesse); |
380 |
|
|
381 |
if ((Ltbtn = GTK_TOGGLE_BUTTON(sc_grave_get_widgetv(Ag, "%smulti", Aop)))) |
if ((Ltbtn = GTK_TOGGLE_BUTTON(sc_grave_get_widgetv(Ag, "%smulti", Aop)))) |
401 |
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm)); |
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm)); |
402 |
gtk_widget_destroy(Lconfirm); |
gtk_widget_destroy(Lconfirm); |
403 |
if (Lrep == GTK_RESPONSE_NO) { */ |
if (Lrep == GTK_RESPONSE_NO) { */ |
404 |
Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis, &Lmediadetect1, Lbufgrav); |
Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis, &Lmediadetect1, Ldevice); |
405 |
|
|
406 |
g_slist_free(Llmediarequis); |
g_slist_free(Llmediarequis); |
407 |
|
|
428 |
|
|
429 |
Lblank = get_blank_type(Ag, Lmediadetect1); |
Lblank = get_blank_type(Ag, Lmediadetect1); |
430 |
Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s %s %s %s %s %s %s %s '%s' driveropts=burnfree", |
Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s %s %s %s %s %s %s %s '%s' driveropts=burnfree", |
431 |
conf_get_string("cdrecord"), Lbufgrav, *Lbufvitesse != '0' ? "speed=" : "", |
conf_get_string("cdrecord"), DRIVE_DEV(Ldevice), |
432 |
*Lbufvitesse != '0' ? Lbufvitesse : "", |
*Lbufvitesse != '0' ? "speed=" : "", *Lbufvitesse != '0' ? Lbufvitesse : "", |
433 |
Ldosimul ? " -dummy" : "", /* simulation ? */ |
Ldosimul ? " -dummy" : "", /* simulation ? */ |
434 |
Ldosimul || Lnotfix ? " -nofix" : "", /* fixer le cd apres ecriture ? */ |
Ldosimul || Lnotfix ? " -nofix" : "", /* fixer le cd apres ecriture ? */ |
435 |
Lmulti ? " -multi" : "", /* multi-session */ |
Lmulti ? " -multi" : "", /* multi-session */ |
530 |
} |
} |
531 |
|
|
532 |
g_free(Lbufvitesse); |
g_free(Lbufvitesse); |
|
g_free(Lbufgrav); |
|
533 |
|
|
534 |
return Lstatus; |
return Lstatus; |
535 |
} |
} |
737 |
GtkWindow *Lwindow = GTK_WINDOW(sc_grave_get_data(Ag, "window_burn")); |
GtkWindow *Lwindow = GTK_WINDOW(sc_grave_get_data(Ag, "window_burn")); |
738 |
GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ag, "gravetitle")); |
GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ag, "gravetitle")); |
739 |
GtkWidget *Lvitesse = sc_grave_get_widget(Ag, "dstaudiospeed"); |
GtkWidget *Lvitesse = sc_grave_get_widget(Ag, "dstaudiospeed"); |
|
GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstaudiocombo"); |
|
740 |
gchar *Lrepertoire = (gchar *)sc_grave_get_data(Ag, "tmpdir"); |
gchar *Lrepertoire = (gchar *)sc_grave_get_data(Ag, "tmpdir"); |
741 |
gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ag, "operationstatus"); |
gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ag, "operationstatus"); |
742 |
gboolean *Labort = (gboolean *) sc_grave_get_data(Ag, "gabort"); |
gboolean *Labort = (gboolean *) sc_grave_get_data(Ag, "gabort"); |
753 |
|
|
754 |
gint g_out, g_err, Lnbrarg; |
gint g_out, g_err, Lnbrarg; |
755 |
gboolean Lstatus = FALSE; |
gboolean Lstatus = FALSE; |
756 |
gchar *Lbufvitesse, *Lbufgrav; |
gchar *Lbufvitesse; |
757 |
|
Tdriveinfo *Ldevice = get_drive_info(Ag, "dstaudiocombo"); |
758 |
gboolean Lsimul = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "audiosimul"))); |
gboolean Lsimul = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "audiosimul"))); |
759 |
gboolean Lnotfix = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "audionotfix"))); |
gboolean Lnotfix = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "audionotfix"))); |
760 |
gboolean Ldaomode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "audiodao"))); |
gboolean Ldaomode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "audiodao"))); |
770 |
|
|
771 |
Lfileslist = make_audio_fileslist(*Ltodo); |
Lfileslist = make_audio_fileslist(*Ltodo); |
772 |
Lbufvitesse = get_combo_value(Lvitesse); |
Lbufvitesse = get_combo_value(Lvitesse); |
|
Lbufgrav = get_combo_value(Lgraveur); |
|
773 |
|
|
774 |
*Ltodo = (*Ltodo) * ((Lnbrgravure) + (Lsimul ? 1 : 0)); |
*Ltodo = (*Ltodo) * ((Lnbrgravure) + (Lsimul ? 1 : 0)); |
775 |
|
|
792 |
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm)); |
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm)); |
793 |
gtk_widget_destroy(Lconfirm); |
gtk_widget_destroy(Lconfirm); |
794 |
if (Lrep == GTK_RESPONSE_NO) {*/ |
if (Lrep == GTK_RESPONSE_NO) {*/ |
795 |
Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis , &Lmediadetect1, Lbufgrav); |
Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis , &Lmediadetect1, Ldevice); |
796 |
|
|
797 |
g_slist_free(Llmediarequis); |
g_slist_free(Llmediarequis); |
798 |
|
|
815 |
|
|
816 |
Lblank = get_blank_type(Ag, Lmediadetect1); |
Lblank = get_blank_type(Ag, Lmediadetect1); |
817 |
Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s%s %s %s %s %s %s -pad -audio %s driveropts=burnfree", |
Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s%s %s %s %s %s %s -pad -audio %s driveropts=burnfree", |
818 |
conf_get_string("cdrecord"), Lbufgrav, *Lbufvitesse == '0' ? "" : "speed=", *Lbufvitesse == '0' ? "" : Lbufvitesse, |
conf_get_string("cdrecord"), DRIVE_DEV(Ldevice), |
819 |
|
*Lbufvitesse == '0' ? "" : "speed=", *Lbufvitesse == '0' ? "" : Lbufvitesse, |
820 |
Ldosimul ? " -dummy" : "", /* simulation ? */ |
Ldosimul ? " -dummy" : "", /* simulation ? */ |
821 |
Ldosimul || Lnotfix ? " -nofix" : "", /* fixer le cd apres ecriture ? */ |
Ldosimul || Lnotfix ? " -nofix" : "", /* fixer le cd apres ecriture ? */ |
822 |
Ldaomode ? " -dao" : "", /* ecriture en mode DAO, pas de pause entre les pistes */ |
Ldaomode ? " -dao" : "", /* ecriture en mode DAO, pas de pause entre les pistes */ |
912 |
strcpy(Llasttrack, "00"); |
strcpy(Llasttrack, "00"); |
913 |
} |
} |
914 |
|
|
|
g_free(Lbufgrav); |
|
915 |
g_free(Lbufvitesse); |
g_free(Lbufvitesse); |
916 |
g_free(Lfileslist); |
g_free(Lfileslist); |
917 |
|
|
1161 |
return TRUE; |
return TRUE; |
1162 |
} |
} |
1163 |
|
|
1164 |
|
/* retourne les informations sur le disque courant pour par exemple |
1165 |
|
* continuer une gravure multi session */ |
1166 |
gchar *cdrecord_get_mediainfo(Tgrave *Ag, gchar *Adevice, GError **Aerror) |
gchar *cdrecord_get_mediainfo(Tgrave *Ag, gchar *Adevice, GError **Aerror) |
1167 |
{ |
{ |
1168 |
gchar **Lcmd; |
gchar **Lcmd; |
1174 |
gchar Lmsinfo[_BUF_SIZE] = ""; |
gchar Lmsinfo[_BUF_SIZE] = ""; |
1175 |
GIOChannel *Lcom; |
GIOChannel *Lcom; |
1176 |
guint Lcomevent; |
guint Lcomevent; |
1177 |
gint Lnbrarg, g_out; |
gint Lnbrarg, g_out, g_err; |
1178 |
guint Ltimeout; |
guint Ltimeout; |
1179 |
|
|
1180 |
(*Lcont) = 2; |
(*Lcont) = 2; |
1183 |
sc_grave_set_data(Ag, &Lmsinfo, "msinfo"); |
sc_grave_set_data(Ag, &Lmsinfo, "msinfo"); |
1184 |
|
|
1185 |
Lcommandline = g_strdup_printf("%s dev=%s -msinfo", conf_get_string("cdrecord"), Adevice); |
Lcommandline = g_strdup_printf("%s dev=%s -msinfo", conf_get_string("cdrecord"), Adevice); |
1186 |
_DEB("execution [%s]", Lcommandline); |
printf("???\n"); |
1187 |
|
_DEB("1execution [%s]", Lcommandline); |
1188 |
|
printf("???\n"); |
1189 |
Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror); |
Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror); |
1190 |
|
printf("youpi c'est la teuf !\n"); |
1191 |
g_free(Lcommandline); |
g_free(Lcommandline); |
1192 |
if (Lstatus != FALSE) { |
if (Lstatus != FALSE) { |
1193 |
*Lcont = 2; |
*Lcont = 2; |
1194 |
|
|
1195 |
|
printf("youpi c'est la teuf 2!\n"); |
1196 |
Lstatus = g_spawn_async_with_pipes(NULL, Lcmd, NULL, (GSpawnFlags) (G_SPAWN_DO_NOT_REAP_CHILD), |
Lstatus = g_spawn_async_with_pipes(NULL, Lcmd, NULL, (GSpawnFlags) (G_SPAWN_DO_NOT_REAP_CHILD), |
1197 |
NULL, NULL, Lpid, NULL, &g_out, NULL, Aerror); |
NULL, NULL, Lpid, NULL, &g_out, &g_err, Aerror); |
1198 |
|
|
1199 |
Lcom = g_io_channel_unix_new( g_out ); |
Lcom = g_io_channel_unix_new( g_out ); |
1200 |
g_io_channel_set_encoding (Lcom, NULL, NULL); |
g_io_channel_set_encoding (Lcom, NULL, NULL); |
1205 |
while (*Lcont > 0 && *Labort == FALSE) { |
while (*Lcont > 0 && *Labort == FALSE) { |
1206 |
gtk_main_iteration(); |
gtk_main_iteration(); |
1207 |
} |
} |
1208 |
|
exit_prog(*Lpid, FALSE, Aerror, NULL); |
1209 |
|
|
1210 |
|
g_source_remove(Lcomevent); |
1211 |
|
g_io_channel_shutdown(Lcom, FALSE, NULL); |
1212 |
|
g_io_channel_unref(Lcom); |
1213 |
|
g_spawn_close_pid(*Lpid); |
1214 |
} |
} |
1215 |
g_strfreev(Lcmd); |
g_strfreev(Lcmd); |
1216 |
|
|
1217 |
sc_grave_del_data(Ag, "msinfo"); |
sc_grave_del_data(Ag, "msinfo"); |
1218 |
|
|
1219 |
|
printf("youpi c'est la teuf 3!\n"); |
1220 |
/* attente de la fin du timeout */ |
/* attente de la fin du timeout */ |
1221 |
g_source_remove(Ltimeout); |
g_source_remove(Ltimeout); |
1222 |
|
sc_chomp(Lmsinfo); |
1223 |
|
_DEB("msinfo = [%s]\n", Lmsinfo); |
1224 |
|
printf("msinfo = [%s]\n", Lmsinfo); |
1225 |
|
|
1226 |
return *Lmsinfo ? g_strdup(Lmsinfo) : NULL; |
return *Lmsinfo ? g_strdup(Lmsinfo) : NULL; |
1227 |
} |
} |
1228 |
|
|