✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/share/wireplumber/scripts/linking//find-defined-target.lua
-- WirePlumber
--
-- Copyright © 2022 Collabora Ltd.
--
-- SPDX-License-Identifier: MIT
--
-- Check if the target node is defined explicitly.
-- This definition can be done in two ways.
-- 1. "node.target"/"target.object" in the node properties
-- 2. "target.node"/"target.object" in the default metadata

lutils = require ("linking-utils")
cutils = require ("common-utils")
log = Log.open_topic ("s-linking")

SimpleEventHook {
  name = "linking/find-defined-target",
  before = "linking/prepare-link",
  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

    log:info (si, string.format ("handling item %d: %s (%s)", si.id,
        tostring (si_props ["node.name"]), tostring (si_props ["node.id"])))

    local metadata = Settings.get_boolean ("linking.allow-moving-streams") and
        cutils.get_default_metadata_object ()
    local dont_fallback = cutils.parseBool (si_props ["node.dont-fallback"])
    local dont_move = cutils.parseBool (si_props ["node.dont-move"])
    local target_key
    local target_value = nil
    local node_defined = false
    local target_picked = nil

    if si_props ["target.object"] ~= nil then
      target_value = si_props ["target.object"]
      target_key = "object.serial"
      node_defined = true
    elseif si_props ["node.target"] ~= nil then
      target_value = si_props ["node.target"]
      target_key = "node.id"
      node_defined = true
    end

    if metadata and not dont_move then
      local id = metadata:find (si_props ["node.id"], "target.object")
      if id ~= nil then
        target_value = id
        target_key = "object.serial"
        node_defined = false
      else
        id = metadata:find (si_props ["node.id"], "target.node")
        if id ~= nil then
          target_value = id
          target_key = "node.id"
          node_defined = false
        end
      end
    end

    if target_value == "-1" then
      target_picked = false
      target = nil
    elseif target_value and tonumber (target_value) then
      target = om:lookup {
        type = "SiLinkable",
        Constraint { target_key, "=", target_value },
      }
      if target and lutils.canLink (si_props, target) then
        target_picked = true
      end
    elseif target_value then
      for lnkbl in om:iterate { type = "SiLinkable" } do
        local target_props = lnkbl.properties
        if (target_props ["node.name"] == target_value or
            target_props ["object.path"] == target_value) and
            target_props ["item.node.direction"] == cutils.getTargetDirection (si_props) and
            lutils.canLink (si_props, lnkbl) then
          target_picked = true
          target = lnkbl
          break
        end
      end
    end

    local can_passthrough, passthrough_compatible
    if target then
      passthrough_compatible, can_passthrough =
      lutils.checkPassthroughCompatibility (si, target)
      if not passthrough_compatible then
        target = nil
      end
    end

    si_flags.has_defined_target = false
    if target_picked and target then
      log:info (si,
        string.format ("... defined target picked: %s (%s), can_passthrough:%s",
          tostring (target.properties ["node.name"]),
          tostring (target.properties ["node.id"]),
          tostring (can_passthrough)))
      si_flags.has_node_defined_target = node_defined
      si_flags.can_passthrough = can_passthrough
      si_flags.has_defined_target = true
      event:set_data ("target", target)
    elseif target_value and dont_fallback then
      -- send error to client and destroy node if linger is not set
      local linger = cutils.parseBool (si_props ["node.linger"])
      if not linger then
        local node = si:get_associated_proxy ("node")
        lutils.sendClientError (event, node, -2, "defined target not found")
        node:request_destroy ()
        log:info(si, "... destroyed node as defined target was not found")
      else
        log:info(si, "... waiting for defined target as dont-fallback is set")
      end
      event:stop_processing ()
    end

  end
}:register ()

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
27 May 2026 4.58 AM
root / root
0755
find-audio-group-target.lua
2.714 KB
10 Oct 2025 2.43 PM
root / root
0644
find-best-target.lua
3.973 KB
10 Oct 2025 2.43 PM
root / root
0644
find-default-target.lua
1.65 KB
10 Oct 2025 2.43 PM
root / root
0644
find-defined-target.lua
4.251 KB
10 Oct 2025 2.43 PM
root / root
0644
find-filter-target.lua
2.901 KB
10 Oct 2025 2.43 PM
root / root
0644
find-media-role-target.lua
1.919 KB
10 Oct 2025 2.43 PM
root / root
0644
find-user-target.lua.example
0.903 KB
10 Oct 2025 2.43 PM
root / root
0644
get-filter-from-target.lua
3.514 KB
10 Oct 2025 2.43 PM
root / root
0644
link-target.lua
5.227 KB
10 Oct 2025 2.43 PM
root / root
0644
mpris-pause.lua
10.016 KB
10 Oct 2025 2.43 PM
root / root
0644
prepare-link.lua
3.787 KB
10 Oct 2025 2.43 PM
root / root
0644
rescan-media-role-links.lua
6.462 KB
10 Oct 2025 2.43 PM
root / root
0644
rescan.lua
8.35 KB
10 Oct 2025 2.43 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF