101 lines
3.5 KiB
Bash
Executable File
101 lines
3.5 KiB
Bash
Executable File
#!/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"
|