Merge branch 'master' into 'master'

linking: Make rescan optional on linkable changes

See merge request pipewire/wireplumber!800
This commit is contained in:
Torkel Niklasson 2026-03-19 18:29:34 +00:00
commit a1f38872fc
3 changed files with 32 additions and 6 deletions

View file

@ -656,6 +656,11 @@ wireplumber.components = [
name = linking/rescan.lua, type = script/lua
provides = hooks.linking.rescan
}
{
name = linking/rescan-on-linkable.lua, type = script/lua
provides = hooks.linking.rescan-on-linkable
requires = [ hooks.linking.rescan ]
}
{
name = linking/find-media-role-target.lua, type = script/lua
provides = hooks.linking.target.find-media-role
@ -709,7 +714,8 @@ wireplumber.components = [
requires = [ hooks.linking.rescan,
hooks.linking.target.prepare-link,
hooks.linking.target.link ]
wants = [ hooks.linking.target.find-media-role,
wants = [ hooks.linking.rescan-on-linkable,
hooks.linking.target.find-media-role,
hooks.linking.target.find-defined,
hooks.linking.target.find-audio-group,
hooks.linking.target.find-filter,

View file

@ -0,0 +1,25 @@
-- WirePlumber
--
-- Copyright © 2026 Axis Communications AB.
--
-- SPDX-License-Identifier: MIT
--
-- Trigger a full rescan when linkable session items are added or removed.
-- This can be disabled by setting hooks.linking.rescan-on-linkable = disabled
-- in wireplumber.profiles.
log = Log.open_topic ("s-linking")
SimpleEventHook {
name = "linking/rescan-trigger-on-linkable-added-removed",
interests = {
EventInterest {
Constraint { "event.type", "c", "session-item-added", "session-item-removed" },
Constraint { "event.session-item.interface", "=", "linkable" },
},
},
execute = function (event)
local source = event:get_source ()
source:call ("schedule-rescan", "linking")
end
}:register ()

View file

@ -218,11 +218,6 @@ SimpleEventHook {
SimpleEventHook {
name = "linking/rescan-trigger",
interests = {
-- on linkable added or removed, where linkable is adapter or plain node
EventInterest {
Constraint { "event.type", "c", "session-item-added", "session-item-removed" },
Constraint { "event.session-item.interface", "=", "linkable" },
},
-- on device Routes changed
EventInterest {
Constraint { "event.type", "=", "device-params-changed" },