#!/usr/bin/perl

#spackle v2.0

#these commented out lines are experimental for use with cement display
#never really tested this extensively, but i remember it did work...
#also, to use cement_display comment out bottom xv line and uncomment
# line for cement display (at the bottom of the script)
# -jf
#use IO::Handle;
#open(DISP, "| cement_display");

# use spackle to cover up unsightly advertisment
# takes about 40 minutes with 33 colour pictures on netwinder with 64m RAM

$Ps = sprintf("Parameters_pairwise.txt"); # Cumulative plurality of parameters
$ps = sprintf("parameters_pairwise.txt"); # Cumulative plurality of parameters
$Cs = sprintf("Corners.txt");

$firstframe=$ARGV[0];  # always 0 for now
$lastframe=$ARGV[1];  # e.g. if there are 34 frames numbered 0 to 33, enter 33
# in this case Parameters should have 34 entries
$medframe = $ARGV[2];  # the image to overlay
# medframe should be generated from pchirp2nocrop

for ($counter=$firstframe; $counter<=$lastframe; $counter++) {
  $count1 = $counter-$firstframe+1;
  printf("counter = $counter   count1 = $count1\n");

  $filein = sprintf("ds%03d.jpg", $counter);
  $fileout = sprintf("dds%03d.ppm", $counter);
  `rm $fileout`;
  printf("about to djpeg $filein\n");
  `djpeg $filein > deleteme_deleteme.ppm`;

  # pintegrate relative to next frame to be displayed
  `pchirp2nocrop deleteme_deleteme.ppm pork_reald.ppm 1 0 0 0 1 0 0 0`;

  my $corners = `head -$count1 $Cs | tail -1`;
  my $pchirp_params = `corners2r_main $corners`;
  `pchirp2nocrop $medframe pork_mediatedd.ppm $pchirp_params`;

  # now cement in the replacement frame
  # e.g. to get 4th entry: head -4 Parameters_pairwise.txt | tail -1
  `cement -overlay $fileout pork_reald.ppm pork_mediatedd.ppm`;
  system("xv $fileout -geometry +0+40&");

  #works ok, but white background can be unsightly so use XV for now
  #print DISP "$fileout 1";
  #print DISP "\r";
  #DISP->autoflush(1);
}

