[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Graveman-cvs] Changes to graveman/current/src/cdrecord.c
From: |
sylvain cresto |
Subject: |
[Graveman-cvs] Changes to graveman/current/src/cdrecord.c |
Date: |
Mon, 28 Mar 2005 19:10:27 -0500 |
Index: graveman/current/src/cdrecord.c
diff -u graveman/current/src/cdrecord.c:1.25
graveman/current/src/cdrecord.c:1.26
--- graveman/current/src/cdrecord.c:1.25 Sun Mar 27 23:51:07 2005
+++ graveman/current/src/cdrecord.c Tue Mar 29 00:10:26 2005
@@ -322,7 +322,7 @@
gchar *Lmodburn = get_combo_value(sc_grave_get_widget(Ag, "datamodburn"));
gchar *Lreturn;
- Lreturn = g_strdup_printf("-%s -%s", Lformat, Lmodburn);
+ Lreturn = g_strdup_printf("-%s %s%s", Lformat, Lmodburn && *Lmodburn ? "-" :
"", Lmodburn);
g_free(Lmodburn); g_free(Lformat);
@@ -341,7 +341,7 @@
/* copie d'une image iso */
gboolean burn_from_image(gchar *Aop, Tgrave *Ag, GError **Aerror) {
gchar **Lcmd;
- gchar *Lcommandline, *Lbufgrav, *Ltxt;
+ gchar *Lcommandline, *Ltxt;
GIOChannel *Lcom, *Lcomerr;
guint Lcomevent, Lcomerrevent;
gint *Lcont = (gint *) sc_grave_get_data(Ag, "cont");
@@ -355,7 +355,6 @@
gint *Lpid = (gint *) sc_grave_get_data(Ag, "pid");
gboolean Ldosimul;
GtkWidget *Lvitesse = sc_grave_get_widgetv(Ag, "dst%sspeed", Aop);
- GtkWidget *Lgraveur = sc_grave_get_widgetv(Ag, "dst%scombo", Aop);
GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ag, "gravetitle"));
GtkToggleButton *Lbtnnotfix = GTK_TOGGLE_BUTTON(sc_grave_get_widgetv(Ag,
"%snotfix", Aop));
gboolean Lnotfix = Lbtnnotfix ? gtk_toggle_button_get_active(Lbtnnotfix) :
FALSE;
@@ -371,8 +370,12 @@
gboolean Leject = FALSE;
GtkToggleButton *Ltbtn = NULL;
gint Lmediadetect1 = _MEDIA_CDRW;
+ Tdriveinfo *Ldevice = NULL;
+ gchar Lgravident[_BUF_SIZE];
+ g_snprintf(Lgravident, sizeof(Lgravident)-1, "dst%scombo", Aop);
- Lbufgrav = get_combo_value(Lgraveur);
+ Ldevice = get_drive_info(Ag, Lgravident);
+
Lbufvitesse = get_combo_value(Lvitesse);
if ((Ltbtn = GTK_TOGGLE_BUTTON(sc_grave_get_widgetv(Ag, "%smulti", Aop))))
@@ -398,7 +401,7 @@
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
gtk_widget_destroy(Lconfirm);
if (Lrep == GTK_RESPONSE_NO) { */
- Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis,
&Lmediadetect1, Lbufgrav);
+ Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis,
&Lmediadetect1, Ldevice);
g_slist_free(Llmediarequis);
@@ -425,8 +428,8 @@
Lblank = get_blank_type(Ag, Lmediadetect1);
Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s %s %s %s
%s %s %s %s '%s' driveropts=burnfree",
- conf_get_string("cdrecord"), Lbufgrav, *Lbufvitesse != '0' ? "speed="
: "",
- *Lbufvitesse != '0' ? Lbufvitesse : "",
+ conf_get_string("cdrecord"), DRIVE_DEV(Ldevice),
+ *Lbufvitesse != '0' ? "speed=" : "", *Lbufvitesse != '0' ? Lbufvitesse
: "",
Ldosimul ? " -dummy" : "", /* simulation ? */
Ldosimul || Lnotfix ? " -nofix" : "", /* fixer le cd apres ecriture ?
*/
Lmulti ? " -multi" : "", /* multi-session */
@@ -527,7 +530,6 @@
}
g_free(Lbufvitesse);
- g_free(Lbufgrav);
return Lstatus;
}
@@ -735,7 +737,6 @@
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, "dstaudiospeed");
- GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstaudiocombo");
gchar *Lrepertoire = (gchar *)sc_grave_get_data(Ag, "tmpdir");
gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ag,
"operationstatus");
gboolean *Labort = (gboolean *) sc_grave_get_data(Ag, "gabort");
@@ -752,7 +753,8 @@
gint g_out, g_err, Lnbrarg;
gboolean Lstatus = FALSE;
- gchar *Lbufvitesse, *Lbufgrav;
+ gchar *Lbufvitesse;
+ Tdriveinfo *Ldevice = get_drive_info(Ag, "dstaudiocombo");
gboolean Lsimul =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag,
"audiosimul")));
gboolean Lnotfix =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag,
"audionotfix")));
gboolean Ldaomode =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag,
"audiodao")));
@@ -768,7 +770,6 @@
Lfileslist = make_audio_fileslist(*Ltodo);
Lbufvitesse = get_combo_value(Lvitesse);
- Lbufgrav = get_combo_value(Lgraveur);
*Ltodo = (*Ltodo) * ((Lnbrgravure) + (Lsimul ? 1 : 0));
@@ -791,7 +792,7 @@
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
gtk_widget_destroy(Lconfirm);
if (Lrep == GTK_RESPONSE_NO) {*/
- Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis ,
&Lmediadetect1, Lbufgrav);
+ Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis ,
&Lmediadetect1, Ldevice);
g_slist_free(Llmediarequis);
@@ -814,7 +815,8 @@
Lblank = get_blank_type(Ag, Lmediadetect1);
Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s%s %s %s
%s %s %s -pad -audio %s driveropts=burnfree",
- conf_get_string("cdrecord"), Lbufgrav, *Lbufvitesse == '0' ? "" :
"speed=", *Lbufvitesse == '0' ? "" : Lbufvitesse,
+ conf_get_string("cdrecord"), DRIVE_DEV(Ldevice),
+ *Lbufvitesse == '0' ? "" : "speed=", *Lbufvitesse == '0' ? "" :
Lbufvitesse,
Ldosimul ? " -dummy" : "", /* simulation ? */
Ldosimul || Lnotfix ? " -nofix" : "", /* fixer le cd apres ecriture ?
*/
Ldaomode ? " -dao" : "", /* ecriture en mode DAO, pas de pause entre
les pistes */
@@ -910,7 +912,6 @@
strcpy(Llasttrack, "00");
}
- g_free(Lbufgrav);
g_free(Lbufvitesse);
g_free(Lfileslist);
@@ -1160,6 +1161,8 @@
return TRUE;
}
+/* retourne les informations sur le disque courant pour par exemple
+ * continuer une gravure multi session */
gchar *cdrecord_get_mediainfo(Tgrave *Ag, gchar *Adevice, GError **Aerror)
{
gchar **Lcmd;
@@ -1171,7 +1174,7 @@
gchar Lmsinfo[_BUF_SIZE] = "";
GIOChannel *Lcom;
guint Lcomevent;
- gint Lnbrarg, g_out;
+ gint Lnbrarg, g_out, g_err;
guint Ltimeout;
(*Lcont) = 2;
@@ -1180,14 +1183,18 @@
sc_grave_set_data(Ag, &Lmsinfo, "msinfo");
Lcommandline = g_strdup_printf("%s dev=%s -msinfo",
conf_get_string("cdrecord"), Adevice);
-_DEB("execution [%s]", Lcommandline);
+printf("???\n");
+_DEB("1execution [%s]", Lcommandline);
+printf("???\n");
Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror);
+ printf("youpi c'est la teuf !\n");
g_free(Lcommandline);
if (Lstatus != FALSE) {
*Lcont = 2;
+ printf("youpi c'est la teuf 2!\n");
Lstatus = g_spawn_async_with_pipes(NULL, Lcmd, NULL, (GSpawnFlags)
(G_SPAWN_DO_NOT_REAP_CHILD),
- NULL, NULL, Lpid, NULL, &g_out, NULL, Aerror);
+ NULL, NULL, Lpid, NULL, &g_out, &g_err, Aerror);
Lcom = g_io_channel_unix_new( g_out );
g_io_channel_set_encoding (Lcom, NULL, NULL);
@@ -1198,14 +1205,24 @@
while (*Lcont > 0 && *Labort == FALSE) {
gtk_main_iteration();
}
+ exit_prog(*Lpid, FALSE, Aerror, NULL);
+
+ g_source_remove(Lcomevent);
+ g_io_channel_shutdown(Lcom, FALSE, NULL);
+ g_io_channel_unref(Lcom);
+ g_spawn_close_pid(*Lpid);
}
g_strfreev(Lcmd);
sc_grave_del_data(Ag, "msinfo");
+ printf("youpi c'est la teuf 3!\n");
/* attente de la fin du timeout */
g_source_remove(Ltimeout);
-
+ sc_chomp(Lmsinfo);
+ _DEB("msinfo = [%s]\n", Lmsinfo);
+ printf("msinfo = [%s]\n", Lmsinfo);
+
return *Lmsinfo ? g_strdup(Lmsinfo) : NULL;
}