53 |
} |
} |
54 |
|
|
55 |
/* recherche les parametres supplementaires a passer a mkisofs */ |
/* recherche les parametres supplementaires a passer a mkisofs */ |
56 |
gchar *make_image_getextrapara(GHashTable *Ahash, gchar *Aop) |
gchar *make_image_getextrapara(Tgrave *Ag, gchar *Aop) |
57 |
{ |
{ |
58 |
const gchar *Ldatavoli = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%svoli", Aop))); |
const gchar *Ldatavoli = gtk_entry_get_text(GTK_ENTRY(sc_grave_get_widgetv(Ag, "%svoli", Aop))); |
59 |
const gchar *Ldatapubl = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%spubl", Aop))); |
const gchar *Ldatapubl = gtk_entry_get_text(GTK_ENTRY(sc_grave_get_widgetv(Ag, "%spubl", Aop))); |
60 |
const gchar *Ldataprep = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%sprep", Aop))); |
const gchar *Ldataprep = gtk_entry_get_text(GTK_ENTRY(sc_grave_get_widgetv(Ag, "%sprep", Aop))); |
61 |
const gchar *Ldatabibl = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%sbibl", Aop))); |
const gchar *Ldatabibl = gtk_entry_get_text(GTK_ENTRY(sc_grave_get_widgetv(Ag, "%sbibl", Aop))); |
62 |
const gchar *Ldatacopy = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%scopy", Aop))); |
const gchar *Ldatacopy = gtk_entry_get_text(GTK_ENTRY(sc_grave_get_widgetv(Ag, "%scopy", Aop))); |
63 |
const gchar *Ldataabst = gtk_entry_get_text(GTK_ENTRY(sc_hash_table_lookupv(Ahash, "%sabst", Aop))); |
const gchar *Ldataabst = gtk_entry_get_text(GTK_ENTRY(sc_grave_get_widgetv(Ag, "%sabst", Aop))); |
64 |
gchar *Lreturn; |
gchar *Lreturn; |
65 |
gchar *Lextra = NULL; |
gchar *Lextra = NULL; |
66 |
GtkTextIter Lstart, Lend; |
GtkTextIter Lstart, Lend; |
67 |
GtkTextBuffer *Lbufappi = gtk_text_view_get_buffer (GTK_TEXT_VIEW (sc_hash_table_lookupv(Ahash, "%sappi", Aop))); |
GtkTextBuffer *Lbufappi = gtk_text_view_get_buffer (GTK_TEXT_VIEW (sc_grave_get_widgetv(Ag, "%sappi", Aop))); |
68 |
char *Ldataappi, *Ltmpappi; |
char *Ldataappi, *Ltmpappi; |
69 |
gtk_text_buffer_get_bounds (Lbufappi, &Lstart, &Lend); |
gtk_text_buffer_get_bounds (Lbufappi, &Lstart, &Lend); |
70 |
Ltmpappi = gtk_text_iter_get_text (&Lstart, &Lend); |
Ltmpappi = gtk_text_iter_get_text (&Lstart, &Lend); |
72 |
g_free(Ltmpappi); |
g_free(Ltmpappi); |
73 |
|
|
74 |
if (!strcmp(Aop, "data")) { /* data cd */ |
if (!strcmp(Aop, "data")) { /* data cd */ |
75 |
gboolean Lrockridge = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ahash, "datarockridge"))); |
gboolean Lrockridge = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "datarockridge"))); |
76 |
gboolean Ljoliet = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ahash, "datajoliet"))); |
gboolean Ljoliet = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "datajoliet"))); |
77 |
gchar *Lisolevel = get_combo_value(g_hash_table_lookup(Ahash, "dataisolevel")); |
gchar *Lisolevel = get_combo_value(sc_grave_get_widget(Ag, "dataisolevel")); |
78 |
|
|
79 |
Lextra = g_strdup_printf("%s %s -iso-level %s", Lrockridge == TRUE ? "-r" : "", Ljoliet ? "-J" : "", Lisolevel); |
Lextra = g_strdup_printf("%s %s -iso-level %s", Lrockridge == TRUE ? "-r" : "", Ljoliet ? "-J" : "", Lisolevel); |
80 |
g_free(Lisolevel); |
g_free(Lisolevel); |
94 |
gboolean mkisofs_makeimage_callback(GIOChannel *Astd, GIOCondition Acond, gpointer Adata) |
gboolean mkisofs_makeimage_callback(GIOChannel *Astd, GIOCondition Acond, gpointer Adata) |
95 |
{ |
{ |
96 |
GIOStatus Lstatus; |
GIOStatus Lstatus; |
97 |
GHashTable *Lhash = (GHashTable *)Adata; |
Tgrave *Lg = (Tgrave *)Adata; |
98 |
gint *Lcont = (gint *) g_hash_table_lookup(Lhash, "cont"); /* on traite encore des donnees ? */ |
gint *Lcont = (gint *) sc_grave_get_data(Lg, "cont"); /* on traite encore des donnees ? */ |
99 |
GError **Lerreur = (GError **) g_hash_table_lookup(Lhash, "gerror"); /* pointeur erreur */ |
GError **Lerreur = (GError **) sc_grave_get_data(Lg, "gerror"); /* pointeur erreur */ |
100 |
gint *Ltodo = (gint *) g_hash_table_lookup(Lhash, "todo"); /* nombre de piste a traiter */ |
gint *Ltodo = (gint *) sc_grave_get_data(Lg, "todo"); /* nombre de piste a traiter */ |
101 |
gint *Ldone = (gint *) g_hash_table_lookup(Lhash, "done"); /* nombre de piste deja traite */ |
gint *Ldone = (gint *) sc_grave_get_data(Lg, "done"); /* nombre de piste deja traite */ |
102 |
GtkProgressBar *Lprogressbar = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "pb_total")); |
GtkProgressBar *Lprogressbar = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "pb_total")); |
103 |
GtkProgressBar *Lprogressbar2 = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "pb_step")); |
GtkProgressBar *Lprogressbar2 = GTK_PROGRESS_BAR(sc_grave_get_widget(Lg, "pb_step")); |
104 |
gchar *Lbuffer = NULL, *f, *Ltxt; |
gchar *Lbuffer = NULL, *f, *Ltxt; |
105 |
gdouble Lpct, Ltava; |
gdouble Lpct, Ltava; |
106 |
gchar Lsbuf[100], Lsbuf2[100]; |
gchar Lsbuf[100], Lsbuf2[100]; |
140 |
g_free(Ltxt); |
g_free(Ltxt); |
141 |
return FALSE; |
return FALSE; |
142 |
} else if (!strncmp(Lbuffer, MKISOFS_OK, strlen(MKISOFS_OK))) { |
} else if (!strncmp(Lbuffer, MKISOFS_OK, strlen(MKISOFS_OK))) { |
143 |
gboolean *Lopstatus = (gboolean *) g_hash_table_lookup(Lhash, "operationstatus"); |
gboolean *Lopstatus = (gboolean *) sc_grave_get_data(Lg, "operationstatus"); |
144 |
/* ok tout s'est bien passe ! */ |
/* ok tout s'est bien passe ! */ |
145 |
gtk_progress_bar_set_fraction(Lprogressbar2, 1); |
gtk_progress_bar_set_fraction(Lprogressbar2, 1); |
146 |
gtk_progress_bar_set_text(Lprogressbar2, "100%"); |
gtk_progress_bar_set_text(Lprogressbar2, "100%"); |
156 |
} |
} |
157 |
|
|
158 |
/* creation image iso */ |
/* creation image iso */ |
159 |
gboolean make_iso(GHashTable *Ahash, GError **Aerror) |
gboolean make_iso(Tgrave *Ag, GError **Aerror) |
160 |
{ |
{ |
161 |
gboolean Lstatus = FALSE; |
gboolean Lstatus = FALSE; |
162 |
gchar **Lcmd; |
gchar **Lcmd; |
163 |
gchar *Lcommandline; |
gchar *Lcommandline; |
164 |
GIOChannel *Lcomerr, *Lcom; |
GIOChannel *Lcomerr, *Lcom; |
165 |
guint Lcomerrevent, Lcomevent; |
guint Lcomerrevent, Lcomevent; |
166 |
gint *Lcont = (gint *)g_hash_table_lookup(Ahash, "cont"); |
gint *Lcont = (gint *)sc_grave_get_data(Ag, "cont"); |
167 |
gboolean *Labort = (gboolean *) g_hash_table_lookup(Ahash, "gabort"); |
gboolean *Labort = (gboolean *) sc_grave_get_data(Ag, "gabort"); |
168 |
gchar **Ltmpdir = (gchar **)g_hash_table_lookup(Ahash, "tmpdir"); |
gchar **Ltmpdir = (gchar **)sc_grave_get_data(Ag, "tmpdir"); |
169 |
gchar **Lextrapara = (gchar **)g_hash_table_lookup(Ahash, "extrapara"); |
gchar **Lextrapara = (gchar **)sc_grave_get_data(Ag, "extrapara"); |
170 |
gint *Lpid = (gint *) g_hash_table_lookup(Ahash, "pid"); |
gint *Lpid = (gint *) sc_grave_get_data(Ag, "pid"); |
171 |
gint *Ldone = (gint *)g_hash_table_lookup(Ahash, "done"); /* fais */ |
gint *Ldone = (gint *)sc_grave_get_data(Ag, "done"); /* fais */ |
172 |
gchar **Liso = (gchar **)g_hash_table_lookup(Ahash, "iso"); /* image iso */ |
gchar **Liso = (gchar **)sc_grave_get_data(Ag, "iso"); /* image iso */ |
173 |
gboolean *Loperationstatus = (gboolean *)g_hash_table_lookup(Ahash, "operationstatus"); |
gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ag, "operationstatus"); |
174 |
GtkLabel *Ltitle = GTK_LABEL(g_hash_table_lookup(Ahash, "gravetitle")); |
GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_widget(Ag, "gravetitle")); |
175 |
gint g_out, g_err, Lnbrarg; |
gint g_out, g_err, Lnbrarg; |
176 |
|
|
177 |
*Loperationstatus = FALSE; |
*Loperationstatus = FALSE; |
202 |
g_io_channel_set_encoding (Lcom, NULL, NULL); |
g_io_channel_set_encoding (Lcom, NULL, NULL); |
203 |
g_io_channel_set_flags( Lcom, G_IO_FLAG_NONBLOCK, NULL ); |
g_io_channel_set_flags( Lcom, G_IO_FLAG_NONBLOCK, NULL ); |
204 |
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), |
205 |
mkisofs_makeimage_callback, Ahash); |
mkisofs_makeimage_callback, Ag); |
206 |
|
|
207 |
Lcomerr = g_io_channel_unix_new( g_err ); |
Lcomerr = g_io_channel_unix_new( g_err ); |
208 |
g_io_channel_set_encoding (Lcomerr, NULL, NULL); |
g_io_channel_set_encoding (Lcomerr, NULL, NULL); |
209 |
g_io_channel_set_flags( Lcomerr, G_IO_FLAG_NONBLOCK, NULL ); |
g_io_channel_set_flags( Lcomerr, G_IO_FLAG_NONBLOCK, NULL ); |
210 |
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), |
211 |
mkisofs_makeimage_callback, Ahash); |
mkisofs_makeimage_callback, Ag); |
212 |
_DEB("debut !!"); |
_DEB("debut !!"); |
213 |
while (*Lcont > 0 && *Labort == FALSE) { |
while (*Lcont > 0 && *Labort == FALSE) { |
214 |
gtk_main_iteration(); |
gtk_main_iteration(); |