/[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.13 by scresto, Thu Feb 17 01:22:53 2005 UTC revision 1.14 by scresto, Sat Feb 19 17:49:08 2005 UTC
# Line 154  _DEB("le bus en question [%s] = [%s]\n", Line 154  _DEB("le bus en question [%s] = [%s]\n",
154  }  }
155    
156  /* operation de copie */  /* operation de copie */
157  gboolean burn_copy(GHashTable *Ahash, GError **Aerror)  gboolean burn_copy(Tgrave *Ag, GError **Aerror)
158  {  {
159    GtkWidget *Llecteur = g_hash_table_lookup(Ahash, "srccopycombo");    GtkWidget *Llecteur = sc_grave_get_widget(Ag, "srccopycombo");
160    GtkWidget *Lgraveur = g_hash_table_lookup(Ahash, "dstcopycombo");    GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstcopycombo");
161    GtkEntry *Llecteuriso = GTK_ENTRY(g_hash_table_lookup(Ahash, "srccopybtnvalue"));    GtkEntry *Llecteuriso = GTK_ENTRY(sc_grave_get_widget(Ag, "srccopybtnvalue"));
162    GtkEntry *Lgraveuriso = GTK_ENTRY(g_hash_table_lookup(Ahash, "dstcopybtnvalue"));    GtkEntry *Lgraveuriso = GTK_ENTRY(sc_grave_get_widget(Ag, "dstcopybtnvalue"));
   gboolean *Labort = (gboolean *)g_hash_table_lookup(Ahash, "gabort");  
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);
165    gchar *Liso = NULL;    gchar *Liso = NULL;
166    gchar *Ltxt;    gchar *Ltxt;
167    gboolean Lstatus;    gboolean Lstatus;
168    gboolean Loperationstatus = FALSE;    gboolean Loperationstatus = FALSE;
169    gboolean Lsimul = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ahash, "copysimul")));    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(g_hash_table_lookup(Ahash, "nbrcdcopy")));  
170    gint Ldone = 1;    gint Ldone = 1;
171    gchar *Ltmpdir = NULL;    gchar *Ltmpdir = NULL;
172    const gchar *Lptriso;    const gchar *Lptriso;
# Line 181  _DEB("DEBUT COPIE !! 0"); Line 179  _DEB("DEBUT COPIE !! 0");
179    }    }
180    
181    /* referecement variables */    /* referecement variables */
182    g_hash_table_insert(Ahash, "todo", &Ltodo); /* a faire */    sc_grave_set_data(Ag, &Ltodo, "todo"); /* a faire */
183    g_hash_table_insert(Ahash, "done", &Ldone); /* fais */    sc_grave_set_data(Ag, &Ldone, "done"); /* fais */
184    g_hash_table_insert(Ahash, "operationstatus", &Loperationstatus); /* resultat de l'operation */    sc_grave_set_data(Ag, &Loperationstatus, "operationstatus"); /* resultat de l'operation */
185    g_hash_table_insert(Ahash, "tmpdir", &Ltmpdir); /* repertoire temporraire */    sc_grave_set_data(Ag, &Ltmpdir, "tmpdir"); /* repertoire temporraire */
186    g_hash_table_insert(Ahash, "gerror", Aerror);  /* pointeur retour des erreurs */    sc_grave_set_data(Ag, Aerror, "gerror");  /* pointeur retour des erreurs */
187    
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 */
# Line 203  _DEB("DEBUT COPIE !! 0"); Line 201  _DEB("DEBUT COPIE !! 0");
201            Liso, g_strerror(errno));            Liso, g_strerror(errno));
202        Lstatus = FALSE;        Lstatus = FALSE;
203      } else {      } else {
204        g_hash_table_insert(Ahash, "iso", &Liso); /* image iso */        sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */
205        Lstatus = burn_from_image("copy", Ahash, Aerror);        Lstatus = burn_from_image("copy", Ag, Aerror);
206        g_hash_table_remove(Ahash, "iso");        sc_grave_del_data(Ag, "iso");
207      }      }
208      g_free(Liso);      g_free(Liso);
209    } else if (!strcmp(Ldst, "iso")) {    } else if (!strcmp(Ldst, "iso")) {
# Line 229  _DEB("DEBUT COPIE !! 0"); Line 227  _DEB("DEBUT COPIE !! 0");
227            Ltxt, Liso, g_strerror(errno));            Ltxt, Liso, g_strerror(errno));
228        Lstatus = FALSE;        Lstatus = FALSE;
229      } else {      } else {
230        g_hash_table_insert(Ahash, "iso", &Liso); /* image iso */        sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */
231        Lstatus = make_image(Ahash, Aerror);        Lstatus = make_image(Ag, Aerror);
232        g_hash_table_remove(Ahash, "iso");        sc_grave_del_data(Ag, "iso");
233        g_free(Liso);        g_free(Liso);
234      }      }
235    } else {  /* copie d'un cd a un autre, on utilise cdrdao */    } else {  /* copie d'un cd a un autre, on utilise cdrdao */
# Line 254  _DEB("DEBUT COPIE !!"); Line 252  _DEB("DEBUT COPIE !!");
252        Ltmpdir = g_realloc(Ltmpdir, strlen(Ltmpdir)+strlen("/tmpiso.bin")+1);        Ltmpdir = g_realloc(Ltmpdir, strlen(Ltmpdir)+strlen("/tmpiso.bin")+1);
253        strcat(Ltmpdir, "/tmpiso.bin");        strcat(Ltmpdir, "/tmpiso.bin");
254    
255        g_hash_table_insert(Ahash, "iso", &Ltmpdir); /* image iso */        sc_grave_set_data(Ag, &Ltmpdir, "iso"); /* image iso */
256    
257        /* copie du cd avec monsieur cdrdao */        /* copie du cd avec monsieur cdrdao */
258        Lstatus = copycd(Ahash, Aerror);        Lstatus = copycd(Ag, Aerror);
259    
260    
261        /* on copie donc vers l'iso        /* on copie donc vers l'iso
262        Lstatus = make_image(Ahash, Aerror);        Lstatus = make_image(Ag, Aerror);
263        if (Lstatus == TRUE && *Labort == FALSE) {        if (Lstatus == TRUE && *Labort == FALSE) {
264          * et maintenant dans le sens inverse si tout va toujours bien *          * et maintenant dans le sens inverse si tout va toujours bien *
265          Ldone++;          Ldone++;
# Line 288  _DEB("DEBUT COPIE !!"); Line 286  _DEB("DEBUT COPIE !!");
286          }          }
287                
288          if (Lstatus == TRUE && *Labort == FALSE) {          if (Lstatus == TRUE && *Labort == FALSE) {
289            Lstatus = burn_from_image("copy", Ahash, Aerror);            Lstatus = burn_from_image("copy", Ag, Aerror);
290          }          }
291        } */        } */
292        if ((Ltxt=strrchr(Ltmpdir, '/'))) *Ltxt=0;        if ((Ltxt=strrchr(Ltmpdir, '/'))) *Ltxt=0;
293            
294        deltempdir(Ltmpdir);        deltempdir(Ltmpdir);
295    
296        g_hash_table_remove(Ahash, "iso");        sc_grave_del_data(Ag, "iso");
297      }      }
298      g_free(Ltmpdir);      g_free(Ltmpdir);
299    }    }
# Line 306  _DEB("DEBUT COPIE !!"); Line 304  _DEB("DEBUT COPIE !!");
304  }  }
305    
306  /* operation gravure cd de donnee */  /* operation gravure cd de donnee */
307  gboolean burn_data(GHashTable *Ahash, GError **Aerror)  gboolean burn_data(Tgrave *Ag, GError **Aerror)
308  {  {
309    gint Ltodo = gtk_spin_button_get_value(GTK_SPIN_BUTTON(g_hash_table_lookup(Ahash, "nbrcddata")));    gint Ltodo = gtk_spin_button_get_value(GTK_SPIN_BUTTON(sc_grave_get_widget(Ag, "nbrcddata")));
310    gboolean Lsimul = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ahash, "datasimul")));    gboolean Lsimul = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "datasimul")));
311    GtkEntry *Lgraveuriso = GTK_ENTRY(g_hash_table_lookup(Ahash, "dstdatabtnvalue"));    GtkEntry *Lgraveuriso = GTK_ENTRY(sc_grave_get_widget(Ag, "dstdatabtnvalue"));
312    GtkWidget *Lgraveur = g_hash_table_lookup(Ahash, "dstdatacombo");    GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstdatacombo");
313    gboolean *Labort = g_hash_table_lookup(Ahash, "gabort");    gboolean *Labort = sc_grave_get_data(Ag, "gabort");
314    gint Ldone = 1;    gint Ldone = 1;
315    gchar *Ldst = get_combo_value(Lgraveur);    gchar *Ldst = get_combo_value(Lgraveur);
316    gchar *Ltmpdir = NULL;    gchar *Ltmpdir = NULL;
# Line 321  gboolean burn_data(GHashTable *Ahash, GE Line 319  gboolean burn_data(GHashTable *Ahash, GE
319    gboolean Loperationstatus = FALSE;    gboolean Loperationstatus = FALSE;
320    gboolean Lstatus;    gboolean Lstatus;
321    
322    g_hash_table_insert(Ahash, "todo", &Ltodo); /* a faire */    sc_grave_set_data(Ag, &Ltodo, "todo"); /* a faire */
323    g_hash_table_insert(Ahash, "done", &Ldone); /* fais */    sc_grave_set_data(Ag, &Ldone, "done"); /* fais */
324    g_hash_table_insert(Ahash, "operationstatus", &Loperationstatus); /* resultat de l'operation */    sc_grave_set_data(Ag, &Loperationstatus, "operationstatus"); /* resultat de l'operation */
325    g_hash_table_insert(Ahash, "gerror", Aerror);  /* pointeur retour des erreurs */    sc_grave_set_data(Ag, Aerror, "gerror");  /* pointeur retour des erreurs */
326    g_hash_table_insert(Ahash, "tmpdir", &Ltmpdir); /* repertoire temporraire */    sc_grave_set_data(Ag, &Ltmpdir, "tmpdir"); /* repertoire temporraire */
327    
328    /* on retourne dans ltmp le nom du repertoire temporraire utilise pour    /* on retourne dans ltmp le nom du repertoire temporraire utilise pour
329     * l'operation */     * l'operation */
330    Lstatus = preparedata(Ahash, Aerror);    Lstatus = preparedata(Ag, Aerror);
331  _DEB("ici LDST => %s\n", Ldst);  _DEB("ici LDST => %s\n", Ldst);
332    if (strcmp(Ldst, "iso")) {    if (strcmp(Ldst, "iso")) {
333      Liso = g_strdup_printf("%s.iso", Ltmpdir);      Liso = g_strdup_printf("%s.iso", Ltmpdir);
# Line 338  _DEB("ici LDST => %s\n", Ldst); Line 336  _DEB("ici LDST => %s\n", Ldst);
336      Liso = _FILENAME(gtk_entry_get_text(Lgraveuriso));      Liso = _FILENAME(gtk_entry_get_text(Lgraveuriso));
337      Ltodo = 1;      Ltodo = 1;
338    }    }
339    g_hash_table_insert(Ahash, "iso", &Liso); /* image iso */    sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */
340    if (Lstatus && *Labort==FALSE) {    if (Lstatus && *Labort==FALSE) {
341      Lextrapara = make_image_getextrapara(Ahash, "data");      Lextrapara = make_image_getextrapara(Ag, "data");
342      g_hash_table_insert(Ahash, "extrapara", &Lextrapara); /* parametres supplementaires */      sc_grave_set_data(Ag, &Lextrapara, "extrapara"); /* parametres supplementaires */
343      Lstatus = make_iso(Ahash, Aerror);      Lstatus = make_iso(Ag, Aerror);
344      g_hash_table_remove(Ahash, "extrapara");      sc_grave_del_data(Ag, "extrapara");
345      g_free(Lextrapara);      g_free(Lextrapara);
346      if (strcmp(Ldst, "iso") && Lstatus && *Labort==FALSE) {      if (strcmp(Ldst, "iso") && Lstatus && *Labort==FALSE) {
347        /* ici il faut appeler cdrecord ! */        /* ici il faut appeler cdrecord ! */
348        Lextrapara = burn_data_getextrapara(Ahash);        Lextrapara = burn_data_getextrapara(Ag);
349        g_hash_table_insert(Ahash, "extrapara", &Lextrapara); /* parametres supplementaires */        sc_grave_set_data(Ag, &Lextrapara, "extrapara"); /* parametres supplementaires */
350        Lstatus = burn_from_image("data", Ahash, Aerror);        Lstatus = burn_from_image("data", Ag, Aerror);
351        g_hash_table_remove(Ahash, "extrapara");        sc_grave_del_data(Ag, "extrapara");
352        g_free(Lextrapara);        g_free(Lextrapara);
353      }      }
354    }    }
# Line 363  _DEB("ici LDST => %s\n", Ldst); Line 361  _DEB("ici LDST => %s\n", Ldst);
361    }    }
362    g_free(Liso);    g_free(Liso);
363    
364    g_hash_table_remove(Ahash, "todo");    sc_grave_del_data(Ag, "todo");
365    g_hash_table_remove(Ahash, "done");    sc_grave_del_data(Ag, "done");
366    g_hash_table_remove(Ahash, "tmpdir"); g_free(Ltmpdir);    sc_grave_del_data(Ag, "tmpdir"); g_free(Ltmpdir);
367    g_hash_table_remove(Ahash, "operationstatus");    sc_grave_del_data(Ag, "operationstatus");
368    g_hash_table_remove(Ahash, "gerror");    sc_grave_del_data(Ag, "gerror");
369    g_hash_table_remove(Ahash, "iso");    sc_grave_del_data(Ag, "iso");
370    
371    return Lstatus;    return Lstatus;
372  }  }
373    
374  /* operation gravure cd audio */  /* operation gravure cd audio */
375  gboolean burn_audio(GHashTable *Ahash, GError **Aerror)  gboolean burn_audio(Tgrave *Ag, GError **Aerror)
376  {  {
377    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(g_hash_table_lookup(Ahash, "LISTEAUDIO")));    GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(sc_grave_get_widget(Ag, "LISTEAUDIO")));
378    
379    gint Ltodo = gtk_tree_model_iter_n_children(Ltreemodel, NULL);    gint Ltodo = gtk_tree_model_iter_n_children(Ltreemodel, NULL);
380    gint Ldone = 0;    gint Ldone = 0;
381    gchar *Ltmpdir = NULL;    gchar *Ltmpdir = NULL;
382    gboolean Lstatus, Loperationstatus = FALSE;    gboolean Lstatus, Loperationstatus = FALSE;
383    
384    g_hash_table_insert(Ahash, "todo", &Ltodo); /* a faire */    sc_grave_set_data(Ag, &Ltodo, "todo"); /* a faire */
385    g_hash_table_insert(Ahash, "done", &Ldone); /* fais */    sc_grave_set_data(Ag, &Ldone, "done"); /* fais */
386    g_hash_table_insert(Ahash, "operationstatus", &Loperationstatus); /* resultat de l'operation */    sc_grave_set_data(Ag, &Loperationstatus, "operationstatus"); /* resultat de l'operation */
387    g_hash_table_insert(Ahash, "gerror", Aerror);  /* pointeur retour des erreurs */    sc_grave_set_data(Ag, Aerror, "gerror");  /* pointeur retour des erreurs */
388    g_hash_table_insert(Ahash, "tmpdir", &Ltmpdir); /* repertoire temporraire */    sc_grave_set_data(Ag, &Ltmpdir, "tmpdir"); /* repertoire temporraire */
389    
390    Lstatus = preparetrack(Ahash, Aerror);    Lstatus = preparetrack(Ag, Aerror);
391    
392    if (Lstatus == TRUE) {    if (Lstatus == TRUE) {
393      Ldone = 1;      Ldone = 1;
394    
395      Lstatus = gravepiste(Ahash, Aerror);      Lstatus = gravepiste(Ag, Aerror);
396    }    }
397    
398    if (Ltmpdir) {    if (Ltmpdir) {
# Line 478  extern Tdriveinfo *get_drive_cmb(GtkComb Line 476  extern Tdriveinfo *get_drive_cmb(GtkComb
476  }  }
477    
478  /* operation gravure dcd de donnee */  /* operation gravure dcd de donnee */
479  gboolean burn_dvddata(GHashTable *Ahash, GError **Aerror)  gboolean burn_dvddata(Tgrave *Ag, GError **Aerror)
480  {  {
481    gint Ltodo = gtk_spin_button_get_value(GTK_SPIN_BUTTON(g_hash_table_lookup(Ahash, "nbrdvddata")));    gint Ltodo = gtk_spin_button_get_value(GTK_SPIN_BUTTON(sc_grave_get_widget(Ag, "nbrdvddata")));
482    gboolean Lsimul = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_hash_table_lookup(Ahash, "dvddatasimul")));    gboolean Lsimul = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sc_grave_get_widget(Ag, "dvddatasimul")));
483    GtkEntry *Lgraveuriso = GTK_ENTRY(g_hash_table_lookup(Ahash, "dstdvddatabtnvalue"));    GtkEntry *Lgraveuriso = GTK_ENTRY(sc_grave_get_widget(Ag, "dstdvddatabtnvalue"));
484    GtkWidget *Lgraveur = g_hash_table_lookup(Ahash, "dstdvddatacombo");    GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstdvddatacombo");
485    gint Ldone = 1;    gint Ldone = 1;
486    gchar *Ldst = get_combo_value(Lgraveur);    gchar *Ldst = get_combo_value(Lgraveur);
487    gchar *Ltmpdir = NULL;    gchar *Ltmpdir = NULL;
# Line 492  gboolean burn_dvddata(GHashTable *Ahash, Line 490  gboolean burn_dvddata(GHashTable *Ahash,
490    gboolean Loperationstatus = FALSE;    gboolean Loperationstatus = FALSE;
491    gboolean Lstatus;    gboolean Lstatus;
492    
493    g_hash_table_insert(Ahash, "todo", &Ltodo); /* a faire */    sc_grave_set_data(Ag, &Ltodo, "todo"); /* a faire */
494    g_hash_table_insert(Ahash, "done", &Ldone); /* fais */    sc_grave_set_data(Ag, &Ldone, "done"); /* fais */
495    g_hash_table_insert(Ahash, "operationstatus", &Loperationstatus); /* resultat de l'operation */    sc_grave_set_data(Ag, &Loperationstatus, "operationstatus"); /* resultat de l'operation */
496    g_hash_table_insert(Ahash, "gerror", Aerror);  /* pointeur retour des erreurs */    sc_grave_set_data(Ag, Aerror, "gerror");  /* pointeur retour des erreurs */
497    g_hash_table_insert(Ahash, "tmpdir", &Ltmpdir); /* repertoire temporraire */    sc_grave_set_data(Ag, &Ltmpdir, "tmpdir"); /* repertoire temporraire */
498    
499    /* on retourne dans ltmp le nom du repertoire temporraire utilise pour    /* on retourne dans ltmp le nom du repertoire temporraire utilise pour
500     * l'operation */     * l'operation */
501    Lstatus = preparedata(Ahash, Aerror);    Lstatus = preparedata(Ag, Aerror);
502  _DEB("ici LDST => %s\n", Ldst);  _DEB("ici LDST => %s\n", Ldst);
503    
504    Lextrapara = make_image_getextrapara(Ahash, "dvddata");    Lextrapara = make_image_getextrapara(Ag, "dvddata");
505    g_hash_table_insert(Ahash, "extrapara", &Lextrapara); /* parametres supplementaires */    sc_grave_set_data(Ag, &Lextrapara, "extradata"); /* parametres supplementaires */
506    if (strcmp(Ldst, "iso")) {    if (strcmp(Ldst, "iso")) {
507      if (Lsimul) Ltodo++; /* 1 pour la simulation */      if (Lsimul) Ltodo++; /* 1 pour la simulation */
508    
509      Lstatus = burn_dvd(Ahash, Aerror);      Lstatus = burn_dvd(Ag, Aerror);
510    
511    } else {    } else {
512      Liso = _FILENAME(gtk_entry_get_text(Lgraveuriso));      Liso = _FILENAME(gtk_entry_get_text(Lgraveuriso));
513      Ltodo = 1;      Ltodo = 1;
514      g_hash_table_insert(Ahash, "iso", &Liso); /* image iso */      sc_grave_set_data(Ag, &Liso, "iso"); /* image iso */
515      Lstatus = make_iso(Ahash, Aerror);      Lstatus = make_iso(Ag, Aerror);
516      g_hash_table_remove(Ahash, "iso");      sc_grave_del_data(Ag, "iso");
517      g_free(Liso);      g_free(Liso);
518    }    }
519    g_hash_table_remove(Ahash, "extrapara");    sc_grave_del_data(Ag, "extrapara");
520    g_free(Lextrapara);    g_free(Lextrapara);
521    
522    deltempdir(Ltmpdir);    deltempdir(Ltmpdir);
523    
524    g_hash_table_remove(Ahash, "todo");    sc_grave_del_data(Ag, "todo");
525    g_hash_table_remove(Ahash, "done");    sc_grave_del_data(Ag, "done");
526    g_hash_table_remove(Ahash, "tmpdir"); g_free(Ltmpdir);    sc_grave_del_data(Ag, "tmpdir"); g_free(Ltmpdir);
527    g_hash_table_remove(Ahash, "operationstatus");    sc_grave_del_data(Ag, "operationstatus");
528    g_hash_table_remove(Ahash, "gerror");    sc_grave_del_data(Ag, "gerror");
529    
530    return Lstatus;    return Lstatus;
531  }  }

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

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