#!/bin/bash ## # Create virtual sinks for use it on Twitch VOD Track. # # @author kj # @website http://kj2.me # @licence MIT ## AUDIOOUTPUTDEVICE=bluez_output.00_25_DB_69_D3_0B.a2dp-sink function startSinks() { if [ -f "sinks.pid" ]; then echo "Se ha encontrado el archivo de configuraciĆ³n de dispositivos virtuales previos." stopSinks fi AUDIOOUTPUTDEVICE=$1 echo "Creando los nuevos dispositvos virtuales..." pw-loopback --capture-props='media.class=Audio/Sink node.name=Music_Sink audio.position=[FL FR]' --playback-props='audio.position=[FR FL] node.target="'$AUDIOOUTPUTDEVICE'"' > /dev/null 2>&1 & Main_PID=$! pw-loopback --capture-props='media.class=Audio/Sink node.name=Main_Sink audio.position=[FL FR]' --playback-props='audio.position=[FR FL] node.target="'$AUDIOOUTPUTDEVICE'"' > /dev/null 2>&1 & Music_PID=$! echo $Main_PID >> sinks.pid echo $Music_PID >> sinks.pid echo "Las dispositivos de audio virtuales han sido creados :)." } function stopSinks() { if [ -f "sinks.pid" ]; then echo "Deteniendo los dispositivos virtuales..." while read -r pid; do kill -9 $pid done < sinks.pid rm sinks.pid echo "Dispositivos virtuales detenidos." else echo "No se ha encontrado el archivo de configuraciĆ³n, no hay nada para detener." fi } if [ "$1" == "start" ]; then startSinks $AUDIOOUTPUTDEVICE exit fi if [ "$1" == "stop" ]; then stopSinks exit fi if [ "$1" == "list" ]; then pactl list short sinks exit fi echo "Modo de uso: $(basename $0) [start|stop|list]"