39 lines
1.2 KiB
Bash
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
|
|
|