Audio-Nama
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Audio/Nama/Bus.pm view on Meta::CPAN
# ------------ Bus --------------------
{
package Audio::Nama::Bus;
use Modern::Perl '2020'; use Carp;
use Audio::Nama::Log qw(logsub logpkg);
use Audio::Nama::Globals qw(:trackrw $setup);
our @ISA = qw( Audio::Nama::Object );
# share the following variables with subclasses
our $VERSION = 1.0;
our (%by_name);
use Audio::Nama::Object qw(
name
rw
version
send_type
send_id
engine_group
class
);
sub initialize {
%by_name = ();
};
sub new {
my $class = shift;
my %vals = @_;
my @undeclared = grep{ ! $_is_field{$_} } keys %vals;
croak "undeclared field: @undeclared" if @undeclared;
if (! $vals{name}){
Audio::Nama::throw("missing bus name");
return
}
if ( $by_name{$vals{name}} ){
#Audio::Nama::throw("$vals{name}: bus name already exists. Skipping.") unless $Audio::Nama::quiet;
return;
}
my $bus = bless {
class => $class, # for serialization, may be overridden
rw => MON, # for group control
@_ }, $class;
$by_name{$bus->name} = $bus;
}
sub group { $_[0]->name }
sub tracks { # returns list of track names in bus
my $bus = shift;
map{ $_->name } $bus->track_o;
}
sub track_o {
my $bus = shift;
grep{ $_->group eq $bus->name } Audio::Nama::all_tracks();
}
sub last {
#logpkg(__FILE__,__LINE__,'debug', "group: @_");
my $bus = shift;
my $max = 0;
map{
my $track = $_;
my $last;
$last = $track->last || 0;
#print "track: ", $track->name, ", last: $last\n";
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.531 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )