From 342505cd7d3356df22b485464fe089f39f619264 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Tue, 17 Dec 2019 19:32:34 +0200 Subject: wireplumber: update to master * 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 --- .../00-audio-sink.endpoint | 10 +++ .../00-audio-source.endpoint | 10 +++ .../00-default-input-audio.endpoint-link | 7 +++ .../00-default-output-audio.endpoint-link | 7 +++ .../00-stream-input-audio.endpoint | 9 +++ .../00-stream-output-audio.endpoint | 9 +++ .../01-hw00-audio-sink.endpoint | 12 ++++ .../01-hw00-audio-source.endpoint | 12 ++++ .../30-ak4613-audio-sink.endpoint | 12 ++++ .../30-ak4613-audio-source.endpoint | 12 ++++ .../30-dra7xx-audio-sink.endpoint | 12 ++++ .../30-dra7xx-audio-source.endpoint | 12 ++++ .../30-rpi3-audio-sink.endpoint | 13 ++++ .../40-fiberdyne-amp.endpoint | 12 ++++ .../40-microchip-mic.endpoint | 12 ++++ .../70-usb-audio-sink.endpoint | 12 ++++ .../70-usb-audio-source.endpoint | 12 ++++ .../bluealsa-input-audio.endpoint-link | 8 +++ .../bluealsa-input-audio.endpoint-link.in | 16 ----- .../bluealsa-output-audio.endpoint-link | 8 +++ .../bluealsa-output-audio.endpoint-link.in | 16 ----- .../wireplumber-board-config-agl/capture.streams | 3 + .../default-input-audio.endpoint-link.in | 14 ----- .../default-output-audio.endpoint-link.in | 14 ----- .../wireplumber-board-config-agl/default.streams | 31 --------- .../wireplumber-board-config-agl/playback.streams | 31 +++++++++ .../wireplumber-board-config-agl/wireplumber.conf | 15 +---- .../wireplumber-board-config-agl_git.bb | 73 +++++++--------------- .../wireplumber/wireplumber_git.bb | 2 +- 29 files changed, 261 insertions(+), 155 deletions(-) create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-sink.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-audio-source.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-input-audio.endpoint-link create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-default-output-audio.endpoint-link create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-input-audio.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/00-stream-output-audio.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-sink.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/01-hw00-audio-source.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-sink.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-ak4613-audio-source.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-sink.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-dra7xx-audio-source.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rpi3-audio-sink.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-fiberdyne-amp.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/40-microchip-mic.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-sink.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/70-usb-audio-source.endpoint create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link delete mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link.in create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link delete mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link.in create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/capture.streams delete mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default-input-audio.endpoint-link.in delete mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default-output-audio.endpoint-link.in delete mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default.streams create mode 100644 meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/playback.streams 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 00000000..4bc43574 --- /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 00000000..7657f6f4 --- /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 00000000..4b70dc89 --- /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 00000000..5d6428f9 --- /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 00000000..2993f3e4 --- /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 00000000..1cf82ea0 --- /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 00000000..85a9b511 --- /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 00000000..c77701c0 --- /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 00000000..afc4303e --- /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 = "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 index 00000000..ad568059 --- /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 = "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 index 00000000..becd21e2 --- /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 00000000..72ef4677 --- /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-rpi3-audio-sink.endpoint b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/30-rpi3-audio-sink.endpoint new file mode 100644 index 00000000..74e4d62e --- /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 00000000..807ad468 --- /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 00000000..bbfcd43a --- /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 00000000..62e27909 --- /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 00000000..505ae8d8 --- /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 00000000..3de06dd4 --- /dev/null +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link @@ -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 index 818ac6b4..00000000 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-input-audio.endpoint-link.in +++ /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 index 00000000..5e1b29dc --- /dev/null +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link @@ -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 index 1ba7afed..00000000 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/bluealsa-output-audio.endpoint-link.in +++ /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 index 00000000..e7ce36f6 --- /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/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 index adb142c1..00000000 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default-input-audio.endpoint-link.in +++ /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 index 16af9155..00000000 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default-output-audio.endpoint-link.in +++ /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 diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default.streams b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default.streams deleted file mode 100644 index c645416a..00000000 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/default.streams +++ /dev/null @@ -1,31 +0,0 @@ -[[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/playback.streams b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/playback.streams new file mode 100644 index 00000000..c645416a --- /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 index 4bbe971f..e0975a81 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/wireplumber.conf +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl/wireplumber.conf @@ -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 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 index f3fbcb42..cab61e49 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl_git.bb +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-board-config-agl_git.bb @@ -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} += "\ diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb index 6e7afeac..7b1cbef1 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb @@ -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}" -- cgit 1.2.3-korg