#!/bin/sh

set -eu

state=/var/lib/alsa/asound.state

first_mixer_control() {
  amixer scontrols 2>/dev/null |
    sed -n "s/^Simple mixer control '\\([^']*\\)'.*/\\1/p" |
    sed -n '1p'
}

set_initial_volume() {
  control=
  for candidate in Master Speaker PCM Headphone; do
    if amixer sget "${candidate}" >/dev/null 2>&1; then
      control=${candidate}
      break
    fi
  done

  if [ -z "${control}" ]; then
    control=$(first_mixer_control)
  fi

  if [ -n "${control}" ]; then
    amixer -M sset "${control}" 85% unmute >/dev/null 2>&1 || true
  fi
}

mkdir -p /var/lib/alsa

case "${1:-}" in
  start)
    if [ -s "${state}" ]; then
      alsactl restore >/dev/null 2>&1 || alsactl init >/dev/null 2>&1 || true
    else
      alsactl init >/dev/null 2>&1 || true
      set_initial_volume
      alsactl store >/dev/null 2>&1 || true
    fi
    ;;
  stop)
    alsactl store >/dev/null 2>&1 || true
    ;;
  *)
    echo "usage: $0 {start|stop}" >&2
    exit 2
    ;;
esac
