wireplumber: update to master 13/23413/3
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.com>
Tue, 17 Dec 2019 17:32:34 +0000 (19:32 +0200)
committerGeorge Kiagiadakis <george.kiagiadakis@collabora.com>
Wed, 18 Dec 2019 17:13:47 +0000 (19:13 +0200)
* Fixes policy issues
* Implements a standard way of configuring the default device: the device
  that matches from the *.endpoint files that has the highest priority and
  is available on the system becomes the default. Afterwards, at runtime,
  the default can be changed with wireplumber-cli. Clients now also link
  to the default device, so it is possible to change devices at runtime
  without reconfiguring wireplumber.

George Kiagiadakis (9):
      session: select the default endpoint based on endpoint priority
      config: refactor wireplumber's configuration
      config: fix typo in config files
      module-session: debug default endpoint changes
      policy: track the exported session instead of the proxy
      config-policy: debug rescans
      cli: fail gracefully if connection to pipewire fails
      lib: debug loading of config files + endpoint priorities
      parser-endpoint: fix typo; initialize endpoint priority instead of reseting the match one

Julian Bouzas (13):
      config-policy: sort endpoints by creation time when finding target
      parser-endpoint-link: higher number means higher priority
      softdsp-endpoint: don't rename the endpoint on creation
      modules: remove alsa-udev and audio-client modules
      modules: add config endpoint module
      config-policy: remove parsing of streams file
      parser-endpoint-link: don't parse unused state value
      base-endpoint: add _get_priority API
      modules: only allow 'sink' and 'source' strings when parsing direction in config files
      base-endpoint: add _get_global_id API
      policy: add _get_session API for the policy manager
      config-policy: use the default session endpoint if target-endpoint is not defined
      config-policy: only handle the highest priority endpoint for a target, and the ones with keep=true

Bug-AGL: SPEC-2837

