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 desejo que todos os fluxos de entrada que apontam para um coletor de destino sejam movidos para outro. Gostaria de uma solução que fornecesse 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 sobre os fluxos de entrada apontados virtualSink
seria perfeitamente aceitável.