#!/bin/bash

COOKIE="eccet"

case "$1" in
	"f"*)
		MODE=forward;
		;;
	"b"*)
		MODE=backward;
		;;
	"B"*)
		MODE=bounce;
		;;
	*)
		echo "Usage: $0 f[orward]|b[ackward]|B[ounce] [fps]"
esac

USLEEP=200000

if [ "$2" != "" ] ; then
	USLEEP=$(echo "1000000/$2" | bc)
fi

VOLUMES="$( { echo "COOKIE $COOKIE" ; echo "VOL_SET ?"; } | netcat localhost 1234 -w1 | grep "^300-" | grep -v "300-VOL_SET" \
| sed -e "s/^300-//" -e"s/[ ]*[^ ]*[ ]*$//" | tr "
" " ")"
VOLUMES="${VOLUMES#*: }"
HLP="${VOLUMES#* }"

if [ "$HLP" == "$VOLUMES" ] ; then
	echo "Less than 2 Volumes found. Will not animate."
	exit
fi

HLP="$VOLUMES"

REVVOL=""

while true; do
	CURR="${HLP##* }"
	HLP="${HLP% *}"
	REVVOL="$REVVOL $CURR"
	if [ "$CURR" == "$HLP" ] ; then break; fi
done

REVVOL="${REVVOL# }"

REVNOEND="${REVVOL# * }"
REVNOEND="${REVNOEND% *}"


SEQ="$VOLUMES"

case "$MODE" in
	"forward")
		SEQ="$VOLUMES"
		;;
	"backward")
		SEQ="$REVVOL"
		;;
	"bounce")
		SEQ="$VOLUMES $REVNOEND"
		;;
esac

{
	echo "COOKIE $COOKIE"
	while true; do
		for a in $SEQ; do
			echo "VOL_SET $a"
			usleep "$USLEEP"
		done
	done
} | netcat localhost 1234 >/dev/null
