#!/bin/sh set -eu node_name="input_usb_condenser_to_mixer" json_escape() { printf '%s' "$1" | sed 's/\\/\\\\/g; s/"/\\"/g' } if ! command -v pw-cli >/dev/null 2>&1; then printf '{"text":"USB","tooltip":"pw-cli not found","class":"mic-unavailable"}\n' exit 0 fi if ! pw-cli info "$node_name" >/dev/null 2>&1; then printf '{"text":"USB","tooltip":"%s missing","class":"mic-unavailable"}\n' \ "$(json_escape "$node_name")" exit 0 fi if ! command -v wpctl >/dev/null 2>&1; then printf '{"text":"USB","tooltip":"wpctl not found","class":"mic-unavailable"}\n' exit 0 fi node_id=$( pw-cli info "$node_name" 2>/dev/null | awk -F' = ' ' /object.id/ { gsub(/"/, "", $2) print $2 exit } ' ) if [ -z "${node_id:-}" ]; then printf '{"text":"USB","tooltip":"%s missing","class":"mic-unavailable"}\n' \ "$(json_escape "$node_name")" exit 0 fi status=$(wpctl get-volume "$node_id" 2>/dev/null || true) class="mic-usb-unknown" tooltip="USB Condenser state unknown" case "$status" in *MUTED*|*muted*) class="mic-usb-muted" tooltip="USB Condenser muted" ;; Volume:*) class="mic-usb-live" tooltip="USB Condenser live" ;; esac printf '{"text":"USB","tooltip":"%s","class":"%s"}\n' \ "$(json_escape "$tooltip")" \ "$(json_escape "$class")"