New -pacifier behavior code "interval="
This commit is contained in:
@ -3088,6 +3088,10 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
xorriso->pacifier_style==2 ? "cdrecord" : "xorriso");
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
is_default= (xorriso->pacifier_interval == 1.0);
|
||||
sprintf(line,"-pacifier interval=%f\n", xorriso->pacifier_interval);
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
is_default= (strcmp(xorriso->return_with_text,"SORRY")==0 &&
|
||||
xorriso->return_with_value==32);
|
||||
@ -3418,7 +3422,7 @@ int Xorriso_pacifier_callback(struct XorrisO *xorriso, char *what_done,
|
||||
{
|
||||
double current_time, since, interval_time, speed, speed_factor;
|
||||
char count_text[80], byte_text[80], profile_name[80], *speed_unit;
|
||||
int ret, profile_number;
|
||||
int ret, profile_number, short_sec;
|
||||
off_t amount;
|
||||
|
||||
current_time= Sfile_microtime(0);
|
||||
@ -3428,8 +3432,10 @@ int Xorriso_pacifier_callback(struct XorrisO *xorriso, char *what_done,
|
||||
return(1);
|
||||
xorriso->last_update_time= Sfile_microtime(0);
|
||||
since= current_time - xorriso->start_time;
|
||||
if((flag&1)&&since<1.0)
|
||||
if((flag & 1) && since < 1.0 && xorriso->pacifier_interval >= 1.0)
|
||||
since= 1.0;
|
||||
if((flag & 1) && since < 0.1)
|
||||
since= 0.1;
|
||||
byte_text[0]= 0;
|
||||
if(flag&4) {
|
||||
strcat(byte_text, " (");
|
||||
@ -3437,24 +3443,35 @@ int Xorriso_pacifier_callback(struct XorrisO *xorriso, char *what_done,
|
||||
byte_text+strlen(byte_text), 7, 1e5, 0);
|
||||
strcat(byte_text, ")");
|
||||
}
|
||||
short_sec= 0;
|
||||
if(count<=0.0 && !(flag&2)) {
|
||||
if(since < 2)
|
||||
return(2);
|
||||
sprintf(xorriso->info_text,
|
||||
"Thank you for being patient for %.f seconds", since);
|
||||
"Thank you for being patient for");
|
||||
} else if(todo<=0.0) {
|
||||
if(count<10000000)
|
||||
sprintf(count_text, "%.f", (double) count);
|
||||
else
|
||||
Sfile_scale((double) count, count_text, 7, 1e5, 1);
|
||||
sprintf(xorriso->info_text, "%s %s%s in %.f %s",
|
||||
count_text, what_done, byte_text, since,
|
||||
(flag & 64) ? "s" : "seconds");
|
||||
sprintf(xorriso->info_text, "%s %s%s in",
|
||||
count_text, what_done, byte_text);
|
||||
short_sec= (flag & 64);
|
||||
} else {
|
||||
sprintf(xorriso->info_text, "%.f of %.f %s%s in %.f %s",
|
||||
(double) count, (double) todo, what_done, byte_text, since,
|
||||
(flag & (8 | 64)) ? "s" : "seconds");
|
||||
sprintf(xorriso->info_text, "%.f of %.f %s%s in",
|
||||
(double) count, (double) todo, what_done, byte_text);
|
||||
short_sec= (flag & (8 | 64));
|
||||
}
|
||||
if(xorriso->pacifier_interval < 1.0) {
|
||||
sprintf(xorriso->info_text + strlen(xorriso->info_text),
|
||||
" %.1f", since);
|
||||
} else {
|
||||
sprintf(xorriso->info_text + strlen(xorriso->info_text),
|
||||
" %.f", since);
|
||||
}
|
||||
sprintf(xorriso->info_text + strlen(xorriso->info_text),
|
||||
" %s", short_sec ? "s" : "seconds");
|
||||
|
||||
speed= -1.0;
|
||||
if(flag & 4)
|
||||
amount= xorriso->pacifier_byte_count;
|
||||
|
Reference in New Issue
Block a user