From 8164a0a573c68e43fd381b7affe2cf57f780d335 Mon Sep 17 00:00:00 2001 From: zachir Date: Fri, 25 Jun 2021 23:03:55 -0500 Subject: Support bluealsa volume control --- volsv | 41 ++++++++++++++++++++++++++++++++--------- 1 file 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 \ -- cgit v1.2.3