Eu gostaria de configurar algum tipo de coletor virtual ou grupo de origem que me permita alterar um coletor para vários fluxos de entrada ativos. Até agora, tenho usado o seguinte script para definir todos os fluxos de entrada para a fonte padrão:
#!/bin/bash
pacmd set-default-sink "$1"
pacmd list-sink-inputs | grep index | while read input
do
pacmd move-sink-input "${input##* }" "$1"
done
Ou para mover apenas as entradas para o último coletor padrão:
#!/bin/bash
pacmd list-sinks |
grep -e "* index:" |
tr -dc "[:digit:]\n" |
{
read old_sink
pacmd set-default-sink "$1"
pacmd list-sink-inputs |
grep -e "index:" -e "sink:" |
grep -B 1 -e "sink: $old_sink" |
grep -e "index:" |
tr -dc "[:digit:]\n" |
while read i
do
pacmd move-sink-input "$i" "$1"
done
}
No entanto, isso não atende às minhas necessidades. Soluções semelhantes pressupõem que eu quero que todos os fluxos de entrada que apontam para um coletor de destino se movam para outro. Gostaria de uma solução que forneça o seguinte comportamento:
# previous state
sourceA -> (virtualSink -> sinkA)
sourceB -> (virtualSink -> sinkA)
sourceC -> sinkA
$ set-sink (virtualSink -> sinkB)
sourceA -> (virtualSink -> sinkB)
sourceB -> (virtualSink -> sinkB)
sourceC -> sinkA
Idealmente, set-sink
moveria todos os fluxos de entrada ativos para o novo coletor, mas iterar pelos fluxos de entrada que apontam para virtualSink
seria perfeitamente aceitável.
Tags pulseaudio