dotfiles/.local/bin/pwrate.sh
2025-05-28 18:33:04 +02:00

39 lines
1.2 KiB
Bash

#!/bin/bash
# Verificar que jq esté instalado
if ! command -v jq &> /dev/null
then
echo "El comando jq no está instalado. Por favor, instálalo e intenta nuevamente."
exit 1
fi
# Función para extraer las tasas de muestreo de los sinks de audio
extraer_tasas() {
echo "$1" | jq -r '
.[]
| select(.info.props."media.class" == "Audio/Sink")
| .info.params.Format[].rate' | sort -u
}
# Obtener las tasas iniciales
json_inicial=$(pw-dump)
tasas_previas=$(extraer_tasas "$json_inicial")
echo "Tasa(s) inicial(es): $tasas_previas"
# Suscribirse a los eventos en tiempo real con pw-dump -m
pw-dump -m | while read -r linea; do
# Verificar si la línea contiene un objeto JSON completo
if [[ "$linea" =~ ^\{.*\}$ ]]; then
tasas_actuales=$(extraer_tasas "$linea")
# Comparar con las tasas previas
if [[ "$tasas_actuales" != "$tasas_previas" ]]; then
echo "¡Cambio detectado en la tasa de muestreo!"
echo "Tasa anterior(s): $tasas_previas"
echo "Nueva tasa(s): $tasas_actuales"
# Actualizar las tasas previas
tasas_previas="$tasas_actuales"
fi
fi
done