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

@ -33,6 +33,10 @@
/* Option -pacifier */
int Xorriso_option_pacifier(struct XorrisO *xorriso, char *style, int flag)
{
#define Xorriso_pacifier_min_intvL 0.1
#define Xorriso_pacifier_max_intvL 60.0
if(strcmp(style, "xorriso")==0 || strcmp(style, "default")==0)
xorriso->pacifier_style= 0;
else if(strcmp(style, "mkisofs")==0 || strcmp(style, "genisofs")==0 ||
@ -41,7 +45,24 @@ int Xorriso_option_pacifier(struct XorrisO *xorriso, char *style, int flag)
else if(strcmp(style, "cdrecord")==0 || strcmp(style, "cdrskin")==0 ||
strcmp(style, "wodim")==0 || strcmp(style, "xorrecord")==0)
xorriso->pacifier_style= 2;
else {
else if(strncmp(style, "interval=", 9) == 0) {
sscanf(style + 9, "%lf", &(xorriso->pacifier_interval));
if(xorriso->pacifier_interval < Xorriso_pacifier_min_intvL) {
sprintf(xorriso->info_text,
"-pacifier: interval='%s' is too low. Min: %f",
style, Xorriso_pacifier_min_intvL);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
xorriso->pacifier_interval= Xorriso_pacifier_min_intvL;
} else if(xorriso->pacifier_interval > Xorriso_pacifier_max_intvL) {
sprintf(xorriso->info_text,
"-pacifier: interval='%s' is too high. Max: %f",
style, Xorriso_pacifier_max_intvL);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
xorriso->pacifier_interval= Xorriso_pacifier_max_intvL;
}
} else {
sprintf(xorriso->info_text, "-pacifier: unknown behavior code '%s'", style);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
return(0);