Audio-Nama

 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 distribution
 view release on metacpan -  search on metacpan

( run in 0.509 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )