42 lines
1.0 KiB
Bash
Executable File
42 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
declare -A ports
|
|
ports[pulsel]='PulseAudio JACK Sink:front-left'
|
|
ports[pulser]='PulseAudio JACK Sink:front-right'
|
|
ports[echo_audiofire1]='firewire_pcm:001486a296a59815_Unknown_out'
|
|
ports[echo_audiofire2]='firewire_pcm:001486a296a59815_Unknown0_out'
|
|
|
|
retries=10
|
|
err_file="$(mktemp)"
|
|
while [[ "$retries" -gt 0 ]]; do
|
|
failed=false
|
|
live_ports="$(jack_lsp -c 2>"$err_file")"
|
|
printf 'live ports:\n\n%s\n' "$live_ports"
|
|
err="$(<"$err_file")"
|
|
rm "$err_file"
|
|
if [[ -n "$err" ]]; then
|
|
printf '%s\n' "$err" >&2
|
|
sleep 2
|
|
((retries-=1))
|
|
continue
|
|
fi
|
|
for port in "${ports[@]}"; do
|
|
if ! grep -q "$port" <<< "$live_ports"; then
|
|
printf '%s not seen\n' "$port" >&2
|
|
sleep 2
|
|
((retries-=1))
|
|
failed=true
|
|
fi
|
|
done
|
|
if [[ "$failed" == 'false' ]]; then
|
|
break
|
|
fi
|
|
done
|
|
|
|
jack_connect "${ports[pulsel]}" "${ports[echo_audiofire1]}"
|
|
jack_connect "${ports[pulser]}" "${ports[echo_audiofire2]}"
|
|
printf 'success\n'
|
|
if [[ "$retries" != 10 ]]; then
|
|
printf 'attempts: %s\n' "$((10-retries))"
|
|
fi
|