#!/bin/sh SETME=${1:-100%} SETME_BOOST=${2:-50%} amixer() { set -- amixer "$@" if [ "$VERBOSE" ]; then printf "+ %s\n" "$*" >&2 fi command "$@" } enable_recording() { local DEV="$1" amixer -D "$DEV" controls | ( IFS=, while read a b c _; do case "${c#name=}" in *Boost*) amixer -D "$DEV" cset "$a,$b,$c" "$SETME_BOOST";; \'Capture\ Channel\ Map\') ;; *Capture*) amixer -D "$DEV" cset "$a,$b,$c" "$SETME";; esac done ) } hardware_devices() { arecord -L | while IFS= read line; do case "$line" in hw:*) dev=${line##*DEV=} echo hw:${dev%%,*} ;; esac done } for dev in default $(hardware_devices); do enable_recording $dev done