52 |
#define CDRDAO_OF "of " |
#define CDRDAO_OF "of " |
53 |
#define CDRDAO_BUFFERS "Buffers " |
#define CDRDAO_BUFFERS "Buffers " |
54 |
#define CDRDAO_INCOMPATIBLE_MEDIUM "Medium in recorder device is not empty and not appendable" |
#define CDRDAO_INCOMPATIBLE_MEDIUM "Medium in recorder device is not empty and not appendable" |
55 |
|
#define CDRDAO_SESSIONS "Sessions " |
56 |
|
|
57 |
/* detection des media */ |
/* detection des media */ |
58 |
#define CDRDAO_CDRW "CD-RW" |
#define CDRDAO_CDRW "CD-RW" |
64 |
#define CDRDAO_APPENDABLE "Appendable" |
#define CDRDAO_APPENDABLE "Appendable" |
65 |
#define CDRDAO_NA ": n/a" |
#define CDRDAO_NA ": n/a" |
66 |
#define CDRDAO_CD "CD" |
#define CDRDAO_CD "CD" |
67 |
|
#define SESSION_ZERO ": 0" |
|
/* |
|
|
static gchar *get_blank_type(Tgrave *Ag, gint Atypemedia) |
|
|
{ |
|
|
gboolean *Luseautoblank = (gboolean *) sc_grave_get_data(Ag, "useautoblank"); |
|
|
|
|
|
if (!*Luseautoblank || (!(Atypemedia & _MEDIA_CDRW))) return g_strdup(""); |
|
|
|
|
|
return g_strdup_printf("blank=%s", conf_get_boolean("fastblank") == TRUE ? "fast" : "all"); |
|
|
}*/ |
|
68 |
|
|
69 |
/* callback appele lorsque cdrdao grave les pistes */ |
/* callback appele lorsque cdrdao grave les pistes */ |
70 |
gboolean cdrdao_grave_callback(GIOChannel *Astd, GIOCondition Acond, gpointer Adata) |
gboolean cdrdao_grave_callback(GIOChannel *Astd, GIOCondition Acond, gpointer Adata) |
349 |
} |
} |
350 |
} |
} |
351 |
|
|
|
/* Lbuftitle = get_title(Lnbrgravure, Lcurcd, Ldosimul); |
|
|
gtk_label_set_text(GTK_LABEL(Ltitle), Lbuftitle); |
|
|
g_free(Lbuftitle);*/ |
|
|
|
|
352 |
/* faut il ejecter le CD-R apres l'operation ? |
/* faut il ejecter le CD-R apres l'operation ? |
353 |
* oui si l'utilisateur a cocher la case "ejecter le cd" ou |
* oui si l'utilisateur a cocher la case "ejecter le cd" ou |
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 */ |
478 |
gint *Lpid = (gint *)sc_grave_get_data(Ag, "pid"); |
gint *Lpid = (gint *)sc_grave_get_data(Ag, "pid"); |
479 |
GString *Loutput; |
GString *Loutput; |
480 |
gchar *Lcdprg = conf_get_string("cdrdao"); |
gchar *Lcdprg = conf_get_string("cdrdao"); |
481 |
|
gboolean Lskipnocd = FALSE; |
482 |
|
|
483 |
if (!Lcdprg || !*Lcdprg) return 0; |
if (!Lcdprg || !*Lcdprg) return 0; |
484 |
|
|
485 |
g_snprintf(Lcommandline, sizeof(Lcommandline)-1, "%s disk-info --device %s", Lcdprg, DRIVE_DEV(Adevice)); |
g_snprintf(Lcommandline, sizeof(Lcommandline)-1, "%s disk-info --device %s", Lcdprg, DRIVE_DEV(Adevice)); |
486 |
_DEB("execution de [%s]\n", Lcommandline); |
_DEB("execution de [%s]", Lcommandline); |
487 |
if (!g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror)) return 0; |
if (!g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror)) return 0; |
488 |
|
|
489 |
|
|
527 |
for (i=0; Larrbuf[i]; i++) { |
for (i=0; Larrbuf[i]; i++) { |
528 |
if (!*Larrbuf[i]) continue; |
if (!*Larrbuf[i]) continue; |
529 |
if (!strncmp(Larrbuf[i], CDRDAO_CDRW, strlen(CDRDAO_CDRW))) { |
if (!strncmp(Larrbuf[i], CDRDAO_CDRW, strlen(CDRDAO_CDRW))) { |
530 |
|
_DEB("cdrdao1 => '%s'", Larrbuf[i]); |
531 |
if (strstr(Larrbuf[i], CDRDAO_YES)) { |
if (strstr(Larrbuf[i], CDRDAO_YES)) { |
532 |
Llu += _MEDIA_CDRW; |
Llu += _MEDIA_CDRW; |
533 |
} |
} |
534 |
} else if (!strncmp(Larrbuf[i], CDRDAO_TOCTYPE, strlen(CDRDAO_TOCTYPE))) { |
} else if (!strncmp(Larrbuf[i], CDRDAO_TOCTYPE, strlen(CDRDAO_TOCTYPE))) { |
535 |
|
_DEB("cdrdao2 => '%s'", Larrbuf[i]); |
536 |
if (strstr(Larrbuf[i], CDRDAO_CD)) { |
if (strstr(Larrbuf[i], CDRDAO_CD)) { |
537 |
Llu += _MEDIA_CD; |
Llu += _MEDIA_CD; |
538 |
} |
} |
539 |
} else if (!strncmp(Larrbuf[i], CDRDAO_CDR, strlen(CDRDAO_CDR))) { |
} else if (!strncmp(Larrbuf[i], CDRDAO_CDR, strlen(CDRDAO_CDR))) { |
540 |
|
_DEB("cdrdao3 => '%s'", Larrbuf[i]); |
541 |
if (!strstr(Larrbuf[i], CDRDAO_NA)) { |
if (!strstr(Larrbuf[i], CDRDAO_NA)) { |
542 |
Llu += _MEDIA_CDR; |
Llu += _MEDIA_CDR; |
543 |
|
} else { |
544 |
|
Lskipnocd = TRUE; |
545 |
} |
} |
546 |
} else if (!strncmp(Larrbuf[i], CDRDAO_EMPTY, strlen(CDRDAO_EMPTY))) { |
} else if (!strncmp(Larrbuf[i], CDRDAO_EMPTY, strlen(CDRDAO_EMPTY))) { |
547 |
|
_DEB("cdrdao4 => '%s'", Larrbuf[i]); |
548 |
if (strstr(Larrbuf[i], CDRDAO_YES)) { |
if (strstr(Larrbuf[i], CDRDAO_YES)) { |
549 |
Llu += _MEDIA_BLANK; |
Llu += _MEDIA_BLANK; |
550 |
} else { |
} else { |
551 |
Llu += _MEDIA_NOBLANK; |
Llu += _MEDIA_NOBLANK; |
552 |
} |
} |
553 |
} else if (!strncmp(Larrbuf[i], CDRDAO_APPENDABLE, strlen(CDRDAO_APPENDABLE))) { |
} else if (!strncmp(Larrbuf[i], CDRDAO_APPENDABLE, strlen(CDRDAO_APPENDABLE))) { |
554 |
|
_DEB("cdrdao5 => '%s'", Larrbuf[i]); |
555 |
if (!strstr(Larrbuf[i], CDRDAO_NO)) { |
if (!strstr(Larrbuf[i], CDRDAO_NO)) { |
556 |
Llu += _MEDIA_APPENDABLE; |
Llu += _MEDIA_APPENDABLE; |
557 |
} |
} |
558 |
|
} else if (!strncmp(Larrbuf[i], CDRDAO_SESSIONS, strlen(CDRDAO_SESSIONS))) { |
559 |
|
_DEB("cdrdao6 => '%s'", Larrbuf[i]); |
560 |
|
if (!strstr(Larrbuf[i], SESSION_ZERO)) { |
561 |
|
Lskipnocd = FALSE; |
562 |
|
} |
563 |
} |
} |
564 |
} |
} |
565 |
|
|
566 |
g_strfreev(Larrbuf); |
g_strfreev(Larrbuf); |
567 |
|
|
568 |
return Llu; |
return Lskipnocd ? _MEDIA_NONE : Llu; |
569 |
} |
} |
570 |
|
|
571 |
|
|