aboutsummaryrefslogtreecommitdiffstats
path: root/ATTIC/meta-audio-4a-framework/recipes-multimedia
diff options
context:
space:
mode:
authorJan-Simon Möller <jsmoeller@linuxfoundation.org>2019-06-09 23:11:58 +0200
committerbuild.automotivelinux.org <jenkins@automotivelinux.org>2019-06-11 15:42:20 +0200
commit910541b2b933f4a437ea83ec3ec19242a41a3630 (patch)
tree4522d3b2b1ecf771b712f8478118ed84e8e49974 /ATTIC/meta-audio-4a-framework/recipes-multimedia
parent5e28b182790ce38cb769949a5f2f9c649b6978c6 (diff)
Supporting commits for the switch to pipewire
We move all components around meta-audio-soundmanager-framework to that layer (still kept on request). We deprecate the meta-audio-4a-framework layer for Happy Halibut. Bug-AGL: SPEC-2473 Change-Id: I2a7c9d815801a3f8ea80943165ea6fd1422533ea Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'ATTIC/meta-audio-4a-framework/recipes-multimedia')
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-alsa-core/4a-alsa-core_git.bb25
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/4a-hal-config.bb24
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/files/asound.conf.template3
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config-alternatives.README3
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config-alternatives.bbexample57
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config.README4
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config.bb58
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-vendor-config.README3
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-vendor-config.bbexample46
-rwxr-xr-xATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/files/deploy-hal-udev.sh4
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/files/udev-sample-rule.rules1
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-generic/4a-hal-generic_git.bb30
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-unicens/4a-hal-unicens_git.bb32
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-softmixer/4a-softmixer_git.bb25
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-tools/4a-tools_git.bb22
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/agl-service-audio-4a/agl-service-audio-4a_git.bb58
-rwxr-xr-xATTIC/meta-audio-4a-framework/recipes-multimedia/agl-service-audio-4a/files/4a_wait_bt.sh83
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/alsa/alsa-plugins_%.bbappend7
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/libavirt/libavirt_git.bb19
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/files/default.pa.4a77
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/pulseaudio-module-4a-client_git.bb20
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend7
22 files changed, 608 insertions, 0 deletions
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-alsa-core/4a-alsa-core_git.bb b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-alsa-core/4a-alsa-core_git.bb
new file mode 100644
index 00000000..b94eff21
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-alsa-core/4a-alsa-core_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "4A - Low Level Alsa Binding"
+DESCRIPTION = "Low Level Alsa Binding for 4A (AGL Advanced Audio Agent)"
+HOMEPAGE = "https://git.automotivelinux.org/src/4a-alsa-core/"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/src/4a-alsa-core;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "9b71be04ea600189e390bb111624ad5c2d248a4c"
+
+DEPENDS += "libafb-helpers"
+
+PV = "0.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+inherit afb-system-cmake
+
+# FIXME: Remove once CMake+ninja issues are resolved
+OECMAKE_GENERATOR = "Unix Makefiles"
+
+FILES_${PN}-dev += "${INSTALL_PREFIX}/4a-alsa-core/htdocs"
+
+FILES_${PN} += "${INSTALL_PREFIX}/4a-alsa-core"
+FILES_${PN} += "${INSTALL_PREFIX}/lib"
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/4a-hal-config.bb b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/4a-hal-config.bb
new file mode 100644
index 00000000..fc648a1d
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/4a-hal-config.bb
@@ -0,0 +1,24 @@
+SUMMARY = "4A - HAL Configuration"
+DESCRIPTION = "Configuration files for HALs used in 4A (AGL Advanced Audio Agent)"
+HOMEPAGE = "https://git.automotivelinux.org/src/4a-hal-reference/"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+SRC_URI = "file://asound.conf.template \
+ "
+
+PV = "0.1"
+
+RPROVIDES_${PN} += "VIRTUAL-RUNTIME_alsa-state"
+
+inherit afb-system
+
+do_install () {
+ install -d ${D}/${sysconfdir}
+ install -m 0755 ${WORKDIR}/asound.conf.template ${D}/${sysconfdir}/asound.conf
+ sed -i "s|@INSTALL_PREFIX@|${INSTALL_PREFIX}|g" ${D}/${sysconfdir}/asound.conf
+}
+
+FILES_${PN} += "${sysconfdir}/asound.conf"
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/files/asound.conf.template b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/files/asound.conf.template
new file mode 100644
index 00000000..5a265db0
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-config/files/asound.conf.template
@@ -0,0 +1,3 @@
+#
+#4A pcm configuration is now dynamic, please check hal configuration files in @INSTALL_PREFIX@/4a-hal/etc
+#
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config-alternatives.README b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config-alternatives.README
new file mode 100644
index 00000000..689f9bf8
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config-alternatives.README
@@ -0,0 +1,3 @@
+This is a sample on how the update-alternative system can be used to select
+the highest priority hal given.
+Downside ... always only one file is possible in the etc folder. No HAL_LIST.
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config-alternatives.bbexample b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config-alternatives.bbexample
new file mode 100644
index 00000000..3bafc3bb
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config-alternatives.bbexample
@@ -0,0 +1,57 @@
+SUMMARY = "4A - Generic HAL device configuration"
+DESCRIPTION = "Generic HAL device configuration in 4A (AGL Advanced Audio Agent)"
+HOMEPAGE = "https://git.automotivelinux.org/src/4a-hal-configs/"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/src/4a-hal-configs;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "45f205076573a858348c10a52d31382f31deaf55"
+
+PV = "0.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+# The package is machine-specific due to variable config content
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit afb-system update-alternative
+# This defines INSTALL_PREFIX = "/usr/libexec/agl/"
+
+# no configure needed
+do_configure[noexec] = "1"
+# no compile needed
+do_compile[noexec] = "1"
+
+
+# when no specific HAL is defined, use a generic usb one
+4A_DEFAULT_HAL ??= "2ch-generic-usb"
+
+# for specific machines, activate only known HAL
+4A_DEFAULT_HAL_m3ulcb ?= "rcar-m3"
+# Downside: only one file at a time!
+4A_DEFAULT_HAL_h3ulcb ?= "rcar-m3"
+4A_DEFAULT_HAL_intel-corei7-64 ?= "intel-minnow"
+4A_DEFAULT_HAL_qemux86-64 ?= "intel-qemu"
+
+# Due to bug SPEC-1610, default hal for RPI3 is not active yet
+# 4A_DEFAULT_HAL_raspberrypi3 ?= "raspberry-pi-3"
+
+do_install () {
+ # get pkgdir for 4a-hal
+ PKGDIR=${D}/${INSTALL_PREFIX}/4a-hal
+
+ install -d -m 0755 ${PKGDIR}/etc.available
+ cp -ar ${S}/*/*.json ${PKGDIR}/etc.available/
+ chown -R root:root ${PKGDIR}/
+}
+
+# we define a '4a-default-hal' alternative with a low default priority
+# you can deploy your own hal with a higher prio
+ALTERNATIVE_${PN} = "4a-default-hal"
+ALTERNATIVE_PRIORITY = "10"
+ALTERNATIVE_LINK_NAME[4a-default-hal] = "${INSTALL_PREFIX}/4a-hal/etc/4a-default-hal.json"
+ALTERNATIVE_TARGET[4a-default-hal] = "${INSTALL_PREFIX}/4a-hal/etc.available/hal-4a-${4A_DEFAULT_HAL}.json"
+
+
+RPROVIDES_${PN} += "virtual/4a-default-hal" \ No newline at end of file
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config.README b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config.README
new file mode 100644
index 00000000..602486a4
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config.README
@@ -0,0 +1,4 @@
+To keep it simple.
+
+Just expose 4A_HAL_LIST as-is to conf/local.conf so the user can actually choose any json file.
+
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config.bb b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config.bb
new file mode 100644
index 00000000..e504c3da
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-device-config.bb
@@ -0,0 +1,58 @@
+SUMMARY = "4A - Generic HAL device configuration"
+DESCRIPTION = "Generic HAL device configuration in 4A (AGL Advanced Audio Agent)"
+HOMEPAGE = "https://git.automotivelinux.org/src/4a-hal-configs/"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/src/4a-hal-configs;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "fdf0e3c4c67ceb5ddc77c9c1f27d85c1be2055a6"
+
+PV = "0.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+# The package is machine-specific due to variable config content
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit afb-system
+# This defines INSTALL_PREFIX = "/usr/libexec/agl/"
+
+# no configure needed
+do_configure[noexec] = "1"
+
+# no compile needed
+do_compile[noexec] = "1"
+
+# when no specific HAL is defined, use a generic usb one
+4A_HAL_LIST ??= "2ch-generic-usb"
+
+# for specific machines, activate only known HALs
+4A_HAL_LIST_m3ulcb ?= "rcar-m3 rcar-m3kf"
+4A_HAL_LIST_h3ulcb ?= "rcar-m3 rcar-m3kf"
+4A_HAL_LIST_intel-corei7-64 ?= "intel-minnow intel-upsquared-hdmi"
+4A_HAL_LIST_qemux86-64 ?= "intel-qemu"
+
+# Due to bug SPEC-1610, default hal for RPI3 is not active yet
+# 4A_HAL_LIST_raspberrypi3 ?= "raspberry-pi-3"
+
+do_install () {
+
+ # get pkgdir for 4a-hal
+ PKGDIR=${D}/${INSTALL_PREFIX}/4a-hal
+
+ install -d -m 0755 ${PKGDIR}
+ install -d -m 0755 ${PKGDIR}/etc
+ install -d -m 0755 ${PKGDIR}/etc.available
+
+ cp -ar ${S}/*/*.json ${PKGDIR}/etc.available/
+ chown -R root:root ${PKGDIR}/etc.available
+
+ for x in ${4A_HAL_LIST}; do
+ hal=hal-4a-$x.json
+ cp -v $PKGDIR/etc.available/${hal} $PKGDIR/etc/
+ done
+}
+
+
+RPROVIDES_${PN} += "virtual/4a-default-hal"
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-vendor-config.README b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-vendor-config.README
new file mode 100644
index 00000000..29531ccd
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-vendor-config.README
@@ -0,0 +1,3 @@
+This is a sample how a vendor can:
+- inject his own hal (as file hal-4a-myhal.json)
+- set PREFERRED_RPROVIDER_virtual/4a-default-hal = "4a-hal-vendor-config" on conf/local.conf
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-vendor-config.bbexample b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-vendor-config.bbexample
new file mode 100644
index 00000000..105ab1fa
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/4a-hal-vendor-config.bbexample
@@ -0,0 +1,46 @@
+SUMMARY = "4A - Vendor HAL device configuration"
+DESCRIPTION = "Vendor HAL device configuration in 4A (AGL Advanced Audio Agent)"
+HOMEPAGE = "https://example.com/"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI = "file://hal-4a-myhal.json"
+
+PV = "0.1"
+S = "${WORKDIR}/"
+
+# The package is machine-specific due to variable config content
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit afb-system
+# This defines INSTALL_PREFIX = "/usr/libexec/agl/"
+
+# no configure needed
+do_configure[noexec] = "1"
+
+# no compile needed
+do_compile[noexec] = "1"
+
+# use our local hal
+4A_HAL_LIST = "myhal"
+
+do_install () {
+
+ # get pkgdir for 4a-hal
+ PKGDIR=${D}/${INSTALL_PREFIX}/4a-hal
+
+ install -d -m 0755 ${PKGDIR}/etc.available
+
+ cp -ar ${S}/*.json ${PKGDIR}/etc.available/
+ chown -R root:root ${PKGDIR}/etc.available
+
+ for x in ${4A_HAL_LIST}; do
+ hal=hal-4a-$x.json
+ cp -v $PKGDIR/etc.available/${hal} $PKGDIR/etc/
+ done
+}
+
+
+RPROVIDES_${PN} += "virtual/4a-default-hal" \ No newline at end of file
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/files/deploy-hal-udev.sh b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/files/deploy-hal-udev.sh
new file mode 100755
index 00000000..f031d58b
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/files/deploy-hal-udev.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+rm /usr/libexec/agl/4a-hal/etc/*
+cp /usr/libexec/agl/4a-hal/etc.available/$i /usr/libexec/agl/4a-hal/etc/
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/files/udev-sample-rule.rules b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/files/udev-sample-rule.rules
new file mode 100644
index 00000000..d2d16a17
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-device-config/files/udev-sample-rule.rules
@@ -0,0 +1 @@
+ACTION=="add", SUBSYSTEM=="usb", SOMEOTHERMATCH="bar", RUN+="/usr/bin/deploy-hal-udev.sh hal-4a-greenbox.json"
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-generic/4a-hal-generic_git.bb b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-generic/4a-hal-generic_git.bb
new file mode 100644
index 00000000..8b20b83d
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-generic/4a-hal-generic_git.bb
@@ -0,0 +1,30 @@
+SUMMARY = "4A - Generic HAL"
+DESCRIPTION = "Generic HAL in 4A (AGL Advanced Audio Agent)"
+HOMEPAGE = "https://git.automotivelinux.org/src/4a-hal-generic/"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/src/4a-hal-generic;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "0c4921b83a13bcb96bf03fb0e7a0733c3e202474"
+
+DEPENDS += "lua bluez-alsa liburcu libafb-helpers libappcontroller"
+
+PV = "0.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+inherit afb-system-cmake
+
+# FIXME: Remove once CMake+ninja issues are resolved
+OECMAKE_GENERATOR = "Unix Makefiles"
+
+do_install_append () {
+ # get pkgdir - note that '4a-hal' comes from project ${project_git_repo}/conf.d/cmake/config.cmake
+ PKGDIR=${D}/${INSTALL_PREFIX}/4a-hal
+
+ # transition: provided by separate package
+ rm -rf $PKGDIR/etc
+}
+
+RDEPENDS_${PN} += "virtual/4a-default-hal bluez-alsa"
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-unicens/4a-hal-unicens_git.bb b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-unicens/4a-hal-unicens_git.bb
new file mode 100644
index 00000000..058d20bb
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-hal-unicens/4a-hal-unicens_git.bb
@@ -0,0 +1,32 @@
+SUMMARY = "4A - Unicens (MOST) Binding"
+DESCRIPTION = "Unicens binding (MOST audio network support) for 4A (AGL Advanced Audio Agent)"
+HOMEPAGE = "https://git.automotivelinux.org/src/4a-hal-unicens/"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e385f6075dcdf3ad6ff0056fca58a129"
+
+DEPENDS += "lua libafb-helpers libappcontroller"
+
+SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/src/4a-hal-unicens;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "9228c9da5b85f0fdd6b01f0309e57b846618be63"
+
+
+PV = "0.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+inherit afb-system-cmake
+
+# FIXME: Remove once CMake+ninja issues are resolved
+OECMAKE_GENERATOR = "Unix Makefiles"
+
+do_install_append () {
+ # installation folder for this plugin is '4a-hal'
+ # get pkgdir - note that '4a-hal' comes from project ${project_git_repo}/conf.d/cmake/config.cmake
+ PKGDIR=${D}/${INSTALL_PREFIX}/4a-hal
+
+ # transition: provided by separate package
+ rm -rf $PKGDIR/etc
+}
+
+
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-softmixer/4a-softmixer_git.bb b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-softmixer/4a-softmixer_git.bb
new file mode 100644
index 00000000..908809b6
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-softmixer/4a-softmixer_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "4A - Softmixer"
+DESCRIPTION = "4A Softmixer (AGL Advanced Audio Agent)"
+HOMEPAGE = "https://git.automotivelinux.org/src/4a-softmixer/"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/src/4a-softmixer.git;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "1a75612274f883aed09d198575582abdc0c9fe0f"
+
+DEPENDS += "lua liburcu libafb-helpers libappcontroller libavirt"
+
+PV = "0.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+inherit afb-system-cmake
+
+# FIXME: Remove once CMake+ninja issues are resolved
+OECMAKE_GENERATOR = "Unix Makefiles"
+
+#FIXME :
+#FILES_${PN}-dev += "${INSTALL_PREFIX}/4a-softmixer/htdocs"
+#FILES_${PN} += "${INSTALL_PREFIX}/afb-aaaa"
+#FILES_${PN} += "${INSTALL_PREFIX}/lib"
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-tools/4a-tools_git.bb b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-tools/4a-tools_git.bb
new file mode 100644
index 00000000..ae1117ad
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/4a-tools/4a-tools_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "4A - Tools"
+DESCRIPTION = "Tools, utilities, scripts and data related to 4A"
+HOMEPAGE = "https://github.com/iotbzh/4a-tools/"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI = "gitsm://github.com/iotbzh/4a-tools;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "flounder_5.99.2"
+#SRCREV = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+
+PV = "0.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+
+do_install() {
+ oe_runmake install DESTDIR=${D}${prefix}
+}
+
+RDEPENDS_${PN} += "bash python3-websockets"
+FILES_${PN} += "${datadir}/4a/media/*"
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/agl-service-audio-4a/agl-service-audio-4a_git.bb b/ATTIC/meta-audio-4a-framework/recipes-multimedia/agl-service-audio-4a/agl-service-audio-4a_git.bb
new file mode 100644
index 00000000..014fe119
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/agl-service-audio-4a/agl-service-audio-4a_git.bb
@@ -0,0 +1,58 @@
+SUMMARY = "4A - High Level Audio API Service"
+DESCRIPTION = "High Level Audio API service used in 4A (AGL Advanced Audio Agent)"
+HOMEPAGE = "https://git.automotivelinux.org/apps/agl-service-audio-4a/"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-audio-4a;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "${AGL_APP_REVISION}"
+
+PV = "0.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+inherit cmake aglwgt pkgconfig
+
+DEPENDS += "alsa-lib json-c systemd af-binder glib-2.0 lua libappcontroller"
+
+do_aglwgt_deploy_append() {
+ cat <<'EOF' >${D}/${sysconfdir}/agl-postinsts/99_4A_service_patch.sh
+N=600
+svcfile="/usr/local/lib/systemd/*/afm-service-agl-service-audio-4a*.service"
+set -x
+echo "-- TMP 4A INSTALL FIX from meta-agl/meta-app-framework/recipes-multimedia/agl-service-audio-4a/agl-service-audio-4a_git.bb - MUST BE REMOVED !!!"
+while ! ls $svcfile > /dev/null; do
+ if [ $N = 0 ]; then echo "-- TMP 4A INSTALL NOT FIXED"; exit 0; fi
+ echo .
+ sleep 0.2
+ N=$(expr $N - 1)
+done
+sed -i '/\[Unit\]/ a Before=pulseaudio.service' $svcfile;
+sed -i '/\[Unit\]/ a ConditionPathExistsGlob=/dev/snd/control*' $svcfile;
+sed -i '/ExecStartPre=/ a Environment=LIBASOUND_THREAD_SAFE=0' $svcfile;
+
+sed -i -e 's|/usr/bin/afb-daemon\>|& --ldpath=/usr/libexec/agl/4a-alsa-core/lib:/usr/libexec/agl/4a-hal/lib:/usr/libexec/agl/smixer/lib|' $svcfile
+
+# binder name matters: it must match "afbd-4a-*" => the config file (controller json file) that will be searched will be "policy-4a-*.json"
+sed -i -e 's|--name afbd-agl-\(.*\)|--name afbd-4a-\1|' $svcfile
+
+# workaround for SPEC-1762
+sed -i -e 's|/usr/bin/afb-daemon\>|/usr/bin/4a_wait_bt.sh &|' $svcfile
+
+echo "-- TMP 4A INSTALL FIX END"
+
+EOF
+ chmod a+x ${D}/${sysconfdir}/agl-postinsts/99_4A_service_patch.sh
+}
+
+##############################################
+# workaround for SPEC-1762/SPEC-1763
+RDEPENDS_${PN} += "bash"
+SRC_URI += "file://4a_wait_bt.sh"
+do_install_append() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/4a_wait_bt.sh ${D}${bindir}/
+}
+#
+##############################################
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/agl-service-audio-4a/files/4a_wait_bt.sh b/ATTIC/meta-audio-4a-framework/recipes-multimedia/agl-service-audio-4a/files/4a_wait_bt.sh
new file mode 100755
index 00000000..9dec4350
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/agl-service-audio-4a/files/4a_wait_bt.sh
@@ -0,0 +1,83 @@
+#!/bin/bash
+
+###############################################################
+# This is a workaround for SPEC-1762/SPEC-1763
+#
+# THIS SCRIPT MUST BE REMOVED ONCE THE ABOVE ISSUES ARE SOLVED
+#
+# Source recipe is:
+#
+# meta-audio-4a-framework/
+# recipes-multimedia/
+# agl-service-audio-4a/
+# agl-service-audio-4a_git.bb
+#
+# Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
+###############################################################
+
+# time from script startup
+LIMIT=20
+ts0=0
+function ts() { echo $(( $(date +%s) - ts0 )); }
+ts0=$(ts)
+function havetime() { [[ $(ts) -le ${1:-$LIMIT} ]] || return 1; }
+
+function waitloop() {
+ # ensure bt modules are loaded (delay: 5s)
+ while havetime 4; do
+ [[ -d /sys/module/bluetooth ]] && {
+ echo "bluetooth kernel module detected"
+ break
+ }
+ echo "waiting for bluetooth kernel module to be up"
+ sleep 0.2
+ done
+ havetime 4 || { echo "TIMEOUT REACHED"; return 1; }
+
+ # check that we have at least one controller
+ HCIDEV=
+ while havetime 8; do
+ echo "detecting hci devices..."
+ for x in $(ls /sys/class/bluetooth/hci* 2>/dev/null); do
+ [[ -z "$HCIDEV" ]] && HCIDEV=$(basename $x)
+ done
+ [[ -n "$HCIDEV" ]] && {
+ echo "found HCI controller: $HCIDEV"
+ break
+ }
+ sleep 0.2
+ done
+ havetime 8 || { echo "TIMEOUT REACHED"; return 1; }
+
+ # wait for controller to be up and running
+ while havetime 15; do
+ state=$(hciconfig $HCIDEV | grep -A 2 ^hci0 | tail -1)
+ [[ $state =~ UP ]] && [[ $state =~ RUNNING ]] && {
+ echo "HCI controller $HCIDEV state: $state"
+ break
+ }
+ echo "HCI controller $HCIDEV state: $state ... waiting for UP RUNNING"
+ sleep 0.2
+ done
+ havetime 15 || { echo "TIMEOUT REACHED"; return 1; }
+ echo "HCI device up and running after $(ts) seconds"
+
+ # wait for bluetooth-service to return something
+ while havetime; do
+ res=$(afb-client-demo -d unix:/run/user/$UID/apis/ws/Bluetooth-Manager adapter_state true)
+ [[ "$res" =~ \"response\":(.*)}$ ]] && res=${BASH_REMATCH[1]}
+ [[ "$res" =~ \"powered\":true ]] && {
+ echo "Bluetooth-Manager/power: $res"
+ break
+ }
+ echo "Bluetooth-Manager/power: not ready yet ($res)"
+ sleep 0.2
+ done
+ echo "Bluetooth-Manager ready after $(ts) seconds"
+
+ echo "4A now starting..."
+}
+
+waitloop 2>&1 | sed 's/^/4AWAITBT /' >&2
+exec "$@"
+
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/alsa/alsa-plugins_%.bbappend b/ATTIC/meta-audio-4a-framework/recipes-multimedia/alsa/alsa-plugins_%.bbappend
new file mode 100644
index 00000000..5109a314
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/alsa/alsa-plugins_%.bbappend
@@ -0,0 +1,7 @@
+# Remove PulseAudio plugin configuration files
+
+do_install_append() {
+ rm -f ${D}${datadir}/alsa/alsa.conf.d/*pulseaudio*
+}
+
+FILES_${PN}-pulseaudio-conf = "${datadir}/alsa/alsa.conf.d"
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/libavirt/libavirt_git.bb b/ATTIC/meta-audio-4a-framework/recipes-multimedia/libavirt/libavirt_git.bb
new file mode 100644
index 00000000..6d224e4e
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/libavirt/libavirt_git.bb
@@ -0,0 +1,19 @@
+SUMMARY = "AVIRT user-space library"
+DESCRIPTION = "ALSA Virtual Dynamic Sound Driver (AVIRT) user-space library for dynamic sound stream creation."
+HOMEPAGE = "https://git.automotivelinux.org/src/libavirt/"
+SECTION = "libs/multimedia"
+
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/libavirt;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "379ea3c132f53eb6f5cf26d1c8a5ca335eb32a2e"
+
+PV = "0.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+DEPENDS = "alsa-lib"
+
+inherit cmake
+
+ALLOW_EMPTY_${PN} = "1"
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/files/default.pa.4a b/ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/files/default.pa.4a
new file mode 100644
index 00000000..0efdacc2
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/files/default.pa.4a
@@ -0,0 +1,77 @@
+#!/usr/bin/pulseaudio -nF
+#
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
+
+# This startup script is used only if PulseAudio is started per-user
+# (i.e. not in system mode)
+
+.fail
+
+### Automatically augment property information from .desktop files
+### stored in /usr/share/application
+load-module module-augment-properties
+
+### Load several protocols
+.ifexists module-esound-protocol-unix.so
+load-module module-esound-protocol-unix
+.endif
+load-module module-native-protocol-unix
+
+### Network access (may be configured with paprefs, so leave this commented
+### here if you plan to use paprefs)
+#load-module module-esound-protocol-tcp
+#load-module module-native-protocol-tcp
+
+### Load the RTP receiver module (also configured via paprefs, see above)
+#load-module module-rtp-recv
+
+### Load the RTP sender module (also configured via paprefs, see above)
+#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
+#load-module module-rtp-send source=rtp.monitor
+
+.ifexists module-4a-client.so
+load-module module-null-sink sink_name=aaaa_null_sink sink_properties="device.description='4A Null Output'"
+set-default-sink aaaa_null_sink
+load-module module-4a-client
+.else
+load-module module-udev-detect
+.endif
+
+### Automatically move streams to the default sink if the sink they are
+### connected to dies, similar for sources
+load-module module-rescue-streams
+
+### Make sure we always have a sink around, even if it is a null sink.
+load-module module-always-sink
+
+### Automatically suspend sinks/sources that become idle for too long
+load-module module-suspend-on-idle
+
+### If autoexit on idle is enabled we want to make sure we only quit
+### when no local session needs us anymore.
+.ifexists module-console-kit.so
+load-module module-console-kit
+.endif
+.ifexists module-systemd-login.so
+load-module module-systemd-login
+.endif
+
+### Modules to allow autoloading of filters (such as echo cancellation)
+### on demand. module-filter-heuristics tries to determine what filters
+### make sense, and module-filter-apply does the heavy-lifting of
+### loading modules and rerouting streams.
+load-module module-filter-heuristics
+load-module module-filter-apply
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/pulseaudio-module-4a-client_git.bb b/ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/pulseaudio-module-4a-client_git.bb
new file mode 100644
index 00000000..b5e9e011
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/pulseaudio-module-4a-client_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "pulseaudio 4A client module"
+DESCRIPTION = "pulseaudio module to work with 4A (AGL Advanced Audio Agent)"
+HOMEPAGE = "https://git.automotivelinux.org/src/pulseaudio-module-4a"
+SECTION = "plugins"
+
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "gitsm://gerrit.automotivelinux.org/gerrit/src/pulseaudio-module-4a.git;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "9cd72ed153f6615ed826b048e1c344bf4640bd2b"
+
+PV = "0.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+DEPENDS += "af-binder systemd json-c pulseaudio"
+RDEPENDS_${PN} = "pulseaudio-module-alsa-sink"
+
+FILES_${PN} += "${libdir}/pulse-*/modules/module-4a-client.so"
diff --git a/ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
new file mode 100644
index 00000000..d8a84990
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
@@ -0,0 +1,7 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "file://default.pa.4a"
+
+do_install_append () {
+ cp ${WORKDIR}/default.pa.4a ${D}${sysconfdir}/pulse/default.pa
+}