Change-Id: I87b3e8b9e159dfc472aa534e40e088ae758ad20c
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
28 files changed:
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-sink.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-source.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-input-audio.endpoint-link [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-output-audio.endpoint-link [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-input-audio.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-output-audio.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-sink.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-source.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-source.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-sink.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-source.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rpi3-audio-sink.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-fiberdyne-amp.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-microchip-mic.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-sink.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-source.endpoint [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link.in [deleted file]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link.in [deleted file]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/capture.streams [new file with mode: 0644]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default-input-audio.endpoint-link.in [deleted file]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default-output-audio.endpoint-link.in [deleted file]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/playback.streams [moved from meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default.streams with 100% similarity]
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/wireplumber.conf
meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl_git.bb
meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb

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 (file)
index 0000000..4bc4357
--- /dev/null
@@ -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 (file)
index 0000000..7657f6f
--- /dev/null
@@ -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 (file)
index 0000000..4b70dc8
--- /dev/null
@@ -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 (file)
index 0000000..5d6428f
--- /dev/null
@@ -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 (file)
index 0000000..2993f3e
--- /dev/null
@@ -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 (file)
index 0000000..1cf82ea
--- /dev/null
@@ -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 (file)
index 0000000..85a9b51
--- /dev/null
@@ -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 (file)
index 0000000..c77701c
--- /dev/null
@@ -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 (file)
index 0000000..afc4303
--- /dev/null
@@ -0,0 +1,12 @@
+[match-node]
+priority = 30
+properties = [
+  { name = "media.class", value = "Audio/Sink" },
+  { name = "api.alsa.card.id", value = "ak4613" },
+]
+
+[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 (file)
index 0000000..ad56805
--- /dev/null
@@ -0,0 +1,12 @@
+[match-node]
+priority = 30
+properties = [
+  { name = "media.class", value = "Audio/Source" },
+  { name = "api.alsa.card.id", value = "ak4613" },
+]
+
+[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 (file)
index 0000000..becd21e
--- /dev/null
@@ -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 (file)
index 0000000..72ef467
--- /dev/null
@@ -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-rpi3-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rpi3-audio-sink.endpoint
new file mode 100644 (file)
index 0000000..74e4d62
--- /dev/null
@@ -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 (file)
index 0000000..807ad46
--- /dev/null
@@ -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 (file)
index 0000000..bbfcd43
--- /dev/null
@@ -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 (file)
index 0000000..62e2790
--- /dev/null
@@ -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 (file)
index 0000000..505ae8d
--- /dev/null
@@ -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 (file)
index 0000000..3de06dd
--- /dev/null
@@ -0,0 +1,8 @@
+[match-endpoint]
+priority = 75
+direction = "sink"
+name = "bluealsa*"
+media_class = "Stream/Input/Audio"
+
+[endpoint-link]
+keep = true
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link.in b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link.in
deleted file mode 100644 (file)
index 818ac6b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-[match-endpoint]
-priority = 75
-direction = "input"
-name = "bluealsa*"
-media_class = "Stream/Input/Audio"
-
-[target-endpoint]
-media_class = "Audio/Source"
-streams = "default.streams"
-stream = "Multimedia"
-properties = [
-  CAPTURE_DEV_PROPERTIES
-]
-
-[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 (file)
index 0000000..5e1b29d
--- /dev/null
@@ -0,0 +1,8 @@
+[match-endpoint]
+priority = 75
+direction = "source"
+name = "bluealsa*"
+media_class = "Stream/Output/Audio"
+
+[endpoint-link]
+keep = true
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link.in b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link.in
deleted file mode 100644 (file)
index 1ba7afe..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-[match-endpoint]
-priority = 75
-direction = "output"
-name = "bluealsa*"
-media_class = "Stream/Output/Audio"
-
-[target-endpoint]
-media_class = "Audio/Sink"
-streams = "default.streams"
-stream = "Multimedia"
-properties = [
-  PLAYBACK_DEV_PROPERTIES
-]
-
-[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 (file)
index 0000000..e7ce36f
--- /dev/null
@@ -0,0 +1,3 @@
+[[streams]]
+name = "Default"
+priority = 25
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default-input-audio.endpoint-link.in b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default-input-audio.endpoint-link.in
deleted file mode 100644 (file)
index adb142c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-[match-endpoint]
-priority = 50
-direction = "input"
-media_class = "Stream/Input/Audio"
-
-[target-endpoint]
-media_class = "Audio/Source"
-streams = "default.streams"
-properties = [
-  CAPTURE_DEV_PROPERTIES
-]
-
-[endpoint-link]
-keep = false
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default-output-audio.endpoint-link.in b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default-output-audio.endpoint-link.in
deleted file mode 100644 (file)
index 16af915..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-[match-endpoint]
-priority = 50
-direction = "output"
-media_class = "Stream/Output/Audio"
-
-[target-endpoint]
-media_class = "Audio/Sink"
-streams = "default.streams"
-properties = [
-  PLAYBACK_DEV_PROPERTIES
-]
-
-[endpoint-link]
-keep = false
index 4bbe971..e0975a8 100644 (file)
@@ -23,19 +23,8 @@ load-module C libwireplumber-module-monitor {
   "flags": <["use-adapter", "activate-devices"]>
 }
 
-# Monitors the ALSA devices that are discovered via udev
-# and creates softdsp-endopints for each one of them
-# The streams specified here are the ones that will be available for linking
-# clients. Currently, they are matched against the client's role string.
-load-module C libwireplumber-module-pw-alsa-udev {
-  "streams": <["Multimedia", "Speech-Low", "Custom-Low",
-                "Navigation", "Speech-High", "Custom-High",
-                "Communication", "Emergency"]>
-}
-
-# Monitors the Audio clients that are discovered via pipewire
-# and creates simple-endpoints for each one of them
-load-module C libwireplumber-module-pw-audio-client
+# 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
index f3fbcb4..cab61e4 100644 (file)
@@ -9,11 +9,27 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
 
 SRC_URI = "\
     file://wireplumber.conf \
-    file://default.streams \
-    file://default-output-audio.endpoint-link.in \
-    file://default-input-audio.endpoint-link.in \
-    file://bluealsa-output-audio.endpoint-link.in \
-    file://bluealsa-input-audio.endpoint-link.in \
+    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-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}"
@@ -21,55 +37,12 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
 do_configure[noexec] = "1"
 do_compile[noexec] = "1"
 
-#
-# Device preferences are configured by listing a subset of the properties
-# that the device node has on pipewire.
-#
-# Every property match needs to have a property name and an expected value.
-# The values support shell-like pattern matching using the * and ? characters.
-# The syntax adheres to the rules of TOML v0.5 table array.
-#
-# To list all device node properties, you can run (on the target):
-#  export XDG_RUNTIME_DIR=/run/user/1001
-#  wireplumber-cli device-node-props
-#
-# Another way to figure out some of these properties is by parsing the
-# aplay/arecord output. For example, this line is interpreted as follows:
-#
-#  card 0: PCH [HDA Intel PCH], device 2: ALC3246 [ALC3246 Analog]
-#
-# api.alsa.path = "hw:0,2"
-# api.alsa.card = "0"
-# api.alsa.card.id = "PCH"
-# api.alsa.card.name = "HDA Intel PCH"
-# api.alsa.pcm.device = "2"
-# api.alsa.pcm.id = "ALC3246"
-# api.alsa.pcm.name = "ALC3246 Analog"
-#
-DEV_PLAYBACK = '{ name = \"api.alsa.path\", value = \"hw:0,0\" }'
-DEV_CAPTURE = '{ name = \"api.alsa.path\", value = \"hw:0,0\" }'
-
-DEV_PLAYBACK_dra7xx-evm = '{ name = \"api.alsa.card.name\", value = \"DRA7xx-EVM\" }'
-DEV_CAPTURE_dra7xx-evm = '{ name = \"api.alsa.card.name\", value = \"DRA7xx-EVM\" }'
-
-DEV_PLAYBACK_m3ulcb = '{ name = \"api.alsa.card.name\", value = \"ak4613\" }'
-DEV_CAPTURE_m3ulcb = '{ name = \"api.alsa.card.name\", value = \"ak4613\" }'
-
-DEV_PLAYBACK_h3ulcb = '{ name = \"api.alsa.card.name\", value = \"ak4613\" }'
-DEV_CAPTURE_h3ulcb = '{ name = \"api.alsa.card.name\", value = \"ak4613\" }'
-
-DEV_PLAYBACK_raspberrypi3 = '{ name = \"api.alsa.pcm.name\", value = \"bcm2835 ALSA\" }, { name = \"api.alsa.card.name\", value = \"bcm2835 ALSA\" }'
-DEV_CAPTURE_raspberrypi3 = '{ name = \"api.alsa.path\", value = \"hw:0,0\" }'
-
 do_install_append() {
-    sed -e "s/PLAYBACK_DEV_PROPERTIES/${DEV_PLAYBACK}/" -e "s/CAPTURE_DEV_PROPERTIES/${DEV_CAPTURE}/" ${WORKDIR}/default-output-audio.endpoint-link.in > ${WORKDIR}/default-output-audio.endpoint-link
-    sed -e "s/PLAYBACK_DEV_PROPERTIES/${DEV_PLAYBACK}/" -e "s/CAPTURE_DEV_PROPERTIES/${DEV_CAPTURE}/" ${WORKDIR}/default-input-audio.endpoint-link.in > ${WORKDIR}/default-input-audio.endpoint-link
-    sed -e "s/PLAYBACK_DEV_PROPERTIES/${DEV_PLAYBACK}/" -e "s/CAPTURE_DEV_PROPERTIES/${DEV_CAPTURE}/" ${WORKDIR}/bluealsa-output-audio.endpoint-link.in > ${WORKDIR}/bluealsa-output-audio.endpoint-link
-    sed -e "s/PLAYBACK_DEV_PROPERTIES/${DEV_PLAYBACK}/" -e "s/CAPTURE_DEV_PROPERTIES/${DEV_CAPTURE}/" ${WORKDIR}/bluealsa-input-audio.endpoint-link.in > ${WORKDIR}/bluealsa-input-audio.endpoint-link
     install -d ${D}/${sysconfdir}/wireplumber/
     install -m 644 ${WORKDIR}/wireplumber.conf ${D}/${sysconfdir}/wireplumber/wireplumber.conf
-    install -m 644 ${WORKDIR}/default.streams ${D}/${sysconfdir}/wireplumber/default.streams
+    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} += "\
index 6e7afea..7b1cbef 100644 (file)
@@ -16,7 +16,7 @@ SRC_URI = "\
     https://raw.githubusercontent.com/skystrife/cpptoml/fededad7169e538ca47e11a9ee9251bc361a9a65/include/cpptoml.h \
     file://0001-Build-cpptoml-without-a-cmake-subproject.patch \
 "
-SRCREV = "cda1a8c49889715c9e4275d2329691e7046519e4"
+SRCREV = "152611dd3ffb60ab026edd52c0a6a4aa44207016"
 SRC_URI[sha256sum] = "3e4e1d315fa1229921c7a4297ead08775b5bb1220c18a7eac62db9ca7e79df0d"
 
 PV = "0.1.90+git${SRCPV}"