#!/bin/sh BIN_DIR=$(dirname "$0") BIG_SHIFT=6 MID_SHIFT=4 SMALL_SHIFT=1 BIG_MOVE="$BIG_SHIFT"0 MID_MOVE="$MID_SHIFT"0 SMALL_MOVE="$SMALL_SHIFT"0 BIG_JUMP="$BIG_SHIFT"00 MID_JUMP="$MID_SHIFT"00 SMALL_JUMP="$SMALL_SHIFT"00 BIG_SKIP="$BIG_SHIFT"000 MID_SKIP="$MID_SHIFT"000 SMALL_SKIP="$SMALL_SHIFT"000 IN_VIDEO="$1" SPLIT_GUESS="$2" DISPLAY_RANGE_FRAMES="$3" SIDE="$4" MODE="av" echo "Playing $(basename "$IN_VIDEO") on $SIDE of split at $SPLIT_GUESS \(with $DISPLAY_RANGE_FRAMES extra frames\)." case $SIDE in left) START_FRAME=$((SPLIT_GUESS - DISPLAY_RANGE_FRAMES)) END_FRAME=$SPLIT_GUESS ;; right) START_FRAME=$((SPLIT_GUESS + 1)) END_FRAME=$((SPLIT_GUESS + DISPLAY_RANGE_FRAMES)) ;; esac "$BIN_DIR/play_frames" "$IN_VIDEO" "$START_FRAME" "$END_FRAME" "$MODE" >/dev/null 2>/dev/null CMD=$("$BIN_DIR/read_keypress") case $CMD in \`) echo "'$0'" "'$IN_VIDEO'" "$SPLIT_GUESS" "$DISPLAY_RANGE_FRAMES" "$SIDE" exit ;; \\) case $SIDE in left) SIDE="right" ;; right) SIDE="left" ;; esac ;; =) case $MODE in av) echo Disabled video output. In audio-only mode. MODE="audio" ;; audio) echo Enabled video output. In audio-video mode. MODE="av" ;; esac ;; a) SPLIT_GUESS=$((SPLIT_GUESS - BIG_SHIFT)) ;; A) SPLIT_GUESS=$((SPLIT_GUESS - BIG_MOVE)) ;; s) SPLIT_GUESS=$((SPLIT_GUESS - MID_SHIFT)) ;; S) SPLIT_GUESS=$((SPLIT_GUESS - MID_MOVE)) ;; d) SPLIT_GUESS=$((SPLIT_GUESS - SMALL_SHIFT)) ;; D) SPLIT_GUESS=$((SPLIT_GUESS - SMALL_MOVE)) ;; f) SPLIT_GUESS=$((SPLIT_GUESS + SMALL_SHIFT)) ;; F) SPLIT_GUESS=$((SPLIT_GUESS + SMALL_MOVE)) ;; g) SPLIT_GUESS=$((SPLIT_GUESS + MID_SHIFT)) ;; G) SPLIT_GUESS=$((SPLIT_GUESS + MID_MOVE)) ;; h) SPLIT_GUESS=$((SPLIT_GUESS + BIG_SHIFT)) ;; H) SPLIT_GUESS=$((SPLIT_GUESS + BIG_MOVE)) ;; q) SPLIT_GUESS=$((SPLIT_GUESS - BIG_JUMP)) ;; Q) SPLIT_GUESS=$((SPLIT_GUESS - BIG_SKIP)) ;; w) SPLIT_GUESS=$((SPLIT_GUESS - MID_JUMP)) ;; W) SPLIT_GUESS=$((SPLIT_GUESS - MID_SKIP)) ;; e) SPLIT_GUESS=$((SPLIT_GUESS - SMALL_JUMP)) ;; E) SPLIT_GUESS=$((SPLIT_GUESS - SMALL_SKIP)) ;; r) SPLIT_GUESS=$((SPLIT_GUESS + SMALL_JUMP)) ;; R) SPLIT_GUESS=$((SPLIT_GUESS + SMALL_SKIP)) ;; t) SPLIT_GUESS=$((SPLIT_GUESS + MID_JUMP)) ;; T) SPLIT_GUESS=$((SPLIT_GUESS + MID_SKIP)) ;; y) SPLIT_GUESS=$((SPLIT_GUESS + BIG_JUMP)) ;; Y) SPLIT_GUESS=$((SPLIT_GUESS + BIG_SKIP)) ;; z) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES - BIG_SHIFT)) ;; Z) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES - BIG_MOVE)) ;; x) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES - MID_SHIFT)) ;; X) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES - MID_MOVE)) ;; c) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES - SMALL_SHIFT)) ;; C) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES - SMALL_MOVE)) ;; v) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES + SMALL_SHIFT)) ;; V) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES + SMALL_MOVE)) ;; b) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES + MID_SHIFT)) ;; B) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES + MID_MOVE)) ;; n) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES + BIG_SHIFT)) ;; N) DISPLAY_RANGE_FRAMES=$((DISPLAY_RANGE_FRAMES + BIG_MOVE)) ;; esac exec "$0" "$IN_VIDEO" "$SPLIT_GUESS" "$DISPLAY_RANGE_FRAMES" "$SIDE"