summaryrefslogtreecommitdiffstats
path: root/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/50-AGL-equalizer.conf
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-policy-config-agl/50-AGL-equalizer.conf
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-policy-config-agl/50-AGL-equalizer.conf')
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/50-AGL-equalizer.conf75
1 files changed, 75 insertions, 0 deletions
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/50-AGL-equalizer.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/50-AGL-equalizer.conf
new file mode 100644
index 000000000..061eae96c
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/50-AGL-equalizer.conf
@@ -0,0 +1,75 @@
+wireplumber.profiles = {
+ policy = {
+ agl.filter.equalizer-sink = required
+ }
+}
+
+wireplumber.components = [
+ {
+ name = libpipewire-module-filter-chain, type = pw-module
+ arguments = {
+ 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"
+
+ # this is a sink filter, so it will appear as a sink in wpctl/pactl/etc,
+ # it will target a sink and can be chained with other sink smart filters
+ media.class = Audio/Sink
+
+ # treat this as a smart filter
+ filter.smart = true
+
+ # the unique name of the filter
+ filter.smart.name = "agl.filter.equalizer-sink"
+
+ ## set this to always link the filter to a particular sink
+ ## or leave it unset in order to follow the default sink
+ #filter.smart.target = { node.name = "alsa_output.pci-0000_00_01.0.analog-stereo" }
+
+ ## here you can specify filter dependencies, using their names
+ ## (filter.smart.name) if you set up many of them to be linked in a chain
+ #filter.smart.before = []
+ #filter.smart.after = []
+ }
+ playback.props = {
+ node.name = "eq-output-stream"
+
+ # This must be set to ensure that the real audio sink is suspended
+ # when there is no active client stream linked
+ node.passive = true
+
+ # Set this to avoid linking the filter to role-based sinks when
+ # role-based sinks are defined and node.stream.default-media-role is
+ # configured in the settings
+ media.role = "DSP"
+ }
+ }
+ provides = agl.filter.equalizer-sink
+ requires = [ pw.node-factory.adapter ]
+ after = [ support.standard-event-source ]
+ }
+]