#!/bin/bash
#
# Manage ALSA Master channel

test "$1" = "-h" && echo "usage `basename $0` [up|down|mute]" && exit 0

level() {
    amixer get Master | sed -n 's/^.*\[\([0-9]\+%\).*$/\1/p' | uniq

}

state() {
    amixer get Master | sed -n 's/^.*\[\(o[nf]\+\)]$/\1/p' | uniq

}

test $# -eq 0 && echo "`level` `state`" && exit 0

case $1 in
    up)      amixer set Master ${2:-5}%+ >/dev/null ||autoalsaconfamixer;;
    down)      amixer set Master ${2:-5}%- >/dev/null ||autoalsaconf;;
    mute)      amixer set Master toggle >/dev/null ||autoalsaconf;;
    state|level) $1 ||autoalsaconf;;
    set)    amixer set Master $2% >/dev/null ||autoalsaconf;;
    *)    amixer set Master $1% >/dev/null ||autoalsaconf;;
esac
