162 |
GtkEntry *Lgraveuriso = GTK_ENTRY(sc_grave_get_widget(Ag, "dstcopybtnvalue")); |
GtkEntry *Lgraveuriso = GTK_ENTRY(sc_grave_get_widget(Ag, "dstcopybtnvalue")); |
163 |
gchar *Lsrc = get_combo_value(Llecteur); |
gchar *Lsrc = get_combo_value(Llecteur); |
164 |
gchar *Ldst = get_combo_value(Lgraveur); |
gchar *Ldst = get_combo_value(Lgraveur); |
|
gchar *Liso = NULL; |
|
165 |
gchar *Ltxt; |
gchar *Ltxt; |
166 |
gboolean Lstatus; |
gboolean Lstatus; |
167 |
gboolean Loperationstatus = FALSE; |
gboolean Loperationstatus = FALSE; |
168 |
gint Ltodo = gtk_spin_button_get_value(GTK_SPIN_BUTTON(sc_grave_get_widget(Ag, "nbrcdcopy"))); |
gint Ltodo = gtk_spin_button_get_value(GTK_SPIN_BUTTON(sc_grave_get_widget(Ag, "nbrcdcopy"))); |
169 |
gint Ldone = 1; |
gint Ldone = 1; |
170 |
gchar *Ltmpdir = NULL; |
gchar Ltmpdir[MAXPATHLEN]=""; |
171 |
|
gchar Liso[MAXPATHLEN]=""; |
172 |
const gchar *Lptriso; |
const gchar *Lptriso; |
173 |
_DEB("DEBUT COPIE !! 0"); |
_DEB("DEBUT COPIE !! 0"); |
174 |
|
|
188 |
if (!strcmp(Lsrc, "iso")) { |
if (!strcmp(Lsrc, "iso")) { |
189 |
/* copie d'une image vers un cd, on utilise cdrecord */ |
/* copie d'une image vers un cd, on utilise cdrecord */ |
190 |
Lptriso = gtk_entry_get_text(Llecteuriso); |
Lptriso = gtk_entry_get_text(Llecteuriso); |
191 |
Liso = _FILENAME(Lptriso); |
Ltxt = _FILENAME(Lptriso); |
192 |
|
g_strlcpy(Liso, Ltxt, MAXPATHLEN-1); |
193 |
|
g_free(Ltxt); |
194 |
|
|
195 |
/* on test si on a bien acces au fichier iso source */ |
/* on test si on a bien acces au fichier iso source */ |
196 |
if (!*Liso) { |
if (!*Liso) { |
212 |
/* copie d'un cd vers une image, on utilise readcd */ |
/* copie d'un cd vers une image, on utilise readcd */ |
213 |
struct stat Lfstat; |
struct stat Lfstat; |
214 |
Lptriso = gtk_entry_get_text(Lgraveuriso); |
Lptriso = gtk_entry_get_text(Lgraveuriso); |
215 |
Liso = _FILENAME(Lptriso); |
Ltxt = _FILENAME(Lptriso); |
216 |
|
g_strlcpy(Liso, Ltxt, MAXPATHLEN-1); |
217 |
|
g_free(Ltxt); |
218 |
/* si le fichier existe deja on demande confirmatation avant de l'ecraser */ |
/* si le fichier existe deja on demande confirmatation avant de l'ecraser */ |
219 |
Ltxt = NULL; |
Ltxt = NULL; |
220 |
if (!*Liso) { |
if (!*Liso) { |
237 |
g_free(Liso); |
g_free(Liso); |
238 |
} |
} |
239 |
} else { /* copie d'un cd a un autre, on utilise cdrdao */ |
} else { /* copie d'un cd a un autre, on utilise cdrdao */ |
|
gchar *Ltmpdir; |
|
240 |
/* on ajoute une tache pour la lecture, |
/* on ajoute une tache pour la lecture, |
241 |
* si il y a simulation alors ajoute une tache a faire */ |
* si il y a simulation alors ajoute une tache a faire */ |
242 |
// Ltodo = Ltodo + 1 + (Lsimul == TRUE ? 1 : 0); |
// Ltodo = Ltodo + 1 + (Lsimul == TRUE ? 1 : 0); |
245 |
* on passe quand meme vers une image temporraire pour le moment, |
* on passe quand meme vers une image temporraire pour le moment, |
246 |
* c'est trop le bordel sinon ! */ |
* c'est trop le bordel sinon ! */ |
247 |
_DEB("DEBUT COPIE !!"); |
_DEB("DEBUT COPIE !!"); |
248 |
Ltmpdir = g_strdup_printf("%s/%s", conf_get_string_def("tmpdir", "/tmp"), "gravemanXXXXXX"); |
g_snprintf(Ltmpdir, MAXPATHLEN-1, "%s/%s", conf_get_string_def("tmpdir", "/tmp"), "gravemanXXXXXX"); |
249 |
|
|
250 |
if (!mkdtemp(Ltmpdir)) { |
if (!mkdtemp(Ltmpdir)) { |
251 |
g_set_error(Aerror, G_FILE_ERROR, g_file_error_from_errno(errno), "%s %s: %s", |
g_set_error(Aerror, G_FILE_ERROR, g_file_error_from_errno(errno), "%s %s: %s", |
252 |
_("Cannot create directory"), Ltmpdir, g_strerror(errno)); |
_("Cannot create directory"), Ltmpdir, g_strerror(errno)); |
253 |
|
*Ltmpdir = 0; |
254 |
Lstatus = FALSE; |
Lstatus = FALSE; |
255 |
} else { |
} else { |
256 |
Ltmpdir = g_realloc(Ltmpdir, strlen(Ltmpdir)+strlen("/tmpiso.bin")+1); |
g_snprintf(Liso, MAXPATHLEN-1, "%s/tmpiso.bin", Ltmpdir); |
|
strcat(Ltmpdir, "/tmpiso.bin"); |
|
257 |
|
|
258 |
sc_grave_set_data(Ag, &Ltmpdir, "iso"); /* image iso */ |
sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */ |
259 |
|
|
260 |
/* copie du cd avec monsieur cdrdao */ |
/* copie du cd avec monsieur cdrdao */ |
261 |
Lstatus = copycd(Ag, Aerror); |
Lstatus = copycd(Ag, Aerror); |
292 |
Lstatus = burn_from_image("copy", Ag, Aerror); |
Lstatus = burn_from_image("copy", Ag, Aerror); |
293 |
} |
} |
294 |
} */ |
} */ |
|
if ((Ltxt=strrchr(Ltmpdir, '/'))) *Ltxt=0; |
|
|
|
|
|
deltempdir(Ltmpdir); |
|
|
|
|
295 |
sc_grave_del_data(Ag, "iso"); |
sc_grave_del_data(Ag, "iso"); |
296 |
|
|
297 |
|
deltempdir(Ltmpdir); |
298 |
|
*Ltmpdir = 0; |
299 |
} |
} |
|
g_free(Ltmpdir); |
|
300 |
} |
} |
301 |
|
|
302 |
|
sc_grave_del_data(Ag, "todo"); |
303 |
|
sc_grave_del_data(Ag, "done"); |
304 |
|
sc_grave_del_data(Ag, "operationstatus"); |
305 |
|
sc_grave_del_data(Ag, "tmpdir"); |
306 |
|
sc_grave_del_data(Ag, "gerror"); |
307 |
|
|
308 |
g_free(Ldst); |
g_free(Ldst); |
309 |
g_free(Lsrc); |
g_free(Lsrc); |
310 |
return Lstatus; |
return Lstatus; |
320 |
gboolean *Labort = sc_grave_get_data(Ag, "gabort"); |
gboolean *Labort = sc_grave_get_data(Ag, "gabort"); |
321 |
gint Ldone = 1; |
gint Ldone = 1; |
322 |
gchar *Ldst = get_combo_value(Lgraveur); |
gchar *Ldst = get_combo_value(Lgraveur); |
323 |
gchar *Ltmpdir = NULL; |
gchar Ltmpdir[MAXPATHLEN] = ""; |
324 |
gchar *Lextrapara = NULL; |
gchar *Lextrapara = NULL; |
325 |
gchar *Liso = NULL; |
gchar Liso[MAXPATHLEN] = ""; |
326 |
|
gchar *Ltmp; |
327 |
gboolean Loperationstatus = FALSE; |
gboolean Loperationstatus = FALSE; |
328 |
gboolean Lstatus; |
gboolean Lstatus; |
329 |
|
|
336 |
/* on retourne dans ltmp le nom du repertoire temporraire utilise pour |
/* on retourne dans ltmp le nom du repertoire temporraire utilise pour |
337 |
* l'operation */ |
* l'operation */ |
338 |
Lstatus = preparedata(Ag, Aerror); |
Lstatus = preparedata(Ag, Aerror); |
339 |
_DEB("ici LDST => %s\n", Ldst); |
|
340 |
|
_DEB("ici LDST => %s\n", Ldst); |
341 |
if (strcmp(Ldst, "iso")) { |
if (strcmp(Ldst, "iso")) { |
342 |
Liso = g_strdup_printf("%s.iso", Ltmpdir); |
g_snprintf(Liso, MAXPATHLEN-1, "%s.iso", Ltmpdir); |
343 |
Ltodo=Ltodo+(Lsimul ? 2 : 1); /* + 1 pour l'ecriture de l'image iso et 1 pour la simulation */ |
Ltodo=Ltodo+(Lsimul ? 2 : 1); /* + 1 pour l'ecriture de l'image iso et 1 pour la simulation */ |
344 |
} else { |
} else { |
345 |
Liso = _FILENAME(gtk_entry_get_text(Lgraveuriso)); |
Ltmp = _FILENAME(gtk_entry_get_text(Lgraveuriso)); |
346 |
|
g_strlcpy(Liso, Ltmp, MAXPATHLEN-1); |
347 |
|
g_free(Ltmp); |
348 |
Ltodo = 1; |
Ltodo = 1; |
349 |
} |
} |
350 |
|
|
351 |
sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */ |
sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */ |
352 |
if (Lstatus && *Labort==FALSE) { |
if (Lstatus && *Labort==FALSE) { |
353 |
Lextrapara = make_image_getextrapara(Ag, "data"); |
Lextrapara = make_image_getextrapara(Ag, "data"); |
354 |
sc_grave_set_data(Ag, &Lextrapara, "extrapara"); /* parametres supplementaires */ |
sc_grave_set_data(Ag, Lextrapara, "extrapara"); /* parametres supplementaires */ |
355 |
|
|
356 |
Lstatus = make_iso(Ag, Aerror); |
Lstatus = make_iso(Ag, Aerror); |
357 |
|
|
358 |
sc_grave_del_data(Ag, "extrapara"); |
sc_grave_del_data(Ag, "extrapara"); |
359 |
g_free(Lextrapara); |
g_free(Lextrapara); |
360 |
if (strcmp(Ldst, "iso") && Lstatus && *Labort==FALSE) { |
if (strcmp(Ldst, "iso") && Lstatus && *Labort==FALSE) { |
361 |
/* ici il faut appeler cdrecord ! */ |
/* ici il faut appeler cdrecord ! */ |
362 |
Lextrapara = burn_data_getextrapara(Ag); |
Lextrapara = burn_data_getextrapara(Ag); |
363 |
sc_grave_set_data(Ag, &Lextrapara, "extrapara"); /* parametres supplementaires */ |
sc_grave_set_data(Ag, Lextrapara, "extrapara"); /* parametres supplementaires */ |
364 |
Lstatus = burn_from_image("data", Ag, Aerror); |
Lstatus = burn_from_image("data", Ag, Aerror); |
365 |
sc_grave_del_data(Ag, "extrapara"); |
sc_grave_del_data(Ag, "extrapara"); |
366 |
g_free(Lextrapara); |
g_free(Lextrapara); |
369 |
|
|
370 |
deltempdir(Ltmpdir); |
deltempdir(Ltmpdir); |
371 |
|
|
372 |
if (strcmp(Ldst, "iso") && Liso |
if (strcmp(Ldst, "iso") && *Liso |
373 |
&& g_file_test(Liso, G_FILE_TEST_EXISTS + G_FILE_TEST_IS_REGULAR)==TRUE) { |
&& g_file_test(Liso, G_FILE_TEST_EXISTS + G_FILE_TEST_IS_REGULAR)==TRUE) { |
374 |
unlink(Liso); |
unlink(Liso); |
375 |
} |
} |
|
g_free(Liso); |
|
376 |
|
|
377 |
sc_grave_del_data(Ag, "todo"); |
sc_grave_del_data(Ag, "todo"); |
378 |
sc_grave_del_data(Ag, "done"); |
sc_grave_del_data(Ag, "done"); |
379 |
sc_grave_del_data(Ag, "tmpdir"); g_free(Ltmpdir); |
sc_grave_del_data(Ag, "tmpdir"); |
380 |
sc_grave_del_data(Ag, "operationstatus"); |
sc_grave_del_data(Ag, "operationstatus"); |
381 |
sc_grave_del_data(Ag, "gerror"); |
sc_grave_del_data(Ag, "gerror"); |
382 |
sc_grave_del_data(Ag, "iso"); |
sc_grave_del_data(Ag, "iso"); |
391 |
|
|
392 |
gint Ltodo = gtk_tree_model_iter_n_children(Ltreemodel, NULL); |
gint Ltodo = gtk_tree_model_iter_n_children(Ltreemodel, NULL); |
393 |
gint Ldone = 0; |
gint Ldone = 0; |
394 |
gchar *Ltmpdir = NULL; |
gchar Ltmpdir[MAXPATHLEN] = ""; |
395 |
gboolean Lstatus, Loperationstatus = FALSE; |
gboolean Lstatus, Loperationstatus = FALSE; |
396 |
|
|
397 |
sc_grave_set_data(Ag, &Ltodo, "todo"); /* a faire */ |
sc_grave_set_data(Ag, &Ltodo, "todo"); /* a faire */ |
408 |
Lstatus = gravepiste(Ag, Aerror); |
Lstatus = gravepiste(Ag, Aerror); |
409 |
} |
} |
410 |
|
|
411 |
if (Ltmpdir) { |
if (*Ltmpdir) { |
412 |
_DEB("on free tmpdir !"); |
_DEB("on free tmpdir !"); |
413 |
deltempdir(Ltmpdir); |
deltempdir(Ltmpdir); |
|
|
|
|
g_free(Ltmpdir); |
|
414 |
} |
} |
415 |
|
|
416 |
|
sc_grave_del_data(Ag, "todo"); |
417 |
|
sc_grave_del_data(Ag, "done"); |
418 |
|
sc_grave_del_data(Ag, "tmpdir"); |
419 |
|
sc_grave_del_data(Ag, "operationstatus"); |
420 |
|
sc_grave_del_data(Ag, "gerror"); |
421 |
|
|
422 |
return Lstatus ? TRUE : FALSE; |
return Lstatus ? TRUE : FALSE; |
423 |
} |
} |
424 |
|
|
501 |
GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstdvddatacombo"); |
GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstdvddatacombo"); |
502 |
gint Ldone = 1; |
gint Ldone = 1; |
503 |
gchar *Ldst = get_combo_value(Lgraveur); |
gchar *Ldst = get_combo_value(Lgraveur); |
504 |
gchar *Ltmpdir = NULL; |
gchar Ltmpdir[MAXPATHLEN] = ""; |
505 |
gchar *Lextrapara = NULL; |
gchar *Lextrapara = NULL; |
506 |
gchar *Liso = NULL; |
gchar *Ltmp; |
507 |
|
gchar Liso[MAXPATHLEN] = ""; |
508 |
gboolean Loperationstatus = FALSE; |
gboolean Loperationstatus = FALSE; |
509 |
gboolean Lstatus; |
gboolean Lstatus; |
510 |
|
|
520 |
_DEB("ici LDST => %s\n", Ldst); |
_DEB("ici LDST => %s\n", Ldst); |
521 |
|
|
522 |
Lextrapara = make_image_getextrapara(Ag, "dvddata"); |
Lextrapara = make_image_getextrapara(Ag, "dvddata"); |
523 |
sc_grave_set_data(Ag, &Lextrapara, "extradata"); /* parametres supplementaires */ |
sc_grave_set_data(Ag, Lextrapara, "extradata"); /* parametres supplementaires */ |
524 |
|
|
525 |
if (strcmp(Ldst, "iso")) { |
if (strcmp(Ldst, "iso")) { |
526 |
if (Lsimul) Ltodo++; /* 1 pour la simulation */ |
if (Lsimul) Ltodo++; /* 1 pour la simulation */ |
527 |
|
|
528 |
Lstatus = burn_dvd(Ag, Aerror); |
Lstatus = burn_dvd(Ag, Aerror); |
529 |
|
|
530 |
} else { |
} else { |
531 |
Liso = _FILENAME(gtk_entry_get_text(Lgraveuriso)); |
Ltmp = _FILENAME(gtk_entry_get_text(Lgraveuriso)); |
532 |
|
g_strlcpy(Liso, Ltmp, MAXPATHLEN-1); |
533 |
|
g_free(Ltmp); |
534 |
Ltodo = 1; |
Ltodo = 1; |
535 |
sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */ |
sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */ |
536 |
Lstatus = make_iso(Ag, Aerror); |
Lstatus = make_iso(Ag, Aerror); |
537 |
sc_grave_del_data(Ag, "iso"); |
sc_grave_del_data(Ag, "iso"); |
|
g_free(Liso); |
|
538 |
} |
} |
539 |
sc_grave_del_data(Ag, "extrapara"); |
sc_grave_del_data(Ag, "extrapara"); |
540 |
g_free(Lextrapara); |
g_free(Lextrapara); |
543 |
|
|
544 |
sc_grave_del_data(Ag, "todo"); |
sc_grave_del_data(Ag, "todo"); |
545 |
sc_grave_del_data(Ag, "done"); |
sc_grave_del_data(Ag, "done"); |
546 |
sc_grave_del_data(Ag, "tmpdir"); g_free(Ltmpdir); |
sc_grave_del_data(Ag, "tmpdir"); |
547 |
sc_grave_del_data(Ag, "operationstatus"); |
sc_grave_del_data(Ag, "operationstatus"); |
548 |
sc_grave_del_data(Ag, "gerror"); |
sc_grave_del_data(Ag, "gerror"); |
549 |
|
|