One Hat Cyber Team
Your IP :
216.73.216.76
Server IP :
162.240.179.46
Server :
Linux vps-14493116.nutrivittasaude.com.br 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
Server Software :
Apache
PHP Version :
8.2.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
wireplumber
/
scripts
/
linking
/
View File Name :
find-media-role-target.lua
-- WirePlumber -- -- Copyright © 2024 Collabora Ltd. -- -- SPDX-License-Identifier: MIT -- -- Select the media role target cutils = require("common-utils") lutils = require("linking-utils") log = Log.open_topic("s-linking") SimpleEventHook { name = "linking/find-media-role-target", after = { "linking/find-defined-target", "linking/find-filter-target" }, before = "linking/prepare-link", interests = { EventInterest { Constraint { "event.type", "=", "select-target" }, }, }, execute = function (event) local _, om, si, si_props, _, target = lutils:unwrap_select_target_event (event) local target_direction = cutils.getTargetDirection (si_props) local media_role = si_props["media.role"] -- bypass the hook if the target is already picked up or if the role is not -- defined if target or media_role == nil then return end log:info (si, string.format ("handling item %d: %s (%s) role (%s)", si.id, tostring (si_props ["node.name"]), tostring (si_props ["node.id"]), media_role)) for si_target in om:iterate { type = "SiLinkable", Constraint { "item.node.direction", "=", target_direction }, Constraint { "device.intended-roles", "+" }, Constraint { "media.type", "=", si_props["media.type"] }, } do local roles_json = si_target.properties["device.intended-roles"] local roles_table = Json.Raw(roles_json):parse() for _, target_role in ipairs(roles_table) do if target_role == media_role then target = si_target break end end if target then break end end -- set target if target ~= nil then log:info(si, string.format("... media role target picked: %s (%s)", tostring(target.properties["node.name"]), tostring(target.properties["node.id"]))) event:set_data("target", target) end end }:register()