#! /bin/sh if [ "$1" = "-d" ] then DEVICE="${2:-/dev/dvd}" shift shift else DEVICE="/dev/dvd" fi getsum() { # now as some dvd's share label,lets checksum the dir mkdir /tmp/.dvd.$$ mount ${1:-/dev/dvd} /tmp/.dvd.$$ cd /tmp/.dvd.$$ sum=`find . -ls | md5sum` set $sum "" cd /tmp umount /tmp/.dvd.$$ rmdir /tmp/.dvd.$$ echo $1 } getid() { id="`mplayer -dvd-device "$DEVICE" -dvd 99 2>&1 > /dev/null | grep 'Using CSS Key-cache dir'`" id=`set "" $id && basename $6` if [ "$id" = "DVDVOLUME" ] then sum=`getsum $DEVICE` echo "$id.$sum" else echo "$id" fi } id=`getid` echo "$id" TRACKFILE=$HOME/.dvd/$id if [ ! -f "$TRACKFILE" ] then TRACKFILE=/usr/share/dvd/$id fi if [ -f $TRACKFILE ] then TRACKS=`cat $TRACKFILE` else TRACKS="$*" fi mplayer -alang en -dvd-device "$DEVICE" -vo xv -fs -zoom -dvd ${TRACKS:-1} echo $TRACKFILE