Audio-Nama
view release on metacpan or search on metacpan
lib/Audio/Nama/AnalyseLV2.pm view on Meta::CPAN
sub find_utils {
my $output;
$output = `which lv2info`;
chomp($output);
if ( $output =~ /^\/.+lv2info$/ ) {
$lv2info = $output;;
} else { return 0; }
$output = `which lv2ls`;
chomp($output);
if ( $output =~ /^\/.+lv2ls$/ ) {
$lv2ls = $output;
} else { return 0; }
return 1;
}
sub trymatch {
my ($string) = @_;
my @lv2lsoutput = `$lv2ls`;
my @results;
foreach my $uline (@lv2lsoutput) {
chomp($uline);
push(@results, ($uline)) if ($uline =~ /$string/i);
}
return @results;
}
sub print_lv2_scalepoints {
my @buffer;
if (keys(%scalepoints) > 0) {
push @buffer, "Printing full information for ports with scale points in plugin...\n$plugin{general}{name}\n";
foreach my $port (sort {$a <=> $b} (keys(%scalepoints))) {
$currentport = $port;
push @buffer, "Port $currentport: " . generateportinfo();
foreach my $point ( sort {$a <=> $b} (keys(%{ $scalepoints{$currentport} })) ) {
push @buffer, "\t $point \= $scalepoints{$currentport}{$point}\n";
}
}
}
else { push @buffer, "Plugin $plugin{general}{name} does not have any port with scale points.\n\n"; }
return @buffer;
}
sub analyse_lv2 {
my ($uri) = @_;
if ( find_utils() ) {
return _analyse_lv2($uri);
} else {
$plugin{error} = "Utilities not found.";
return \%plugin;
}
}
sub lv2_help {
my $uri = shift;
find_utils();
analyse_lv2($uri);
print_lv2();
}
#print lv2_help('http://plugin.org.uk/swh-plugins/zm1');
#print lv2_help('urn:50m30n3:plugins:SO-404');
sub proc_datafile {
my ($file) = @_;
open(my $fh, "<", $file) || return 0;
$currentport = -1;
while (my $curline = <$fh>) {
if ($curline =~ /lv2\:index +(\d+) *;$/ ) {
$currentport = $1;
}
if ($curline =~ /ue\:unit +ue\:([a-zA-Z0-9_]+) *;$/
&& ($currentport != -1)) {
$plugin{$currentport}{'units'} = $1;
}
}
close($fh);
$currentport = -1;
return 1;
}
sub cunits {
(my $units) = @_;
$units =~ s/pc/\%/ if $units =~ /pc/;
return $units;
}
1;
( run in 2.281 seconds using v1.01-cache-2.11-cpan-5b529ec07f3 )