#!/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