#!/bin/bash

# omarchy:summary=Print PulseAudio sink availability for the shell
# omarchy:group=audio

pactl list sinks 2>/dev/null | awk '
  function emit_sink() {
    if (name == "") return
    print name "\t" ((port_count == 0 || available) ? 1 : 0)
  }

  /^Sink #/ {
    emit_sink()
    name = ""
    in_ports = 0
    port_count = 0
    available = 0
    next
  }

  /^[[:space:]]*Name:/ {
    name = $2
    next
  }

  /^[[:space:]]*Ports:$/ {
    in_ports = 1
    next
  }

  in_ports && /^\tActive Port:/ {
    in_ports = 0
    next
  }

  in_ports && /^\t\t/ {
    port_count++
    if ($0 !~ /not available/) available = 1
    next
  }

  END {
    emit_sink()
  }
'
