Como configurar os coletores do PulseAudio em grupos?

3

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.

    
por calloc 02.10.2016 / 02:04

0 respostas

Tags