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 )