| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/bin/sh
- state=""
- while :; do
- alsa_four=0
- for stream in /proc/asound/card*/stream0; do
- [ -r "$stream" ] || continue
- grep -q '^BEHRINGER UMC404HD' "$stream" || continue
- if awk '
- /^Capture:/ { capture=1; next }
- capture && /Channels: 4/ { found=1 }
- END { exit !found }
- ' "$stream"; then
- alsa_four=1
- fi
- break
- done
- if [ "$alsa_four" -ne 1 ]; then
- if [ "$state" != "usb" ]; then
- echo "UMC absente ou moins de 4 canaux ALSA : pas de redémarrage WirePlumber"
- fi
- state="usb"
- sleep 20
- continue
- fi
- ports=$(pw-link -o 2>/dev/null |
- grep -c '^alsa_input\.usb-BEHRINGER_UMC404HD_192k-00\..*:capture_')
- if [ "$ports" -ne 4 ]; then
- echo "UMC : 4 canaux ALSA, mais $ports ports de capture PipeWire ; redémarrage WirePlumber"
- state="pipewire"
- systemctl --user restart wireplumber.service
- sleep 60
- else
- if [ "$state" != "ok" ]; then
- echo "UMC : 4 canaux de capture disponibles dans PipeWire"
- fi
- state="ok"
- sleep 20
- fi
- done
|