#!/bin/bash

BASEFILE="/var/log/anbernic-virtual-controller"
LOGFILE="${BASEFILE}.log"
DEVICE_NAME=$(cat /proc/device-tree/model)
JOY1=adc-keys
JOY2=adc-joystick
JOY3=gpio-keys-control
JOY4=rg552_joypad
EVENT=/sys/class/input/event*/device/name

DEV1="/dev/input/$(grep -rl "$JOY1" $EVENT | grep -Eo 'event[0-9]')"
DEV2="/dev/input/$(grep -rl "$JOY2" $EVENT | grep -Eo 'event[0-9]')"
DEV3="/dev/input/$(grep -rl "$JOY3" $EVENT | grep -Eo 'event[0-9]')"
DEV4="/dev/input/$(grep -rl "$JOY4" $EVENT | grep -Eo 'event[0-9]')"

case $DEVICE_NAME in
    "Anbernic RG ARC-D" | "Anbernic RG ARC-S" )
    exec "$(nohup evsieve --input "${DEV1}" "${DEV3}" persist=exit --output name="$DEVICE_NAME controller" >/dev/null 2>"${LOGFILE}" )"
    ;;
    "RG353Mm" | "Anbernic RG353V" | "Anbernic RG353VS" | "Anbernic RG353P" | "Anbernic RG353PS")
    exec "$(nohup evsieve --input "${DEV1}" "${DEV2}" "${DEV3}" persist=exit --output name="$DEVICE_NAME controller" >/dev/null 2>"${LOGFILE}" )"
    ;;
    "Anbernic RG552")
    exec "$(nohup evsieve --input "${DEV1}" "${DEV2}" "${DEV4}" persist=exit --output name="$DEVICE_NAME controller" >/dev/null 2>"${LOGFILE}" )"
    ;;
    "Powkiddy x55" | "Powkiddy RGB10MAX3" | "Powkiddy RGB30" | "Powkiddy RK2023")
    exec "$(nohup evsieve --input "${DEV2}" "${DEV3}" persist=exit --output name="$DEVICE_NAME controller" >/dev/null )"
    ;;
    *)
    echo "---------------- DEBUG MESSAGE ----------------" 2> $LOGFILE
    echo "" 2> $LOGFILE
    echo "Unknown device: ${DEVICE_NAME}" 2> $LOGFILE
    echo "" 2> $LOGFILE
    echo "------------- END OF DEBUG MESSAGE -------------" 2> $LOGFILE
esac