check in user systemd services and pulse auto connect
This commit is contained in:
41
bin/pulse_jack_autoconnect
Executable file
41
bin/pulse_jack_autoconnect
Executable file
@ -0,0 +1,41 @@
|
||||
#!/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
|
Reference in New Issue
Block a user