#!/usr/local/bin/perl -Tw
# The indentation is sometimes very bad. Tell Xemacs the problem :)
use CGI::Carp qw( fatalsToBrowser );
use CGI qw(:standard);
use Benchmark;
use English;
use Getopt::Long;
use File::Basename;
use lib ("../Translation");
use Translation ('load', 'translate', 'language');
use Config; # signal stuff
#%ENV = ();
$ENV{'PATH'} = "";
sub handler {
local($sig) = @_;
$signb++;
print "
Caught a SIG$sig signal : $signb
\n";
}
GetOptions("configfile=s" => \$configurationFile,
"messages=s" => \$messagesFile);
$globalBegin = new Benchmark;
$imagesPath = "";
$configurationFile =
($configurationFile) ? $configurationFile :"../etc/sequencesHTML.conf";
$messagesFile = ($messagesFile) ? $messagesFile : "../etc/messages.conf" ;
%confParameters = readTheConfigurationFile($configurationFile);
# I insert a line break if the sequences are too long
# for a good printing in A4 paper.
$lineBreakLimit = 7;
$query = new CGI;
param(-Name=>'Defaults',
-Value=>'1') unless(param);
#reading if the user wants to change the language.
param(-Name=>'Language',-value=>"English") if(defined(param(-Name=>'EnglishImage.x')));
param(-Name=>'Language',-value=>"Francais") if(defined(param(-Name=>'FrenchImage.x')));
$corpus = load($messagesFile);
$corpus->language(param(-Name=>'Language'))
if (defined(param(-Name=>'Language')));
$| = 1;
print header(-expires=>'+1h');
foreach $compression (qw(zip gz bz2 none)){
my(@command,$command,$configCompression,$configExtension);
if ((defined(param(-Name=>'CompressionStyle')))
and (param(-Name=>'CompressionStyle') eq $compression)){
unshift @rollCompresion, $compression;
}else{
push @rollCompresion, $compression;
};
$configCompression = "${compression}Compression";
$configExtension = "${compression}Extension";
if ((defined($confParameters{$configCompression}))){
@command = split(/\s+/, $confParameters{$configCompression});
$command = $command[0];
}
if ((defined($confParameters{$configCompression})) and (-x $command)) {
$compression{'command'}{${compression}} = $confParameters{$configCompression} . " ";
$compression{'label'}{${compression}} = $corpus->translate(" " . ${compression});
$compression{'available'}{${compression}} = 1;
$compression{'extension'}{${compression}} = $confParameters{$configExtension};
}else{
$compression{'available'}{${compression}} = 0;
}
}
while (@rollCompresion){
$compression = shift(@rollCompresion);
if ($compression{'available'}{${compression}}){
param(-Name=>'CompressionStyle',-value=>$compression);
$compression{'selected'}=$compression;
last;
};
}
unless (@rollCompresion){
$compression{'selected'}='not available';
$compression{'label'}{'not available'} = $corpus->translate(' not available');
}
# Default values
if (param(-Name=>'Defaults')) {
$saveLanguage = param(-Name=>'Language') if param(-Name=>'Language');
# Defaults are defautls ! So an easy way :
CGI::delete_all();
param(-Name=>'CompressionStyle',-value=>$compression{'selected'});
#param(-Name=>'Filter',-value=>'yes') unless param(-Name=>'Filter');
param(-Name=>'Tempo',-value=>'320') unless param(-Name=>'Tempo');
param(-Name=>'Midi',-value=>'yes') unless param(-Name=>'Midi');
param(-Name=>'Graphics',-value=>'yes') unless param(-Name=>'Graphics');
param(-Name=>'Parrot',-value=>'yes') unless param(-Name=>'Parrot');
param(-Name=>'Repeat', -Value=>'2') unless param(-Name=>'Repeat');
param(-Name=>'Right Hand',-value=>'R') unless param(-Name=>'Right Hand');
param(-Name=>'Left Hand',-value=>'L') unless param(-Name=>'Left Hand');
param(-Name=>'Bass Drum',-value=>'O') unless param(-Name=>'Bass Drum');
param(-Name=>'Click',-value=>'K') unless param(-Name=>'Click');
param(-Name=>'ClickTimes',-value=>' 1 ') unless param(-Name=>'ClickTimes');
param(-Name=>'RuleR',-value=>'R 2') unless param(-Name=>'RuleR');
param(-Name=>'RuleL',-value=>'L 2') unless param(-Name=>'RuleL');
param(-Name=>'RuleO',-value=>'O 1') unless param(-Name=>'RuleO');
param(-Name=>'RuleH',-value=>'H 1') unless param(-Name=>'RuleH');
param(-Name=>'RuleS',-value=>'S 1') unless param(-Name=>'RuleS');
param(-Name=>'OppositeR',-value=>'R L') unless param(-Name=>'OppositeR');
param(-Name=>'OppositeL',-value=>'L R') unless param(-Name=>'OppositeL');
param(-Name=>'OppositeO',-value=>'O O') unless param(-Name=>'OppositeO');
param(-Name=>'OppositeH',-value=>'H O') unless param(-Name=>'OppositeH');
param(-Name=>'OppositeS',-value=>'S S') unless param(-Name=>'OppositeS');
param(-Name=>'InstrR',-value=>'56') unless param(-Name=>'InstrR');
param(-Name=>'InstrL',-value=>'40') unless param(-Name=>'InstrL');
param(-Name=>'InstrH',-value=>'44') unless param(-Name=>'InstrH');
param(-Name=>'InstrO',-value=>'36') unless param(-Name=>'InstrO');
param(-Name=>'InstrK',-value=>'53') unless param(-Name=>'InstrK');
param(-Name=>'VolR',-value=>'63') unless param(-Name=>'VolR');
param(-Name=>'VolL',-value=>'63') unless param(-Name=>'VolL');
param(-Name=>'VolH',-value=>'63') unless param(-Name=>'VolH');
param(-Name=>'VolO',-value=>'63') unless param(-Name=>'VolO');
param(-Name=>'VolK',-value=>'63') unless param(-Name=>'VolK');
param(-Name=>'Length', -Value=>'4') unless param(-Name=>'Length');
param(-Name=>'OutputStyle',-value=>' score') unless param(-Name=>'OutputStyle');
($saveLanguage) ? param(-Name=>'Language',-value=>"$saveLanguage")
: param(-Name=>'Language',-value=>"English");
}
# Are the input values correct ?
$query->delete('Right Hand')
unless (param(-Name=>'Right Hand')
and (param(-Name=>'Right Hand') =~ m/^R?$/));
$query->delete('Left Hand')
unless (param(-Name=>'Left Hand')
and param(-Name=>'Left Hand')=~ m/^L?$/);
$query->delete('Bass Drum')
unless (param(-Name=>'Bass Drum')
and param(-Name=>'Bass Drum')=~ m/^O?$/);
$query->delete('Hit Hat')
unless (param(-Name=>'Hit Hat')
and param(-Name=>'Hit Hat')=~ m/^H?$/);
$query->delete('Silence')
unless (param(-Name=>'Silence')
and param(-Name=>'Silence')=~ m/^S?$/);
param(-Name=>'RuleR',-value=>'R 0')
unless param(-Name=>'RuleR')=~
m/^R (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16)$/;
param(-Name=>'RuleL',-value=>'L 0')
unless param(-Name=>'RuleL')=~
m/^L (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16)$/;
param(-Name=>'RuleO',-value=>'O 0')
unless param(-Name=>'RuleO')=~
m/^O (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16)$/;
param(-Name=>'RuleH',-value=>'H 0')
unless param(-Name=>'RuleH')=~
m/^H (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16)$/;
param(-Name=>'RuleS',-value=>'S 0')
unless param(-Name=>'RuleS')=~
m/^S (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16)$/;
param(-Name=>'OppositeR',-value=>'R L')
unless param(-Name=>'OppositeR')=~ m/^R (R|L|H|O|S)$/;
param(-Name=>'OppositeL',-value=>'L R')
unless param(-Name=>'OppositeL')=~ m/^L (R|L|H|O|S)$/;;
param(-Name=>'OppositeO',-value=>'O H')
unless param(-Name=>'OppositeO')=~ m/^O (R|L|H|O|S)$/;;
param(-Name=>'OppositeH',-value=>'H O')
unless param(-Name=>'OppositeH')=~ m/^H (R|L|H|O|S)$/;;
param(-Name=>'OppositeS',-value=>'S S')
unless param(-Name=>'OppositeS')=~ m/^S (R|L|H|O|S)$/;;
param(-Name=>'Length',-value=>'0')
unless param(-Name=>'Length')=~
m/^(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16)$/;
param(-Name=>'OutputStyle',-value=>' score')
unless param(-Name=>'OutputStyle')=~ m/^( caracter| score)$/;
param(-Name=>'Filter', -value=>'no')
if (param(-Name=>'OutputStyle') eq " caracter");
param(-Name=>'Tempo', -value=>'2047')
if (param(-Name=>'Tempo') > 2047);
# Now, they are !
$doFilter = (defined(param(-Name=>'Filter')) and param(-Name=>'Filter') eq 'yes') ? 'yes' : 'no';
print start_html(-Title=>$corpus->translate('Drum Patterns, The infinite work !'),
-Author=>'lamiral@mail.dotcom.fr',
-Meta=>{'keywords'=>$corpus->translate('Drum, Sequence, Pattern, Score, Generator, Recursion, Lamiral, GNU, Open source software, GPL, Linux, Perl, CGI'),
'copyright'=>
"Gnu Public Licence, copyleft May 1998 gilles lamiral"},
-BGCOLOR=>'#c0c0c0'
),"\n";
defined $Config{sig_name} or die "No signals ?";
$i = 0;
foreach $name (split(' ', $Config{sig_name})) {
$sig{$name} = $i;
$sig{$i} = $name;
#print "SIG$name = $i
\n";
$i++;
}
#$SIG{QUIT} = \&handler;
#$SIG{PIPE} = \&handler;
#print "
", submit(-Name=>'Go', -Value=>$corpus->translate("Go !") ), "\n | ", reset(-Value=>$corpus->translate("Cancel")), "\n | ", submit(-Name=>'Defaults', -Value=>$corpus->translate("Defaults") ), "\n |
", $corpus->translate('Configuration'), "\n | |||||||
---|---|---|---|---|---|---|---|
", checkbox(-Name=>'Graphics', -value=>'yes', -label=>$corpus->translate(' Graphics') ), "\n | ", checkbox(-Name=>'Midi', -value=>'yes', -label=>$corpus->translate(' Midi') ), "\n | ||||||
", "\n | ", $corpus->translate('Length'), "\n | ", $corpus->translate('Output'), "\n | ", $corpus->translate('Filter'), "\n | ", $corpus->translate('Save'), "\n | ", $corpus->translate('Repeat'), "\n | ", $corpus->translate('Compress'), "\n | ", $corpus->translate('Tempo'), "\n |
", "\n | ", popup_menu(-name=>'Length', -Values=>['0','1','2','3','4','5','6','7','8', '9','10','11','12','13','14','15','16']), "\n | ", radio_group(-name=>'OutputStyle', -Values=>[' score', ' caracter'], -labels=>{' score'=>$corpus->translate(' score'), ' caracter'=>$corpus->translate(' letters') }, -linebreak=>'yes'), "\n | ",checkbox(-Name=>'Filter', -value=>'yes', -label=>$corpus->translate(' Loops') ), "\n | ", a({href=>CGI::self_url}, $corpus->translate("Config"), ), "\n | ",
popup_menu(-name=>'Repeat',
-Values=>['1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'10',
'11',
'12',
'13',
'14',
'15',
'16',
'17',
'18',
'19',
'20',
'21',
'22',
'23',
'24',
'25',
'26',
'27',
'28',
'29',
'30',
'31',
'32'
],
-Labels=>{'1'=>'1',
'2'=>'2',
'3'=>'3',
'4'=>'4',
'5'=>'5',
'6'=>'6',
'7'=>'7',
'8'=>'8',
'9'=>'9',
'10'=>'10',
'11'=>'11',
'12'=>'12',
'13'=>'13',
'14'=>'14',
'15'=>'15',
'16'=>'16',
'17'=>'17',
'18'=>'18',
'19'=>'19',
'20'=>'20',
'21'=>'21',
'22'=>'22',
'23'=>'23',
'24'=>'24',
'25'=>'25',
'26'=>'26',
'27'=>'27',
'28'=>'28',
'29'=>'29',
'30'=>'30',
'31'=>'31',
'32'=>'32',
},
),
"\n ", checkbox(-Name=>'Parrot', -value=>'yes', -label=>$corpus->translate(' Parrot') ), "\n | ", radio_group(-name=>'CompressionStyle', -Values=>[keys(%$refCompressionLablels)], -Labels=>$refCompressionLablels, -Linebreak=>'yes' ), "\n | ", textfield(-name=>'Tempo', -size=>length(param(-Name=>'Tempo')), -maxlength=>5 ), "\n |
M", "\n | ", $corpus->translate('Selection'), "\n | ", $corpus->translate('Maximum'), "\n | ", $corpus->translate('Opposite'), "\n | ", $corpus->translate('Leg.'), "\n | ", $corpus->translate('Instrument'), "\n | ", $corpus->translate('Volume'), "\n | |
1", "\n | ",checkbox(-Name=>'Right Hand', -value=>'R', -label=>$corpus->translate('Right Hand') ), "\n | ",popup_menu(-name=>'RuleR', -Values=>['R 0', 'R 1', 'R 2', 'R 3', 'R 4', 'R 5', 'R 6', 'R 7', 'R 8', 'R 9', 'R 10', 'R 11', 'R 12', 'R 13', 'R 14', 'R 15', 'R 16' ], -Labels=>{'R 0'=>$corpus->translate('None'), 'R 1'=>'1', 'R 2'=>'2', 'R 3'=>'3', 'R 4'=>'4', 'R 5'=>'5', 'R 6'=>'6', 'R 7'=>'7', 'R 8'=>'8', 'R 9'=>'9', 'R 10'=>'10', 'R 11'=>'11', 'R 12'=>'12', 'R 13'=>'13', 'R 14'=>'14', 'R 15'=>'15', 'R 16'=>'16' }, ), " | ",popup_menu(-name=>'OppositeR', -Values=>['R R','R L','R O','R H','R S'], -labels=>{'R R'=>$corpus->translate('Right Hand'), 'R L'=>$corpus->translate('Left Hand'), 'R O'=>$corpus->translate('Bass Drum'), 'R H'=>$corpus->translate('Hit Hat'), 'R S'=>$corpus->translate('Silence') } ), " | ",
" | ", popup_menu_instrument('InstrR'), " | ", textfield(-name=>'VolR', -size=>length(param(-Name=>'VolR')), -maxlength=>5 ), " | |
2", " | ",checkbox(-Name=>'Left Hand', -value=>'L', -label=>$corpus->translate('Left Hand')), " | ",popup_menu(-name=>'RuleL', -Values=>['L 0', 'L 1', 'L 2', 'L 3', 'L 4', 'L 5', 'L 6', 'L 7', 'L 8', 'L 9', 'L 10', 'L 11', 'L 12', 'L 13', 'L 14', 'L 15', 'L 16' ], -Labels=>{'L 0'=>$corpus->translate('None'), 'L 1'=>'1', 'L 2'=>'2', 'L 3'=>'3', 'L 4'=>'4', 'L 5'=>'5', 'L 6'=>'6', 'L 7'=>'7', 'L 8'=>'8', 'L 9'=>'9', 'L 10'=>'10', 'L 11'=>'11', 'L 12'=>'12', 'L 13'=>'13', 'L 14'=>'14', 'L 15'=>'15', 'L 16'=>'16' }, ), " | ",popup_menu(-name=>'OppositeL', -Values=>['L R','L L','L O','L H','L S'], -labels=>{'L R'=>$corpus->translate('Right Hand'), 'L L'=>$corpus->translate('Left Hand'), 'L O'=>$corpus->translate('Bass Drum'), 'L H'=>$corpus->translate('Hit Hat'), 'L S'=>$corpus->translate('Silence') } ), " | ",
" | ", popup_menu_instrument('InstrL'), " | ", textfield(-name=>'VolL', -size=>length(param(-Name=>'VolL')), -maxlength=>5 ), " | |
3", " | ",checkbox(-Name=>'Bass Drum', -value=>'O', -label=>$corpus->translate('Bass Drum') ), " | ",popup_menu(-name=>'RuleO', -Values=>['O 0', 'O 1', 'O 2', 'O 3', 'O 4', 'O 5', 'O 6', 'O 7', 'O 8', 'O 9', 'O 10', 'O 11', 'O 12', 'O 13', 'O 14', 'O 15', 'O 16' ], -Labels=>{'O 0'=>$corpus->translate('None'), 'O 1'=>'1', 'O 2'=>'2', 'O 3'=>'3', 'O 4'=>'4', 'O 5'=>'5', 'O 6'=>'6', 'O 7'=>'7', 'O 8'=>'8', 'O 9'=>'9', 'O 10'=>'10', 'O 11'=>'11', 'O 12'=>'12', 'O 13'=>'13', 'O 14'=>'14', 'O 15'=>'15', 'O 16'=>'16' }, ), " | ",popup_menu(-name=>'OppositeO', -Values=>['O R','O L','O O','O H','O S'], -labels=>{'O R'=>$corpus->translate('Right Hand'), 'O L'=>$corpus->translate('Left Hand'), 'O O'=>$corpus->translate('Bass Drum'), 'O H'=>$corpus->translate('Hit Hat'), 'O S'=>$corpus->translate('Silence') } ), " | ",
" | ", popup_menu_instrument('InstrO'), " | ", textfield(-name=>'VolO', -size=>length(param(-Name=>'VolO')), -maxlength=>5 ), " | |
4", " | ",checkbox(-Name=>'Hit Hat', -value=>'H', -label=>$corpus->translate('Hit Hat') ), " | ",popup_menu(-name=>'RuleH', -Values=>['H 0', 'H 1', 'H 2', 'H 3', 'H 4', 'H 5', 'H 6', 'H 7', 'H 8', 'H 9', 'H 10', 'H 11', 'H 12', 'H 13', 'H 14', 'H 15', 'H 16' ], -Labels=>{'H 0'=>$corpus->translate('None'), 'H 1'=>'1', 'H 2'=>'2', 'H 3'=>'3', 'H 4'=>'4', 'H 5'=>'5', 'H 6'=>'6', 'H 7'=>'7', 'H 8'=>'8', 'H 9'=>'9', 'H 10'=>'10', 'H 11'=>'11', 'H 12'=>'12', 'H 13'=>'13', 'H 14'=>'14', 'H 15'=>'15', 'H 16'=>'16' }, ), " | ",popup_menu(-name=>'OppositeH', -Values=>['H R','H L','H O','H H','H S'], -labels=>{'H R'=>$corpus->translate('Right Hand'), 'H L'=>$corpus->translate('Left Hand'), 'H O'=>$corpus->translate('Bass Drum'), 'H H'=>$corpus->translate('Hit Hat'), 'H S'=>$corpus->translate('Silence') } ), " | ",
" | ", popup_menu_instrument('InstrH'), " | ", textfield(-name=>'VolH', -size=>length(param(-Name=>'VolH')), -maxlength=>5 ), " | |
5", " | ",checkbox(-Name=>'Silence', -value=>'S', -label=>$corpus->translate('Silence') ), " | ",popup_menu(-name=>'RuleS', -Values=>['S 0', 'S 1', 'S 2', 'S 3', 'S 4', 'S 5', 'S 6', 'S 7', 'S 8', 'S 9', 'S 10', 'S 11', 'S 12', 'S 13', 'S 14', 'S 15', 'S 16' ], -Labels=>{'S 0'=>$corpus->translate('None'), 'S 1'=>'1', 'S 2'=>'2', 'S 3'=>'3', 'S 4'=>'4', 'S 5'=>'5', 'S 6'=>'6', 'S 7'=>'7', 'S 8'=>'8', 'S 9'=>'9', 'S 10'=>'10', 'S 11'=>'11', 'S 12'=>'12', 'S 13'=>'13', 'S 14'=>'14', 'S 15'=>'15', 'S 16'=>'16' }, ), " | ",popup_menu(-name=>'OppositeS', -Values=>['S R','S L','S O','S H','S S'], -labels=>{'S R'=>$corpus->translate('Right Hand'), 'S L'=>$corpus->translate('Left Hand'), 'S O'=>$corpus->translate('Bass Drum'), 'S H'=>$corpus->translate('Hit Hat'), 'S S'=>$corpus->translate('Silence') } ), " | ",
" | ", "", " | ||
6", " | ", checkbox( -Name=>'Click', -value=>'K', -label=>$corpus->translate('Click') ), " | ", $corpus->translate('Where'), " : ", textfield(-name=>'ClickTimes', -maxlength=>50 ), " | ", popup_menu_instrument('InstrK'), " | ", textfield(-name=>'VolK', -size=>length(param(-Name=>'VolK')), -maxlength=>5 ), " |
",$corpus->translate('Estimations'),"\n", " | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
",$corpus->translate('Length'),"\n"; $AbsolutLimit = min( $lengthLimitBySequences, max_liste($lengthLimitByCaracter, $lengthLimitByScore, $lengthLimitByMidi) ); foreach $num (1..16){ print " | \n"; if ($num < $AbsolutLimit ) { # Allowed demand # A good one if ($num eq $lengthOfSequences) { print "$num\n"; }else { # The last choosen, for better reading. print "$num\n"; } }else { # Forbidden ! if ($num eq $lengthOfSequences) { print "$num\n"; }else { print "$num\n"; } } } print "\n | |||||||||||||||
",$corpus->translate('Sequences'), "\n"; foreach $num (1..16){ print " | \n"; if ($num < $AbsolutLimit) { # Allowed demand # A good one if ($num eq $lengthOfSequences) { print "$estimateResult[$num -1]\n"; }else { # The last choosen, for better reading. print "$estimateResult[$num -1]\n"; } }else { # Forbidden ! if ($num eq $lengthOfSequences) { print "", "$estimateResult[$num -1]\n"; }else { print "$estimateResult[$num -1]\n"; } } } print "\n | |||||||||||||||
",$corpus->translate('Html weight Letter (Ko)'), "\n"; foreach $num (1..16){ print " | \n"; if ($num < min($lengthLimitBySequences,$lengthLimitByCaracter)) { # Allowed demand # A good one if ($num eq $lengthOfSequences) { if (defined(param(-Name=>'Graphics')) and param(-Name=>'Graphics') and param(OutputStyle) eq " caracter"){ print "\n", "$estimateOutputLengthCaracter[$num - 1]\n"; }else{ print "$estimateOutputLengthCaracter[$num - 1]\n"; } }else { # The last choosen, for better reading. print "$estimateOutputLengthCaracter[$num - 1]\n"; } }else { # Forbidden ! if ($num eq $lengthOfSequences) { if (defined(param(-Name=>'Graphics')) and param(-Name=>'Graphics') and param(OutputStyle) eq " caracter"){ print "\n", "$estimateOutputLengthCaracter[$num - 1]\n"; }else{ print "$estimateOutputLengthCaracter[$num - 1]\n"; } }else{ print "\n", "$estimateOutputLengthCaracter[$num - 1]\n", "\n"; } } } print "\n | |||||||||||||||
",$corpus->translate('Html weight Score (Ko)'), "\n"; foreach $num (1..16){ print " | \n"; if ($num < min($lengthLimitBySequences,$lengthLimitByScore)) { # Allowed demand # A good one if ($num eq $lengthOfSequences) { if (defined(param(-Name=>'Graphics')) and param(-Name=>'Graphics') and param(OutputStyle) eq " score"){ print "\n", "$estimateOutputLengthScore[$num - 1]\n", "\n"; }else{ print "$estimateOutputLengthScore[$num - 1]\n"; } }else { print "$estimateOutputLengthScore[$num - 1]\n"; } }else { # Forbidden ! if ($num eq $lengthOfSequences) { if (defined(param(-Name=>'Graphics')) and param(-Name=>'Graphics') and param(OutputStyle) eq " score"){ print "\n", "$estimateOutputLengthScore[$num - 1]\n", ""; }else{ print "$estimateOutputLengthScore[$num - 1]\n"; } }else{ print "$estimateOutputLengthScore[$num - 1]\n"; } } } print "\n | |||||||||||||||
",$corpus->translate('Midi weight file (Ko)'), "\n"; foreach $num (1..16){ print " | \n"; if ($num < min($lengthLimitBySequences,$lengthLimitByMidi)) { # Allowed demand # A good one if ($num eq $lengthOfSequences) { if (defined(param(-Name=>'Midi')) and param(-Name=>'Midi') eq 'yes'){ print "\n", "$estimateMidiOutputLength[$num - 1]\n", "\n"; }else{ print "$estimateMidiOutputLength[$num - 1]\n"; } }else { print "$estimateMidiOutputLength[$num - 1]\n"; } }else { # Forbidden ! if ($num eq $lengthOfSequences) { if (param(-Name=>'Midi') eq 'yes'){ print "\n", "$estimateMidiOutputLength[$num - 1]\n", ""; }else{ print "$estimateMidiOutputLength[$num - 1]\n"; } }else{ print "$estimateMidiOutputLength[$num - 1]\n"; } } } print " |
\n");
displayPatterns();
print ("
\n","
\n"); $globalEnd = new Benchmark; $globalDiff = timediff($globalEnd,$globalBegin); if ($sequencesNumberComp == 0) { $filterPerCent = 0; }else{ $sequencesNumberOut = (defined($sequencesNumberOut)) ? $sequencesNumberOut : 0; $filterPerCent = sprintf "%2.2f", 100*(1-(($sequencesNumberOut)/(2*$sequencesNumberComp))); } $runningTimeStr = timestr($globalDiff); $runningTimeStr =~ /\A.*\s+(\d+\.\d+)\s*cpu\s*\).*\Z/; $runningTime = $1; print "
\n", $corpus->translate('Results'), "\n", " | ||||
---|---|---|---|---|
",$corpus->translate('Running Time'), "\n", " | ",$corpus->translate('Computed sequences'), "\n", " | ",$corpus->translate('Printed sequences'), "\n", " | ",$corpus->translate('Filtering'), "\n", " | ",$corpus->translate('Html weight'), "\n", " |
", $runningTime, " secs", "\n", " | ", "\n", "",$sequencesNumberComp * 2, "", "\n", " | ", "\n", "",$sequencesNumberOut, "", "\n", " | ", "\n", "", $filterPerCent, " %", "", "\n", " | ", "\n", "",$lengthInKo, " Ko", "", "\n", " |