#
# SetTrackPanEnvLeft.pl
#
use strict;
use warnings;
use constant ACTION_NAME => "Set Track Pan Envelope to Left";
use constant CURR_PROJ => 0;
use constant FIRST_SEL => 0;
use constant FIRST_TAKE => 0;
use constant MSGBOX_JUST_OK =>0;
use constant TRUE => 1;
use constant FALSE => 0;
use constant MAXLEN => (16 * 1024);
my $new_PT = "PT 0.000000 1.000000 0 0 1"; # LEFT
# my $new_PT = "PT 0.000000 -1.000000 0 0 1"; # RIGHT
my $state = '';
my $len=0;
my $result;
my $before_panenv2;
my $panenv2;
my $after_panenv2;
my $tracks = RPR_CountSelectedTracks(CURR_PROJ);
unless($tracks > 0){
RPR_MB("No Track Selected. Select a Track and try again.", ACTION_NAME, MSGBOX_JUST_OK);
exit(0);
}
my $tr = RPR_GetSelectedTrack(CURR_PROJ, FIRST_SEL);
($result, $tr, $state, $len) = RPR_GetSetTrackState($tr, $state, MAXLEN);
unless($state =~ /<PANENV2/){
RPR_MB("No Pan Envelope in Selected Track.", ACTION_NAME, MSGBOX_JUST_OK);
exit(0);
}
$state =~ /<PANENV2/; # find beginning of PANENV2
$before_panenv2 = $`; # save before panenv2
$state = $'; # discard before panenv2
$state =~ />/; # find end of PANENV2
$panenv2 = $`; # store PANENV2
$after_panenv2 = $'; # and after it
$panenv2 =~ /PT /; # find envelope point(s)
$panenv2 = $`; # discard them
$state =
$before_panenv2 .
"<PANENV2\n" .
$panenv2 .
$new_PT .
"\n>" .
$after_panenv2;
($result, $tr, $state, $len) = RPR_GetSetTrackState($tr, $state, MAXLEN);