summaryrefslogtreecommitdiffstats
path: root/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl
diff options
context:
space:
mode:
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2024-09-04 16:11:54 +0300
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2024-09-09 14:37:48 +0000
commitb0db8f5e35a65ac44fa8931cfbc8386e3db85cf1 (patch)
tree90f4e2ce1838ceed6c61e1ad844ecb59018ed5a4 /meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl
parent7b8a17be6743d4e585392eb61a569a63c9ba4f4b (diff)
meta-pipewire: update wireplumber to 0.5.6
- use the wireplumber recipe from meta-openembedded (albeit copied here with the version changed, because 0.5.6 is not available in meta-openembedded) - rewrite configuration files as needed for 0.5.x - configure wireplumber with the main service masked, using only the template service files for a split-instance configuration. split-instance facilitates the multi-container setup that is used in the instrument cluster images. Bug-AGL: SPEC-4934 Change-Id: Ica83f869cdc9527a9edce25e63918a2ba97a4766 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/30243 Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> (cherry picked from commit 5dd43491b6e44664ad1d2e2fb596b6cb248c88fb) Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/30209
Diffstat (limited to 'meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl')
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/00-functions.lua27
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/20-AGL-log.conf5
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/20-AGL-profiles.conf29
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-AGL-alsa.conf101
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-AGL-bluetooth.conf41
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/50-AGL-pw-ic-ipc.conf15
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.conf74
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.lua.d/30-bluez-monitor.lua110
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-alsa-monitor.lua151
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-v4l2-monitor.lua48
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/40-device-defaults.lua26
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/90-enable-all.lua20
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/wireplumber.conf115
13 files changed, 191 insertions, 571 deletions
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/00-functions.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/00-functions.lua
deleted file mode 100644
index 7e1794df0..000000000
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/00-functions.lua
+++ /dev/null
@@ -1,27 +0,0 @@
-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
-
-function load_script(s, a)
- if not components[s] then
- components[s] = { s, type = "script/lua", args = a }
- end
-end
-
-function load_monitor(s, a)
- load_script("monitors/" .. s .. ".lua", a)
-end
-
-function load_access(s, a)
- load_script("access/access-" .. s .. ".lua", a)
-end
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/20-AGL-log.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/20-AGL-log.conf
new file mode 100644
index 000000000..7dc8938fc
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/20-AGL-log.conf
@@ -0,0 +1,5 @@
+context.properties = {
+ # F=fatal, E=critical, W=warning, N=notice, I=info, D=debug, T=trace
+ # See https://pipewire.pages.freedesktop.org/wireplumber/daemon/logging.html
+ log.level = "N"
+}
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/20-AGL-profiles.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/20-AGL-profiles.conf
new file mode 100644
index 000000000..d029887df
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/20-AGL-profiles.conf
@@ -0,0 +1,29 @@
+# This configuration fragment sets up the split-instance profiles to include
+# the standard "embedded" configuration of running systemwide without
+# maintaining user state across reboots.
+# In addition, runtime settings support is disabled on the device monitor
+# instances, as it depends on the "sm-settings" metadata, which lives on the
+# policy instance. In containerized setups (such as the IC demo), the policy
+# instance runs in a container and the device monitors should not wait for it
+# or depend on it in any other way.
+
+wireplumber.profiles = {
+ policy = {
+ inherits = [ mixin.systemwide-session, mixin.stateless ]
+ }
+
+ audio = {
+ inherits = [ mixin.systemwide-session, mixin.stateless ]
+ support.settings = disabled
+ }
+
+ bluetooth = {
+ inherits = [ mixin.systemwide-session, mixin.stateless ]
+ support.settings = disabled
+ }
+
+ video-capture = {
+ inherits = [ mixin.systemwide-session, mixin.stateless ]
+ support.settings = disabled
+ }
+}
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-AGL-alsa.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-AGL-alsa.conf
new file mode 100644
index 000000000..fc03ceb38
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-AGL-alsa.conf
@@ -0,0 +1,101 @@
+# Default AGL WirePlumber ALSA monitor configuration
+
+monitor.alsa.rules = [
+ #
+ # Bump priority of well-known output devices
+ # Higher priority means it gets selected as the default if it's present
+ #
+
+ # USB output
+ {
+ matches = [
+ {
+ node.name = "~alsa_output.*"
+ api.alsa.card.driver = "USB-Audio"
+ }
+ ]
+ actions = {
+ update-props = {
+ priority.driver = 1300
+ priority.session = 1300
+ }
+ }
+ }
+
+ # USB input
+ {
+ matches = [
+ {
+ node.name = "~alsa_input.*"
+ api.alsa.card.driver = "USB-Audio"
+ }
+ ]
+ actions = {
+ update-props = {
+ priority.driver = 2300
+ priority.session = 2300
+ }
+ }
+ }
+
+ # well-known internal output devices
+ {
+ matches = [
+ # ak4613
+ {
+ node.name = "~alsa_output.*"
+ api.alsa.card.id = "ak4613"
+ api.alsa.pcm.device = "0"
+ }
+ # imx8mq
+ {
+ node.name = "~alsa_output.*"
+ api.alsa.card.id = "wm8524audio"
+ }
+ # rcarsound
+ {
+ node.name = "~alsa_output.*"
+ api.alsa.card.id = "rcarsound"
+ api.alsa.pcm.device = "0"
+ }
+ # rpi3
+ {
+ node.name = "~alsa_output.*"
+ api.alsa.pcm.name = "bcm2835 ALSA"
+ }
+ ]
+ actions = {
+ update-props = {
+ priority.driver = 1100
+ priority.session = 1100
+ }
+ }
+ }
+
+ # well-known internal input devices
+ {
+ matches = [
+ # ak4613
+ {
+ node.name = "~alsa_input.*"
+ api.alsa.card.id = "ak4613"
+ }
+ # imx8mq
+ {
+ node.name = "~alsa_input.*"
+ api.alsa.card.id = "wm8524audio"
+ }
+ # rcarsound
+ {
+ node.name = "~alsa_input.*"
+ api.alsa.card.id = "rcarsound"
+ }
+ ]
+ actions = {
+ update-props = {
+ priority.driver = 2100
+ priority.session = 2100
+ }
+ }
+ }
+]
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-AGL-bluetooth.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-AGL-bluetooth.conf
new file mode 100644
index 000000000..db5b20dc2
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-AGL-bluetooth.conf
@@ -0,0 +1,41 @@
+# Default AGL WirePlumber Bluetooth monitor configuration
+
+monitor.bluez.properties = {
+ ## HFP/HSP backend (default: native).
+ ## Available values: any, none, hsphfpd, ofono, native
+ bluez5.hfphsp-backend = "ofono"
+}
+
+monitor.bluez.rules = [
+ {
+ matches = [
+ {
+ ## This matches all bluetooth devices.
+ device.name = "~bluez_card.*"
+ }
+ ]
+ actions = {
+ update-props = {
+ ## Auto-connect as headset/sink on start up or when only partial
+ ## profiles have connected.
+ bluez5.auto-connect = [ hfp_hf hsp_hs a2dp_sink ]
+ }
+ }
+ }
+
+ # Make output a2dp stream nodes go through the Multimedia sink
+ # We cannot match on "media.class" here because this property
+ # is not known before the node is created
+ {
+ matches = [
+ {
+ api.bluez5.profile = "a2dp-source"
+ }
+ ]
+ actions = {
+ update-props = {
+ media.role = "Multimedia"
+ }
+ }
+ }
+]
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/50-AGL-pw-ic-ipc.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/50-AGL-pw-ic-ipc.conf
new file mode 100644
index 000000000..93687501c
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/50-AGL-pw-ic-ipc.conf
@@ -0,0 +1,15 @@
+wireplumber.profiles = {
+ # Run on the "audio" instance, which runs the ALSA monitor on the host
+ audio = {
+ agl.script.pipewire-ic-ipc.alsa-suspend = required
+ }
+}
+
+wireplumber.components = [
+ # Mutes ALSA sinks when requested by pipewire-ic-ipc
+ {
+ name = alsa-suspend.lua, type = script/lua
+ provides = agl.script.pipewire-ic-ipc.alsa-suspend
+ requires = [ api.mixer ]
+ }
+]
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.conf
deleted file mode 100644
index 9077e3f45..000000000
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.conf
+++ /dev/null
@@ -1,74 +0,0 @@
-# WirePlumber daemon context configuration #
-
-context.properties = {
- ## Properties to configure the PipeWire context and some modules
-
- application.name = "WirePlumber Bluetooth"
- log.level = 2
- wireplumber.script-engine = lua-scripting
- wireplumber.export-core = true
-
- #mem.mlock-all = false
- #support.dbus = true
-}
-
-context.spa-libs = {
- #<factory-name regex> = <library-name>
- #
- # Used to find spa factory names. It maps an spa factory name
- # regular expression to a library name that should contain
- # that factory.
- #
- api.bluez5.* = bluez5/libspa-bluez5
- audio.convert.* = audioconvert/libspa-audioconvert
- support.* = support/libspa-support
-}
-
-context.modules = [
- #{ name = <module-name>
- # [ args = { <key> = <value> ... } ]
- # [ flags = [ [ ifexists ] [ nofail ] ]
- #}
- #
- # PipeWire modules to load.
- # If ifexists is given, the module is ignored when it is not found.
- # If nofail is given, module initialization failures are ignored.
- #
-
- # The native communication protocol.
- { name = libpipewire-module-protocol-native }
-
- # Allows creating nodes that run in the context of the
- # client. Is used by all clients that want to provide
- # data to PipeWire.
- { name = libpipewire-module-client-node }
-
- # Allows creating devices that run in the context of the
- # client. Is used by the session manager.
- { name = libpipewire-module-client-device }
-
- # Makes a factory for wrapping nodes in an adapter with a
- # converter and resampler.
- { name = libpipewire-module-adapter }
-
- # Allows applications to create metadata objects. It creates
- # a factory for Metadata objects.
- { name = libpipewire-module-metadata }
-
- # Provides factories to make session manager objects.
- { name = libpipewire-module-session-manager }
-]
-
-wireplumber.components = [
- #{ name = <component-name>, type = <component-type> }
- #
- # WirePlumber components to load
- #
-
- # The lua scripting engine
- { name = libwireplumber-module-lua-scripting, type = module }
-
- # The lua configuration file
- # Other components are loaded from there
- { name = bluetooth.lua, type = config/lua }
-]
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.lua.d/30-bluez-monitor.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.lua.d/30-bluez-monitor.lua
deleted file mode 100644
index 530f4cc62..000000000
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.lua.d/30-bluez-monitor.lua
+++ /dev/null
@@ -1,110 +0,0 @@
--- Bluez monitor config file --
-
-bluez_monitor = {}
-
-bluez_monitor.properties = {
- -- These features do not work on all headsets, so they are enabled
- -- by default based on the hardware database. They can also be
- -- forced on/off for all devices by the following options:
-
- --["bluez5.enable-sbc-xq"] = true,
- --["bluez5.enable-msbc"] = true,
- --["bluez5.enable-hw-volume"] = true,
-
- -- See bluez-hardware.conf for the hardware database.
-
- -- Enabled headset roles (default: [ hsp_hs hfp_ag ]), this
- -- property only applies to native backend. Currently some headsets
- -- (Sony WH-1000XM3) are not working with both hsp_ag and hfp_ag
- -- enabled, disable either hsp_ag or hfp_ag to work around it.
- --
- -- Supported headset roles: hsp_hs (HSP Headset),
- -- hsp_ag (HSP Audio Gateway),
- -- hfp_hf (HFP Hands-Free),
- -- hfp_ag (HFP Audio Gateway)
- ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]",
-
- -- Enabled A2DP codecs (default: all).
- --["bluez5.codecs"] = "[ sbc sbc_xq aac ldac aptx aptx_hd aptx_ll aptx_ll_duplex faststream faststream_duplex ]",
-
- -- HFP/HSP backend (default: native).
- -- Available values: any, none, hsphfpd, ofono, native
- ["bluez5.hfphsp-backend"] = "ofono",
-
- -- Properties for the A2DP codec configuration
- --["bluez5.default.rate"] = 48000,
- --["bluez5.default.channels"] = 2,
-}
-
-bluez_monitor.rules = {
- -- An array of matches/actions to evaluate.
- {
- -- Rules for matching a device or node. It is an array of
- -- properties that all need to match the regexp. If any of the
- -- matches work, the actions are executed for the object.
- matches = {
- {
- -- This matches all cards.
- { "device.name", "matches", "bluez_card.*" },
- },
- },
- -- Apply properties on the matched object.
- apply_properties = {
- -- Auto-connect device profiles on start up or when only partial
- -- profiles have connected. Disabled by default if the property
- -- is not specified.
- --["bluez5.auto-connect"] = "[ hfp_hf hsp_hs a2dp_sink hfp_ag hsp_ag a2dp_source ]",
- ["bluez5.auto-connect"] = "[ hfp_hf hsp_hs a2dp_sink ]",
-
- -- Hardware volume control (default: [ hfp_ag hsp_ag a2dp_source ])
- --["bluez5.hw-volume"] = "[ hfp_hf hsp_hs a2dp_sink hfp_ag hsp_ag a2dp_source ]",
-
- -- LDAC encoding quality
- -- Available values: auto (Adaptive Bitrate, default)
- -- hq (High Quality, 990/909kbps)
- -- sq (Standard Quality, 660/606kbps)
- -- mq (Mobile use Quality, 330/303kbps)
- --["bluez5.a2dp.ldac.quality"] = "auto",
-
- -- AAC variable bitrate mode
- -- Available values: 0 (cbr, default), 1-5 (quality level)
- --["bluez5.a2dp.aac.bitratemode"] = 0,
-
- -- Profile connected first
- -- Available values: a2dp-sink (default), headset-head-unit
- --["device.profile"] = "a2dp-sink",
- },
- },
- {
- -- Make output hsp/hfp stream nodes go through the Communication endpoint
- -- Unfortunately we cannot match on "media.class" because this property
- -- is not known before the node is created
- matches = {
- {
- { "api.bluez5.profile", "equals", "headset-audio-gateway" },
- { "factory.name", "matches", "*source*" },
- },
- },
- apply_properties = {
- ["media.role"] = "Communication",
- },
- },
- {
- -- Make output a2dp stream nodes go through the Multimedia endpoint
- -- Unfortunately we cannot match on "media.class" because this property
- -- is not known before the node is created
- matches = {
- {
- { "api.bluez5.profile", "equals", "a2dp-source" },
- },
- },
- apply_properties = {
- ["media.role"] = "Multimedia",
- },
- },
-}
-
-load_monitor("bluez", {
- properties = bluez_monitor.properties,
- rules = bluez_monitor.rules,
-})
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-alsa-monitor.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-alsa-monitor.lua
deleted file mode 100644
index d07f7ab85..000000000
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-alsa-monitor.lua
+++ /dev/null
@@ -1,151 +0,0 @@
--- ALSA monitor config file --
-
-alsa_monitor = {}
-
-alsa_monitor.properties = {
- ["alsa.jack-device"] = false,
- ["alsa.reserve"] = false,
-}
-
-alsa_monitor.rules = {
- -- enable ACP (PulseAudio-like profiles)
- {
- matches = {
- {
- { "device.name", "matches", "alsa_card.*" },
- },
- },
- apply_properties = {
- ["api.alsa.use-acp"] = true,
- },
- },
-
- --
- -- Bump priority of well-known output devices
- -- Higher priority means it gets selected as the default if it's present
- --
-
- -- USB card
- {
- matches = {
- {
- { "node.name", "matches", "alsa_output.*" },
- { "api.alsa.card.driver", "=", "USB-Audio" },
- },
- },
- apply_properties = {
- ["priority.driver"] = 1300,
- ["priority.session"] = 1300,
- }
- },
-
- -- fiberdyne amp
- {
- matches = {
- {
- { "node.name", "matches", "alsa_output.*" },
- { "api.alsa.card.id", "=", "ep016ch" },
- },
- },
- apply_properties = {
- ["priority.driver"] = 1200,
- ["priority.session"] = 1200,
- }
- },
-
- -- well-known internal devices
- {
- matches = {
- {
- -- ak4613
- { "node.name", "matches", "alsa_output.*" },
- { "api.alsa.card.id", "=", "ak4613" },
- { "api.alsa.pcm.device", "=", "0" },
- },
- {
- -- imx8mq
- { "node.name", "matches", "alsa_output.*" },
- { "api.alsa.card.id", "=", "wm8524audio" },
- },
- {
- -- rcarsound
- { "node.name", "matches", "alsa_output.*" },
- { "api.alsa.card.id", "=", "rcarsound" },
- { "api.alsa.pcm.device", "=", "0" },
- },
- {
- -- rpi3
- { "node.name", "matches", "alsa_output.*" },
- { "api.alsa.pcm.name", "=", "bcm2835 ALSA" },
- },
- },
- apply_properties = {
- ["priority.driver"] = 1100,
- ["priority.session"] = 1100,
- }
- },
-
- --
- -- Same for input devices
- --
-
- -- USB card
- {
- matches = {
- {
- { "node.name", "matches", "alsa_input.*" },
- { "api.alsa.card.driver", "=", "USB-Audio" },
- },
- },
- apply_properties = {
- ["priority.driver"] = 2300,
- ["priority.session"] = 2300,
- }
- },
-
- -- microchip mic
- {
- matches = {
- {
- { "node.name", "matches", "alsa_input.*" },
- { "api.alsa.card.id", "=", "ep811ch" },
- },
- },
- apply_properties = {
- ["priority.driver"] = 2200,
- ["priority.session"] = 2200,
- }
- },
-
- -- well-known internal devices
- {
- matches = {
- {
- -- ak4613
- { "node.name", "matches", "alsa_input.*" },
- { "api.alsa.card.id", "=", "ak4613" },
- },
- {
- -- imx8mq
- { "node.name", "matches", "alsa_input.*" },
- { "api.alsa.card.id", "=", "wm8524audio" },
- },
- {
- -- rcarsound
- { "node.name", "matches", "alsa_input.*" },
- { "api.alsa.card.id", "=", "rcarsound" },
- },
- },
- apply_properties = {
- ["priority.driver"] = 2100,
- ["priority.session"] = 2100,
- }
- },
-}
-
-function alsa_monitor.enable()
- load_monitor("alsa", {
- properties = alsa_monitor.properties,
- rules = alsa_monitor.rules,
- })
-end
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-v4l2-monitor.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-v4l2-monitor.lua
deleted file mode 100644
index a4eb58ac8..000000000
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-v4l2-monitor.lua
+++ /dev/null
@@ -1,48 +0,0 @@
--- V4L2 monitor config file --
-
-v4l2_monitor = {}
-v4l2_monitor.properties = {}
-
-v4l2_monitor.rules = {
- -- An array of matches/actions to evaluate.
- {
- -- Rules for matching a device or node. It is an array of
- -- properties that all need to match the regexp. If any of the
- -- matches work, the actions are executed for the object.
- matches = {
- {
- -- This matches all cards.
- { "device.name", "matches", "v4l2_device.*" },
- },
- },
- -- Apply properties on the matched object.
- apply_properties = {
- -- ["device.nick"] = "My Device",
- },
- },
- {
- matches = {
- {
- -- Matches all sources.
- { "node.name", "matches", "v4l2_input.*" },
- },
- {
- -- Matches all sinks.
- { "node.name", "matches", "v4l2_output.*" },
- },
- },
- apply_properties = {
- --["node.nick"] = "My Node",
- --["priority.driver"] = 100,
- --["priority.session"] = 100,
- --["node.pause-on-idle"] = false,
- },
- },
-}
-
-function v4l2_monitor.enable()
- load_monitor("v4l2", {
- properties = v4l2_monitor.properties,
- rules = v4l2_monitor.rules,
- })
-end
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/40-device-defaults.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/40-device-defaults.lua
deleted file mode 100644
index e0d332422..000000000
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/40-device-defaults.lua
+++ /dev/null
@@ -1,26 +0,0 @@
-device_defaults = {}
-
-device_defaults.properties = {
- -- store preferences to the file system and restore them at startup;
- -- when set to false, default nodes and routes are selected based on
- -- their priorities and any runtime changes do not persist after restart
- ["use-persistent-storage"] = false,
-}
-
-function device_defaults.enable()
- -- Selects appropriate default nodes and enables saving and restoring them
- load_module("default-nodes", device_defaults.properties)
-
- -- Selects appropriate default routes ("ports" in pulseaudio terminology)
- -- and enables saving and restoring them together with
- -- their properties (per-route/port volume levels, channel maps, etc)
- load_script("policy-device-routes.lua", device_defaults.properties)
-
- if device_defaults.properties["use-persistent-storage"] then
- -- Enables functionality to save and restore default device profiles
- load_module("default-profile")
-
- -- Save and restore stream-specific properties
- load_script("restore-stream.lua")
- end
-end
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/90-enable-all.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/90-enable-all.lua
deleted file mode 100644
index ecb7da476..000000000
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/90-enable-all.lua
+++ /dev/null
@@ -1,20 +0,0 @@
--- Provide the "default" pw_metadata, which stores
--- dynamic properties of pipewire objects in RAM
-load_module("metadata")
-
--- Load devices
-alsa_monitor.enable()
-v4l2_monitor.enable()
-
--- Track/store/restore user choices about devices
-device_defaults.enable()
-
--- Automatically suspends idle nodes after 3 seconds
-load_script("suspend-node.lua")
-
--- Automatically sets device profiles to 'On'
-load_script("policy-device-profile.lua")
-
--- Mute ALSA sinks when requested by pipewire-ic-ipc
-load_module("mixer-api")
-load_script("alsa-suspend.lua")
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/wireplumber.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/wireplumber.conf
deleted file mode 100644
index 46ad11302..000000000
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/wireplumber.conf
+++ /dev/null
@@ -1,115 +0,0 @@
-# WirePlumber daemon context configuration #
-
-context.properties = {
- ## Properties to configure the PipeWire context and some modules
-
- # 1=error/critical/warning, 2=message, 3=info, 4=debug, 5=trace
- log.level = 2
-
- wireplumber.script-engine = lua-scripting
-}
-
-context.spa-libs = {
- #<factory-name regex> = <library-name>
- #
- # Used to find spa factory names. It maps an spa factory name
- # regular expression to a library name that should contain
- # that factory.
- #
- api.alsa.* = alsa/libspa-alsa
- api.bluez5.* = bluez5/libspa-bluez5
- api.v4l2.* = v4l2/libspa-v4l2
- api.libcamera.* = libcamera/libspa-libcamera
- audio.convert.* = audioconvert/libspa-audioconvert
- support.* = support/libspa-support
-}
-
-context.modules = [
- #{ name = <module-name>
- # [ args = { <key> = <value> ... } ]
- # [ flags = [ [ ifexists ] [ nofail ] ]
- #}
- #
- # PipeWire modules to load.
- # If ifexists is given, the module is ignored when it is not found.
- # If nofail is given, module initialization failures are ignored.
- #
-
- # The native communication protocol.
- { name = libpipewire-module-protocol-native }
-
- # Allows creating nodes that run in the context of the
- # client. Is used by all clients that want to provide
- # data to PipeWire.
- { name = libpipewire-module-client-node }
-
- # Allows creating devices that run in the context of the
- # client. Is used by the session manager.
- { name = libpipewire-module-client-device }
-
- # Makes a factory for wrapping nodes in an adapter with a
- # converter and resampler.
- { name = libpipewire-module-adapter }
-
- # Allows applications to create metadata objects. It creates
- # a factory for Metadata objects.
- { name = libpipewire-module-metadata }
-
- # Provides factories to make session manager objects.
- { name = libpipewire-module-session-manager }
-
- { name = libpipewire-module-filter-chain
- args = {
- node.description = "Equalizer Sink"
- media.name = "Equalizer Sink"
- filter.graph = {
- nodes = [
- {
- type = builtin
- name = bass
- label = bq_lowshelf
- # the cut off freq of the bass filter can be adjusted here.
- control = { "Freq" = 250.0 "Q" = 1.0 "Gain" = 0.0 }
- }
- {
- type = builtin
- name = treble
- label = bq_peaking
- # the cut off freq of the treble filter can be adjusted here.
- control = { "Freq" = 6000.0 "Q" = 1.0 "Gain" = 0.0 }
- }
- ]
- links = [
- { output = "bass:Out" input = "treble:In" }
- ]
- }
- audio.channels = 2
- audio.position = [ FL FR ]
- capture.props = {
- node.name = "eq-sink"
- media.class = Audio/Sink
- # select the endpoint to which the node is attached
- target.endpoint = "endpoint.multimedia"
- node.passive = true
- }
- playback.props = {
- node.name = "eq-output-stream"
- node.passive = true
- }
- }
- }
-]
-
-wireplumber.components = [
- #{ name = <component-name>, type = <component-type> }
- #
- # WirePlumber components to load
- #
-
- # The lua scripting engine
- { name = libwireplumber-module-lua-scripting, type = module }
-
- # The lua configuration file(s)
- # Other components are loaded from there
- { name = host.lua, type = config/lua }
-]