#!/usr/bin/perl
#
# Runs grppha on a file with a predefined group filter
#
# Usage: groupspec [orig.pha [groupped.pha [grouping]]]
#

@gov = split (/\//,$0); pop @gov; $BINDIR = join ('/',@gov);

require "$BINDIR/perlutil.pl";
&check_ftools;


($phain,$phaout,$g) = @ARGV;

if ( ! $phain ) {
  print "Input pha file? ";
  $phain = <STDIN>; chop $phain;
}

if ( ! $phaout ) {
  print "Output groupped pha file? ";
  $phaout = <STDIN>; chop $phaout;
}

%groupdef=();
%groupcom=();
$groupdef{'a'}="1 128 8 129 256 16 257 512 32 513 768 64 769 1024 128";
$groupcom{'a'}="faint";
$groupdef{'axmm'}="1 128 8 129 256 16 257 512 32 513 768 64 769 1024 128 1025 4096 256";
$groupcom{'axmm'}="faint";
$groupdef{'b'}="1 128 4 129 256  8 257 512 16 513 768 32 769 1024  64";
$groupcom{'b'}="medium";
$groupdef{'c'}="1 128 4 129 256 16 257 512 32 513 768 64 769 1024 128";
$groupcom{'c'}="medium soft";
$groupdef{'gal'}="1 128 4 129 256 8 257 512 32 513 768 64 769 1024 128";
$groupcom{'gal'}="medium soft";
$groupdef{'d'}="1 128 16 129 256 32 257 512 64 513 768 128 769 1024 256";
$groupdef{'dd'}="1 128 32 129 256 64 257 512 128 513 768 128 769 1024 256";
$groupcom{'d'}="very faint";
$groupdef{'e'}="1 128 2 129 256 4 257 512 8 513 768 16 769 1024 32";
$groupcom{'e'}="very bright";
$groupdef{'ee'}="1 32 1 33 64 2 65 128 4 129 256 8 257 512 16 513 768 32 769 1024 64";
$groupcom{'ee'}="very-very bright soft";
$groupdef{'eee'}="1 128 1 129 256 2 257 512 4 513 768 8 769 1024 16";
$groupcom{'eee'}="very-very bright";
$groupdef{'1e'}="1 100 1 101 124 2 125 168 4 169 256 8 257 512 16 513 768 32 769 1024 64";
$groupcom{'1e'}="very-very bright";
$groupdef{'f'}="1 128 2 129 256 4 257 384 8 385 512 16 513 768 32 769 1024 64";
$groupcom{'f'}="bright soft";
$groupdef{'g'}="1 128 8 129 256 32 257 512 64 513 768 128 769 1024 256";
$groupcom{'g'}="soft faint";
$groupdef{'g21.5'}="1 128 4 129 192 8 193 256 16 257 512 32 513 768 64 769 1024 128";
$groupcom{'g21.5'}="medium soft";

if ( ! $g ) {
  print "Default groupings: \n";
  foreach $g (sort keys %groupdef) {
    print "$g: ",$groupdef{$g},"\t",$groupcom{$g},"\n";
  }
  print "Your choice? ";
  $g = <STDIN>; chop $g;
}
if ($g =~ /\s/) {
  $grouping=$g;
}
else {
  if (defined($groupdef{$g})) {
    $grouping=$groupdef{$g};
  }
  else {
    die "There is no default grouping \"$g\"\n";
  }
}

$groupcom = "";
@grouping = split ' ',$grouping;
while ( $#grouping >= 2 ) {
  $min = shift @grouping;
  $max = shift @grouping;
  $nch = shift @grouping;
  $groupcom = "$groupcom group $min $max $nch &";
}

exec ("grppha",$phain,$phaout,"$groupcom write !$phaout & quit","chatter=0");







