#! /bin/bash
# hotkeys script for ARpiCADE using xboxdrv as a keyboard emulator

if [ $1 == start ]; then
# find gpio event number avoids some keyboards breaking hotkeys
cat /proc/bus/input/devices | grep js0 > /tmp/tmpJoy.txt
event=`awk 'NF>1{print $NF}' /tmp/tmpJoy.txt`
sudo rm /tmp/tmpJoy.txt

sudo xboxdrv --evdev /dev/input/$event \
    --config /boot/hotkeys.ini \
    --axismap -X1=X1 \
    --evdev-no-grab \
    --evdev-absmap ABS_X=x1,ABS_Y=y1 \
    --evdev-keymap BTN_START=START,BTN_A=A,BTN_B=B,BTN_X=X,BTN_Y=Y \
    --ui-buttonmap tl=void,tr=void,guide=void \
    --dpad-only \
    --dpad-as-button \
    --silent &

#remove non existant extra joy, this will need adjusting for 3 and 4 player systems
sleep 3
cat /proc/bus/input/devices | grep js2 > /tmp/tmpJoy.txt
eventx=`awk 'NF>1{print $NF}' /tmp/tmpJoy.txt`
sudo rm /tmp/tmpJoy.txt
sudo rm /dev/input/$eventx
sudo rm /dev/input/js2
fi

if [ $1 == stop ]; then
    sudo killall xboxdrv
sleep 2
fi
