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

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

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

revision 1.6 by scresto, Fri Mar 4 01:16:38 2005 UTC revision 1.7 by scresto, Fri Mar 11 23:31:13 2005 UTC
# Line 64  Line 64 
64  #define CDRDAO_NA ": n/a"  #define CDRDAO_NA ": n/a"
65  #define CDRDAO_CD "CD"  #define CDRDAO_CD "CD"
66    
67  static gchar *get_blank_type(Tgrave *Ag)  static gchar *get_blank_type(Tgrave *Ag, gint Atypemedia)
68  {  {
69    gboolean *Luseautoblank = (gboolean *) sc_grave_get_data(Ag, "useautoblank");    gboolean *Luseautoblank = (gboolean *) sc_grave_get_data(Ag, "useautoblank");
70    
71    if (!*Luseautoblank) return g_strdup("");    if (!*Luseautoblank || (!(Atypemedia & _MEDIA_CDRW))) return g_strdup("");
72    
73    return g_strdup_printf("blank=%s", conf_get_boolean("fastblank") == TRUE ? "fast" : "all");    return g_strdup_printf("blank=%s", conf_get_boolean("fastblank") == TRUE ? "fast" : "all");
74  }  }
# Line 87  gboolean cdrdao_grave_callback(GIOChanne Line 87  gboolean cdrdao_grave_callback(GIOChanne
87    gchar *Latspeed = (gchar *) sc_grave_get_data(Lg, "atspeed"); /* vitesse reel operation */    gchar *Latspeed = (gchar *) sc_grave_get_data(Lg, "atspeed"); /* vitesse reel operation */
88    glong *Llength = (glong *) sc_grave_get_data(Lg, "length"); /* longueur total */    glong *Llength = (glong *) sc_grave_get_data(Lg, "length"); /* longueur total */
89    gchar *f, *e;    gchar *f, *e;
90    gchar *Ltxt;    gchar Lsbuf[_BUF_SIZE];
91    gchar Lsbuf[_BUF_SIZE], Lsbuf2[_BUF_SIZE];    gdouble Lpct, Ltava;
   gdouble Ltotaldone = 1, Ltotaltodo, Lpct, Lgbuf = 0, Ltava;  
92    gsize Llu = 0;    gsize Llu = 0;
   gchar *Ltracknum;  
