#!/bin/bash
DEFAULT_CONF=/var/lib/shelli/audio-defaults.conf
CONF=/var/lib/shelli/audio.conf

if [ "$(id -u)" != 0 ]; then
  SUDO=sudo
else
  SUDO=""
fi

if [ -f "$DEFAULT_CONF" ]; then
  source "$DEFAULT_CONF"
else
  $SUDO mkdir -p /var/lib/shelli
  $SUDO touch "$DEFAULT_CONF"
  $SUDO chown :wheel "$DEFAULT_CONF"
  $SUDO chmod 664 "$DEFAULT_CONF"
fi

if [ -f "$CONF" ]; then
  source "$CONF"
else
  $SUDO mkdir -p /var/lib/shelli
  $SUDO touch "$CONF"
  $SUDO chown :wheel "$CONF"
  $SUDO chmod 664 "$CONF"
fi

OUTPUT=${OUTPUT:-Earpiece}
OUTPUT=${NEW_OUTPUT:-$OUTPUT}
MUTED=${MUTED:-1}
MUTED=${NEW_MUTED:-$MUTED}
VOICE=${VOICE:-0}
VOICE=${NEW_VOICE:-$VOICE}

# special case for pinephone where voice call requires different ucm _verb "Voice Call"
[ "$VOICE" = 1 ] && UCM="set _verb \"$VOICE_VERB\"" || UCM="set _verb \"$DEFAULT_VERB\""
OUTPUT_OPTIONS="Headphones Speaker Earpiece"
for OUT in $OUTPUT_OPTIONS
do
  UCM="$UCM
set _enadev $OUT"
  [ "$OUT" != "$OUTPUT" ] && UCM="$UCM
set _disdev $OUT"
done
UCM="$UCM
set _enadev $MIC"
[ "$MUTED" = "1" ] && UCM="$UCM
set _disdev $MIC"

#echo "$UCM" | alsaucm -c hw:0 -b -
alsaucm -c hw:0 -b - <<EOM
$UCM
EOM

cat > "$CONF" <<EOM
OUTPUT=$OUTPUT
MUTED=$MUTED
VOICE=$VOICE
EOM
