#!/bin/sh
#
# Edit the wpan-ipv4 demo clip
#
# Written 2011 by Werner Almesberger
# Copyright 2011 Werner Almesberger
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#


F=MVI_1374.MOV

debug=false

seg=1
pos=0

seg()
{
	echo '' -video-track -blank $pos $F in=$1 out=$2 \\
	$debug && echo -attach watermark:+#$seg.txt \\
	start=$pos
	pos=`expr $pos + $2 - $1`
	end=$pos
	seg=`expr $seg + 1`
}


say()
{
	echo '' -track -blank $1 pango text="\"$3\"" in=$1 out=$2 \\
	echo '' align=1 fgcolour=0xffffffff bgcolour=0x00000040 weight=400 \\
	echo '' -transition composite out=$end geometry=0%,50%:100%x10% \\
	echo '' halign=c a_track=0 \\
}


overlay()
{
	echo '' -track -blank $1 pango text="\"$3\"" in=$1 out=$2 \\
	echo '' align=1 fgcolour=0x00000030 weight=600 \\
	echo '' -transition composite out=$end geometry=-1%,94%:100%x6% \\
	echo '' halign=r \\
	[ "$4" ] && echo a_track=$4 \\
}


endtitle()
{
	echo '' -track -blank $1 pango text="\"$3\"" in=$1 out=$2 \\
	echo '' align=1 fgcolour=0x000000ff weight=600 \\
	echo '' -transition composite out=$end geometry=0%,50%:100%x10% \\
	echo '' halign=c a_track=$4 \\
}


cmd()
{
	e=`expr $2 - 1`
	echo '' -track -blank $1 pango text="\"$3\"" in=$1 out=$e \\
	echo '' align=1 fgcolour=0xffff40ff weight=600 \\
	echo '' -transition composite out=$end geometry=0%,83%:100%x7% \\
	echo '' halign=c a_track=0 \\
}


explain()
{
	echo '' -track -blank $1 pango text="\"$3\"" in=$1 out=$2 \\
	echo '' align=1 fgcolour=0x000000ff bgcolour=0xc0c0ffc0 weight=400 \\
	echo '' -transition composite out=$end geometry=$4%,90%:100%x7% \\
	echo '' a_track=0 \\
}


label()
{
	echo '' -track -blank $1 pango text="\"$3\"" in=$1 out=$2 \\
	echo '' align=1 fgcolour=0xff2020ff weight=600 \\
	echo '' -transition composite out=$end geometry=$4%,$5%:100%x10% \\
	echo '' a_track=0 \\
}


echo melt \\
echo colour:black out=50 \\
seg 0 470		# 1
echo '' -transition luma in=0 out=50 \\

echo '' -audio-track p97-3fast.wav in=60 \\
# "resample" sux - do this in SOX
#echo '' -filter resample frequency=47000 \\

seg 486 517		# 2
seg 712 1864		# 3
seg 1897 2785		# 4
seg 2874 3082		# 5
seg 3164 3300		# 6
seg 3450 3889		# 7
seg 4019 4703		# 8
seg 4764 5595		# 9
seg 5731 6103		# 10
seg 0 580		# filler

echo '' -track -blank 5130 colour:white in=5130 out=5200 \\
echo '' -transition luma in=5130 out=5200 a_track=0 \\
echo '' -track -blank 5200 colour:white in=5200 out=5800 \\
overlay 5200 5600 "2011 by Werner Almesberger, CC-BY-SA"

endtitle 5250 5600 "THE BEGINNING" 13

overlay 10 100 "2011 by Werner Almesberger, CC-BY-SA" 0
overlay 5150 5200 "2011 by Werner Almesberger, CC-BY-SA" 0

label 70 150 "ben1" 35 59
label 110 150 "ben2" 63 66
say 230 280 "We won't need that"
label 415 447 "OpenWRT" 20 51

cmd 487 620 "iz add wpan-phy0"
say 530 620 "Add WPAN interface"

cmd 630 730 "ip link set wpan0 ..."
cmd 730 840 "... address ca:fe:ca:fe:ca:fe:ca:fe"
say 680 840 "Set MAC address"

cmd 850 960 "ifconfig wpan0 up"
say 900 960 "Enable WPAN interface"

cmd 970 1140 "izcoordinator -d 1 -l lease -i wpan0 ..."
explain 1020 1140 "Debug" 33
explain 1040 1140 "Lease file" 48
explain 1060 1140 "Interface" 70
cmd 1140 1290 "... -p 0x777 -s 1 -c 11 &"
explain 1190 1290 "PAN" 35
explain 1210 1290 "Self" 51
explain 1230 1290 "Chan" 62
explain 1250 1290 "Fork" 75
say 1100 1290 "WPAN coordinator"

label 1660 1710 "Jlime" 55 53

cmd 1770 1930 "iz add wpan-phy0"
say 1800 1930 "Add WPAN interface"

cmd 1940 2040 "ip link set wpan0 ..."
cmd 2040 2170 "... address be:e2:be:e2:be:e2:b2:e2"
# don't explain the joke :-)
#cmd 2040 2140 "... address be:e2:be:e2:be:e2:b2:e2"
#cmd 2141 2170 "... address be:eR:be:eR:be:eR:be:eR"
say 2000 2170 "Set MAC address"

cmd 2180 2277 "ifconfig wpan0 up"
say 2230 2277 "Enable WPAN interface"

cmd 2280 2520 "iz assoc wpan0 777 1 11 short"
explain 2300 2370 "PAN" 52
explain 2320 2370 "Coordinator" 62
explain 2400 2520 "Chan" 58
explain 2420 2520 "Short addr" 73
say 2340 2520 "Get WPAN address"

label 2550 2600 "<-- Request" 40 50
label 2620 2670 "Response -->" 20 55

cmd 2780 2880 "Received short address 8001"

say 2950 3040 "Set up IP tunnel"

cmd 3000 3150 "dirtpan 777 1 8001 ifconfig ..."
explain 3050 3150 "PAN" 32
explain 3070 3150 "Self" 41.2
explain 3090 3150 "Peer" 50
cmd 3150 3300 "... $ITF 10.0.0.1 dstaddr 10.0.0.2 up"
explain 3200 3300 "Local" 24
explain 3220 3300 "Remote" 63

say 3330 3400 "The other end ..."
say 3410 3500 "... of the tunnel"

cmd 3410 3550 "dirtpan 777 8001 1 ifconfig ..."
explain 3450 3550 "PAN" 33
explain 3470 3550 "Self" 45.5
explain 3490 3550 "Peer" 56
cmd 3550 3700 "... $ITF 10.0.0.1 dstaddr 10.0.0.2 up"
explain 3600 3700 "Local" 24
explain 3620 3700 "Remote" 63

cmd 3700 3960 "ping -c 10 10.0.0.1"
say 3750 3960 "Test the connection"

cmd 4170 4380 "ssh 10.0.0.1"
cmd 4403 4470 "root@10.0.0.1 password:"

cmd 4475 4605 "echo hello >/dev/tty0"
explain 4500 4605 "Console" 56

cmd 4770 4825 "hello"

cmd 4870 4950 "pstree"

cmd 4970 5070 "exit"

if $debug; then
	echo '' -consumer sdl audio_off=1
else
	echo '' -consumer avformat f=ogg vcodec=libtheora \\
	echo b=600k acodec=libvorbis '>wpan-ipv4.ogg'
fi
