Audio::Ecasound::Multitrack(3)

package Audio::Ecasound::Multitrack::Text::OuterShell; use base qw(Term::Shell); #create_help_subs(); sub catch_run { #
  my ($o, $cmd, @args) = @_;
  my $original_command_line = join " ", $cmd, @args;
  #print "foudn $0 $original_command_line\n";
  Audio::Ecasound::Multitrack::Text::command_process( $original_command_line ); } sub catch_help {
  my ($o, $cmd, @args) = @_;
  $debug and print "cmd: $cmd\n";
  #my $main_name =
  #
  print grep{ $_ eq $cmd } join " ",
  my $main_name;
  CMD: for my $k ( keys %commands ){
      for my $alias ( $k, split " ",$commands{$k}{short} ){
        if ($cmd eq $alias){
            $main_name = $k;
            last CMD;
        }
    }
  }
  $debug and print "main_name: $main_name\n";

    my $txt = $o->help($main_name, @_);
    if ($o->{command}{help}{found}) {
        $o->page("$txt\n")
    }
}

#my $print "catched help @_"} sub prompt_str { 'Enter command: ' } sub run_help {
    my $o = shift;
    my $cmd = shift;
    if ($cmd) {
    my $txt = $o->help($cmd, @_);
    if ($o->{command}{help}{found}) {
        $o->page("$txt\n")
    }
    else {
        my @c = sort $o->possible_actions($cmd, 'help');
        if (@c and $o->{API}{match_uniq}) {
        local $" = "\n\t";
        print <<END; Ambiguous help topic '$cmd': possible help topics:
    @c END
        }
        else {
        print <<END; Unknown help topic '$cmd'; type 'help' for a list of help topics. END
        }
    }
    }
    else {
    print "Type 'help command' for more detailed help on a command.\n"; my $help_screen = <<HELP; Help Screen Goes here HELP
    $o->page($help_screen);
    } }

sub create_help_subs {
    $debug2 and print "create_help_subs\n";
    %commands = %{ Audio::Ecasound::Multitrack::yaml_in( $Audio::Ecasound::Multitrack::commands_yml) };

    $debug and print Audio::Ecasound::Multitrack::yaml_out \%commands;

    map{ print $_, $/} grep{ $_ !~ /mark/ and $_ !~ /effect/ } keys %commands;

    map{
            my $run_code = qq!sub run_$_ { splice \@_,1,0,  q($_); catch_run( \@_) }; !;
            $debug and print "evalcode: $run_code\n";
            eval $run_code;
            $debug and $@ and print "create_sub eval error: $@\n";
            my $help_code = qq!sub help_$_ { q($commands{$_}{what}) };!;
            $debug and print "evalcode: $help_code\n";
            eval $help_code;
            $debug and $@ and print "create_sub eval error: $@\n";
            my $smry_text =
            $commands{$_}{smry} ? $commands{$_}{smry} : $commands{$_}{what};
            $smry_text .= qq! ($commands{$_}{short}) !
                    if $commands{$_}{short};

            my $smry_code = qq!sub smry_$_ { q( $smry_text ) }; !;
            $debug and print "evalcode: $smry_code\n";
            eval $smry_code;
            $debug and $@ and print "create_sub eval error: $@\n";

            my $alias_code = qq!sub alias_$_ { qw($commands{$_}{short}) }; !;
            $debug and print "evalcode: $alias_code\n";
            eval $alias_code;# noisy in docs
            $debug and $@ and print "create_sub eval error: $@\n";

        }

    grep{ $_ !~ /mark/ and $_ !~ /effect/ } keys %commands;

}

NAME
Audio::Multitrack - Perl extensions for multitrack audio processing

nama - multitrack recording/mixing application

Type 'man nama' for details on usage and licensing.

No further documentation is provided regarding Audio::Multitrack and its subordinate modules.

POD ERRORS
Hey! The above document had some coding errors, which are explained below:

Around line 2069:
    Unknown directive: =comment

Around line 4169:
    Unknown directive: =comment