From 72ac5f60cf0ee94150471b17c35f4ea46c0dcffb Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Thu, 15 Jul 2021 16:38:49 +0300 Subject: meta-agl-lxc: integrate pipewire-ic-ipc and pull in agl-pipewire pipewire-ic-ipc offers a small unix socket server that listens for the SUSPEND & RESUME requests from its clients and sets the "suspend.playback" metadata on pipewire. This allows wireplumber instances to catch changes to this metadata property and suspend or resume playback from applications appropriately. The purpose of this is to allow Instrument Cluster applications to suspend audio from other containers and play certain sounds exclusively. The server-side is implemented as a pipewire module that gets loaded in a separate pipewire process and behaves as a client to the actual pipewire daemon. It is not affected by pipewire daemon's stops & reloads, as it re-connects automatically to pipewire and synchronizes the "suspend.playback" status. The icipc-client application is an example that is not meant to be used in production. IC applications are expected to use the library directly. It is provided for testing & demo purposes. v2: - removed the client from the host image - updated the pipewire-ic-ipc git URI to point to AGL's gerrit Bug-AGL: SPEC-4027 Signed-off-by: George Kiagiadakis Change-Id: I9e326797ce899c2579a0d7794202091e455c6c98 --- .../pipewire-ic-ipc/pipewire-ic-ipc_git.bb | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 meta-agl-lxc/recipes-multimedia/pipewire-ic-ipc/pipewire-ic-ipc_git.bb (limited to 'meta-agl-lxc/recipes-multimedia') diff --git a/meta-agl-lxc/recipes-multimedia/pipewire-ic-ipc/pipewire-ic-ipc_git.bb b/meta-agl-lxc/recipes-multimedia/pipewire-ic-ipc/pipewire-ic-ipc_git.bb new file mode 100644 index 00000000..2951d0e9 --- /dev/null +++ b/meta-agl-lxc/recipes-multimedia/pipewire-ic-ipc/pipewire-ic-ipc_git.bb @@ -0,0 +1,37 @@ +SUMMARY = "PipeWire AGL Instrument Cluster IPC" +AUTHOR = "George Kiagiadakis " +SECTION = "multimedia" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;beginline=3;md5=e8ad01a5182f2c1b3a2640e9ea268264" + +PV = "0.1+git${SRCPV}" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/pipewire-ic-ipc.git;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "f93f9cda5d8a380bc8846b5de3fc24613466adf3" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd + +# build the server on the host +PACKAGECONFIG = "\ + server \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ +" +# only the example client in the guest +PACKAGECONFIG_aglcontainerguest = "client" + +# systemd integration for the server-side component +PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd" +# server-side component +PACKAGECONFIG[server] = "-Dserver=true,-Dserver=false,pipewire" +# example client; not needed if you use the icipc library in your IC applciation +PACKAGECONFIG[client] = "-Dclient=true,-Dclient=false," + +# server-side systemd service +SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'pipewire-ic-ipc.service', '', d)}" + +FILES_${PN} += "\ + ${datadir}/pipewire/* \ + ${libdir}/pipewire-0.3/* \ +" -- cgit 1.2.3-korg