#!/bin/bash

# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)

# Source predefined functions and variables
. /etc/profile

[ -z "${DEVICE_PLAYBACK_PATH}" -o -z "${DEVICE_PLAYBACK_PATH_HP}" -o -z "${DEVICE_PLAYBACK_PATH_SPK}" ] && exit 0

### Set correct audio output device at boot.
HEADPHONE_STATE=$(cat /sys/kernel/debug/gpio | grep HEADPHONE)
if [[ "${HEADPHONE_STATE}" == *"hi"* ]]; then
  amixer -c0 sset "${DEVICE_PLAYBACK_PATH}" "${DEVICE_PLAYBACK_PATH_HP}"
  set_setting "audio.device" "headphone"
else
 amixer -c0 sset "${DEVICE_PLAYBACK_PATH}" "${DEVICE_PLAYBACK_PATH_SPK}"
 set_setting "audio.device" "speakers"
fi


# Headphone sensing
DEVICE="${DEVICE_HEADPHONE_DEV}"

HP_ON='*(SW_HEADPHONE_INSERT), value 1*'
HP_OFF='*(SW_HEADPHONE_INSERT), value 0*'

evtest "${DEVICE}" | while read line; do
    case $line in
        (${HP_ON})
        amixer -c0 sset "${DEVICE_PLAYBACK_PATH}" "${DEVICE_PLAYBACK_PATH_HP}"
        set_setting "audio.device" "headphone"
        ;;
        (${HP_OFF})
        amixer -c0 sset "${DEVICE_PLAYBACK_PATH}" "${DEVICE_PLAYBACK_PATH_SPK}"
        set_setting "audio.device" "speakers"
        ;;
    esac
done
