diff options
| author | Robert Günzler <r@gnzler.io> | 2026-02-10 12:32:48 +0100 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2026-02-10 12:41:25 +0100 |
| commit | 63feeb9f369fc6176e85c1c2d8fcc863caad1946 (patch) | |
| tree | 41cd5d2d1ec36e74e464caab722cc9b460153f04 /bin/pwloop | |
| parent | 5bd0a4aca65ecb9818ef1285982d160b6b6ff665 (diff) | |
start new
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to 'bin/pwloop')
| -rwxr-xr-x | bin/pwloop | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/bin/pwloop b/bin/pwloop deleted file mode 100755 index 866b9e9..0000000 --- a/bin/pwloop +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -if [ "$1" = "-h" ]; then - echo "usage: pwloop SOURCE TARGET [VOLUME]" >&2 - exit 1 -fi - -source_name=$1 -target_name=$2 - -volume=0.2 -[ -n "$3" ] && volume=$3 - -# spawn pwloopback -pw-loopback \ - -m '[[FL FR]]' \ - -g 'pwloop' \ - --capture-props='media.class=Audio/Sink/Virtual audio.position=[FL FR] node.description="pwloop sink" node.name=pwloop' \ - --playback-props='media.class=Audio/Source/Virtual audio.position=[FL FR] node.description="pwloop source" node.name=pwloop' \ - & - -# save pid for later -pwloop_pid=$! -trap '{ kill $pwloop_pid; }' EXIT - -set -x - -# set monitor volume prop -pw-cli set-param "$pwloop_oid" 2 "{ \"monitorVolumes\": [$volume, $volume] }" - -# connect ports to pwloop -pw-link "$(pw-link -o | grep "$source_name" | grep 'FL$')" pwloop:input_FL -pw-link "$(pw-link -o | grep "$source_name" | grep 'FR$')" pwloop:input_FR - -# connect ports from pwloop -pw-link pwloop:capture_FL "$(pw-link -i | grep "$target_name" | grep -v monitor | grep 'FL$')" -pw-link pwloop:capture_FR "$(pw-link -i | grep "$target_name" | grep -v monitor | grep 'FR$')" - -# get object.id -pwloop_oid=$(pw-dump | jq -r --arg name "pwloop" --arg s "Audio/Sink/Virtual" \ - '.[]|select(.type=="PipeWire:Interface:Node" and .info.props["node.name"]==$name and .info.props["media.class"]==$s)|.info.props["object.id"]') - -wait |