#!/bin/ksh
#post proceso de picts
# (c) SPDsoft & GTIC	6 septiembre 1993 ++scpict

USAGE="Usage: $0 [-iF][-n subframes][-c modsave][-H host][-m firstout]\n
\t-s format -f first -l last -S formatout -R (resize)" 

# Function to do ftp
ftpsend()
{
        FTPL=doit
        while [ "$FTPL" != "" ]
        do
                FTPL=`(ftp $1 << @EOF
                bin
                put $2
                close
                bye
@EOF
                )`
        done
}

#main

TMP_ODD=/tmp/fodd
TMP_EVEN=/tmp/feven
TMP_FULL=/tmp/ffull
INFODIR=TRINFO
IMGDIR=TRIMG
SVDIR=SVIMG
SLEEP_TIME=45

DELETE=false
INTERLACE=false
FILTER=false
DOFTP=false
RESIZE=false

let resh=768
let resv=576

let savem=1
let first=-1
let last=0
let nout=0
let nsubframes=1

let error=0

set -- `getopt iFnR:c:H:m:s:f:l:S: $*`
if [ $? != 0 ]
then
        echo $USAGE
        exit 2
fi
for i in $*
do
        case $i in
        -R)     RESIZE=true; shift;;
        -i)     INTERLACE=true; shift;;
        -F)     FILTER=true; shift;;
        -n)     let nsubframes=$2; shift 2;;
        -c)     DELETE=true; let savem=$2; shift 2;;
        -H)     DOFTP=true; host=$2; shift 2;;
        -m)     let nout=$2; shift 2;;
	-s)	format=$2; shift 2;;
	-S)	formatout=$2; shift 2;;
        -f)     let first=$2; shift 2;;
        -l)     let last=$2; shift 2;;
        --)     shift; break;;
        esac
done

if ( [ "$format" = "" ] ||  [ $first = -1 ] ||  [ $last = 0 ] ) 
then
	echo $USAGE
	exit 1
fi

if [ "$formatout" = "" ] 
then
	echo Output format required
	echo $USAGE
	exit 4
fi

if ( ( $INTERLACE ) && (( $nsubframes%2 == 1 )) ) 
then
	echo Interlace requires even n subframes
	echo $USAGE
	exit 2
fi

if  ( ( $DELETE  ) && [ "$host" = "" ] )
then
	echo You must ftp if you want to delete
	echo $USAGE
	exit 3
fi

if ( $INTERLACE )
then
	let nsubframes=$nsubframes/2
fi

let ns=0
let field=0
FULLFRAME=false
SFRAMES=""
FOUT=""

while (( $first <= $last ))
do
	sleep $SLEEP_TIME
	FRNAME=`printf $format $first`
	if test -f $INFODIR/$FRNAME.i
	then
		let ns=$ns+1
		SFRAMES=$SFRAMES" "$IMGDIR/$FRNAME
		if (( $ns == $nsubframes ))
		then
		ns=0
		if ( $INTERLACE )
		then
			if (( $field == 0 ))
			then
				mergep -o $TMP_ODD $SFRAMES
				let field=1
				rm $SFRAMES
				SFRAMES=""
			else
				mergep -o $TMP_EVEN $SFRAMES
				let field=0
				FULLFRAME=true
			fi

			if ( $FULLFRAME )
			then
				if ( $FILTER )
				then
			filterp -f '-1 2 6 2 -1' -d 8 $TMP_ODD $TMP_EVEN
					mv $TMP_ODD.f $TMP_ODD
					mv $TMP_EVEN.f $TMP_EVEN
				fi

				FOUT=`printf $formatout $nout`
				itrlc -o $FOUT $TMP_EVEN $TMP_ODD
			fi
		else
			FOUT=`printf $formatout $nout`
			mergep -o $FOUT $SFRAMES
			FULLFRAME=true
		fi
		if ( $FULLFRAME )
		then
			FULLFRAME=false

			if ( $RESIZE )
			then
				scpict -o $TMP_FULL -w $resv -h $resh $FOUT
				mv $TMP_FULL $FOUT
			fi

			if ( $DOFTP )
			then
				ftpsend $host $FOUT
			fi

			if (( $nout%$savem == 0 ))
			then
				mv $FOUT $SVDIR/$FOUT
			else
				rm $FOUT
			fi
			let nout=$nout+1
		rm $SFRAMES
		SFRAMES=""
		fi
		fi
	let first=$first+1
	fi
done

if $INTERLACE
then
	rm $TMP_ODD $TMP_EVEN > /dev/null 2>&1
fi
