Code:
#!/bin/sh
case "$1" in
start)
ISSHOWING="FALSE"
ISDUMPING="FALSE"
ISDONE="FALSE"
echo "Starting JACKEL!"
if [ "`gpio-control /dev/gpio invalue 2 13 | grep value | cut -d = -f 2`" -eq "1" ] ; then # LFT-SHOULDER
echo "Left Shoulder Button not held, stopping JACKEL!"
exit
fi
if [ ! -e /var/fonts/monotext8x16.rgb -a -e /test/monotext8x16.rgb ] ; then
mkdir -p /var/fonts
cp -s /test/monotext8x16.rgb /var/fonts
fi
if [ -e /sys/class/graphics ]; then
DRAWTEXT_CMD="drawtext-fb /dev/fb0 /var/fonts/monotext8x16.rgb"
SCREEN_SELECT="fbctrl /dev/fb0"
LAYER_CONTROL="0" #"fbctrl /dev/fb0"
else
DRAWTEXT_CMD="drawtext /dev/layer0 /var/fonts/monotext8x16.rgb"
SCREEN_SELECT="fbctrl /dev/layer0"
LAYER_CONTROL="1" #"layer-control /dev/layer0"
fi
display_screen /Jackel/jackel.png
$DRAWTEXT_CMD "Jackel v0.1" 0 0 1
$DRAWTEXT_CMD "Written by Josh Johansson" 1 0 1
$DRAWTEXT_CMD "A = Dump Game Cartridge" 3 3 1
$DRAWTEXT_CMD " to Console" 4 3 1
$DRAWTEXT_CMD "Hint = Stop Jackel" 6 3 1
$DRAWTEXT_CMD "L & R Show/Hide Jackel" 8 3 1
$DRAWTEXT_CMD "PAUSE = Reboot (Needed after dump/s)" 11 3 1
$SCREEN_SELECT set blank 1
while true ; do
if [ "`gpio-control /dev/gpio invalue 2 4 | grep value | cut -d = -f 2`" -eq "0" ] && [ $ISDUMPING == "FALSE" ] && [ $ISSHOWING == "TRUE" ] ; then # PAUSE BUTTON
break
fi
if [ "`gpio-control /dev/gpio invalue 2 6 | grep value | cut -d = -f 2`" -eq "0" ] && [ $ISDUMPING == "FALSE" ] ; then #RIGHT SHOULDER
$DRAWTEXT_CMD " " 13 3 1
#$DRAWTEXT_CMD " " 13 3 1
$SCREEN_SELECT set blank 1
ISSHOWING="FALSE"
elif [ "`gpio-control /dev/gpio invalue 2 13 | grep value | cut -d = -f 2`" -eq "0" ] ; then # LFT-SHOULDER
display_screen /Jackel/jackel.png
$DRAWTEXT_CMD " " 13 3 1
#$DRAWTEXT_CMD "L" 13 3 1
display_screen $PROG_PATH/jackel.png
$DRAWTEXT_CMD "Jackel v0.1" 0 0 1
$DRAWTEXT_CMD "Written by Josh Johansson" 1 0 1
$DRAWTEXT_CMD "A = Dump Game Cartridge" 3 3 1
$DRAWTEXT_CMD " to Console" 4 3 1
$DRAWTEXT_CMD "Hint = Stop Jackel" 6 3 1
$DRAWTEXT_CMD "L & R Show/Hide Jackel" 8 3 1
$DRAWTEXT_CMD "PAUSE = Reboot (Needed after dump/s)" 11 3 1
$SCREEN_SELECT set blank 0
ISSHOWING="TRUE"
fi
if [ $ISSHOWING == "TRUE" ] && [ $ISDUMPING == "FALSE" ] ; then
if [ "`gpio-control /dev/gpio invalue 2 3 | grep value | cut -d = -f 2`" -eq "0" ] ; then # A button
$DRAWTEXT_CMD " " 13 3 1
$DRAWTEXT_CMD " " 3 3 1
$DRAWTEXT_CMD " " 4 3 1
$DRAWTEXT_CMD " " 6 3 1
$DRAWTEXT_CMD "DO NOT PRESS ANYTHING!!! " 8 3 1
$DRAWTEXT_CMD "DO NOT TURN OFF POWER!!! " 11 3 1
$DRAWTEXT_CMD "DUMPING CART PLEASE WAIT!" 13 3 1
ISDUMPING="TRUE"
cp -avr /LF/Cart/. /LF/Bulk/ProgramFiles
$DRAWTEXT_CMD " " 13 3 1
$DRAWTEXT_CMD "DONE DUMPING!" 13 3 1
$DRAWTEXT_CMD "A = Dump Game Cartridge" 3 3 1
$DRAWTEXT_CMD " to Console" 4 3 1
$DRAWTEXT_CMD "Hint = Stop Jackel" 6 3 1
$DRAWTEXT_CMD "L & R Show/Hide Jackel" 8 3 1
$DRAWTEXT_CMD "PAUSE = Reboot (Needed after dump/s)" 11 3 1
ISDUMPING="FALSE"
elif [ "`gpio-control /dev/gpio invalue 2 5 | grep value | cut -d = -f 2`" -eq "0" ] ; then # Hint
$DRAWTEXT_CMD " " 13 3 1
#$DRAWTEXT_CMD "Hint" 13 3 1
$SCREEN_SELECT set blank 1
exit
fi
fi
done
echo "Reboot requested by Jackel!"
reboot
;;
stop)
echo "Stopping JACKEL"
exit
;;
*)
echo "Usage: /etc/init.d/jackel {start|stop}"
exit 1
;;
esac
exit 0
Code:
#!/bin/sh
# For some reason leappad2's don't have gpio-control but ultras do
# They have a function read_button
case "$1" in
start)
ISSHOWING="FALSE"
ISDUMPING="FALSE"
ISDONE="FALSE"
echo "Starting JACKEL!"
if [ "`read_button left`" != "pressed" ] ; then # up Button
echo "Left not held, stopping JACKEL!"
exit
#else
# echo "Jackel would have started"
# exit
fi
if [ ! -e /var/fonts/monotext8x16.rgb -a -e /test/monotext8x16.rgb ] ; then
mkdir -p /var/fonts
cp -s /test/monotext8x16.rgb /var/fonts
fi
if [ -e /sys/class/graphics ]; then
DRAWTEXT_CMD="drawtext-fb /dev/fb0 /var/fonts/monotext8x16.rgb"
SCREEN_SELECT="fbctrl /dev/fb0"
LAYER_CONTROL="0" #"fbctrl /dev/fb0"
else
DRAWTEXT_CMD="drawtext /dev/layer0 /var/fonts/monotext8x16.rgb"
SCREEN_SELECT="fbctrl /dev/layer0"
LAYER_CONTROL="1" #"layer-control /dev/layer0"
fi
display_screen /Jackel/jackel.png
$DRAWTEXT_CMD "Jackel v0.1" 0 0 1
$DRAWTEXT_CMD "Written by Josh Johansson" 1 0 1
$DRAWTEXT_CMD "> = Dump Game Cartridge" 3 3 1
$DRAWTEXT_CMD " to Console" 4 3 1
$DRAWTEXT_CMD " " 6 3 1
$DRAWTEXT_CMD "^ & v Show/Hide Jackel" 8 3 1
$DRAWTEXT_CMD "< = Reboot (Needed after dump/s)" 11 3 1
$SCREEN_SELECT set blank 1
while true ; do
if [ "`read_button down`" == "pressed" ] && [ $ISDUMPING == "FALSE" ] && [ $ISSHOWING == "TRUE" ] ; then # PAUSE BUTTON
break
fi
if [ "`read_button right`" == "pressed" ] && [ $ISDUMPING == "FALSE" ] ; then #RIGHT
$DRAWTEXT_CMD " " 13 3 1
#$DRAWTEXT_CMD " " 13 3 1
$SCREEN_SELECT set blank 1
ISSHOWING="FALSE"
elif [ "`read_button left`" == "pressed" ] ; then # Left
display_screen /Jackel/jackel.png
$DRAWTEXT_CMD " " 13 3 1
#$DRAWTEXT_CMD "L" 13 3 1
display_screen $PROG_PATH/jackel.png
$DRAWTEXT_CMD "Jackel v0.1" 0 0 1
$DRAWTEXT_CMD "Written by Josh Johansson" 1 0 1
$DRAWTEXT_CMD "> = Dump Game Cartridge" 3 3 1
$DRAWTEXT_CMD " to Console" 4 3 1
$DRAWTEXT_CMD " " 6 3 1
$DRAWTEXT_CMD "^ & v Show/Hide Jackel" 8 3 1
$DRAWTEXT_CMD "< = Reboot (Needed after dump/s)" 11 3 1
$SCREEN_SELECT set blank 0
ISSHOWING="TRUE"
fi
if [ $ISSHOWING == "TRUE" ] && [ $ISDUMPING == "FALSE" ] ; then
if [ "`read_button up`" == "pressed" ] ; then # Up
$DRAWTEXT_CMD " " 13 3 1
$DRAWTEXT_CMD " " 3 3 1
$DRAWTEXT_CMD " " 4 3 1
$DRAWTEXT_CMD " " 6 3 1
$DRAWTEXT_CMD "DO NOT PRESS ANYTHING!!! " 8 3 1
$DRAWTEXT_CMD "DO NOT TURN OFF POWER!!! " 11 3 1
$DRAWTEXT_CMD "DUMPING CART PLEASE WAIT!" 13 3 1
ISDUMPING="TRUE"
cp -avr /LF/Cart/. /LF/Bulk/ProgramFiles
$DRAWTEXT_CMD " " 13 3 1
$DRAWTEXT_CMD "DONE DUMPING!" 13 3 1
$DRAWTEXT_CMD "> = Dump Game Cartridge" 3 3 1
$DRAWTEXT_CMD " to Console" 4 3 1
$DRAWTEXT_CMD " " 6 3 1
$DRAWTEXT_CMD "^ & v Show/Hide Jackel" 8 3 1
$DRAWTEXT_CMD "< = Reboot (Needed after dump/s)" 11 3 1
ISDUMPING="FALSE"
fi
fi
done
echo "Reboot requested by Jackel!"
reboot
;;
stop)
echo "Stopping JACKEL"
exit
;;
*)
echo "Usage: /etc/init.d/jackel {start|stop}"
exit 1
;;
esac
exit 0