diff options
author | zachir <zachir@librem.one> | 2021-06-25 23:03:55 -0500 |
---|---|---|
committer | zachir <zachir@librem.one> | 2021-06-25 23:03:59 -0500 |
commit | 8164a0a573c68e43fd381b7affe2cf57f780d335 (patch) | |
tree | 60e2c57430e6a0d8c85b16e4aed9a96f27ae8d5b | |
parent | c0be0a927fd1c14ad8aeeb3d152dcec2ff89495a (diff) |
Support bluealsa volume control
-rwxr-xr-x | volsv | 41 |
1 files changed, 32 insertions, 9 deletions
@@ -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 \ |