#!/bin/sh
part=`pwd | sed "s/^.*\///;s/[^0-9]*//"`
case $part in
"")
	part=1 ;;
esac
tape=`(cd .. && pwd | sed "s/^.*\///" | dd conv=ucase 2>/dev/null )`
case $tape in
"")
	tape=NONE ;;
esac
echo -n Tape $tape part $part...
{
cat <<END
<?xml version="1.0"?>
<!DOCTYPE videocd PUBLIC "-//GNU//DTD VideoCD//EN" "http://www.gnu.org/software/
vcdimager/videocd.dtd">
<videocd xmlns="http://www.gnu.org/software/vcdimager/1.0/" class="svcd" version
="1.0">
  <option name="update scan offsets" value="true"/>
  <info>
    <album-id>$tape</album-id>
    <volume-count>4</volume-count>
    <volume-number>$part</volume-number>
    <restriction>0</restriction>
  </info>
  <pvd>
    <volume-id>VIDEOCD</volume-id>
    <system-id>CD-RTOS CD-BRIDGE</system-id>
    <application-id></application-id>
    <preparer-id/>
    <publisher-id/>
  </pvd>
  <filesystem>
    <folder>
      <name>EXTRA</name>
      <file src="disk$part.xml">
        <name>DISK$part.XML</name>
      </file>
      <file src="cover$part.png">
        <name>COVER$part.PNG</name>
      </file>
    </folder>
  </filesystem>
  <segment-items>
    <segment-item src="header.mpg" id="segment-000"/>
    <segment-item src="menu$part.mpg" id="segment-001"/>
  </segment-items>
  <sequence-items>
END
let n=0
for i in "$@"
do
	case $i in
*.mpg)
    printf '    <sequence-item src="%s" id="sequence-%02d"/>\n' $i $n
	let n=$n+1
;;
	esac	
done
cat <<END
  </sequence-items>
  <pbc>
    <playlist id="header-list">
      <prev ref="menu-sel"/>
      <next ref="menu-sel"/>
      <return ref="menu-sel"/>
      <wait>5</wait>
      <autowait>0</autowait>
      <play-item ref="segment-000"/>
    </playlist>
    <selection id="menu-sel">
      <bsn>1</bsn>
      <prev ref="header-list"/>
      <next ref="lid-000"/>
      <return ref="header-list"/>
      <default ref="lid-000"/>
      <wait>-1</wait>
      <loop jump-timing="delayed">1</loop>
      <play-item ref="segment-001"/>
END
let j=0
while test $j -lt $n
do
	printf '      <select ref="lid-%03d"/>\n' $j
	let j=$j+1
done
echo '    </selection>' 
jp='menu-sel'
let j=0
while test $j -lt $n
do
	jo=`printf "%02d" $j`
	jc=`printf "lid-%03d" $j`
	let t=$j+1
if test $t -eq $n
then
	jn='menu-sel'
else
	jn=`printf "lid-%03d" $t`
fi
cat <<END
    <playlist id="$jc">
      <prev ref="$jp"/>
      <next ref="$jn"/>
      <return ref="menu-sel"/>
      <wait>0</wait>
      <autowait>0</autowait>
      <play-item ref="sequence-$jo"/>
    </playlist>
END
	let j=$j+1
	jp=$jc
done
cat <<END
  </pbc>
</videocd>
END
} >videocd.xml
cp videocd.xml disk$part.xml
if test ! -f header.mpg
then
	cp $HOME/video/clips/header.mpg .
fi
echo 'done.'
