diff --git a/scripts/shell/sunshine-tweaks.sh b/scripts/shell/sunshine-tweaks.sh new file mode 100755 index 0000000..0a3f4fe --- /dev/null +++ b/scripts/shell/sunshine-tweaks.sh @@ -0,0 +1,49 @@ +#!/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" + # 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