summaryrefslogtreecommitdiffstats
path: root/meta-pipewire/recipes-multimedia/wireplumber
diff options
context:
space:
mode:
Diffstat (limited to 'meta-pipewire/recipes-multimedia/wireplumber')
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-sink.endpoint10
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-source.endpoint10
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-input-audio.endpoint-link7
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-output-audio.endpoint-link7
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-input-audio.endpoint9
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-output-audio.endpoint9
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-sink.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-source.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-source.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-sink.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-source.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-source.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rpi3-audio-sink.endpoint13
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-fiberdyne-amp.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-microchip-mic.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-sink.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-source.endpoint12
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link11
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link11
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/capture.streams3
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/playback.streams31
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/wireplumber.conf30
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl_git.bb57
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Build-cpptoml-without-a-cmake-subproject.patch28
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb46
27 files changed, 426 insertions, 0 deletions
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-sink.endpoint
new file mode 100644
index 000000000..4bc435742
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-sink.endpoint
@@ -0,0 +1,10 @@
+[match-node]
+priority = 0
+properties = [
+ { name = "media.class", value = "Audio/Sink" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "sink"
+streams = "playback.streams"
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-source.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-source.endpoint
new file mode 100644
index 000000000..7657f6f40
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-source.endpoint
@@ -0,0 +1,10 @@
+[match-node]
+priority = 0
+properties = [
+ { name = "media.class", value = "Audio/Source" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "source"
+streams = "capture.streams"
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-input-audio.endpoint-link b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-input-audio.endpoint-link
new file mode 100644
index 000000000..4b70dc89f
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-input-audio.endpoint-link
@@ -0,0 +1,7 @@
+[match-endpoint]
+priority = 0
+direction = "sink"
+media_class = "Stream/Input/Audio"
+
+[endpoint-link]
+keep = false
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-output-audio.endpoint-link b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-output-audio.endpoint-link
new file mode 100644
index 000000000..5d6428f94
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-output-audio.endpoint-link
@@ -0,0 +1,7 @@
+[match-endpoint]
+priority = 0
+direction = "source"
+media_class = "Stream/Output/Audio"
+
+[endpoint-link]
+keep = false
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-input-audio.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-input-audio.endpoint
new file mode 100644
index 000000000..2993f3e44
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-input-audio.endpoint
@@ -0,0 +1,9 @@
+[match-node]
+priority = 0
+properties = [
+ { name = "media.class", value = "Stream/Input/Audio" },
+]
+
+[endpoint]
+direction = "sink"
+type = "pw-audio-softdsp-endpoint"
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-output-audio.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-output-audio.endpoint
new file mode 100644
index 000000000..1cf82ea02
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-output-audio.endpoint
@@ -0,0 +1,9 @@
+[match-node]
+priority = 0
+properties = [
+ { name = "media.class", value = "Stream/Output/Audio" },
+]
+
+[endpoint]
+direction = "source"
+type = "pw-audio-softdsp-endpoint"
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-sink.endpoint
new file mode 100644
index 000000000..85a9b5117
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-sink.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 1
+properties = [
+ { name = "media.class", value = "Audio/Sink" },
+ { name = "api.alsa.path", value = "hw:0,0" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "sink"
+streams = "playback.streams"
+priority = 1
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-source.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-source.endpoint
new file mode 100644
index 000000000..c77701c0d
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-source.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 1
+properties = [
+ { name = "media.class", value = "Audio/Source" },
+ { name = "api.alsa.path", value = "hw:0,0" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "source"
+streams = "capture.streams"
+priority = 1
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint
new file mode 100644
index 000000000..53f9d0df7
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 30
+properties = [
+ { name = "media.class", value = "Audio/Sink" },
+ { name = "api.alsa.card.id", value = "rcarsound" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "sink"
+streams = "playback.streams"
+priority = 30
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-source.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-source.endpoint
new file mode 100644
index 000000000..d72d7e31c
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-source.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 30
+properties = [
+ { name = "media.class", value = "Audio/Source" },
+ { name = "api.alsa.card.id", value = "rcarsound" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "source"
+streams = "capture.streams"
+priority = 30
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-sink.endpoint
new file mode 100644
index 000000000..becd21e2e
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-sink.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 30
+properties = [
+ { name = "media.class", value = "Audio/Sink" },
+ { name = "api.alsa.card.id", value = "DRA7xx-EVM" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "sink"
+streams = "playback.streams"
+priority = 30
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-source.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-source.endpoint
new file mode 100644
index 000000000..72ef46770
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-source.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 30
+properties = [
+ { name = "media.class", value = "Audio/Source" },
+ { name = "api.alsa.card.id", value = "DRA7xx-EVM" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "source"
+streams = "capture.streams"
+priority = 30
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint
new file mode 100644
index 000000000..53f9d0df7
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-sink.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 30
+properties = [
+ { name = "media.class", value = "Audio/Sink" },
+ { name = "api.alsa.card.id", value = "rcarsound" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "sink"
+streams = "playback.streams"
+priority = 30
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-source.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-source.endpoint
new file mode 100644
index 000000000..d72d7e31c
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rcarsound-audio-source.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 30
+properties = [
+ { name = "media.class", value = "Audio/Source" },
+ { name = "api.alsa.card.id", value = "rcarsound" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "source"
+streams = "capture.streams"
+priority = 30
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rpi3-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rpi3-audio-sink.endpoint
new file mode 100644
index 000000000..74e4d62e6
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rpi3-audio-sink.endpoint
@@ -0,0 +1,13 @@
+[match-node]
+priority = 30
+properties = [
+ { name = "media.class", value = "Audio/Sink" },
+ { name = "api.alsa.card.name", value = "bcm2835 ALSA" },
+ { name = "api.alsa.pcm.name", value = "bcm2835 ALSA" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "sink"
+streams = "playback.streams"
+priority = 30
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-fiberdyne-amp.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-fiberdyne-amp.endpoint
new file mode 100644
index 000000000..807ad4688
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-fiberdyne-amp.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 40
+properties = [
+ { name = "media.class", value = "Audio/Sink" },
+ { name = "api.alsa.card.id", value = "ep016ch" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "sink"
+streams = "playback.streams"
+priority = 40
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-microchip-mic.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-microchip-mic.endpoint
new file mode 100644
index 000000000..bbfcd43a5
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-microchip-mic.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 40
+properties = [
+ { name = "media.class", value = "Audio/Source" },
+ { name = "api.alsa.card.id", value = "ep811ch" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "source"
+streams = "capture.streams"
+priority = 40
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-sink.endpoint
new file mode 100644
index 000000000..62e279090
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-sink.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 70
+properties = [
+ { name = "media.class", value = "Audio/Sink" },
+ { name = "api.alsa.card.driver", value = "USB-Audio" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "sink"
+streams = "playback.streams"
+priority = 70
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-source.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-source.endpoint
new file mode 100644
index 000000000..505ae8d81
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-source.endpoint
@@ -0,0 +1,12 @@
+[match-node]
+priority = 70
+properties = [
+ { name = "media.class", value = "Audio/Source" },
+ { name = "api.alsa.card.driver", value = "USB-Audio" },
+]
+
+[endpoint]
+type = "pw-audio-softdsp-endpoint"
+direction = "source"
+streams = "capture.streams"
+priority = 70
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link
new file mode 100644
index 000000000..b5753a102
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link
@@ -0,0 +1,11 @@
+[match-endpoint]
+priority = 75
+direction = "sink"
+name = "bluealsa*"
+media_class = "Stream/Input/Audio"
+properties = [
+ { name = "bluealsa.profile", value = "sco" },
+]
+
+[endpoint-link]
+keep = true
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link
new file mode 100644
index 000000000..d1b3cec07
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link
@@ -0,0 +1,11 @@
+[match-endpoint]
+priority = 75
+direction = "source"
+name = "bluealsa*"
+media_class = "Stream/Output/Audio"
+properties = [
+ { name = "bluealsa.profile", value = "sco" },
+]
+
+[endpoint-link]
+keep = true
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/capture.streams b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/capture.streams
new file mode 100644
index 000000000..e7ce36f6a
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/capture.streams
@@ -0,0 +1,3 @@
+[[streams]]
+name = "Default"
+priority = 25
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/playback.streams b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/playback.streams
new file mode 100644
index 000000000..c645416ad
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/playback.streams
@@ -0,0 +1,31 @@
+[[streams]]
+name = "Multimedia"
+priority = 25
+
+[[streams]]
+name = "Speech-Low"
+priority = 30
+
+[[streams]]
+name = "Custom-Low"
+priority = 35
+
+[[streams]]
+name = "Navigation"
+priority = 50
+
+[[streams]]
+name = "Speech-High"
+priority = 60
+
+[[streams]]
+name = "Custom-High"
+priority = 65
+
+[[streams]]
+name = "Communication"
+priority = 75
+
+[[streams]]
+name = "Emergency"
+priority = 99
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/wireplumber.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/wireplumber.conf
new file mode 100644
index 000000000..e0975a81f
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/wireplumber.conf
@@ -0,0 +1,30 @@
+# Register well-known SPA factories
+# These do not need to exist on the system to be registered
+add-spa-lib audio.convert* audioconvert/libspa-audioconvert
+add-spa-lib api.alsa.* alsa/libspa-alsa
+add-spa-lib api.v4l2.* v4l2/libspa-v4l2
+add-spa-lib api.bluez5.* bluez5/libspa-bluez5
+
+# the client-device pipewire module is needed for libwireplumber-module-monitor
+load-pipewire-module libpipewire-module-client-device
+
+# Session object implementation
+# This keeps track of the default input & output device endpoint
+load-module C libwireplumber-module-session
+
+# Basic pipewire integration - do not remove
+load-module C libwireplumber-module-pipewire
+
+# Grants access to security confined clients
+load-module C libwireplumber-module-client-permissions
+
+load-module C libwireplumber-module-monitor {
+ "factory": <"api.alsa.enum.udev">,
+ "flags": <["use-adapter", "activate-devices"]>
+}
+
+# Implements endpoint creation based on TOML configuration files
+load-module C libwireplumber-module-config-endpoint
+
+# Implements linking clients to devices based on TOML configuration files
+load-module C libwireplumber-module-config-policy
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl_git.bb b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl_git.bb
new file mode 100644
index 000000000..7df90907a
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl_git.bb
@@ -0,0 +1,57 @@
+SUMMARY = "AGL configuration file for wireplumber"
+HOMEPAGE = "https://gitlab.freedesktop.org/gkiagia/wireplumber"
+BUGTRACKER = "https://jira.automotivelinux.org"
+AUTHOR = "George Kiagiadakis <george.kiagiadakis@collabora.com>"
+SECTION = "multimedia"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+SRC_URI = "\
+ file://wireplumber.conf \
+ file://00-audio-sink.endpoint \
+ file://00-audio-source.endpoint \
+ file://00-default-input-audio.endpoint-link \
+ file://00-default-output-audio.endpoint-link \
+ file://00-stream-input-audio.endpoint \
+ file://00-stream-output-audio.endpoint \
+ file://01-hw00-audio-sink.endpoint \
+ file://01-hw00-audio-source.endpoint \
+ file://30-ak4613-audio-sink.endpoint \
+ file://30-ak4613-audio-source.endpoint \
+ file://30-rcarsound-audio-sink.endpoint \
+ file://30-rcarsound-audio-source.endpoint \
+ file://30-dra7xx-audio-sink.endpoint \
+ file://30-dra7xx-audio-source.endpoint \
+ file://30-rpi3-audio-sink.endpoint \
+ file://40-fiberdyne-amp.endpoint \
+ file://40-microchip-mic.endpoint \
+ file://70-usb-audio-sink.endpoint \
+ file://70-usb-audio-source.endpoint \
+ file://bluealsa-input-audio.endpoint-link \
+ file://bluealsa-output-audio.endpoint-link \
+ file://capture.streams \
+ file://playback.streams \
+"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install_append() {
+ install -d ${D}/${sysconfdir}/wireplumber/
+ install -m 644 ${WORKDIR}/wireplumber.conf ${D}/${sysconfdir}/wireplumber/wireplumber.conf
+ install -m 644 ${WORKDIR}/*.endpoint ${D}/${sysconfdir}/wireplumber/
+ install -m 644 ${WORKDIR}/*.endpoint-link ${D}/${sysconfdir}/wireplumber/
+ install -m 644 ${WORKDIR}/*.streams ${D}/${sysconfdir}/wireplumber/
+}
+
+FILES_${PN} += "\
+ ${sysconfdir}/wireplumber/* \
+"
+CONFFILES_${PN} += "\
+ ${sysconfdir}/wireplumber/* \
+"
+
+RPROVIDES_${PN} += "virtual/wireplumber-config"
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Build-cpptoml-without-a-cmake-subproject.patch b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Build-cpptoml-without-a-cmake-subproject.patch
new file mode 100644
index 000000000..726b35e74
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Build-cpptoml-without-a-cmake-subproject.patch
@@ -0,0 +1,28 @@
+From e5efe3d4f0abc28251dac245ce0cf4124e7e2a12 Mon Sep 17 00:00:00 2001
+From: George Kiagiadakis <george.kiagiadakis@collabora.com>
+Date: Thu, 5 Dec 2019 17:59:44 +0200
+Subject: [PATCH] Build cpptoml without a cmake subproject
+
+Upstream-Status: Inappropriate
+---
+ meson.build | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 5a75d96..0b21377 100644
+--- a/meson.build
++++ b/meson.build
+@@ -24,9 +24,7 @@ else
+ wireplumber_config_dir = join_paths(get_option('prefix'), get_option('sysconfdir'), 'wireplumber')
+ endif
+
+-cmake = import('cmake')
+-cpptoml = cmake.subproject('cpptoml')
+-cpptoml_dep = cpptoml.dependency('cpptoml')
++cpptoml_dep = declare_dependency(include_directories: include_directories('subprojects/cpptoml'))
+
+ gobject_dep = dependency('gobject-2.0')
+ gmodule_dep = dependency('gmodule-2.0')
+--
+2.24.0
+
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb
new file mode 100644
index 000000000..0e810b375
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Session / Policy Manager for PipeWire"
+HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/wireplumber"
+BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/wireplumber/issues"
+AUTHOR = "George Kiagiadakis <george.kiagiadakis@collabora.com>"
+SECTION = "multimedia"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;beginline=3;md5=e8ad01a5182f2c1b3a2640e9ea268264"
+
+inherit meson pkgconfig gobject-introspection
+
+DEPENDS = "glib-2.0 glib-2.0-native pipewire"
+
+SRC_URI = "\
+ git://gitlab.freedesktop.org/pipewire/wireplumber.git;protocol=https;branch=master \
+ https://raw.githubusercontent.com/skystrife/cpptoml/fededad7169e538ca47e11a9ee9251bc361a9a65/include/cpptoml.h \
+ file://0001-Build-cpptoml-without-a-cmake-subproject.patch \
+"
+SRCREV = "0e98e4150b73d0bed9b72bf8d3eba49671962991"
+SRC_URI[sha256sum] = "3e4e1d315fa1229921c7a4297ead08775b5bb1220c18a7eac62db9ca7e79df0d"
+
+PV = "0.1.90+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+do_configure_prepend() {
+ mkdir -p ${WORKDIR}/git/subprojects/cpptoml/include
+ cp -f ${WORKDIR}/cpptoml.h ${WORKDIR}/git/subprojects/cpptoml/include/
+}
+
+PACKAGES =+ "${PN}-config"
+
+FILES_${PN} += "\
+ ${libdir}/wireplumber-*/* \
+"
+RPROVIDES_${PN} += "virtual/pipewire-sessionmanager"
+RDEPENDS_${PN} += "virtual/wireplumber-config"
+
+
+FILES_${PN}-config += "\
+ ${sysconfdir}/wireplumber/* \
+"
+CONFFILES_${PN}-config += "\
+ ${sysconfdir}/wireplumber/* \
+"
+
+RPROVIDES_${PN}-config += "virtual/wireplumber-config"