summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzachir <zachir@librem.one>2021-06-25 23:03:55 -0500
committerzachir <zachir@librem.one>2021-06-25 23:03:59 -0500
commit8164a0a573c68e43fd381b7affe2cf57f780d335 (patch)
tree60e2c57430e6a0d8c85b16e4aed9a96f27ae8d5b
parentc0be0a927fd1c14ad8aeeb3d152dcec2ff89495a (diff)
Support bluealsa volume control
-rwxr-xr-xvolsv41
1 files changed, 32 insertions, 9 deletions
diff --git a/volsv b/volsv
index 060c3eb..9a291f6 100755
--- a/volsv
+++ b/volsv
@@ -17,15 +17,38 @@ pulsesv () {
}
# if alsa
alsasv () {
- case "$1" in
- "up" | "-i") amixer sset Master 5%+ ;;
- "down" | "-d") amixer sset Master 5%- ;;
- "toggle" | "-t") amixer sset Master toggle ;;
- "mic" | "-m") amixer sset Capture toggle ;;
- "getv" | "-v") amixer sget Master | grep '\[[0-9]*\%\]' | cut -d' ' -f7 | sed 's/\[//;s/\]//g' ;;
- "getm" | "-g") amixer sget Master | grep '\[o[fn]' | cut -d' ' -f8 | head -1 ;;
- *) printerror "$1" ;;
- esac
+ DEVICE="$(pgrep -x bluealsa >/dev/null && echo -n "bluealsa")"
+ if [ -z "$DEVICE" ]; then
+ case "$1" in
+ "up" | "-i") amixer sset Master 5%+ ;;
+ "down" | "-d") amixer sset Master 5%- ;;
+ "toggle" | "-t") amixer sset Master toggle ;;
+ "mic" | "-m") amixer sset Capture toggle ;;
+ "getv" | "-v") amixer sget Master | grep '\[[0-9]*\%\]' | sed "s/ /\n/g" | grep '%' | sed 's/\[//;s/\]//g' ;;
+ "getm" | "-g") amixer sget Master | grep '\[o[fn]' | cut -d' ' -f8 | head -1 ;;
+ *) printerror "$1" ;;
+ esac
+ elif [ -z "$(amixer -D $DEVICE controls)" ]; then
+ case "$1" in
+ "up" | "-i") amixer sset Master 5%+ ;;
+ "down" | "-d") amixer sset Master 5%- ;;
+ "toggle" | "-t") amixer sset Master toggle ;;
+ "mic" | "-m") amixer sset Capture toggle ;;
+ "getv" | "-v") amixer sget Master | grep '\[[0-9]*\%\]' | sed "s/ /\n/g" | grep '%' | sed 's/\[//;s/\]//g' ;;
+ "getm" | "-g") amixer sget Master | grep '\[o[fn]' | cut -d' ' -f8 | head -1 ;;
+ *) printerror "$1" ;;
+ esac
+ else
+ MIXER="$(amixer -D $DEVICE | grep 'A2DP' | cut -d"'" -f2)"
+ case "$1" in
+ "up" | "-i") amixer -D "$DEVICE" sset "$MIXER" 5%+ ;;
+ "down" | "-d") amixer -D "$DEVICE" sset "$MIXER" 5%- ;;
+ "toggle" | "-t") amixer -D "$DEVICE" sset "$MIXER" toggle ;;
+ "getv" | "-v") amixer -D "$DEVICE" sget "$MIXER" | grep '\[[0-9]*\%\]' | sed "s/ /\n/g" | grep '%' | sed 's/\[//;s/\]//g' | head -1;;
+ "getm" | "-g") amixer -D "$DEVICE" sget "$MIXER" | grep '\[o[fn]' | cut -d' ' -f9 | head -1 ;;
+ *) printerror "$1" ;;
+ esac
+ fi
}
#Search input for
echo "$@" | grep -q ' *-h *' && echo \