#!/bin/bash
# by Hans Schou 2003

# Usage.
# Start the viewer with no playing or recording.
#   vrecord
# Start recording to foo.ogg and foo.vnc.bz2
#   vrecord foo
# Start playing (only works if 'foo.ogg' or 'foo.vnc.bz2' exists)
#   vrecord foo

VNCNUM=5

WAVREC=wavr
[ -z "$(which $WAVREC)" ] && WAVREC=wavrec

# Check password exist.
if [ ! -e ~/.vnc/passwd ]; then
	vncpasswd
fi

# Start server if needed
function check_server() {
	if [ ! -e /tmp/.X$VNCNUM-lock ]; then
		vncserver :$VNCNUM -name "e-learning" -depth 8 -geometry 900x650
	fi
}

if [ -z "$1" ]; then
	# Just connect, no playing or recording
	check_server
	vncrec -passwd ~/.vnc/passwd :$VNCNUM
else
	if [ -f $1.vnc.bz2 -o -f $1.ogg ]; then
		# Start playing
		aumix -v 100 -m 0
		vncrec -passwd ~/.vnc/passwd :$VNCNUM -play <(bzcat $1.vnc.bz2) > /dev/null &
		usleep 2200000
		ogg123 -q $1.ogg
	else
		# Start recording
		check_server
		aumix -v 0 -m 100
		if [ $WAVREC = "wavr" ]; then
			wavr -c 2 -d 16 -r 44100 -f $1.wav &
		else
			wavrec -S -b 16 -s 44100 -t 10000 $1.wav &
		fi
		vncrec -passwd ~/.vnc/passwd :$VNCNUM -record >(bzip2 -c>$1.vnc.bz2)
		killall $WAVREC
		[ -n "$(which normalize)" ] && normalize $1.wav
		ARTIST=`grep "^$(whoami):" /etc/passwd | cut -d ":" -f 5`
		oggenc -q -1 -t "$1, $0" -a "$ARTIST <$(whoami)@$HOSTNAME>" -l "E-learning" -G "Educatioon" -d $(date -I) -o $1.ogg $1.wav
		rm -f $1.wav
	fi
fi

