/[graveman]/graveman/current/src/matos.c
ViewVC logotype

Diff of /graveman/current/src/matos.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.14 by scresto, Sat Feb 19 17:49:08 2005 UTC revision 1.15 by scresto, Sun Feb 20 17:45:02 2005 UTC
# Line 162  gboolean burn_copy(Tgrave *Ag, GError ** Line 162  gboolean burn_copy(Tgrave *Ag, GError **
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    
# Line 188  _DEB("DEBUT COPIE !! 0"); Line 188  _DEB("DEBUT COPIE !! 0");
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) {
# Line 210  _DEB("DEBUT COPIE !! 0"); Line 212  _DEB("DEBUT COPIE !! 0");
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) {
# Line 233  _DEB("DEBUT COPIE !! 0"); Line 237  _DEB("DEBUT COPIE !! 0");
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);
# Line 242  _DEB("DEBUT COPIE !! 0"); Line 245  _DEB("DEBUT COPIE !! 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);
# Line 289  _DEB("DEBUT COPIE !!"); Line 292  _DEB("DEBUT COPIE !!");
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;
# Line 313  gboolean burn_data(Tgrave *Ag, GError ** Line 320  gboolean burn_data(Tgrave *Ag, GError **
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    
# Line 328  gboolean burn_data(Tgrave *Ag, GError ** Line 336  gboolean burn_data(Tgrave *Ag, GError **
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);
# Line 355  _DEB("ici LDST => %s\n", Ldst); Line 369  _DEB("ici LDST => %s\n", Ldst);
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");
# Line 378  gboolean burn_audio(Tgrave *Ag, GError * Line 391  gboolean burn_audio(Tgrave *Ag, GError *
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 */
# Line 395  gboolean burn_audio(Tgrave *Ag, GError * Line 408  gboolean burn_audio(Tgrave *Ag, GError *
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    
# Line 484  gboolean burn_dvddata(Tgrave *Ag, GError Line 501  gboolean burn_dvddata(Tgrave *Ag, GError
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    
# Line 502  gboolean burn_dvddata(Tgrave *Ag, GError Line 520  gboolean burn_dvddata(Tgrave *Ag, GError
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);
# Line 523  _DEB("ici LDST => %s\n", Ldst); Line 543  _DEB("ici LDST => %s\n", Ldst);
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    

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26