300 |
return Lreturn; |
return Lreturn; |
301 |
} |
} |
302 |
|
|
303 |
gchar *get_blank_type(GHashTable *Ahash) |
static gchar *get_blank_type(GHashTable *Ahash) |
304 |
{ |
{ |
305 |
gboolean *Luseautoblank = (gboolean *) g_hash_table_lookup(Ahash, "useautoblank"); |
gboolean *Luseautoblank = (gboolean *) g_hash_table_lookup(Ahash, "useautoblank"); |
306 |
|
|
609 |
/* barres de progression */ |
/* barres de progression */ |
610 |
/* avancement operation */ |
/* avancement operation */ |
611 |
Lpct = (1.0/Ltotaltodo) * Ltotaldone; |
Lpct = (1.0/Ltotaltodo) * Ltotaldone; |
612 |
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(Lprogressbar2), Lpct); |
maj_progress(Lprogressbar2, Lpct); |
|
g_snprintf(Lsbuf2, sizeof(Lsbuf2)-1, "%.0f%%", Lpct*100); |
|
|
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(Lprogressbar2), Lsbuf2); |
|
613 |
|
|
614 |
/* avancement total */ |
/* avancement total */ |
615 |
if (*Ltracknum && (!*Llasttrack || strcmp(Llasttrack, Ltracknum))) { |
if (*Ltracknum && (!*Llasttrack || strcmp(Llasttrack, Ltracknum))) { |
617 |
g_strlcpy(Llasttrack, Ltracknum, _BUF_SIZE - 1); |
g_strlcpy(Llasttrack, Ltracknum, _BUF_SIZE - 1); |
618 |
} |
} |
619 |
Ltava = (1.0/ (*Ltodo)) * ((*Ldone)-1+Lpct); |
Ltava = (1.0/ (*Ltodo)) * ((*Ldone)-1+Lpct); |
620 |
gtk_progress_bar_set_fraction(Lprogressbar, Ltava); |
maj_progress(Lprogressbar2, Ltava); |
|
g_snprintf(Lsbuf2, sizeof(Lsbuf2)-1, "%.0f%%", Ltava*100); |
|
|
gtk_progress_bar_set_text(Lprogressbar, Lsbuf2); |
|
621 |
|
|
622 |
/* barre fifo */ |
/* barre fifo */ |
623 |
g_snprintf(Lsbuf, sizeof(Lsbuf)-1, "%.0f%%", Lfifo); |
g_snprintf(Lsbuf, sizeof(Lsbuf)-1, "%.0f%%", Lfifo); |
869 |
return Lstatus; |
return Lstatus; |
870 |
} |
} |
871 |
|
|
872 |
gboolean cdrecord_blankorfix_callback(GIOChannel *Astd, GIOCondition Acond, gpointer Adata) |
gboolean common_blankorfix_callback(GIOChannel *Astd, GIOCondition Acond, gpointer Adata) |
873 |
{ |
{ |
874 |
GIOStatus Lstatus; |
GIOStatus Lstatus; |
875 |
GHashTable *Lhash = (GHashTable *)Adata; |
GHashTable *Lhash = (GHashTable *)Adata; |
914 |
return TRUE; |
return TRUE; |
915 |
} |
} |
916 |
|
|
917 |
|
/* cloturer un cdr*/ |
918 |
/* effacer un cdrw */ |
gboolean perform_fix_cd(GHashTable *Ahash, GError **Aerror) |
|
gboolean perform_erase_cdrw(GHashTable *Ahash, GError **Aerror) |
|
919 |
{ |
{ |
920 |
gchar **Lcmd; |
gchar **Lcmd; |
921 |
gchar *Lcommandline, *Lbufgrav; |
gchar *Lcommandline, *Lbufgrav; |
925 |
gint g_out, g_err, Lnbrarg; |
gint g_out, g_err, Lnbrarg; |
926 |
gint *Lcont = g_hash_table_lookup(Ahash, "cont"); |
gint *Lcont = g_hash_table_lookup(Ahash, "cont"); |
927 |
GtkWidget *Lgraveur = g_hash_table_lookup(Ahash, "dstothercombo"); |
GtkWidget *Lgraveur = g_hash_table_lookup(Ahash, "dstothercombo"); |
|
gboolean *Lfastblank = g_hash_table_lookup(Ahash, "usefastblank"); |
|
928 |
|
|
929 |
/* pid de cdrecord */ |
/* pid de cdrecord */ |
930 |
gint *Lpid = (gint *) g_hash_table_lookup(Ahash, "pid"); |
gint *Lpid = (gint *) g_hash_table_lookup(Ahash, "pid"); |
931 |
|
|
932 |
Lbufgrav = get_combo_value(Lgraveur); |
Lbufgrav = get_combo_value(Lgraveur); |
933 |
Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 blank=%s", |
Lcommandline = g_strdup_printf("%s dev=%s -v -fix", conf_get_string("cdrecord"), Lbufgrav); |
|
conf_get_string("cdrecord"), Lbufgrav, (*Lfastblank == TRUE ? "fast" : "all")); |
|
934 |
g_free(Lbufgrav); |
g_free(Lbufgrav); |
935 |
|
|
|
printf("execution [%s]\n", Lcommandline); |
|
936 |
_DEB("execution [%s]\n", Lcommandline); |
_DEB("execution [%s]\n", Lcommandline); |
937 |
Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror); |
Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror); |
938 |
g_free(Lcommandline); |
g_free(Lcommandline); |
954 |
g_io_channel_set_encoding (Lcom, NULL, NULL); |
g_io_channel_set_encoding (Lcom, NULL, NULL); |
955 |
g_io_channel_set_flags( Lcom, G_IO_FLAG_NONBLOCK, NULL ); |
g_io_channel_set_flags( Lcom, G_IO_FLAG_NONBLOCK, NULL ); |
956 |
Lcomevent = g_io_add_watch (Lcom, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI), |
Lcomevent = g_io_add_watch (Lcom, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI), |
957 |
cdrecord_blankorfix_callback, Ahash); |
common_blankorfix_callback, Ahash); |
958 |
|
|
959 |
Lcomerr = g_io_channel_unix_new( g_err ); |
Lcomerr = g_io_channel_unix_new( g_err ); |
960 |
g_io_channel_set_encoding (Lcomerr, NULL, NULL); |
g_io_channel_set_encoding (Lcomerr, NULL, NULL); |
961 |
g_io_channel_set_flags( Lcomerr, G_IO_FLAG_NONBLOCK, NULL ); |
g_io_channel_set_flags( Lcomerr, G_IO_FLAG_NONBLOCK, NULL ); |
962 |
Lcomerrevent = g_io_add_watch (Lcomerr, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI), |
Lcomerrevent = g_io_add_watch (Lcomerr, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI), |
963 |
cdrecord_blankorfix_callback, Ahash); |
common_blankorfix_callback, Ahash); |
964 |
_DEB("cont vaut => %d\n", *Lcont); |
_DEB("cont vaut => %d\n", *Lcont); |
965 |
while (*Lcont > 1) { |
while (*Lcont > 1) { |
966 |
gtk_main_iteration(); |
gtk_main_iteration(); |
983 |
return *Aerror ? FALSE : TRUE; |
return *Aerror ? FALSE : TRUE; |
984 |
} |
} |
985 |
|
|
986 |
/* clotuer un cdr*/ |
|
987 |
gboolean perform_fix_cd(GHashTable *Ahash, GError **Aerror) |
/* ejecter un CD */ |
988 |
|
void eject_cd(gchar *Adev, GError **Aerror) |
989 |
|
{ |
990 |
|
gchar *Lcommandline = g_strdup_printf("%s -eject dev=%s", conf_get_string("cdrecord"), Adev); |
991 |
|
_DEB("EJECT %s\n", Adev); |
992 |
|
|
993 |
|
g_spawn_command_line_sync(Lcommandline, NULL, NULL, NULL, Aerror); |
994 |
|
|
995 |
|
g_free(Lcommandline); |
996 |
|
} |
997 |
|
|
998 |
|
/* effacer un cdrw */ |
999 |
|
gboolean perform_erase_cdrw(GHashTable *Ahash, GError **Aerror) |
1000 |
{ |
{ |
1001 |
gchar **Lcmd; |
gchar **Lcmd; |
1002 |
gchar *Lcommandline, *Lbufgrav; |
gchar *Lcommandline, *Lbufgrav; |
1006 |
gint g_out, g_err, Lnbrarg; |
gint g_out, g_err, Lnbrarg; |
1007 |
gint *Lcont = g_hash_table_lookup(Ahash, "cont"); |
gint *Lcont = g_hash_table_lookup(Ahash, "cont"); |
1008 |
GtkWidget *Lgraveur = g_hash_table_lookup(Ahash, "dstothercombo"); |
GtkWidget *Lgraveur = g_hash_table_lookup(Ahash, "dstothercombo"); |
1009 |
|
gboolean *Lfastblank = g_hash_table_lookup(Ahash, "usefastblank"); |
1010 |
|
|
1011 |
/* pid de cdrecord */ |
/* pid de cdrecord */ |
1012 |
gint *Lpid = (gint *) g_hash_table_lookup(Ahash, "pid"); |
gint *Lpid = (gint *) g_hash_table_lookup(Ahash, "pid"); |
1013 |
|
|
1014 |
Lbufgrav = get_combo_value(Lgraveur); |
Lbufgrav = get_combo_value(Lgraveur); |
1015 |
Lcommandline = g_strdup_printf("%s dev=%s -v -fix", conf_get_string("cdrecord"), Lbufgrav); |
Lcommandline = g_strdup_printf("%s dev=%s -v gracetime=2 blank=%s", |
1016 |
|
conf_get_string("cdrecord"), Lbufgrav, (*Lfastblank == TRUE ? "fast" : "all")); |
1017 |
g_free(Lbufgrav); |
g_free(Lbufgrav); |
1018 |
|
|
1019 |
|
printf("execution [%s]\n", Lcommandline); |
1020 |
_DEB("execution [%s]\n", Lcommandline); |
_DEB("execution [%s]\n", Lcommandline); |
1021 |
Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror); |
Lstatus = g_shell_parse_argv(Lcommandline, &Lnbrarg, &Lcmd, Aerror); |
1022 |
g_free(Lcommandline); |
g_free(Lcommandline); |
1038 |
g_io_channel_set_encoding (Lcom, NULL, NULL); |
g_io_channel_set_encoding (Lcom, NULL, NULL); |
1039 |
g_io_channel_set_flags( Lcom, G_IO_FLAG_NONBLOCK, NULL ); |
g_io_channel_set_flags( Lcom, G_IO_FLAG_NONBLOCK, NULL ); |
1040 |
Lcomevent = g_io_add_watch (Lcom, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI), |
Lcomevent = g_io_add_watch (Lcom, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI), |
1041 |
cdrecord_blankorfix_callback, Ahash); |
common_blankorfix_callback, Ahash); |
1042 |
|
|
1043 |
Lcomerr = g_io_channel_unix_new( g_err ); |
Lcomerr = g_io_channel_unix_new( g_err ); |
1044 |
g_io_channel_set_encoding (Lcomerr, NULL, NULL); |
g_io_channel_set_encoding (Lcomerr, NULL, NULL); |
1045 |
g_io_channel_set_flags( Lcomerr, G_IO_FLAG_NONBLOCK, NULL ); |
g_io_channel_set_flags( Lcomerr, G_IO_FLAG_NONBLOCK, NULL ); |
1046 |
Lcomerrevent = g_io_add_watch (Lcomerr, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI), |
Lcomerrevent = g_io_add_watch (Lcomerr, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI), |
1047 |
cdrecord_blankorfix_callback, Ahash); |
common_blankorfix_callback, Ahash); |
1048 |
_DEB("cont vaut => %d\n", *Lcont); |
_DEB("cont vaut => %d\n", *Lcont); |
1049 |
while (*Lcont > 1) { |
while (*Lcont > 1) { |
1050 |
gtk_main_iteration(); |
gtk_main_iteration(); |
1068 |
} |
} |
1069 |
|
|
1070 |
|
|
|
/* ejecter un CD */ |
|
|
void eject_cd(gchar *Adev, GError **Aerror) |
|
|
{ |
|
|
gchar *Lcommandline = g_strdup_printf("%s -eject dev=%s", conf_get_string("cdrecord"), Adev); |
|
|
_DEB("EJECT %s\n", Adev); |
|
|
|
|
|
g_spawn_command_line_sync(Lcommandline, NULL, NULL, NULL, Aerror); |
|
|
|
|
|
g_free(Lcommandline); |
|
|
} |
|
1071 |
|
|
1072 |
/* |
/* |
1073 |
* vim:et:ts=8:sts=2:sw=2 |
* vim:et:ts=8:sts=2:sw=2 |