#!/bin/bash -e

NOTIFY='notify-send -t 1000 -a changeVolume -u low'
NOTIFYVOL="$NOTIFY -i audio-volume-high"

SINK='@DEFAULT_AUDIO_SINK@'
WPCUR="$(wpctl get-volume "$SINK")"
CUR="$((10#$(tr -dc '0-9' <<< "$WPCUR")))"

grep -q MUTED <<< "$WPCUR" && MUTE=1 || MUTE=0

if [ "$1" == 'm' ]; then
    if [ "$MUTE" = 1 ]; then
        wpctl set-mute "$SINK" 0
        $NOTIFYVOL -h string:synchronous:vol -h int:value:"$CUR" "$CUR%"
    else
        wpctl set-mute "$SINK" 1
        $NOTIFY -i audio-volume-muted -h string:synchronous:vol "Mute"
    fi
else
    case "${1:0:1}" in
        '')
            echo "$CUR"; exit
            ;;
        '+'|'-')
            CUR="$((CUR - CUR % $1 + $1))"
            [ "$CUR" -lt 0   ] && CUR=0
            [ "$CUR" -gt 150 ] && CUR=150
            ;;
        *)
            CUR="$1"
            ;;
    esac

    wpctl set-volume "$SINK" "$CUR%"
    if [ "$MUTE" = 1 ]; then
        wpctl set-mute "$SINK" 0
    fi
    $NOTIFYVOL -h string:synchronous:vol -h int:value:"$CUR" "$CUR%"
fi

# update sbar
kill -35 "$(cat "$HOME/.cache/pidofbar")"
