mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-15 19:16:40 +01:00
Merged changes from trunk 1699:1751 into 2.1-staging
git-svn-id: svn://localhost/ardour2/branches/2.1-staging@1752 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
45d3ec1437
commit
87726495c3
182 changed files with 5678 additions and 3275 deletions
61
tools/ARDOUR/AutomationSRConverter.pm
Normal file
61
tools/ARDOUR/AutomationSRConverter.pm
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
package ARDOUR::AutomationSRConverter;
|
||||
|
||||
sub new {
|
||||
my ($type, $input, $output, $inputSR, $outputSR) = @_;
|
||||
|
||||
my $self = bless {}, $type;
|
||||
|
||||
$self->{Input} = $input;
|
||||
$self->{Output} = $output;
|
||||
$self->{Ratio} = ($outputSR+0) / ($inputSR+0);
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub readline {
|
||||
my ($self) = @_;
|
||||
|
||||
my $buf;
|
||||
my $c='';
|
||||
|
||||
do {
|
||||
$buf.=$c;
|
||||
$c=$self->{Input}->getc;
|
||||
} while ($c ne '' && $c ne "\n");
|
||||
|
||||
return $buf;
|
||||
}
|
||||
|
||||
sub writeline {
|
||||
my ($self, $line) = @_;
|
||||
|
||||
$self->{Output}->print($line."\n");
|
||||
}
|
||||
|
||||
sub convert {
|
||||
my ($self) = @_;
|
||||
|
||||
my $version=$self->readline;
|
||||
|
||||
if ($version ne "version 1") {
|
||||
die ("Unsupported automation version $version");
|
||||
}
|
||||
|
||||
$self->writeline($version);
|
||||
|
||||
my $buf = $self->readline;
|
||||
while ( $buf ne "" ) {
|
||||
if ( $buf eq "begin" ||
|
||||
$buf eq "end") {
|
||||
$self->writeline($buf);
|
||||
} else {
|
||||
my ($type, $position, $value) = split(' ', $buf);
|
||||
|
||||
$self->writeline($type." ".sprintf("%.0f",$position*$self->{Ratio})." ".$value);
|
||||
}
|
||||
|
||||
$buf = $self->readline;
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
Loading…
Add table
Add a link
Reference in a new issue