#!/usr/bin/env bash
# Crea un virtual audio sink para mezclar la voz con la música del karaoke.
# Requiere PulseAudio o PipeWire-pulse.
set -e

SINK_NAME="karaoke_mic"

# Verificar que pactl funciona
if ! command -v pactl &>/dev/null; then
  echo "ERROR: pactl no encontrado. Instala pulseaudio-utils."
  exit 1
fi

echo "[mic] Verificando si el sink ya existe..."
if pactl list sinks short | grep -q "$SINK_NAME"; then
  echo "[mic] Sink '$SINK_NAME' ya existe — OK"
else
  echo "[mic] Creando null-sink '$SINK_NAME'..."
  pactl load-module module-null-sink \
    sink_name="$SINK_NAME" \
    sink_properties="device.description='Karaoke Voice'"
  echo "[mic] Sink creado."
fi

echo "[mic] Creando loopback a salida default..."
pactl load-module module-loopback \
  source="${SINK_NAME}.monitor" \
  sink=@DEFAULT_SINK@ \
  latency_msec=40

echo ""
echo "[mic] Audio de voz mezclado con la música."
echo "[mic] Para testear: abre http://192.168.1.182:8080/player/mic.html en el móvil"
echo "[mic] Luego arranca: python3 scripts/mic-server.py"
