From 6984b79c1bbc70526a8bc7b319bc3d8d965ee7ff Mon Sep 17 00:00:00 2001 From: Manuel Bachmann Date: Wed, 20 Jul 2016 15:52:27 +0000 Subject: Add PulseAudio server and systemd service This commit adds the PulseAudio server to the image, and a related systemd service for automatic startup. This change is motivated by an Audio Routing model involving a PulseAudio plugin and a AudioManager interface, as described on: https://wiki.automotivelinux.org/ eg-ui-graphics-req-audiorouting . PulseAudio server is launched in user mode. ("paplay .wav" may verify the functionality) Change-Id: I12e2bfb2af5494e530e29bda77b0d88999cf7b4b Signed-off-by: Manuel Bachmann --- .../packagegroup-ivi-common-core-multimedia.bb | 2 ++ .../pulseaudio/pulseaudio_%.bbappend | 28 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 meta-ivi-common/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend diff --git a/meta-ivi-common/recipes-core/packagegroups/packagegroup-ivi-common-core-multimedia.bb b/meta-ivi-common/recipes-core/packagegroups/packagegroup-ivi-common-core-multimedia.bb index 40cd116dd..75e496290 100644 --- a/meta-ivi-common/recipes-core/packagegroups/packagegroup-ivi-common-core-multimedia.bb +++ b/meta-ivi-common/recipes-core/packagegroups/packagegroup-ivi-common-core-multimedia.bb @@ -14,6 +14,8 @@ ALLOW_EMPTY_${PN} = "1" RDEPENDS_${PN} += "\ alsa-lib \ alsa-utils \ + pulseaudio-server \ + pulseaudio-misc \ agl-audio-plugin \ gstreamer1.0-meta-base \ " diff --git a/meta-ivi-common/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/meta-ivi-common/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend new file mode 100644 index 000000000..9964a8bd8 --- /dev/null +++ b/meta-ivi-common/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend @@ -0,0 +1,28 @@ +FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" + +inherit systemd + +do_install_append() { + # Install pulseaudio systemd service + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -m 644 -p -D ${WORKDIR}/build/src/pulseaudio.service ${D}${systemd_user_unitdir}/pulseaudio.service + install -m 644 -p -D ${WORKDIR}/pulseaudio-6.0/src/daemon/systemd/user/pulseaudio.socket ${D}${systemd_user_unitdir}/pulseaudio.socket + + # Execute these manually on behalf of systemctl script (from systemd-systemctl-native.bb) + # because it does not support systemd's user mode. + mkdir -p ${D}/home/root/.config/systemd/user/sockets.target.wants/ + ln -sf ${systemd_user_unitdir}/pulseaudio.socket ${D}/home/root/.config/systemd/user/sockets.target.wants/pulseaudio.socket + + mkdir -p ${D}/home/root/.config/systemd/user/default.target.wants/ + ln -sf ${systemd_user_unitdir}/pulseaudio.service ${D}/home/root/.config/systemd/user/default.target.wants/pulseaudio.service + fi + mkdir -p ${D}/${bindir} + install -m 755 -p -D ${WORKDIR}/build/src/.libs/pacat ${D}/${bindir}/ +} + +FILES_${PN} += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_user_unitdir}/pulseaudio.socket', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '/home/root/.config/systemd/user/sockets.target.wants/pulseaudio.socket', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_user_unitdir}/pulseaudio.service', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '/home/root/.config/systemd/user/default.target.wants/pulseaudio.service', '', d)} \ +" -- cgit 1.2.3-korg