summaryrefslogtreecommitdiff
path: root/bin/pactl-tunnel-sink
blob: 5ad8df2557f2009c31307885af0eb1cd10679b35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env bash

set -e
. ~/src/dotfiles/lib-src/posix-defuns.sh

[ \( "$1" = --client -o "$1" = --server \) -a "$#" -eq 2 ] \
    || fail "usage: pactl-tunnel-sink --client|--server ADDRESS"

addr=$2
port=4656
def= mod=

cleanup() {
    set +e
    [ -n "$def" ] && pactl set-default-sink "$def"
    [ -n "$mod" ] && pactl unload-module "$mod"
}
trap cleanup INT TERM EXIT

case "$1" in
    --client)
	def="$(pactl get-default-sink)"
	mod="$(pactl load-module module-tunnel-sink server=tcp:$addr:$port)"
	pactl set-default-sink "tunnel-sink.tcp:$addr:$port"
	;;

    --server)
	sudo firewall-cmd --add-port=$port/tcp
	mod="$(pactl load-module module-native-protocol-tcp port=$port listen=$addr)"
	;;
esac

read -n 1 -r -s -p "Press any key to exit .."