93    
94    GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Lg, "gravetitle"));    GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Lg, "gravetitle"));
95    GtkProgressBar *Lprogressbar = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, "pb_total"));    GtkProgressBar *Lprogressbar = GTK_PROGRESS_BAR(sc_grave_get_data(Lg, "pb_total"));
# Line 153  _DEB("===>%s", Lbuffer); Line 151  _DEB("===>%s", Lbuffer);
151        }        }
152    
153        if (Lok) {        if (Lok) {
         printf("oui ok => [%.0f] => [%.0f] => [%.0f] => [%.0f]\n", Lde, La, Lgbuf, Lfifo);  
154          g_snprintf(Lsbuf, sizeof(Lsbuf)-1, _("Writing track %s - %.0f MB of %.0f MB at %s"),          g_snprintf(Lsbuf, sizeof(Lsbuf)-1, _("Writing track %s - %.0f MB of %.0f MB at %s"),
155              Llasttrack, Lde, La, Latspeed);              Llasttrack, Lde, La, Latspeed);
156          gtk_label_set_text(Ltitle, Lsbuf);          gtk_label_set_text(Ltitle, Lsbuf);
# Line 275  _DEB("===>%s", Lbuffer); Line 272  _DEB("===>%s", Lbuffer);
272  /* operation de copie d'un cd */  /* operation de copie d'un cd */
273  gboolean copycd(Tgrave *Ag, GError **Aerror) {  gboolean copycd(Tgrave *Ag, GError **Aerror) {
274    GtkWindow *Lwindow = GTK_WINDOW(sc_grave_get_data(Ag, "window_burn"));    GtkWindow *Lwindow = GTK_WINDOW(sc_grave_get_data(Ag, "window_burn"));
   GtkLabel *Ltitle = GTK_LABEL(sc_grave_get_data(Ag, "gravetitle"));  
275    GtkWidget *Lvitesse = sc_grave_get_widget(Ag, "dstcopyspeed");    GtkWidget *Lvitesse = sc_grave_get_widget(Ag, "dstcopyspeed");
276    GtkWidget *Lsource = sc_grave_get_widget(Ag, "srccopycombo");    GtkWidget *Lsource = sc_grave_get_widget(Ag, "srccopycombo");
277    GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstcopycombo");    GtkWidget *Lgraveur = sc_grave_get_widget(Ag, "dstcopycombo");
# Line 283  gboolean copycd(Tgrave *Ag, GError **Aer Line 279  gboolean copycd(Tgrave *Ag, GError **Aer
279    gchar *Liso = (gchar *)sc_grave_get_data(Ag, "iso");    gchar *Liso = (gchar *)sc_grave_get_data(Ag, "iso");
280    gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ag, "operationstatus");    gboolean *Loperationstatus = (gboolean *)sc_grave_get_data(Ag, "operationstatus");
281    gboolean *Labort = (gboolean *) sc_grave_get_data(Ag, "gabort");    gboolean *Labort = (gboolean *) sc_grave_get_data(Ag, "gabort");
   gchar *Lbuftitle = NULL;  
282    gchar **Lcmd;    gchar **Lcmd;
283    gchar *Lcommandline;    gchar *Lcommandline;
284    GIOChannel *Lcom, *Lcomerr;    GIOChannel *Lcom, *Lcomerr;
# Line 309  gboolean copycd(Tgrave *Ag, GError **Aer Line 304  gboolean copycd(Tgrave *Ag, GError **Aer
304    gchar Latspeed[_BUF_SIZE]; /* vitesse reel de l'operation */    gchar Latspeed[_BUF_SIZE]; /* vitesse reel de l'operation */
305    gchar Llasttrack[_BUF_SIZE]; /* derniere piste traite */    gchar Llasttrack[_BUF_SIZE]; /* derniere piste traite */
306    glong Llength; /* longueur total du cd */    glong Llength; /* longueur total du cd */
307      gint Lmediadetect1 = _MEDIA_CDRW;
308    
309    Lbufvitesse = get_combo_value(Lvitesse);    Lbufvitesse = get_combo_value(Lvitesse);
310    Lbufsrc = get_combo_value(Lsource);    Lbufsrc = get_combo_value(Lsource);
311    Lbufgrav = get_combo_value(Lgraveur);    Lbufgrav = get_combo_value(Lgraveur);
312    Lblank = get_blank_type(Ag);    Lblank = get_blank_type(Ag, Lmediadetect1);
313    
314    *Ltodo = ((Lnbrgravure * 2 ) + (Lsimul ? 2 : 0) + (Lonfly ? Lnbrgravure : 0));    *Ltodo = ((Lnbrgravure * 2 ) + (Lsimul ? 2 : 0) + (Lonfly ? Lnbrgravure : 0));
315    
# Line 322  gboolean copycd(Tgrave *Ag, GError **Aer Line 318  gboolean copycd(Tgrave *Ag, GError **Aer
318    sc_grave_set_data(Ag, &Llength, "length");    sc_grave_set_data(Ag, &Llength, "length");
319    sc_grave_set_data(Ag, &Ldosimul, "simul");    sc_grave_set_data(Ag, &Ldosimul, "simul");
320        
 printf("ici super\n");  
321    for (Lcurcd=1; Lcurcd<= Lnbrgravure;    for (Lcurcd=1; Lcurcd<= Lnbrgravure;
322        ((Lsimul && Lnbrpass>1) || (!Lsimul)) ? ( Lcurcd++, Lnbrpass=1 ) : ( Lnbrpass++ )) {        ((Lsimul && Lnbrpass>1) || (!Lsimul)) ? ( Lcurcd++, Lnbrpass=1 ) : ( Lnbrpass++ )) {
323      *Loperationstatus = FALSE;      *Loperationstatus = FALSE;
# Line 334  printf("ici super\n"); Line 329  printf("ici super\n");
329      if (Lcurcd > 1 && !Ldosimul) {      if (Lcurcd > 1 && !Ldosimul) {
330        /* copie sur un nouveau cd, on demande a l'utilisateur d'inserer le        /* copie sur un nouveau cd, on demande a l'utilisateur d'inserer le
331         * nouveau cd vierge */         * nouveau cd vierge */
332        gint Lrep;  /*      gint Lrep;
333        GtkWidget *Lconfirm = gtk_message_dialog_new(Lwindow,        GtkWidget *Lconfirm = gtk_message_dialog_new(Lwindow,
334                                                GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION,                                                GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION,
335                                                GTK_BUTTONS_YES_NO,                                                GTK_BUTTONS_YES_NO,
336                   _("Now you should insert next CD-R, do you want to continue operation ?"));                   _("Now you should insert next CD-R, do you want to continue operation ?"));
337        Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));        Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
338        gtk_widget_destroy(Lconfirm);        gtk_widget_destroy(Lconfirm);
339        if (Lrep == GTK_RESPONSE_NO) {        if (Lrep == GTK_RESPONSE_NO) {*/
340          if (waiting_for_user("", Ag, _MEDIA_CDR + _MEDIA_APPENDABLE , &Lmediadetect1, Lbufgrav)==FALSE) {
341          /* si c'est non alors on arrete */          /* si c'est non alors on arrete */
342          *Labort = TRUE;          *Labort = TRUE;
343          Lstatus = TRUE;          Lstatus = TRUE;
# Line 358  printf("ici super\n"); Line 354  printf("ici super\n");
354       * si il faut realiser d'autre gravure sur d'autres CD-R */       * si il faut realiser d'autre gravure sur d'autres CD-R */
355      Leject = ((Lcurcd > 1 && (Lwanteject || Lcurcd<Lnbrgravure)) || (Lcurcd == 1 && !Ldosimul && Lwanteject));      Leject = ((Lcurcd > 1 && (Lwanteject || Lcurcd<Lnbrgravure)) || (Lcurcd == 1 && !Ldosimul && Lwanteject));
356    
357      if (Lonfly || Ldosimul || Lcurcd == 1) {  /*    if (Lonfly || Ldosimul || Lcurcd == 1) {
358        /* copie a la volé, ou simulation, ou cd numero 1, on n'utilise pas l'image sauvé        * copie a la volé, ou simulation, ou cd numero 1, on n'utilise pas l'image sauvé
359         * lors de la precedente operation */         * lors de la precedente operation */
360        Lcommandline = g_strdup_printf("%s copy -n -v 2 %s %s %s %s%s --source-device %s --device %s --datafile %s %s %s",        Lcommandline = g_strdup_printf("%s copy -n -v 2 %s %s %s %s%s --source-device %s --device %s --datafile %s %s %s",
361          conf_get_string("cdrdao"),          conf_get_string("cdrdao"),
362          Ldosimul ? " --simulate" : "",          Ldosimul ? " --simulate" : "",
363          Lonfly ? " --on-the-fly" : "--keepimage",          Lonfly ? " --on-the-fly" : "",
364          Leject ? "--eject" : "",          Leject ? "--eject" : "",
365          *Lbufvitesse == '0' ? "" : "--speed", *Lbufvitesse == '0' ? "" : Lbufvitesse,          *Lbufvitesse == '0' ? "" : "--speed", *Lbufvitesse == '0' ? "" : Lbufvitesse,
366          Lbufsrc, Lbufgrav, Liso,          Lbufsrc, Lbufgrav, Liso,
367          conf_get_boolean("overburn") ? "--overburn" : "",          conf_get_boolean("overburn") ? "--overburn" : "",
368          conf_get_string("cdrdaopara"));          conf_get_string("cdrdaopara"));
369      } else {  /*    } else {*/
370        /* sinon on l'utilise oui ! */        /* sinon on l'utilise oui ! */
371      }  /*    } */
372    
373  _DEB("execution [%s]\n", Lcommandline);  _DEB("execution [%s]\n", Lcommandline);
374      Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror);      Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror);
# Line 481  gint get_cdinfo(gchar *Adevice, GError * Line 477  gint get_cdinfo(gchar *Adevice, GError *
477    
478    g_snprintf(Lcommandline, sizeof(Lcommandline)-1, "%s disk-info --device %s", conf_get_string("cdrdao"), Adevice);    g_snprintf(Lcommandline, sizeof(Lcommandline)-1, "%s disk-info --device %s", conf_get_string("cdrdao"), Adevice);
479    
   printf("cmd %s\n", Lcommandline);  
480    Lstatus = g_spawn_command_line_sync(Lcommandline, &Lout, &Lerr, &Lexit, Aerror);    Lstatus = g_spawn_command_line_sync(Lcommandline, &Lout, &Lerr, &Lexit, Aerror);
481    
 printf("apres => %d\n%s\n", Lstatus, Lout);  
482    if (Lstatus == FALSE || Lexit != 0) {    if (Lstatus == FALSE || Lexit != 0) {
483      g_free(Lout); g_free(Lerr);      g_free(Lout); g_free(Lerr);
484      return 0;      return 0;

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

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