mirror of
https://gitlab.freedesktop.org/pipewire/wireplumber.git
synced 2026-03-21 21:40:39 +01:00
linking: Make rescan optional on linkable changes
Split rescan-on-linkable triggering into a separate script file (linking/rescan-on-linkable.lua) that can be disabled via wireplumber.profiles by setting hooks.linking.rescan-on-linkable = disabled.
This commit is contained in:
parent
b453464320
commit
1cfeab9a86
3 changed files with 32 additions and 6 deletions
|
|
@ -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,
|
||||
|
|
|
|||
25
src/scripts/linking/rescan-on-linkable.lua
Normal file
25
src/scripts/linking/rescan-on-linkable.lua
Normal 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 ()
|
||||
|
|
@ -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" },
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue