Audio-Nama
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Audio/Nama/IO.pm view on Meta::CPAN
package Audio::Nama;
our (%tn, $jack, $config);
# ---------- IO -----------
#
# IO objects for writing Ecasound chain setup file
#
# Object values can come from three sources:
#
# 1. As arguments to the constructor new() while walking the
# routing graph:
# + assigned by dispatch: chain_id, loop_id, track, etc.
# + override by graph node (higher priority)
# + override by graph edge (highest priority)
# 2. (sub)class methods called as $object->method_name
# + defined as _method_name (access via AUTOLOAD, overrideable by constructor)
# + defined as method_name (not overrideable)
# 3. AUTOLOAD
# + any other method calls are passed to the the associated track
# + illegal track method call generate an exception
package Audio::Nama::IO;
use Modern::Perl '2020';
use Carp;
use Data::Dumper::Concise;
our $VERSION = 1.0;
# provide following vars to all packages
our ($config, $jack, %tn);
our (%by_name); # index for $by_name{trackname}->{input} = $object
use Audio::Nama::Globals qw($config $jack %tn $setup :trackrw);
use Try::Tiny;
sub initialize { %by_name = () }
# we will use the following to map from graph node names
# to IO class names
our %io_class = qw(
null_in Audio::Nama::IO::from_null
null_out Audio::Nama::IO::to_null
soundcard_in Audio::Nama::IO::from_soundcard
soundcard_out Audio::Nama::IO::to_soundcard
soundcard_device_in Audio::Nama::IO::from_alsa_soundcard_device
soundcard_device_out Audio::Nama::IO::to_alsa_soundcard_device
wav_in Audio::Nama::IO::from_wav
wav_out Audio::Nama::IO::to_wav
loop_source Audio::Nama::IO::from_loop
loop_sink Audio::Nama::IO::to_loop
jack_manual_in Audio::Nama::IO::from_jack_port
jack_manual_out Audio::Nama::IO::to_jack_port
jack_ports_list_in Audio::Nama::IO::from_jack_port
jack_ports_list_out Audio::Nama::IO::to_jack_port
jack_multi_in Audio::Nama::IO::from_jack_multi
jack_multi_out Audio::Nama::IO::to_jack_multi
jack_client_in Audio::Nama::IO::from_jack_multi
jack_client_out Audio::Nama::IO::to_jack_multi
bus_in Audio::Nama::IO::from_bus
);
#bus_out Audio::Nama::IO::to_bus #
### class descriptions
# === CLASS Audio::Nama::IO::from_jack_port ===
#
# is triggered by source_type codes:
#
# + jack_manual_in
# + jack_ports_list_in
#
# For track 'piano', the class creates an input similar to:
#
# -i:jack,,piano_in
#
# which receives input from JACK node:
#
# + Nama:piano_in,
#
# If piano is stereo, the actual ports will be:
#
# + Nama:piano_in_1
# + Nama:piano_in_2
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.627 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )