Newer
Older
-- ["<factory-name regex>"] = "<library-name>"
--
-- used to find spa factory names. It maps a spa factory name
-- regular expression to a library name that should contain that factory.
--
spa_libs = {
["api.alsa.*"] = "alsa/libspa-alsa",
["api.v4l2.*"] = "v4l2/libspa-v4l2",
["api.bluez5.*"] = "bluez5/libspa-bluez5",
["api.libcamera.*"] = "libcamera/libspa-libcamera",
}
components = {}
function load_module(m)
if not components[m] then
components[m] = { "libwireplumber-module-" .. m, type = "module" }
end
end
function load_pw_module(m)
if not components[m] then
components[m] = { "libpipewire-module-" .. m, type = "pw_module" }
end
end
components[s] = { s, type = "script/lua", args = a }
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
end
end
function load_monitor(s)
load_script("monitors/monitor-" .. s .. ".lua")
end
-- Session item factories, building blocks for the session management graph
-- Do not disable these unless you really know what you are doing
load_module("si-adapter")
load_module("si-audio-softdsp-endpoint")
load_module("si-bluez5-endpoint")
load_module("si-convert")
load_module("si-fake-stream")
load_module("si-monitor-endpoint")
load_module("si-simple-node-endpoint")
load_module("si-standard-link")
-- Additional PipeWire modules can be loaded in WirePlumber like this.
-- libpipewire already loads all the modules that we normally need, though.
-- module-spa-node-factory may be needed if you want to use a monitor with
-- LocalNode and the "spa-node-factory" factory
-- ("adapter" is loaded by default, but "spa-node-factory" isn't)
--
-- load_pw_module ("spa-node-factory")
-- Video4Linux2 device management via udev
load_monitor("v4l2")
-- Automatically suspends idle nodes after 3 seconds
load_module("node-suspension")
-- Automatically sets device profiles to 'On'
load_module("device-activation")
-- Grants access to security confined clients
load_module("client-permissions")
function enable_audio()
-- Enables functionality to save and restore default device profiles
load_module("default-profile")
-- Enables saving and restoring certain metadata such as default endpoints
load_module("default-metadata")
-- Implements storing metadata about objects in RAM
load_module("metadata")
-- Enables device reservation via org.freedesktop.ReserveDevice1 on D-Bus
load_module("reserve-device")
-- ALSA device management via udev
load_monitor("alsa")
end
function enable_bluetooth()
load_monitor("bluez5")
end
function enable_endpoints()
load_script("static-sessions.lua", {
["audio"] = {},
["video"] = {},
})
load_script("create-endpoint.lua")
load_script("policy-endpoint.lua")
end
-- split these calls into .lua files in config.lua.d/
-- to get a similar effect as the 'with-audio', 'with-pusleaudio', etc
-- flag files that ship with pipewire-media-session
enable_audio()
enable_bluetooth()
enable_endpoints()