#!/bin/bash

# Filename: ~/github/dotfiles-latest/sketchybar/felixkratz/plugins/volume_click.sh

WIDTH=100

detail_on() {
	sketchybar --animate tanh 30 --set volume slider.width=$WIDTH
}

detail_off() {
	sketchybar --animate tanh 30 --set volume slider.width=0
}

toggle_detail() {
	INITIAL_WIDTH=$(sketchybar --query volume | jq -r ".slider.width")
	if [ "$INITIAL_WIDTH" -eq "0" ]; then
		detail_on
	else
		detail_off
	fi
}

toggle_devices() {
	which SwitchAudioSource >/dev/null || exit 0
	source "$CONFIG_DIR/colors.sh"

	args=(--remove '/volume.device\.*/' --set "$NAME" popup.drawing=toggle)
	COUNTER=0
	CURRENT="$(SwitchAudioSource -t output -c)"
	while IFS= read -r device; do
		COLOR=$GREY
		if [ "${device}" = "$CURRENT" ]; then
			COLOR=$WHITE
		fi
		args+=(--add item volume.device.$COUNTER popup."$NAME"
			--set volume.device.$COUNTER label="${device}"
			label.color="$COLOR"
			click_script="SwitchAudioSource -s \"${device}\" && sketchybar --set /volume.device\.*/ label.color=$GREY --set \$NAME label.color=$WHITE --set $NAME popup.drawing=off")
		COUNTER=$((COUNTER + 1))
	done <<<"$(SwitchAudioSource -a -t output)"

	sketchybar -m "${args[@]}" >/dev/null
}

if [ "$BUTTON" = "right" ] || [ "$MODIFIER" = "shift" ]; then
	toggle_devices
else
	toggle_detail
fi
