51 lines
1.5 KiB
Bash
Executable File
51 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# @Author: iago
|
|
|
|
state=waiting_for_sunshine
|
|
sleep_time=1
|
|
|
|
default_device="alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo"
|
|
default_device_fl=":monitor_FL"
|
|
default_device_fr=":monitor_FR"
|
|
obs_device="OBS: audioOutput_Discordless"
|
|
obs_device_fl=":monitor_FL"
|
|
obs_device_fr=":monitor_FR"
|
|
sunshine_device="sunshine"
|
|
sunshine_device_fl=":input_FL"
|
|
sunshine_device_fr=":input_FR"
|
|
|
|
is_sunshine_transmitting() {
|
|
pw-link -l | grep sunshine >/dev/null
|
|
}
|
|
|
|
do_device_setup() {
|
|
# trocar dispositivo padrão
|
|
pactl set-default-sink "$default_device"
|
|
sleep 3
|
|
# conectar dispositivo virtual do OBS
|
|
pw-link "$obs_device$obs_device_fl" "$sunshine_device$sunshine_device_fl"
|
|
pw-link "$obs_device$obs_device_fr" "$sunshine_device$sunshine_device_fr"
|
|
# talvez desconectar a saída do seu fone do sunshine?
|
|
sleep 5
|
|
pw-link -d "$default_device$default_device_fl" "$sunshine_device$sunshine_device_fl"
|
|
pw-link -d "$default_device$default_device_fr" "$sunshine_device$sunshine_device_fr"
|
|
}
|
|
|
|
while true; do
|
|
if [ "$state" = "waiting_for_sunshine" ]; then
|
|
if is_sunshine_transmitting; then
|
|
state=do_sunshine_setup
|
|
fi
|
|
elif [ "$state" = "do_sunshine_setup" ]; then
|
|
do_device_setup
|
|
state=sunshine_running
|
|
elif [ "$state" = "sunshine_running" ]; then
|
|
if ! is_sunshine_transmitting; then
|
|
state=sunshine_not_transmitting
|
|
fi
|
|
elif [ "$state" = "sunshine_not_transmitting" ]; then
|
|
state=waiting_for_sunshine
|
|
fi
|
|
sleep "$sleep_time"
|
|
done
|