[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Graveman-cvs] Changes to graveman/current/src/cdrecord.c
From: |
sylvain cresto |
Subject: |
[Graveman-cvs] Changes to graveman/current/src/cdrecord.c |
Date: |
Sun, 27 Mar 2005 18:51:28 -0500 |
Index: graveman/current/src/cdrecord.c
diff -u graveman/current/src/cdrecord.c:1.24
graveman/current/src/cdrecord.c:1.25
--- graveman/current/src/cdrecord.c:1.24 Tue Mar 22 00:27:13 2005
+++ graveman/current/src/cdrecord.c Sun Mar 27 23:51:07 2005
@@ -56,6 +56,7 @@
#define CDRECORD_MAX_CDREAD_SPEED "Maximum read speed:"
#define CDRECORD_MAX_CDREAD_SPEED_CD "(CD"
#define CDRECORD_MAX_CDREAD_SPEED_DVD " DVD "
+#define CDRECORD_BURNFREE "Prepare writer to use BURN-Free technology"
/* effacer un cdrw ou cloturer un cdr */
#define CDRECORD_BLANKING_TIME "Blanking time:"
@@ -165,7 +166,7 @@
}
Lstatus = g_io_channel_read_line(Astd, &Lbuffer, NULL, NULL, NULL);
- if (!Lbuffer) return FALSE;
+ if (!Lbuffer) return TRUE;
g_strstrip(Lbuffer);
_DEB("scan lecteur = %s\n", Lbuffer);
@@ -242,6 +243,7 @@
return TRUE;
}
+/* mise a jour capacité du lecteur */
gboolean maj_drive_info(Tdriveinfo *Adrive, gchar *Adev, GError **Aerror)
{
gchar *Lcommandline, *Lout = NULL, *Lerr = NULL;
@@ -296,6 +298,20 @@
Adrive->vitessedvd = sdvd ? atoi(sdvd) : -1;
_DEB("== le type => %d\n", Ltype);
_DEB("== donc la vitesse de lecture => %d\n", Adrive->vitesse );
+
+
+ /* ok maintenant on regarde si le lecteur supporte le burnfree, si oui on
l'utilisera
+ * lors des gravures */
+ Lcommandline = g_strdup_printf("%s -checkdrive dev=%s driveropts=help",
conf_get_string("cdrecord"), Adev);
+_DEB("==================%s\n", Lcommandline);
+ Lstatus = g_spawn_command_line_sync(Lcommandline, &Lout, &Lerr, &Lexit,
Aerror);
+ g_free(Lcommandline);
+ if (Lstatus == TRUE) {
+ if (strstr(Lout, CDRECORD_BURNFREE)) Ltype += _BURN_FREE;
+ }
+ g_free(Lout);
+ g_free(Lerr);
+
return TRUE;
}
@@ -371,6 +387,9 @@
if (Lcurcd > 1 && !Ldosimul) {
/* copie sur un nouveau cd, on demande a l'utilisateur d'inserer le
* nouveau cd vierge */
+ GSList *Llmediarequis = g_slist_append(NULL, GINT_TO_POINTER(_MEDIA_CDR
+ _MEDIA_APPENDABLE));
+ gboolean Lstatus;
+
/* gint Lrep;
GtkWidget *Lconfirm = gtk_message_dialog_new(Lwindow,
GTK_DIALOG_MODAL,
GTK_MESSAGE_QUESTION,
@@ -379,7 +398,11 @@
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
gtk_widget_destroy(Lconfirm);
if (Lrep == GTK_RESPONSE_NO) { */
- if (waiting_for_user("", Ag, _MEDIA_CDR + _MEDIA_APPENDABLE ,
&Lmediadetect1, Lbufgrav)==FALSE) {
+ Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis,
&Lmediadetect1, Lbufgrav);
+
+ g_slist_free(Llmediarequis);
+
+ if (Lstatus==FALSE) {
/* si c'est non alors on arrete */
*Labort = TRUE;
Lstatus = TRUE;
@@ -401,7 +424,7 @@
g_free(Ltxt);
Lblank = get_blank_type(Ag, Lmediadetect1);
- Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s %s %s %s
%s %s %s %s '%s'",
+ Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s %s %s %s
%s %s %s %s '%s' driveropts=burnfree",
conf_get_string("cdrecord"), Lbufgrav, *Lbufvitesse != '0' ? "speed="
: "",
*Lbufvitesse != '0' ? Lbufvitesse : "",
Ldosimul ? " -dummy" : "", /* simulation ? */
@@ -758,6 +781,8 @@
if (Lcurcd > 1 && !Ldosimul) {
/* copie sur un nouveau cd, on demande a l'utilisateur d'inserer le
* nouveau cd vierge */
+ GSList *Llmediarequis = g_slist_append(NULL, GINT_TO_POINTER(_MEDIA_CDR
+ _MEDIA_APPENDABLE));
+ gboolean Lstatus;
/* gint Lrep;
GtkWidget *Lconfirm = gtk_message_dialog_new(Lwindow,
GTK_DIALOG_MODAL,
GTK_MESSAGE_QUESTION,
@@ -766,7 +791,11 @@
Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
gtk_widget_destroy(Lconfirm);
if (Lrep == GTK_RESPONSE_NO) {*/
- if (waiting_for_user("", Ag, _MEDIA_CDR + _MEDIA_APPENDABLE ,
&Lmediadetect1, Lbufgrav)==FALSE) {
+ Lstatus = waiting_for_user(_MEDIA_BLANKORAPPENDABLE, Ag, Llmediarequis ,
&Lmediadetect1, Lbufgrav);
+
+ g_slist_free(Llmediarequis);
+
+ if (Lstatus==FALSE) {
/* si c'est non alors on arrete */
*Labort = TRUE;
Lstatus = TRUE;
@@ -784,7 +813,7 @@
Leject = ((Lcurcd > 1 && (Lwanteject || Lcurcd<Lnbrgravure)) || (Lcurcd ==
1 && !Ldosimul && Lwanteject));
Lblank = get_blank_type(Ag, Lmediadetect1);
- Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s%s %s %s
%s %s %s -pad -audio %s",
+ Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 %s%s %s%s %s %s
%s %s %s -pad -audio %s driveropts=burnfree",
conf_get_string("cdrecord"), Lbufgrav, *Lbufvitesse == '0' ? "" :
"speed=", *Lbufvitesse == '0' ? "" : Lbufvitesse,
Ldosimul ? " -dummy" : "", /* simulation ? */
Ldosimul || Lnotfix ? " -nofix" : "", /* fixer le cd apres ecriture ?
*/
@@ -901,7 +930,7 @@
}
Lstatus = g_io_channel_read_line(Astd, &Lbuffer, NULL, NULL, NULL);
- if (!Lbuffer) return FALSE;
+ if (!Lbuffer) return TRUE;
_DEB("===>%s", Lbuffer);