Audio-Nama
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Audio/Nama/Fade.pm view on Meta::CPAN
# ----------- Fade ------------
package Audio::Nama::Fade;
use Modern::Perl '2020';
use List::Util qw(min);
our $VERSION = 1.0;
use Carp;
use warnings;
no warnings qw(uninitialized);
our @ISA;
our($n, %by_index);
use Audio::Nama::Globals qw(:singletons %tn @fade_data);
use Audio::Nama::Log qw(logsub logpkg);
use Audio::Nama::Effect qw(remove_effect add_effect update_effect);
# we don't import 'type' as it would clobber our $fade->type attribute
use Audio::Nama::Object qw(
n
type
mark1
mark2
duration
relation
track
class
);
initialize();
sub initialize {
%by_index = ();
@fade_data = (); # for save/restore
}
sub next_n {
my $n = 1;
while( $by_index{$n} ){ $n++}
$n
}
sub new {
my $class = shift;
my %vals = @_;
croak "undeclared field: @_" if grep{ ! $_is_field{$_} } keys %vals;
my $object = bless
{
# class => $class, # not needed yet
n => next_n(),
relation => 'fade_from_mark',
@_
}, $class;
$by_index{$object->n} = $object;
logpkg(__FILE__,__LINE__,'debug',"object class: $class, object type: ", ref $object);
my $id = add_fader($object->track);
my $track = $tn{$object->track};
Audio::Nama::request_setup(); # fades take effect after next engine stop
$object
}
# helper routines
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.509 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )