1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
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://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 \
"
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-link ${D}/${sysconfdir}/wireplumber/
}
FILES_${PN} += "\
${sysconfdir}/wireplumber/* \
"
CONFFILES_${PN} += "\
${sysconfdir}/wireplumber/* \
"
RPROVIDES_${PN} += "virtual/wireplumber-config"
|