diff options
11 files changed, 214 insertions, 50 deletions
diff --git a/meta-audio-4a-framework/recipes-core/packagegroups/packagegroup-agl-audio.bb b/meta-audio-4a-framework/recipes-core/packagegroups/packagegroup-agl-audio.bb index ec2c04d5..651af533 100644 --- a/meta-audio-4a-framework/recipes-core/packagegroups/packagegroup-agl-audio.bb +++ b/meta-audio-4a-framework/recipes-core/packagegroups/packagegroup-agl-audio.bb @@ -12,5 +12,7 @@ RDEPENDS_${PN} += "\ 4a-alsa-core \ 4a-hal-reference \ agl-service-audio-4a \ - virtual/4a-hal-config \ + VIRTUAL-RUNTIME_alsa-state \ + agl-service-unicens \ + 4a-hal-unicens \ " diff --git a/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/4a-hal-config.bb b/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/4a-hal-config.bb index 32f42299..cfb3ff7c 100644 --- a/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/4a-hal-config.bb +++ b/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/4a-hal-config.bb @@ -12,12 +12,12 @@ SRC_URI = "file://asound.conf.template \ PV = "0.1" -RPROVIDES_${PN} = "virtual/4a-hal-config" +RPROVIDES_${PN} += "VIRTUAL-RUNTIME_alsa-state" PACKAGE_ARCH = "${MACHINE_ARCH}" AUDIO_DEV_NAME ?= "Speakers" -AUDIO_DEV_NAME_ID ?= "usb-audio" +AUDIO_DEV_NAME_ID ?= "0" AUDIO_DEV_NAME_m3ulcb = "M3-Speakers" AUDIO_DEV_NAME_ID_m3ulcb = "rsnddai0ak4613h" diff --git a/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/files/asound.conf.template b/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/files/asound.conf.template index 87e833da..fba7953f 100644 --- a/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/files/asound.conf.template +++ b/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/files/asound.conf.template @@ -1,10 +1,10 @@ +#AGL Audio High Level ALSA configuration +#This define 2 sounds card with 8 audio roles each +#The alsa soft volume control name must match with the HAL Control Name -# ------------------------------------------------------ -# Mixer PCM allow to play multiple stream simultaneously -# ------------------------------------------------------ pcm.@AUDIO_DEV_NAME@ { type dmix - slave {pcm "hw:@AUDIO_DEV_NAME_ID@"} # + slave {pcm "hw:@AUDIO_DEV_NAME_ID@"} ipc_key 1001 # ipc_key should be unique to each dmix } @@ -16,38 +16,68 @@ pcm_hook_type.CtlHookPlugin { lib "@INSTALL_PREFIX@/lib/policy_alsa_hook.so" } +pcm.Entertainment_Main { + type softvol + slave.pcm "@AUDIO_DEV_NAME@" + control{ + name "Entertainment_Volume" + } +} -# ------------------------------------------------------- -# Define one Audio Virtual Channel per Audio Roles -# ------------------------------------------------------- -pcm.MusicPCM { - type softvol - - # Point Slave on HOOK for policies control - slave.pcm "@AUDIO_DEV_NAME@" - - # name should match with HAL definition - control.name "Playback Multimedia" +pcm.Guidance_Main { + type softvol + slave.pcm "@AUDIO_DEV_NAME@" + control{ + name "Guidance_Volume" + } } -pcm.NaviPCM { - type softvol +pcm.Communications_Main { + type softvol + slave.pcm "@AUDIO_DEV_NAME@" + control{ + name "Communications_Volume" + } +} - # Point Slave on HOOK for policies control - slave.pcm "@AUDIO_DEV_NAME@" +pcm.Notification_Main { + type softvol + slave.pcm "@AUDIO_DEV_NAME@" + control{ + name "Notification_Volume" + } +} - # name should match with HAL definition - control.name "Playback Navigation" +pcm.Warning_Main { + type softvol + slave.pcm "@AUDIO_DEV_NAME@" + control{ + name "Warning_Volume" + } } -pcm.UrgentPCM { - type softvol +pcm.System_Main { + type softvol + slave.pcm "@AUDIO_DEV_NAME@" + control{ + name "System_Volume" + } +} - # Point Slave on HOOK for policies control - slave.pcm "@AUDIO_DEV_NAME@" +pcm.Startup_Main { + type softvol + slave.pcm "@AUDIO_DEV_NAME@" + control{ + name "Startup_Volume" + } +} - # name should match with HAL definition - control.name "Playback Emergency" +pcm.Shutdown_Main { + type softvol + slave.pcm "@AUDIO_DEV_NAME@" + control{ + name "Shutdown_Volume" + } } # ---------------------------------------------------- @@ -55,7 +85,7 @@ pcm.UrgentPCM { # ---------------------------------------------------- pcm.Multimedia { type hooks - slave {pcm "MusicPCM"} + slave {pcm "Entertainment_Main"} hooks.0 { comment "Defined used hook sharelib and provide arguments/config to install func" type "CtlHookPlugin" @@ -65,7 +95,7 @@ pcm.Multimedia { verbose true # uri to audio-4a policy engine - uri="unix:/var/tmp/pol4a" + uri="unix:/run/user/0/apis/ws/ahl-4a" # timeout in ms (default 500) timeout 5000 @@ -75,28 +105,32 @@ pcm.Multimedia { # api subcall to request a role request { - multimedia-role "{'uid':'alsa-hook-client'}" - signal-timeout "{'timeout':180, 'music':'quit'}" + stream_open "{'audio_role': 'Entertainment', 'endpoint_type':'sink'}" + set_stream_state "{'state':'running'}" } # api subcall to request a role release { - release-role "{'uid':'alsa-hook-client'}" + set_stream_state "{'state':'idle'}" + stream_close "{}" } # map AGL event on Unix signal. Search in event for json key=value events { - sig-02 {search music, value quit} - sig-31 {search event, value start} - sig-32 {search event, value start} + sig-02 {search state_event, value 1} + sig-31 {search state_event, value 2} + sig-32 {search state_event, value 3} } } } } +# ---------------------------------------------------- +# Define one hooked PCM channel per Audio Roles +# ---------------------------------------------------- pcm.Navigation { type hooks - slave {pcm "NaviPCM"} + slave {pcm "Guidance_Main"} hooks.0 { comment "Defined used hook sharelib and provide arguments/config to install func" type "CtlHookPlugin" @@ -106,7 +140,7 @@ pcm.Navigation { verbose true # uri to audio-4a policy engine - uri="unix:/var/tmp/pol4a" + uri="unix:/run/user/0/apis/ws/ahl-4a" # timeout in ms (default 500) timeout 5000 @@ -116,20 +150,21 @@ pcm.Navigation { # api subcall to request a role request { - navigation-role "{'uid':'alsa-hook-client'}" - signal-timeout "{'timeout':5, 'navi':'quit'}" + stream_open "{'audio_role': 'Guidance', 'endpoint_type':'sink'}" + set_stream_state "{'state':'running'}" } # api subcall to request a role release { - release-role "{'uid':'alsa-hook-client'}" + set_stream_state "{'state':'idle'}" + stream_close "{}" } # map AGL event on Unix signal. Search in event for json key=value events { - sig-02 {search navi, value quit} - sig-31 {search event, value start} - sig-32 {search event, value start} + sig-02 {search state_event, value 1} + sig-31 {search state_event, value 2} + sig-32 {search state_event, value 3} } } } diff --git a/meta-audio-4a-framework/recipes-multimedia/4a-hal-reference/4a-hal-reference_git.bb b/meta-audio-4a-framework/recipes-multimedia/4a-hal-reference/4a-hal-reference_git.bb index 1dcaacaa..d29343c3 100644 --- a/meta-audio-4a-framework/recipes-multimedia/4a-hal-reference/4a-hal-reference_git.bb +++ b/meta-audio-4a-framework/recipes-multimedia/4a-hal-reference/4a-hal-reference_git.bb @@ -15,8 +15,13 @@ S = "${WORKDIR}/git" inherit afb-system-cmake -#Select Here your HAL -EXTRA_OECMAKE_m3ulcb += " -DHAL_RCAR-M3=1" +EXTRA_OECMAKE += "-DHAL_USB_DEVICE=1" + +# Select platform specific additional HAL(s) +EXTRA_OECMAKE_append_x86-64 = " -DHAL_INTEL_HDA=1" +# Mark as specific to M3 +PACKAGE_ARCH_m3ulcb = "${MACHINE_ARCH}" +EXTRA_OECMAKE_append_m3ulcb = " -DHAL_RCAR-M3=1" FILES_${PN}-dev += "${INSTALL_PREFIX}/afb-aaaa/htdocs" FILES_${PN} += "${INSTALL_PREFIX}/afb-aaaa" diff --git a/meta-audio-4a-framework/recipes-multimedia/agl-service-unicens/agl-service-unicens_git.bb b/meta-audio-4a-framework/recipes-multimedia/agl-service-unicens/agl-service-unicens_git.bb new file mode 100644 index 00000000..0c5919bf --- /dev/null +++ b/meta-audio-4a-framework/recipes-multimedia/agl-service-unicens/agl-service-unicens_git.bb @@ -0,0 +1,18 @@ +SUMMARY = "4A - Infotainment network setup and access" +DESCRIPTION = "Infotainment network setup and access (using Unified Centralized Network Stack)" +HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-service-unicens" +SECTION = "apps" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/apps/agl-service-unicens;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "${AUTOREV}" + +PV = "0.1" +S = "${WORKDIR}/git" + +inherit cmake aglwgt pkgconfig + +DEPENDS += "alsa-lib json-c systemd af-binder glib-2.0 mxml" + diff --git a/meta-audio-4a-framework/recipes-platform/images/agl-demo-platform-crosssdk.bbappend b/meta-audio-4a-framework/recipes-platform/images/agl-demo-platform-crosssdk.bbappend new file mode 100644 index 00000000..48388a29 --- /dev/null +++ b/meta-audio-4a-framework/recipes-platform/images/agl-demo-platform-crosssdk.bbappend @@ -0,0 +1 @@ +TOOLCHAIN_TARGET_TASK += "mxml-dev" diff --git a/meta-audio-4a-framework/recipes-support/mxml/files/0001-avoid-testing-library-in-cross-environments.patch b/meta-audio-4a-framework/recipes-support/mxml/files/0001-avoid-testing-library-in-cross-environments.patch new file mode 100644 index 00000000..a128936b --- /dev/null +++ b/meta-audio-4a-framework/recipes-support/mxml/files/0001-avoid-testing-library-in-cross-environments.patch @@ -0,0 +1,31 @@ +From b00ed2af82d4b046a6b8c53bd373ffe908866b0d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> +Date: Fri, 30 Dec 2016 00:30:59 +0100 +Subject: [PATCH] avoid using binraies build - won't work in cross +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 92a490f..8217039 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -88,7 +88,7 @@ PUBLIBOBJS = mxml-attr.o mxml-entity.o mxml-file.o mxml-get.o \ + mxml-index.o mxml-node.o mxml-search.o mxml-set.o + LIBOBJS = $(PUBLIBOBJS) mxml-private.o mxml-string.o + OBJS = mxmldoc.o testmxml.o $(LIBOBJS) +-TARGETS = $(LIBMXML) mxmldoc testmxml mxml.xml doc/mxml.man ++TARGETS = $(LIBMXML) + + + # +-- +2.5.5 + diff --git a/meta-audio-4a-framework/recipes-support/mxml/files/0002-don-t-loose-our-LDFLAGS.patch b/meta-audio-4a-framework/recipes-support/mxml/files/0002-don-t-loose-our-LDFLAGS.patch new file mode 100644 index 00000000..3371d1ac --- /dev/null +++ b/meta-audio-4a-framework/recipes-support/mxml/files/0002-don-t-loose-our-LDFLAGS.patch @@ -0,0 +1,31 @@ +From 358fe387d07b4906c823b2a664f3c57fd62acd3e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> +Date: Mon, 27 Feb 2017 18:24:29 +0100 +Subject: [PATCH] don't loose our LDFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 789677a..f3b3b62 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -25,7 +25,7 @@ CC = @CC@ + CFLAGS = $(OPTIM) $(ARCHFLAGS) @CFLAGS@ @CPPFLAGS@ @PTHREAD_FLAGS@ + CP = @CP@ + DSO = @DSO@ +-DSOFLAGS = @DSOFLAGS@ ++DSOFLAGS = $(LDFLAGS) @DSOFLAGS@ + LDFLAGS = $(OPTIM) $(ARCHFLAGS) @LDFLAGS@ + INSTALL = @INSTALL@ + LIBMXML = @LIBMXML@ +-- +2.9.3 + diff --git a/meta-audio-4a-framework/recipes-support/mxml/mxml_2.10.bb b/meta-audio-4a-framework/recipes-support/mxml/mxml_2.10.bb new file mode 100644 index 00000000..bca248b6 --- /dev/null +++ b/meta-audio-4a-framework/recipes-support/mxml/mxml_2.10.bb @@ -0,0 +1,33 @@ +SUMMARY = "Mini-XML is a small XML library" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6ba38606d63bb042c5d8cfee182e120" + +DEPENDS = "" + +SRC_URI = " \ + https://github.com/michaelrsweet/mxml/releases/download/release-${PV}/${BPN}-${PV}.tar.gz \ + file://0001-avoid-testing-library-in-cross-environments.patch \ + file://0002-don-t-loose-our-LDFLAGS.patch \ +" +SRC_URI[md5sum] = "8804c961a24500a95690ef287d150abe" +SRC_URI[sha256sum] = "267ff58b64ddc767170d71dab0c729c06f45e1df9a9b6f75180b564f09767891" + +inherit autotools-brokensep + +EXTRA_AUTORECONF += "--exclude=autoheader" + +do_install() { + install -d ${D}${includedir} + install -m 644 mxml.h ${D}${includedir} + + install -d ${D}${libdir}/pkgconfig + install -m 644 libmxml.so.1.5 ${D}${libdir} + ln -s libmxml.so.1.5 ${D}${libdir}/libmxml.so + ln -s libmxml.so.1.5 ${D}${libdir}/libmxml.so.1 + + install mxml.pc ${D}${libdir}/pkgconfig + + # Remove useless rpath + chrpath -d ${D}${libdir}/libmxml.so.1.5 + +} diff --git a/meta-hmi-framework/recipes-platform/packagegroups/packagegroup-hmi-framework.bb b/meta-hmi-framework/recipes-platform/packagegroups/packagegroup-hmi-framework.bb index b11cb349..1adbee86 100644 --- a/meta-hmi-framework/recipes-platform/packagegroups/packagegroup-hmi-framework.bb +++ b/meta-hmi-framework/recipes-platform/packagegroups/packagegroup-hmi-framework.bb @@ -7,11 +7,9 @@ inherit packagegroup RDEPENDS_${PN} += " \ agl-service-windowmanager-2017 \ - agl-service-soundmanager-2017 \ agl-service-homescreen-2017 \ homescreen-2017 \ libwindowmanager \ qlibwindowmanager \ - libsoundmanager \ libhomescreen-2017 \ " diff --git a/templates/feature/agl-audio-4a-framework/50_local.conf.inc b/templates/feature/agl-audio-4a-framework/50_local.conf.inc index e75ea18c..19889d8e 100644 --- a/templates/feature/agl-audio-4a-framework/50_local.conf.inc +++ b/templates/feature/agl-audio-4a-framework/50_local.conf.inc @@ -2,3 +2,13 @@ # enables the following line: # DISTRO_FEATURES_append = " agl-audio-4a-framework " + +# asound.conf is provided by the 4a-hal-config (and not by asound.state) +VIRTUAL-RUNTIME_alsa-state = "4a-hal-config" +# additionally there is a bug in alsa-utils-alsactl where it pulls in alsa-state directly +RRECOMMENDS_pn-alsa-utils-alsactl = "VIRTUAL-RUNTIME_alsa-state" + +# why should a config package have -dev ... I'll leave that answer to you. +PACKAGES_pn-alsa-state_remove = "alsa-state-dev" +PACKAGES_pn-alsa-state_remove = "alsa-states-dev" +PACKAGES_pn-alsa-state = "alsa-state alsa-states" |