New -pacifier behavior code "interval="

This commit is contained in:
2013-06-02 11:25:07 +00:00
parent 59606c4450
commit 2faa115fe3
7 changed files with 115 additions and 49 deletions

View File

@ -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;