parent
222844ba83
commit
72e39f4bac
@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
delay=$1
|
||||
usage='Usage: st [delay_in_milliseconds]\n\nThis utility will toggle sidetone for your primary audio input device.\nDelay argument is optional -- default: 1\n'
|
||||
# Sanity check
|
||||
### Set delay to 1 if unspecified
|
||||
if [ $# -eq 0 ]; then
|
||||
delay=1
|
||||
fi
|
||||
|
||||
### Check if pavucontrol is available
|
||||
if (! type pactl &>/dev/null); then
|
||||
printf "ERROR 12: 'pactl' command not found!\n\n This command is part of PulseAudio Volume Control, which may commonly be found in your distribution's repository as 'pavucontrol'.\n Please install and try again."
|
||||
exit 12
|
||||
fi
|
||||
|
||||
### Check if delay value >1
|
||||
if [ $delay -lt 1 ]; then
|
||||
echo "ERROR 13: Delay can not be less than 1!" >&2
|
||||
printf "\n$usage"
|
||||
exit 13
|
||||
fi
|
||||
|
||||
### Check if delay value is an integer (no extra characters)
|
||||
case $delay in
|
||||
''|*[!0-9]*)
|
||||
echo "ERROR 14: Delay value must be an unsigned integer!" >&2 ;
|
||||
printf "\n$usage" ;
|
||||
exit 14 ;;
|
||||
esac
|
||||
# End sanity check
|
||||
|
||||
|
||||
if (pactl list | grep module-loopback) 2>&1 >/dev/null; then
|
||||
pactl unload-module module-loopback
|
||||
echo "Sidetone: OFF"
|
||||
exit 0
|
||||
else
|
||||
pactl load-module module-loopback latency_msec=${delay} >/dev/null || exit 1
|
||||
if [ $delay -gt 1 ]; then
|
||||
printf "Sidetone: ON\tDelay: ${delay}ms\n"
|
||||
else
|
||||
echo "Sidetone: ON"
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
echo "ERROR 3: We don't know WTF happened!" >&2
|
||||
exit 3
|
||||
|
Loading…
Reference in new issue