Added pretend mode to planime.
[utils.git] / planime
diff --git a/planime b/planime
index ed79ec9..90896f7 100755 (executable)
--- a/planime
+++ b/planime
@@ -36,18 +36,22 @@ findfile() {
 
 origargs=("$0" "$@")
 cmdline=(mplayer -fs -ass)
+unset pretend
 
 while [ "${1:0:1}" = - ]; do
     a="$1"
     shift
     case "$a" in
        -h)
-           echo "usage: planime [-ht] [-s PAR VAL] [NAME-QUAL] [EP|.] [TYPE-QUAL]" >&2
+           echo "usage: planime [-htC] [-s PAR VAL] [NAME-QUAL] [EP|.] [TYPE-QUAL]" >&2
            exit 0
            ;;
        -t)
            cmdline=("${cmdline[@]}" -ao oss:/dev/dsp1)
            ;;
+       -C)
+           pretend=y
+           ;;
        -A)
            while :; do
                a="$1"
@@ -127,10 +131,12 @@ fi
 
 case "${file##*.}" in
     ogm)
-       defopts=(-aid 1 -sid 0)
+       aid=1
+       sid=0
        ;;
     mkv)
-       defopts=(-slang eng -alang jpn)
+       alang=jpn
+       slang=eng
        ;;
 esac
 
@@ -155,46 +161,73 @@ if [ -r "$ifile" ]; then
            cmdline=("${cmdline[@]}" -delay "$arg")
        elif [ "$par" = aspect ]; then
            cmdline=("${cmdline[@]}" -aspect "$arg")
+       elif [ "$par" = volmod ]; then
+           cmdline=("${cmdline[@]}" -af volume="$arg")
+       elif [ "$par" = alang ]; then
+           unset alang aid
+           alang="$arg"
+       elif [ "$par" = aid ]; then
+           unset alang aid
+           aid="$arg"
+       elif [ "$par" = slang ]; then
+           unset slang sid
+           slang="$arg"
+       elif [ "$par" = sid ]; then
+           unset slang sid
+           sid="$arg"
        fi
     done
     exec 0<&3
     exec 3<&-
-else
-    cmdline=("${cmdline[@]}" "${defopts[@]}")
 fi
 
-if [ "`hostname`" = pc6 ]; then chwp=y; fi
+if [ -n "$alang" ]; then
+    cmdline=("${cmdline[@]}" -alang "$alang")
+elif [ -n "$aid" ]; then
+    cmdline=("${cmdline[@]}" -aid "$aid")
+fi
+if [ -n "$slang" ]; then
+    cmdline=("${cmdline[@]}" -slang "$slang")
+elif [ -n "$sid" ]; then
+    cmdline=("${cmdline[@]}" -sid "$sid")
+fi
 
-if [ "$chwp" = y ]; then (sleep 2; randomwp) & fi
-"${cmdline[@]}" "$file"
+if [ "`hostname`" = pc6 -o "`hostname`" = pc7 -a "$DISPLAY" = :1 ]; then chwp=y; fi
 
-if [ "$nextep" = y ]; then
-    echo "0. Save and continue (or Space)"
-    echo "1. Continue without saving"
-    echo "2. Save and exit (or Enter)"
-    echo "3. Exit without saving (or any key)"
-    IFS= read -sn1 c
-    save=n
-    cont=n
-    case "$c" in
-       0|" ")
-           save=y
-           cont=y
-           ;;
-       1)
-           cont=y
-           ;;
-       2|"")
-           save=y
-           ;;
-    esac
-    if [ "$save" = y ]; then
-       let ep++
-       echo "$ep" >nextep
-    fi
-    if [ "$cont" = y ]; then
-       exec "${origargs[@]}"
-    else
-       echo "nextep is $ep"
+if [ -n "$pretend" ]; then
+    echo "${cmdline[@]}" "$file"
+else
+    if [ "$chwp" = y ]; then (sleep 2; randomwp) & fi
+    "${cmdline[@]}" "$file"
+    
+    if [ "$nextep" = y ]; then
+       echo "0. Save and continue (or Space)"
+       echo "1. Continue without saving"
+       echo "2. Save and exit (or Enter)"
+       echo "3. Exit without saving (or any key)"
+       IFS= read -sn1 c
+       save=n
+       cont=n
+       case "$c" in
+           0|" ")
+               save=y
+               cont=y
+               ;;
+           1)
+               cont=y
+               ;;
+           2|"")
+               save=y
+               ;;
+       esac
+       if [ "$save" = y ]; then
+           let ep++
+           echo "$ep" >nextep
+       fi
+       if [ "$cont" = y ]; then
+           exec "${origargs[@]}"
+       else
+           echo "nextep is $ep"
+       fi
     fi
 fi