diff options
110 files changed, 28318 insertions, 10156 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index db03a27..746615a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -17,11 +17,11 @@ on a particular meta-ivi topic, but please try to do the following first: answered. When creating patches, please use something like: -> git format-patch -s --subject-prefix='meta-ivi][PATCH' origin + git format-patch -s --subject-prefix='meta-ivi][PATCH' origin When sending patches, please use something like: -> git send-email --to=andrei.gherzan@windriver.com --to=holger@windriver.com \ -> --cc=genivi-meta-ivi@lists.genivi.org <generated patch> + git send-email --to=andrei.gherzan@windriver.com --to=holger@windriver.com \ + --cc=genivi-meta-ivi@lists.genivi.org <generated patch> Please refer to: https://wiki.yoctoproject.org/wiki/Contribution_Guidelines#General_Information @@ -31,15 +31,16 @@ Layer Dependencies ------------------ URI: git://git.yoctoproject.org/poky -> branch: master -> revision: 8ac8eca2e3bd8c78e2b31ea974930ed0243258a3 +> branch: fido +> revision: eb4a134a60e3ac26a48379675ad6346a44010339 URI: git://git.openembedded.org/meta-openembedded -> branch: master -> revision: 0d01e1b72333f49c29d1a27ad844c4cd9f90341c +> layer: meta-oe +> branch: fido +> revision: 5b0305d9efa4b5692cd942586fb7aa92dba42d59 Using the above git sha's and the master meta-ivi branch, bitbaking intrepid-image -is known to work (the intrepid-image build should be aligned with GENIVI 7.0). +is known to work (the jupiter-image build should be aligned with GENIVI 8.0). For creating a specific GENIVI compliant image version, please make sure you git checkout the related meta-ivi branch and follow the build instructions @@ -69,28 +70,16 @@ Build a QEMU image that contains GENIVI components You can build a QEMU image that should be GENIVI compliant using the following steps: -1. Run the following command: - > $ source poky/oe-init-build-env - -2. Add the meta-oe, meta-ivi and meta-ivi-bsp layer path to the -$BUILDDIR/conf/bblayers.conf BBLAYERS variable. - -3. Set MACHINE ??= "vexpressa9", MACHINE ??= "qemux86" or MACHINE ??= "qemux86-64" -in $BUILDDIR/conf/local.conf file to build for an emulated ARMv7a, x86 or x86-64 -instruction-set maschine respectively. - -4. Add INCOMPATIBLE_LICENSE = "GPLv3" in $BUILDDIR/conf/local.conf file. +1. Export TEMPLATECONF to pick up correct configuration for the build +export TEMPLATECONF=/full/path/to/meta-ivi/meta-ivi/conf -5. Set DISTRO ?= "poky-ivi-systemd" in $BUILDDIR/conf/local.conf file. - -6. Optional: In $BUILDDIR/conf/local.conf file, you may uncomment -BB_NUMBER_THREADS = "4" and PARALLEL_MAKE = "-j 4" if you build on a -quad-core machine. +2. Run the following command: + > $ source poky/oe-init-build-env -7. Build intrepid-image including GENIVI 7.0 (Intrepid) components +3. Build intrepid-image including GENIVI 8.0 (Jupiter) components > $ bitbake intrepid-image -8. Run the emulator: +4. Run the emulator: > for qemu vexpressa9: > $ PATH_TO_META_IVI/meta-ivi/scripts/runqemu intrepid-image vexpressa9 > @@ -100,10 +89,6 @@ quad-core machine. > for qemu x86-64: > $ PATH_TO_POKY/poky/scripts/runqemu intrepid-image qemux86-64 -9. To login use these credentials: +5. To login use these credentials: > User - root > Password - root - -You may point an environment variable named TEMPLATECONF to the meta-ivi/conf -directory for the template local.conf & bblayers.conf files; in which case you -may skip steps 2. to 6. diff --git a/meta-ivi-bsp/recipes-bsp/u-boot/u-boot_2013.07.bbappend b/meta-ivi-bsp/recipes-bsp/u-boot/u-boot_2015.01.bbappend index d33c17d..6becfb8 100644 --- a/meta-ivi-bsp/recipes-bsp/u-boot/u-boot_2013.07.bbappend +++ b/meta-ivi-bsp/recipes-bsp/u-boot/u-boot_2015.01.bbappend @@ -2,4 +2,4 @@ FILESEXTRAPATHS_append := ":${THISDIR}/files" # Patch for removing autostart countdown -SRC_URI_append_imx53qsb += "file://no_delay.patch" +SRC_URI_append_imx53qsb = " file://no_delay.patch" diff --git a/meta-ivi-bsp/recipes-graphics/wayland/weston_1.5.0.bbappend b/meta-ivi-bsp/recipes-graphics/wayland/weston_1.6.0.bbappend index ce963ea..fb6f3b0 100644 --- a/meta-ivi-bsp/recipes-graphics/wayland/weston_1.5.0.bbappend +++ b/meta-ivi-bsp/recipes-graphics/wayland/weston_1.6.0.bbappend @@ -1,4 +1,4 @@ -RDEPENDS_${PN}_append = " libegl-gallium llvm3.3 " +RDEPENDS_${PN}_append = " llvm3.3 " EXTRA_OECONF_append_vexpressa9 = "\ --enable-simple-egl-clients \ diff --git a/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/qemux86.cfg b/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/qemux86.cfg index a0efded..99c0c4f 100644 --- a/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/qemux86.cfg +++ b/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/qemux86.cfg @@ -1,4 +1,4 @@ -# Genivi configs +# GENIVI configs #additional configs requested by SysInfra EG CONFIG_MEDIA_SUPPORT=y @@ -13,7 +13,16 @@ CONFIG_EXPERIMENTAL=y CONFIG_KEYS=y CONFIG_CRYPTO=y CONFIG_ECRYPT_FS=y +CONFIG_ECRYPT_FS_MESSAGING=y CONFIG_QUOTA=y # Bluetooth support CONFIG_BT=y +CONFIG_BT_BNEP=y +CONFIG_BT_HIDP=m +CONFIG_CRC_ITU_T=m + +# Near Field Communication (NFC) +CONFIG_NFC=y +CONFIG_NFC_DIGITAL=m +CONFIG_NFC_SIM=m diff --git a/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/qemux86_64.cfg b/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/qemux86_64.cfg index 994e0bc..99c0c4f 100644 --- a/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/qemux86_64.cfg +++ b/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/qemux86_64.cfg @@ -1,4 +1,4 @@ -#Genivi configs +# GENIVI configs #additional configs requested by SysInfra EG CONFIG_MEDIA_SUPPORT=y @@ -13,7 +13,16 @@ CONFIG_EXPERIMENTAL=y CONFIG_KEYS=y CONFIG_CRYPTO=y CONFIG_ECRYPT_FS=y +CONFIG_ECRYPT_FS_MESSAGING=y CONFIG_QUOTA=y # Bluetooth support CONFIG_BT=y +CONFIG_BT_BNEP=y +CONFIG_BT_HIDP=m +CONFIG_CRC_ITU_T=m + +# Near Field Communication (NFC) +CONFIG_NFC=y +CONFIG_NFC_DIGITAL=m +CONFIG_NFC_SIM=m diff --git a/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/vexpress_a9.cfg b/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/vexpress_a9.cfg index 00ce31c..fb81b22 100644 --- a/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/vexpress_a9.cfg +++ b/meta-ivi-bsp/recipes-kernel/linux/linux-yocto/vexpress_a9.cfg @@ -1,4 +1,4 @@ -3# Kernel fragment taken from linaro.org +# Kernel fragment taken from linaro.org # http://releases.linaro.org/platform/linaro-n/hwpacks/11.09/ CONFIG_AC97_BUS=y @@ -826,7 +826,7 @@ CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y CONFIG_ZONE_DMA_FLAG=0 -#Genivi configs +# GENIVI configs #additional configs requested by SysInfra EG CONFIG_MEDIA_SUPPORT=y @@ -843,7 +843,16 @@ CONFIG_EXPERIMENTAL=y CONFIG_KEYS=y CONFIG_CRYPTO=y CONFIG_ECRYPT_FS=y +CONFIG_ECRYPT_FS_MESSAGING=y CONFIG_QUOTA=y # Bluetooth support CONFIG_BT=y +ONFIG_BT_BNEP=y +CONFIG_BT_HIDP=m +CONFIG_CRC_ITU_T=m + +# Near Field Communication (NFC) +CONFIG_NFC=y +CONFIG_NFC_DIGITAL=m +CONFIG_NFC_SIM=m diff --git a/meta-ivi-bsp/recipes-kernel/linux/linux-yocto_3.10.bbappend b/meta-ivi-bsp/recipes-kernel/linux/linux-yocto_3.10.bbappend deleted file mode 100644 index 11629d8..0000000 --- a/meta-ivi-bsp/recipes-kernel/linux/linux-yocto_3.10.bbappend +++ /dev/null @@ -1,23 +0,0 @@ -# find defconfig path -FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" - -# Kernel configs -SRC_URI_append_beagleboard = " \ - file://beagle_qemu.cfg \ - " - -SRC_URI_append_vexpressa9 = " \ - file://vexpress_a9.cfg \ - " - -SRC_URI_append_qemux86 = " \ - file://qemux86.cfg \ - " - -SRC_URI_append_qemux86-64 = " \ - file://qemux86_64.cfg \ - " - -KMACHINE_vexpressa9 = "beagleboard" -SRCREV_machine_vexpressa9 ?= "${AUTOREV}" -COMPATIBLE_MACHINE_vexpressa9 = "vexpressa9" diff --git a/meta-ivi-bsp/recipes-kernel/linux/linux-yocto_3.14.bbappend b/meta-ivi-bsp/recipes-kernel/linux/linux-yocto_3.14.bbappend new file mode 100644 index 0000000..5fc758d --- /dev/null +++ b/meta-ivi-bsp/recipes-kernel/linux/linux-yocto_3.14.bbappend @@ -0,0 +1,13 @@ +# Find defconfig path +FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" + +# Kernel configs +SRC_URI_append_beagleboard = " file://beagle_qemu.cfg" +SRC_URI_append_vexpressa9 = " file://vexpress_a9.cfg" +SRC_URI_append_qemux86 = " file://qemux86.cfg" +SRC_URI_append_qemux86-64 = " file://qemux86_64.cfg" + +# vexpress-a9 support +KMACHINE_vexpressa9 = "beagleboard" +SRCREV_machine_vexpressa9 ?= "${AUTOREV}" +COMPATIBLE_MACHINE_vexpressa9 = "vexpressa9" diff --git a/meta-ivi-demo/README.md b/meta-ivi-demo/README.md index 816d22e..3acc194 100644 --- a/meta-ivi-demo/README.md +++ b/meta-ivi-demo/README.md @@ -1,64 +1,57 @@ -meta-ivi-demo, the Yocto layer for the GENIVI Demo Platform -=========================================================== +meta-ivi-demo, the meta-ivi demo layer +====================================== -This layer's purpose is to provide a GENIVI Demo Platform (GDP) reference -image build. The layer supports cross-architecture application development -using QEMU emulation and a SDK. +This layer's purpose is to provide a demo image build. The layer supports +cross-architecture application development using QEMU emulation and a SDK. Please see the [MAINTAINERS](http://git.yoctoproject.org/cgit/cgit.cgi/meta-ivi/tree/MAINTAINERS) file for information on contacting the maintainers of this layer, as well as instructions for submitting patches. -The GENIVI Demo Platform project welcomes contributions. You can contribute code, -submit patches, report bugs, answer questions on our mailing lists and -review and edit our documentation and much more. - -Subscribe to the mailing list - [here](https://lists.genivi.org/mailman/listinfo/genivi-meta-ivi). -View or Report bugs - [here](https://bugs.genivi.org/buglist.cgi?product=meta-ivi). -Read or Edit the wiki - [here](http://wiki.projects.genivi.org/index.php/meta-ivi). -For information about the Yocto Project, see the - [Yocto Project website](https://www.yoctoproject.org). -For information about the Yocto GENIVI Baseline, see the - [Yocto GENIVI Baseline website](http://projects.genivi.org/GENIVI_Baselines/meta-ivi). -For information about the Yocto GENIVI Demo Platform, see the - [Yocto GENIVI Demo Platform website](http://projects.genivi.org/). +We welcome contributions. You can contribute code, submit patches, report bugs, +answer questions on our mailing lists and review and edit our documentation +and much more. + +Subscribe to the mailing list + [here](https://lists.genivi.org/mailman/listinfo/genivi-meta-ivi). +View or Report bugs + [here](https://bugs.genivi.org/buglist.cgi?product=meta-ivi). +Read or Edit the wiki + [here](http://wiki.projects.genivi.org/index.php/meta-ivi). +For information about the Yocto Project, see the + [Yocto Project website](https://www.yoctoproject.org). +For information about the Yocto GENIVI Baseline, see the + [Yocto GENIVI Baseline website](http://projects.genivi.org/GENIVI_Baselines/meta-ivi). Layer Dependencies ------------------ URI: git://git.yoctoproject.org/meta-ivi -> branch: master -> revision: - -URI: git://git.yoctoproject.org/meta-renesas/meta-rcar-gen2 -> branch: master +> branch: 7.0 > revision: -URI: https://github.com/meta-qt5/meta-qt5.git -> branch: master -> revision: 02861e677ab95b537efb331fb7faea4e5851d2ea - URI: git://git.openembedded.org/meta-openembedded -> branch: master -> revision: 1513d0e31f609ffcde9a116a50bfb0360b9e7ecf +> layers: meta-oe +> branch: dizzy +> revision: 6413cdb66acf43059f94d0076ec9b8ad6a475b35 URI: git://git.yoctoproject.org/poky -> branch: master -> revision: fd0398f2c1355597a95242e6c8400eae6ad60fa4 - -URI: git://git.linaro.org/openembedded/meta-linaro.git -> branch: master -> revision: 7345c6089b2afbf65baf64224c14bbb9d38e2241 +> branch: dizzy +> revision: 9bef9b9dddfaa90cecea75937d97a8d96f006663 Supported Machines ------------------ -We do support the builds for currently two machines: +We do support the builds for currently the following machines: * QEMU (x86-64) - emulated machine: qemux86-64 -* Renesas R-Car Gen2 (R-Car M2) - machine: koelsch + +Miscellaneous +------------- + +For the QEMU machine, in order to have audio, the emulation should be done +like: + +> QEMU_AUDIO_DRV=alsa runqemu ivi-image-demo qemux86-64 audio diff --git a/meta-ivi-demo/conf/local.conf.sample b/meta-ivi-demo/conf/local.conf.sample index 5c26f74..0c5137c 100644 --- a/meta-ivi-demo/conf/local.conf.sample +++ b/meta-ivi-demo/conf/local.conf.sample @@ -18,11 +18,6 @@ # of emulated machines available which can boot and run in the QEMU emulator: # #MACHINE ?= "qemux86-64" -# -# There are also the following hardware board target machines included for -# demonstration purposes: -# -#MACHINE ?= "koelsch" # # This sets the default machine to be vexpressa9 if no other machine is selected: @@ -93,7 +88,7 @@ INCOMPATIBLE_LICENSE ?= "GPLv3" # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" # We default to rpm: -PACKAGE_CLASSES ?= "package_rpm package_ipk" +PACKAGE_CLASSES ?= "package_rpm" # # SDK/ADT target architecture @@ -203,7 +198,6 @@ BB_DISKMON_DIRS = "\ #file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \ #file://.* file:///some/local/dir/sstate/PATH" - # # Qemu configuration # @@ -214,7 +208,6 @@ BB_DISKMON_DIRS = "\ #PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" #ASSUME_PROVIDED += "libsdl-native" - # CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to # track the version of this file when it was generated. This can safely be ignored if # this doesn't mean anything to you. diff --git a/meta-ivi-demo/recipes-demo-platform/images/ivi-image-demo-sdk.bb b/meta-ivi-demo/recipes-demo-platform/images/ivi-image-demo-sdk.bb new file mode 100644 index 0000000..6845396 --- /dev/null +++ b/meta-ivi-demo/recipes-demo-platform/images/ivi-image-demo-sdk.bb @@ -0,0 +1,24 @@ +require ivi-image-demo.bb + +DESCRIPTION = "meta-ivi demo image that includes everything within \ +ivi-image-demo plus meta-toolchain, development headers and libraries to \ +form a standalone SDK." + +inherit populate_sdk + +QT5PKG = "" + +IMAGE_FEATURES_append = "\ + debug-tweaks \ + dev-pkgs \ + eclipse-debug \ + ${QT5PKG} \ + tools-debug \ + tools-profile \ + tools-sdk \ + tools-testapps \ + " + +IMAGE_INSTALL_append = "\ + kernel-dev \ + " diff --git a/meta-ivi-demo/recipes-demo-platform/images/ivi-image-demo.bb b/meta-ivi-demo/recipes-demo-platform/images/ivi-image-demo.bb index 593d4f2..58e85b5 100644 --- a/meta-ivi-demo/recipes-demo-platform/images/ivi-image-demo.bb +++ b/meta-ivi-demo/recipes-demo-platform/images/ivi-image-demo.bb @@ -1,22 +1,18 @@ # Base this image on generic IVI image require recipes-yocto-ivi/images/ivi-image.inc -PV = "0.2+snapshot-${DATE}" +DESCRIPTION = "meta-ivi demo image" +PV = "0.1+snapshot-${DATE}" + +IMAGE_FEATURES_append = " \ + ssh-server-openssh \ + " IMAGE_INSTALL_append = " \ + packagegroup-specific-component-p1 \ packagegroup-abstract-component-p1 \ packagegroup-placeholder-component-p1 \ packagegroup-specific-component-p2 \ packagegroup-abstract-component-p2 \ - packagegroup-specific-component-p1 \ - packagegroup-gdp-browser \ - packagegroup-gdp-qt5 \ - packagegroup-gdp-gps \ - boost \ - automotive-message-broker \ - " -IMAGE_INSTALL_append_koelsch = " \ - wayland-wsegl \ - wayland-wsegl-dev \ " diff --git a/meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-browser.bb b/meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-browser.bb deleted file mode 100644 index 8e3d65b..0000000 --- a/meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-browser.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "Genivi Browser PoC components" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${IVI_COREBASE}/meta-ivi/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" - -# Avoid hardcoding the full layer path into the checksums -LIC_FILES_CHKSUM[vardepsexclude] += "IVI_COREBASE" - -PR = "r0" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-gdp-browser \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - browser-poc \ - " diff --git a/meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-gps.bb b/meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-gps.bb deleted file mode 100644 index f69be08..0000000 --- a/meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-gps.bb +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION = "QT5 components" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${IVI_COREBASE}/meta-ivi/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" - -# Avoid hardcoding the full layer path into the checksums -LIC_FILES_CHKSUM[vardepsexclude] += "IVI_COREBASE" - -PR = "r0" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-gdp-gps \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - gpsd \ - gps-utils \ - gpsd-conf \ - gpsd-dev \ - gpsd-gpsctl \ - gpsd-udev \ - libgps \ - libgpsd \ - python-pygps \ - " diff --git a/meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-qt5.bb b/meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-qt5.bb deleted file mode 100644 index 877d9e0..0000000 --- a/meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-qt5.bb +++ /dev/null @@ -1,42 +0,0 @@ -DESCRIPTION = "QT5 components" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${IVI_COREBASE}/meta-ivi/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" - -# Avoid hardcoding the full layer path into the checksums -LIC_FILES_CHKSUM[vardepsexclude] += "IVI_COREBASE" - -PR = "r0" - -inherit packagegroup - -PACKAGES = "\ - packagegroup-gdp-qt5 \ - " - -ALLOW_EMPTY_${PN} = "1" - -RDEPENDS_${PN} += "\ - qtbase \ - qtbase-dev \ - qtbase-fonts \ - qtbase-fonts-pfa \ - qtbase-fonts-pfb \ - qtbase-fonts-qpf \ - qtbase-fonts-ttf-dejavu \ - qtbase-fonts-ttf-vera \ - qtbase-plugins \ - qtbase-staticdev \ - qtbase-tools \ - qtdeclarative \ - qtdeclarative-plugins \ - qtdeclarative-tools \ - qtquick1 \ - qtquick1-plugins \ - qtquick1-tools \ - qtwayland \ - qtwayland-examples \ - qtwayland-plugins \ - qtwayland-tools \ - qtwebkit \ - qtwebkit-qmlplugins \ - " diff --git a/meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker/0001-CMakeLists.txt-replaced-APPEND-with-SET.patch b/meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker/0001-CMakeLists.txt-replaced-APPEND-with-SET.patch deleted file mode 100644 index bd5c66c..0000000 --- a/meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker/0001-CMakeLists.txt-replaced-APPEND-with-SET.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 69bfaed8f4ac7d36d3b1f53df6e5ec963f9f7a3e Mon Sep 17 00:00:00 2001 -From: Holger Behrens <holger.behrens@windriver.com> -Date: Tue, 19 Aug 2014 15:54:07 +0200 -Subject: [PATCH] CMakeLists.txt: replaced APPEND with SET - -Signed-off-by: Holger Behrens <holger.behrens@windriver.com> ---- - CMakeLists.txt | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 825786e..1eff316 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -42,7 +42,8 @@ option(usebluez5 "use bluez 5 API" OFF) - - #turn on -fpic/-fpie: - set(CMAKE_POSITION_INDEPENDENT_CODE ON) --list(APPEND CMAKE_CXX_FLAGS "-fpie -pie -std=c++11") -+#list(APPEND CMAKE_CXX_FLAGS "-fpie -pie -std=c++11") -+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpie -pie -std=c++11") - - if(opencvlux_plugin) - message(STATUS "OpenCV Lux plugin enabled") --- -2.0.4 - diff --git a/meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker/ambd.service b/meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker/ambd.service deleted file mode 100644 index e06e242..0000000 --- a/meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker/ambd.service +++ /dev/null @@ -1,15 +0,0 @@ -# -# ambd systemd service unit file -# - -[Unit] -Description=Automotive Message Broker -After=syslog.target - -[Service] -Type=dbus -BusName=org.automotive.message.broker -ExecStart=/usr/bin/ambd - -[Install] -WantedBy=multi-user.target diff --git a/meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker_git.bb b/meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker_git.bb deleted file mode 100644 index 19f0264..0000000 --- a/meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker_git.bb +++ /dev/null @@ -1,36 +0,0 @@ -SUMMARY = "automotive message broker" -DESCRIPTION = "Automotive-message-broker abstracts the details of the network \ -away from applications and provides a standard API for applications to easily \ -get the required information" -HOMEPGAE = "https://github.com/otcshare/automotive-message-broker/wiki" -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=b42382de5d854b9bb598acf2e8827de3" - -DEPENDS = "glib-2.0 util-linux sqlite3 qtbase boost json-c libtool gpsd" - -PV = "0.11.811+git${SRCPV}" - -SRC_URI = "git://github.com/otcshare/automotive-message-broker;protocol=http \ - file://ambd.service \ - file://0001-CMakeLists.txt-replaced-APPEND-with-SET.patch \ - " - -SRC_URI[md5sum] = "3b6015f3e8e1522bfde9dfb29fda73cd" -SRC_URI[sha256sum] = "8c2101a44ce4ce77d874667bbaffd4e59992bd59de8388a08dd68cb1bff155e3" - -SRCREV = "e848fab97e7e22423decf19eba208c4d9ee40325" -S = "${WORKDIR}/git" - -inherit cmake systemd cmake_qt5 - -SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "ambd.service" - -EXTRA_OECMAKE += " -Denable_icecc=OFF -Dqtmainloop=On" - -do_install_append() { - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/ambd.service ${D}${systemd_unitdir}/system -} - -FILES_${PN} += "${systemd_unitdir}/ambd.service" diff --git a/meta-ivi-demo/recipes-extended/browser-poc/browser-poc-git/COPYING b/meta-ivi-demo/recipes-extended/browser-poc/browser-poc-git/COPYING deleted file mode 100644 index 14e2f77..0000000 --- a/meta-ivi-demo/recipes-extended/browser-poc/browser-poc-git/COPYING +++ /dev/null @@ -1,373 +0,0 @@ -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. diff --git a/meta-ivi-demo/recipes-extended/browser-poc/browser-poc_git.bb b/meta-ivi-demo/recipes-extended/browser-poc/browser-poc_git.bb deleted file mode 100644 index 25c135e..0000000 --- a/meta-ivi-demo/recipes-extended/browser-poc/browser-poc_git.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "GENIVI browser PoC" -DESCRIPTION = "A D-Bus-based software component to test the \ -usability and quality of a web browser that uses the D-Bus interface." - -LICENSE = "MPLv2" -LIC_FILES_CHKSUM = "file://../COPYING;md5=815ca599c9df247a0c7f619bab123dad" - -SRCREV = "531bd41d00509840cf5dfc767995549c27211341" - -DEPENDS = "qtbase qtwebkit" - -SRC_URI = "git://git.projects.genivi.org/browser-poc.git \ - file://COPYING \ - " - -S = "${WORKDIR}/git" -inherit qmake5 - -do_install_append() { - mkdir -p ${D}/opt/browser/bin/ - install ${B}/browser/browser ${D}/opt/browser/bin/ - mkdir -p ${D}/opt/testapp/bin/ - install ${B}/testapp/testapp ${D}/opt/testapp/bin/ -} - -FILES_${PN} += "/opt/browser/bin/* \ - /opt/demoui/* \ - /opt/testapp/bin/* \ - " - -FILES_${PN}-dbg += "/opt/browser/bin/.debug/* \ - /opt/demoui/bin/.debug/* \ - /opt/testapp/bin/.debug/* \ - " diff --git a/meta-ivi-demo/recipes-kernel/linux/linux-yocto_3.10.bbappend b/meta-ivi-demo/recipes-kernel/linux/linux-yocto_3.10.bbappend deleted file mode 100644 index bfc9be7..0000000 --- a/meta-ivi-demo/recipes-kernel/linux/linux-yocto_3.10.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -COMPATIBLE_MACHINE = "koelsch" - -KERNEL_ENABLE_CGROUPS = "1" diff --git a/meta-ivi-demo/recipes-navigation/gpsd/gpsd_3.%.bbappend b/meta-ivi-demo/recipes-navigation/gpsd/gpsd_3.%.bbappend deleted file mode 100644 index d6739da..0000000 --- a/meta-ivi-demo/recipes-navigation/gpsd/gpsd_3.%.bbappend +++ /dev/null @@ -1 +0,0 @@ -PACKAGECONFIG[bluez] = "bluez='true',bluez='false',bluez5" diff --git a/meta-ivi-demo/recipes-qt/qt5/qtbase_5.%.bbappend b/meta-ivi-demo/recipes-qt/qt5/qtbase_5.%.bbappend deleted file mode 100644 index 253b31c..0000000 --- a/meta-ivi-demo/recipes-qt/qt5/qtbase_5.%.bbappend +++ /dev/null @@ -1,6 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" - -DEPENDS_append_koelsch = " libegl" - -PACKAGECONFIG_GL = "${@base_contains('DISTRO_FEATURES', 'opengl', 'gles2', '', d)}" -PACKAGECONFIG_append = " icu" diff --git a/meta-ivi-demo/recipes-qt/qt5/qtwayland-native_git.bbappend b/meta-ivi-demo/recipes-qt/qt5/qtwayland-native_git.bbappend deleted file mode 100644 index 1f5fa55..0000000 --- a/meta-ivi-demo/recipes-qt/qt5/qtwayland-native_git.bbappend +++ /dev/null @@ -1 +0,0 @@ -QT_MODULE_BRANCH = "5.4" diff --git a/meta-ivi-demo/recipes-qt/qt5/qtwayland_git.bbappend b/meta-ivi-demo/recipes-qt/qt5/qtwayland_git.bbappend deleted file mode 100644 index 1f5fa55..0000000 --- a/meta-ivi-demo/recipes-qt/qt5/qtwayland_git.bbappend +++ /dev/null @@ -1 +0,0 @@ -QT_MODULE_BRANCH = "5.4" diff --git a/meta-ivi-demo/recipes-qt/qt5/qtwebkit_5.%.bbappend b/meta-ivi-demo/recipes-qt/qt5/qtwebkit_5.%.bbappend deleted file mode 100644 index c2ff429..0000000 --- a/meta-ivi-demo/recipes-qt/qt5/qtwebkit_5.%.bbappend +++ /dev/null @@ -1 +0,0 @@ -PACKAGECONFIG = "gstreamer010 qtlocation qtmultimedia qtsensors" diff --git a/meta-ivi/conf/bblayers.conf.sample b/meta-ivi/conf/bblayers.conf.sample index 1eeff9d..1c57ab6 100644 --- a/meta-ivi/conf/bblayers.conf.sample +++ b/meta-ivi/conf/bblayers.conf.sample @@ -9,6 +9,7 @@ BBLAYERS ?= " \ ##OEROOT##/meta \ ##OEROOT##/meta-yocto \ ##OEROOT##/meta-yocto-bsp \ + ##OEROOT##/../meta-openembedded/meta-oe \ ##OEROOT##/../meta-ivi/meta-ivi \ ##OEROOT##/../meta-ivi/meta-ivi-bsp \ " diff --git a/meta-ivi/conf/conf-notes.txt b/meta-ivi/conf/conf-notes.txt index b04dbc4..380dda6 100644 --- a/meta-ivi/conf/conf-notes.txt +++ b/meta-ivi/conf/conf-notes.txt @@ -1,4 +1,4 @@ Common targets are: - intrepid-image + jupiter-image ivi-image diff --git a/meta-ivi/conf/distro/poky-ivi-systemd.conf b/meta-ivi/conf/distro/poky-ivi-systemd.conf index 2d0eab5..1a24fd1 100644 --- a/meta-ivi/conf/distro/poky-ivi-systemd.conf +++ b/meta-ivi/conf/distro/poky-ivi-systemd.conf @@ -1,7 +1,7 @@ DISTRO = "poky-ivi-systemd" DISTRO_NAME = "Yocto GENIVI Baseline (Poky/meta-ivi)" -DISTRO_VERSION = "7.0+snapshot-${DATE}" -DISTRO_CODENAME ="intrepid" +DISTRO_VERSION = "8.0+snapshot-${DATE}" +DISTRO_CODENAME ="jupiter" MAINTAINER = "meta-ivi <genivi-meta-ivi@lists.genivi.org>" @@ -19,11 +19,20 @@ DISTRO_FEATURES_append = " bluetooth systemd opengl wayland pam" DISTRO_FEATURES_remove = "x11" DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit" -PREFERRED_VERSION_linux-yocto ?= "3.10%" -PREFERRED_VERSION_linux-yocto_qemux86 ?= "3.10%" -PREFERRED_VERSION_linux-yocto_qemux86-64 ?= "3.10%" -PREFERRED_VERSION_linux-yocto_qemuarm ?= "3.10%" -PREFERRED_VERSION_linux-yocto_vexpressa9 ?= "3.10%" +PREFERRED_VERSION_linux-yocto ?= "3.14%" +PREFERRED_VERSION_linux-yocto_qemux86 ?= "3.14%" +PREFERRED_VERSION_linux-yocto_qemux86-64 ?= "3.14%" +PREFERRED_VERSION_linux-yocto_qemuarm ?= "3.14%" +PREFERRED_VERSION_linux-yocto_vexpressa9 ?= "3.14%" + +# prefer gstreamer 1.4.x over 1.2.3 +PREFERRED_VERSION_gstreamer1.0 ?= "1.4.%" +PREFERRED_VERSION_gstreamer1.0-plugins-bad ?= "1.4.%" +PREFERRED_VERSION_gstreamer1.0-plugins-base ?= "1.4.%" +PREFERRED_VERSION_gstreamer1.0-plugins-good ?= "1.4.%" +PREFERRED_VERSION_gstreamer1.0-plugins-ugly ?= "1.4.%" +PREFERRED_VERSION_gstreamer1.0-libav ?= "1.4.%" +PREFERRED_VERSION_gstreamer1.0-omx ?= "1.2.%" POKYQEMUDEPS = "${@bb.utils.contains("INCOMPATIBLE_LICENSE", "GPLv3", "", "packagegroup-core-device-devel",d)}" DISTRO_EXTRA_RDEPENDS_append_qemuarm = " ${POKYQEMUDEPS}" @@ -46,9 +55,9 @@ XSERVER ?= "xserver-xorg \ xf86-input-mouse \ xf86-input-keyboard \ mesa-driver-swrast \ - ${@base_contains("MACHINE_ARCH", "qemux86", "xf86-video-vmware", "", d)} \ - ${@base_contains("MACHINE_ARCH", "qemux86_64", "xf86-video-vmware", "", d)} \ - ${@base_contains("MACHINE_ARCH", "vexpressa9", "xf86-video-fbdev", "", d)} \ + ${@bb.utils.contains("MACHINE_ARCH", "qemux86", "xf86-video-vmware", "", d)} \ + ${@bb.utils.contains("MACHINE_ARCH", "qemux86_64", "xf86-video-vmware", "", d)} \ + ${@bb.utils.contains("MACHINE_ARCH", "vexpressa9", "xf86-video-fbdev", "", d)} \ " PREMIRRORS ??= "\ diff --git a/meta-ivi/conf/local.conf.sample b/meta-ivi/conf/local.conf.sample index 2489416..1187cce 100644 --- a/meta-ivi/conf/local.conf.sample +++ b/meta-ivi/conf/local.conf.sample @@ -40,7 +40,7 @@ MACHINE ??= "vexpressa9" # # The default is a downloads directory under TOPDIR which is the build directory. # -#DL_DIR ?= "${TOPDIR}/downloads" +#DL_DIR ?= "${TOPDIR}/../downloads" # # Where to place shared-state files @@ -205,6 +205,17 @@ BB_DISKMON_DIRS = "\ #file://.* file:///some/local/dir/sstate/PATH" +# +# Qemu configuration +# +# By default qemu will build with a builtin VNC server where graphical output can be +# seen. The two lines below enable the SDL backend too. This assumes there is a +# libsdl library available on your build system. +PACKAGECONFIG_append_pn-qemu-native = " sdl" +PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" +ASSUME_PROVIDED += "libsdl-native" + + # CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to # track the version of this file when it was generated. This can safely be ignored if # this doesn't mean anything to you. diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5/0001-plugins-Add-initial-code-for-service-plugin.patch b/meta-ivi/recipes-connectivity/bluez5/bluez5/0001-plugins-Add-initial-code-for-service-plugin.patch new file mode 100644 index 0000000..9affbbe --- /dev/null +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5/0001-plugins-Add-initial-code-for-service-plugin.patch @@ -0,0 +1,97 @@ +From 5b444f8930a2635d52a676f0600e80828cc876c9 Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Sun, 5 Jan 2014 18:02:56 +0200 +Subject: [PATCH 01/12] plugins: Add initial code for service plugin + +This plugin will be used to control services individually. +--- + Makefile.plugins | 8 ++++++++ + configure.ac | 4 ++++ + plugins/service.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 56 insertions(+) + create mode 100644 plugins/service.c + +diff --git a/Makefile.plugins b/Makefile.plugins +index f0eada9..3ab27e2 100644 +--- a/Makefile.plugins ++++ b/Makefile.plugins +@@ -119,3 +119,11 @@ plugins_sixaxis_la_LDFLAGS = $(AM_LDFLAGS) -module -avoid-version \ + -no-undefined @UDEV_LIBS@ + plugins_sixaxis_la_CFLAGS = $(AM_CFLAGS) -fvisibility=hidden @UDEV_CFLAGS@ + endif ++ ++if SERVICE ++plugin_LTLIBRARIES += plugins/service.la ++plugins_service_la_SOURCES = plugins/service.c ++plugins_service_la_LDFLAGS = $(AM_LDFLAGS) -module -avoid-version \ ++ -no-undefined ++plugins_service_la_CFLAGS = $(AM_CFLAGS) -fvisibility=hidden ++endif +diff --git a/configure.ac b/configure.ac +index d858ff6..6d31dd3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -221,6 +221,10 @@ AC_ARG_ENABLE(sixaxis, AC_HELP_STRING([--enable-sixaxis], + AM_CONDITIONAL(SIXAXIS, test "${enable_sixaxis}" = "yes" && + test "${enable_udev}" != "no") + ++AC_ARG_ENABLE(service, AC_HELP_STRING([--enable-service], ++ [enable service plugin]), [enable_service=${enableval}]) ++AM_CONDITIONAL(SERVICE, test "${enable_service}" = "yes") ++ + if (test "${prefix}" = "NONE"); then + dnl no prefix and no localstatedir, so default to /var + if (test "$localstatedir" = '${prefix}/var'); then +diff --git a/plugins/service.c b/plugins/service.c +new file mode 100644 +index 0000000..e63d8a8 +--- /dev/null ++++ b/plugins/service.c +@@ -0,0 +1,44 @@ ++/* ++ * ++ * BlueZ - Bluetooth protocol stack for Linux ++ * ++ * Copyright (C) 2014 Intel Corporation. ++ * ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program 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 General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include <config.h> ++#endif ++ ++#include "src/plugin.h" ++#include "src/log.h" ++ ++static int service_init(void) ++{ ++ DBG(""); ++ ++ return 0; ++} ++ ++static void service_exit(void) ++{ ++ DBG(""); ++} ++ ++BLUETOOTH_PLUGIN_DEFINE(service, VERSION, BLUETOOTH_PLUGIN_PRIORITY_DEFAULT, ++ service_init, service_exit) +-- +2.2.0 + diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5/0002-plugins-service-Add-initial-code.patch b/meta-ivi/recipes-connectivity/bluez5/bluez5/0002-plugins-service-Add-initial-code.patch new file mode 100644 index 0000000..bbb6fef --- /dev/null +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5/0002-plugins-service-Add-initial-code.patch @@ -0,0 +1,168 @@ +From 7ddb6d998cf56da8e3d21c4c879cfdb0b4b20150 Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Sun, 5 Jan 2014 19:08:29 +0200 +Subject: [PATCH 02/12] plugins/service: Add initial code + +Add initial code that creates service objects data. +--- + plugins/service.c | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 131 insertions(+), 1 deletion(-) + +diff --git a/plugins/service.c b/plugins/service.c +index e63d8a8..0c22d79 100644 +--- a/plugins/service.c ++++ b/plugins/service.c +@@ -25,19 +25,149 @@ + #include <config.h> + #endif + +-#include "src/plugin.h" ++#include <stdio.h> ++#include <errno.h> ++#include <unistd.h> ++ ++#include <glib.h> ++#include <gdbus/gdbus.h> ++ ++#include "lib/uuid.h" + #include "src/log.h" ++#include "src/plugin.h" ++#include "src/dbus-common.h" ++#include "src/error.h" ++#include "src/adapter.h" ++#include "src/device.h" ++#include "src/service.h" ++#include "src/profile.h" ++ ++#define SERVICE_INTERFACE "org.bluez.Service1" ++ ++static unsigned int service_id = 0; ++static GSList *services = NULL; ++ ++struct service_data { ++ struct btd_service *service; ++ char *path; ++}; ++ ++static struct service_data *find_data(struct btd_service *service) ++{ ++ GSList *l; ++ ++ for (l = services; l; l = l->next) { ++ struct service_data *data = l->data; ++ ++ if (data->service == service) ++ return data; ++ } ++ ++ return NULL; ++} ++ ++static void data_free(void *user_data) ++{ ++ struct service_data *data = user_data; ++ ++ g_free(data->path); ++ g_free(data); ++} ++ ++static void data_remove(struct service_data *data) ++{ ++ services = g_slist_remove(services, data); ++ g_dbus_unregister_interface(btd_get_dbus_connection(), data->path, ++ SERVICE_INTERFACE); ++} ++ ++static DBusMessage *service_disconnect(DBusConnection *conn, DBusMessage *msg, ++ void *user_data) ++{ ++ return btd_error_not_available(msg); ++} ++ ++static DBusMessage *service_connect(DBusConnection *conn, DBusMessage *msg, ++ void *user_data) ++{ ++ return btd_error_not_available(msg); ++} ++ ++static const GDBusMethodTable service_methods[] = { ++ { GDBUS_ASYNC_METHOD("Disconnect", NULL, NULL, service_disconnect) }, ++ { GDBUS_ASYNC_METHOD("Connect", NULL, NULL, service_connect) }, ++ {} ++}; ++ ++static struct service_data *service_get_data(struct btd_service *service) ++{ ++ struct btd_device *dev = btd_service_get_device(service); ++ struct btd_profile *p = btd_service_get_profile(service); ++ struct service_data *data; ++ ++ data = find_data(service); ++ if (data != NULL) ++ return data; ++ ++ data = g_new0(struct service_data, 1); ++ data->path = g_strdup_printf("%s/%s", btd_device_get_path(dev), ++ p->remote_uuid); ++ data->path = g_strdelimit(data->path, "-", '_'); ++ data->service = service; ++ if (g_dbus_register_interface(btd_get_dbus_connection(), ++ data->path, SERVICE_INTERFACE, ++ service_methods, NULL, ++ NULL, data, ++ data_free) == FALSE) { ++ error("Unable to register service interface for %s", ++ data->path); ++ data_free(data); ++ return NULL; ++ } ++ ++ services = g_slist_prepend(services, data); ++ ++ DBG("%s", data->path); ++ ++ return data; ++} ++ ++static void service_cb(struct btd_service *service, ++ btd_service_state_t old_state, ++ btd_service_state_t new_state, ++ void *user_data) ++{ ++ struct service_data *data; ++ ++ data = service_get_data(service); ++ if (!data) ++ return; ++ ++ switch (new_state) { ++ case BTD_SERVICE_STATE_UNAVAILABLE: ++ data_remove(data); ++ break; ++ default: ++ return; ++ } ++} + + static int service_init(void) + { + DBG(""); + ++ service_id = btd_service_add_state_cb(service_cb, NULL); ++ + return 0; + } + + static void service_exit(void) + { + DBG(""); ++ ++ btd_service_remove_state_cb(service_id); ++ ++ g_slist_free_full(services, data_free); + } + + BLUETOOTH_PLUGIN_DEFINE(service, VERSION, BLUETOOTH_PLUGIN_PRIORITY_DEFAULT, +-- +2.2.0 + diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5/0003-plugins-service-Add-State-property.patch b/meta-ivi/recipes-connectivity/bluez5/bluez5/0003-plugins-service-Add-State-property.patch new file mode 100644 index 0000000..da2ac79 --- /dev/null +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5/0003-plugins-service-Add-State-property.patch @@ -0,0 +1,88 @@ +From 879cd4b30144c1b16f1b4f97a3bb28c217bf949d Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Mon, 6 Jan 2014 16:02:27 +0200 +Subject: [PATCH 03/12] plugins/service: Add State property + +--- + plugins/service.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 46 insertions(+), 3 deletions(-) + +diff --git a/plugins/service.c b/plugins/service.c +index 0c22d79..b660810 100644 +--- a/plugins/service.c ++++ b/plugins/service.c +@@ -93,6 +93,46 @@ static DBusMessage *service_connect(DBusConnection *conn, DBusMessage *msg, + return btd_error_not_available(msg); + } + ++static const char *data_get_state(struct service_data *data) ++{ ++ btd_service_state_t state = btd_service_get_state(data->service); ++ int err; ++ ++ switch (state) { ++ case BTD_SERVICE_STATE_UNAVAILABLE: ++ return "unavailable"; ++ case BTD_SERVICE_STATE_DISCONNECTED: ++ err = btd_service_get_error(data->service); ++ return err < 0 ? "error" : "disconnected"; ++ case BTD_SERVICE_STATE_CONNECTING: ++ return "connecting"; ++ case BTD_SERVICE_STATE_CONNECTED: ++ return "connected"; ++ case BTD_SERVICE_STATE_DISCONNECTING: ++ return "disconnecting"; ++ } ++ ++ return "unknown"; ++} ++ ++static gboolean get_state(const GDBusPropertyTable *property, ++ DBusMessageIter *iter, void *user_data) ++{ ++ struct service_data *data = user_data; ++ const char *state; ++ ++ state = data_get_state(data); ++ ++ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &state); ++ ++ return TRUE; ++} ++ ++static const GDBusPropertyTable service_properties[] = { ++ { "State", "s", get_state, NULL, NULL }, ++ { } ++}; ++ + static const GDBusMethodTable service_methods[] = { + { GDBUS_ASYNC_METHOD("Disconnect", NULL, NULL, service_disconnect) }, + { GDBUS_ASYNC_METHOD("Connect", NULL, NULL, service_connect) }, +@@ -117,7 +157,7 @@ static struct service_data *service_get_data(struct btd_service *service) + if (g_dbus_register_interface(btd_get_dbus_connection(), + data->path, SERVICE_INTERFACE, + service_methods, NULL, +- NULL, data, ++ service_properties, data, + data_free) == FALSE) { + error("Unable to register service interface for %s", + data->path); +@@ -146,10 +186,13 @@ static void service_cb(struct btd_service *service, + switch (new_state) { + case BTD_SERVICE_STATE_UNAVAILABLE: + data_remove(data); +- break; +- default: + return; ++ default: ++ break; + } ++ ++ g_dbus_emit_property_changed(btd_get_dbus_connection(), data->path, ++ SERVICE_INTERFACE, "State"); + } + + static int service_init(void) +-- +2.2.0 + diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5/0004-plugins-service-Add-RemoteUUID-property.patch b/meta-ivi/recipes-connectivity/bluez5/bluez5/0004-plugins-service-Add-RemoteUUID-property.patch new file mode 100644 index 0000000..2643fc9 --- /dev/null +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5/0004-plugins-service-Add-RemoteUUID-property.patch @@ -0,0 +1,46 @@ +From edff2c3b4438603402241c80d60a51c51200b2f0 Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Mon, 6 Jan 2014 16:13:49 +0200 +Subject: [PATCH 04/12] plugins/service: Add RemoteUUID property + +--- + plugins/service.c | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/plugins/service.c b/plugins/service.c +index b660810..7b5783d 100644 +--- a/plugins/service.c ++++ b/plugins/service.c +@@ -128,8 +128,29 @@ static gboolean get_state(const GDBusPropertyTable *property, + return TRUE; + } + ++static gboolean remote_uuid_exists(const GDBusPropertyTable *property, ++ void *user_data) ++{ ++ struct service_data *data = user_data; ++ struct btd_profile *p = btd_service_get_profile(data->service); ++ ++ return p->remote_uuid != NULL; ++} ++ ++static gboolean get_remote_uuid(const GDBusPropertyTable *property, ++ DBusMessageIter *iter, void *user_data) ++{ ++ struct service_data *data = user_data; ++ struct btd_profile *p = btd_service_get_profile(data->service); ++ ++ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &p->remote_uuid); ++ ++ return TRUE; ++} ++ + static const GDBusPropertyTable service_properties[] = { + { "State", "s", get_state, NULL, NULL }, ++ { "RemoteUUID", "s", get_remote_uuid, NULL, remote_uuid_exists }, + { } + }; + +-- +2.2.0 + diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5/0005-plugins-service-Add-LocalUUID-property.patch b/meta-ivi/recipes-connectivity/bluez5/bluez5/0005-plugins-service-Add-LocalUUID-property.patch new file mode 100644 index 0000000..194d95b --- /dev/null +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5/0005-plugins-service-Add-LocalUUID-property.patch @@ -0,0 +1,48 @@ +From bdfbfc2d3d7558fc05c2587ca1b142d9a6abb7be Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Mon, 6 Jan 2014 16:19:39 +0200 +Subject: [PATCH 05/12] plugins/service: Add LocalUUID property + +--- + plugins/service.c | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +diff --git a/plugins/service.c b/plugins/service.c +index 7b5783d..207ac21 100644 +--- a/plugins/service.c ++++ b/plugins/service.c +@@ -148,9 +148,31 @@ static gboolean get_remote_uuid(const GDBusPropertyTable *property, + return TRUE; + } + ++ ++static gboolean local_uuid_exists(const GDBusPropertyTable *property, ++ void *user_data) ++{ ++ struct service_data *data = user_data; ++ struct btd_profile *p = btd_service_get_profile(data->service); ++ ++ return p->local_uuid != NULL; ++} ++ ++static gboolean get_local_uuid(const GDBusPropertyTable *property, ++ DBusMessageIter *iter, void *user_data) ++{ ++ struct service_data *data = user_data; ++ struct btd_profile *p = btd_service_get_profile(data->service); ++ ++ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &p->local_uuid); ++ ++ return TRUE; ++} ++ + static const GDBusPropertyTable service_properties[] = { + { "State", "s", get_state, NULL, NULL }, + { "RemoteUUID", "s", get_remote_uuid, NULL, remote_uuid_exists }, ++ { "LocalUUID", "s", get_local_uuid, NULL, local_uuid_exists }, + { } + }; + +-- +2.2.0 + diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5/0006-plugins-service-Add-implemention-of-.Connect-method.patch b/meta-ivi/recipes-connectivity/bluez5/bluez5/0006-plugins-service-Add-implemention-of-.Connect-method.patch new file mode 100644 index 0000000..3e601ad --- /dev/null +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5/0006-plugins-service-Add-implemention-of-.Connect-method.patch @@ -0,0 +1,104 @@ +From 2b63b5c56bc96e23c11be5b1d31ec80194f68e48 Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Mon, 6 Jan 2014 16:59:36 +0200 +Subject: [PATCH 06/12] plugins/service: Add implemention of .Connect method + +--- + plugins/service.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 52 insertions(+), 1 deletion(-) + +diff --git a/plugins/service.c b/plugins/service.c +index 207ac21..ded4487 100644 +--- a/plugins/service.c ++++ b/plugins/service.c +@@ -50,6 +50,7 @@ static GSList *services = NULL; + struct service_data { + struct btd_service *service; + char *path; ++ DBusMessage *connect; + }; + + static struct service_data *find_data(struct btd_service *service) +@@ -70,6 +71,9 @@ static void data_free(void *user_data) + { + struct service_data *data = user_data; + ++ if (data->connect) ++ dbus_message_unref(data->connect); ++ + g_free(data->path); + g_free(data); + } +@@ -90,7 +94,19 @@ static DBusMessage *service_disconnect(DBusConnection *conn, DBusMessage *msg, + static DBusMessage *service_connect(DBusConnection *conn, DBusMessage *msg, + void *user_data) + { +- return btd_error_not_available(msg); ++ struct service_data *data = user_data; ++ int err; ++ ++ if (data->connect) ++ return btd_error_in_progress(msg); ++ ++ err = btd_service_connect(data->service); ++ if (err < 0) ++ return btd_error_failed(msg, strerror(-err)); ++ ++ data->connect = dbus_message_ref(msg); ++ ++ return NULL; + } + + static const char *data_get_state(struct service_data *data) +@@ -215,6 +231,35 @@ static struct service_data *service_get_data(struct btd_service *service) + return data; + } + ++static void service_connected(struct service_data *data) ++{ ++ DBusMessage *reply; ++ ++ if (!data->connect) ++ return; ++ ++ reply = dbus_message_new_method_return(data->connect); ++ g_dbus_send_message(btd_get_dbus_connection(), reply); ++ dbus_message_unref(data->connect); ++ data->connect = NULL; ++} ++ ++static void service_disconnected(struct service_data *data) ++{ ++ DBusMessage *reply; ++ int err; ++ ++ if (!data->connect) ++ return; ++ ++ err = btd_service_get_error(data->service); ++ ++ reply = btd_error_failed(data->connect, strerror(-err)); ++ g_dbus_send_message(btd_get_dbus_connection(), reply); ++ dbus_message_unref(data->connect); ++ data->connect = NULL; ++} ++ + static void service_cb(struct btd_service *service, + btd_service_state_t old_state, + btd_service_state_t new_state, +@@ -230,6 +275,12 @@ static void service_cb(struct btd_service *service, + case BTD_SERVICE_STATE_UNAVAILABLE: + data_remove(data); + return; ++ case BTD_SERVICE_STATE_CONNECTED: ++ service_connected(data); ++ break; ++ case BTD_SERVICE_STATE_DISCONNECTED: ++ service_disconnected(data); ++ break; + default: + break; + } +-- +2.2.0 + diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5/0007-plugins-service-Add-implemention-of-.Disconnect-meth.patch b/meta-ivi/recipes-connectivity/bluez5/bluez5/0007-plugins-service-Add-implemention-of-.Disconnect-meth.patch new file mode 100644 index 0000000..20176da --- /dev/null +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5/0007-plugins-service-Add-implemention-of-.Disconnect-meth.patch @@ -0,0 +1,72 @@ +From 7c830fb36836b73e0b031a0d52e060922c252583 Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Mon, 6 Jan 2014 17:11:43 +0200 +Subject: [PATCH 07/12] plugins/service: Add implemention of .Disconnect method + +--- + plugins/service.c | 28 +++++++++++++++++++++++++++- + 1 file changed, 27 insertions(+), 1 deletion(-) + +diff --git a/plugins/service.c b/plugins/service.c +index ded4487..69bae8f 100644 +--- a/plugins/service.c ++++ b/plugins/service.c +@@ -51,6 +51,7 @@ struct service_data { + struct btd_service *service; + char *path; + DBusMessage *connect; ++ DBusMessage *disconnect; + }; + + static struct service_data *find_data(struct btd_service *service) +@@ -74,6 +75,9 @@ static void data_free(void *user_data) + if (data->connect) + dbus_message_unref(data->connect); + ++ if (data->disconnect) ++ dbus_message_unref(data->disconnect); ++ + g_free(data->path); + g_free(data); + } +@@ -88,7 +92,22 @@ static void data_remove(struct service_data *data) + static DBusMessage *service_disconnect(DBusConnection *conn, DBusMessage *msg, + void *user_data) + { +- return btd_error_not_available(msg); ++ struct service_data *data = user_data; ++ int err; ++ ++ if (data->disconnect) ++ return btd_error_in_progress(msg); ++ ++ data->disconnect = dbus_message_ref(msg); ++ ++ err = btd_service_disconnect(data->service); ++ if (err == 0) ++ return NULL; ++ ++ dbus_message_unref(data->disconnect); ++ data->disconnect = NULL; ++ ++ return btd_error_failed(msg, strerror(-err)); + } + + static DBusMessage *service_connect(DBusConnection *conn, DBusMessage *msg, +@@ -249,6 +268,13 @@ static void service_disconnected(struct service_data *data) + DBusMessage *reply; + int err; + ++ if (data->disconnect) { ++ reply = dbus_message_new_method_return(data->disconnect); ++ g_dbus_send_message(btd_get_dbus_connection(), reply); ++ dbus_message_unref(data->disconnect); ++ data->connect = NULL; ++ } ++ + if (!data->connect) + return; + +-- +2.2.0 + diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5/0008-plugins-service-Add-Device-property.patch b/meta-ivi/recipes-connectivity/bluez5/bluez5/0008-plugins-service-Add-Device-property.patch new file mode 100644 index 0000000..9cbdb7f --- /dev/null +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5/0008-plugins-service-Add-Device-property.patch @@ -0,0 +1,43 @@ +From d09615e22c2511c8f6404152e80d569e695f8195 Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Tue, 28 Jan 2014 09:43:53 -0800 +Subject: [PATCH 08/12] plugins/service: Add Device property + +--- + plugins/service.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/plugins/service.c b/plugins/service.c +index 69bae8f..128ad7c 100644 +--- a/plugins/service.c ++++ b/plugins/service.c +@@ -150,6 +150,18 @@ static const char *data_get_state(struct service_data *data) + return "unknown"; + } + ++static gboolean get_device(const GDBusPropertyTable *property, ++ DBusMessageIter *iter, void *user_data) ++{ ++ struct service_data *data = user_data; ++ struct btd_device *dev = btd_service_get_device(data->service); ++ const char *path = btd_device_get_path(dev); ++ ++ dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH, &path); ++ ++ return TRUE; ++} ++ + static gboolean get_state(const GDBusPropertyTable *property, + DBusMessageIter *iter, void *user_data) + { +@@ -205,6 +217,7 @@ static gboolean get_local_uuid(const GDBusPropertyTable *property, + } + + static const GDBusPropertyTable service_properties[] = { ++ { "Device", "o", get_device, NULL, NULL }, + { "State", "s", get_state, NULL, NULL }, + { "RemoteUUID", "s", get_remote_uuid, NULL, remote_uuid_exists }, + { "LocalUUID", "s", get_local_uuid, NULL, local_uuid_exists }, +-- +2.2.0 + diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5/0009-plugins-service-Add-Version-property.patch b/meta-ivi/recipes-connectivity/bluez5/bluez5/0009-plugins-service-Add-Version-property.patch new file mode 100644 index 0000000..01971b9 --- /dev/null +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5/0009-plugins-service-Add-Version-property.patch @@ -0,0 +1,49 @@ +From 9770dbd83a39f4511d55df26016d2ff955f04031 Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Fri, 7 Feb 2014 16:04:32 +0200 +Subject: [PATCH 09/12] plugins/service: Add Version property + +--- + plugins/service.c | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/plugins/service.c b/plugins/service.c +index 128ad7c..c2584c0 100644 +--- a/plugins/service.c ++++ b/plugins/service.c +@@ -216,11 +216,32 @@ static gboolean get_local_uuid(const GDBusPropertyTable *property, + return TRUE; + } + ++static gboolean version_exists(const GDBusPropertyTable *property, ++ void *user_data) ++{ ++ struct service_data *data = user_data; ++ uint16_t version = btd_service_get_version(data->service); ++ ++ return version != 0x0000; ++} ++ ++static gboolean get_version(const GDBusPropertyTable *property, ++ DBusMessageIter *iter, void *user_data) ++{ ++ struct service_data *data = user_data; ++ uint16_t version = btd_service_get_version(data->service); ++ ++ dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT16, &version); ++ ++ return TRUE; ++} ++ + static const GDBusPropertyTable service_properties[] = { + { "Device", "o", get_device, NULL, NULL }, + { "State", "s", get_state, NULL, NULL }, + { "RemoteUUID", "s", get_remote_uuid, NULL, remote_uuid_exists }, + { "LocalUUID", "s", get_local_uuid, NULL, local_uuid_exists }, ++ { "Version", "q", get_version, NULL, version_exists }, + { } + }; + +-- +2.2.0 + diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5/0010-plugins-service-Add-AutoConnect-property.patch b/meta-ivi/recipes-connectivity/bluez5/bluez5/0010-plugins-service-Add-AutoConnect-property.patch new file mode 100644 index 0000000..724d832 --- /dev/null +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5/0010-plugins-service-Add-AutoConnect-property.patch @@ -0,0 +1,63 @@ +From dfd1b1988fce28b402c2d6e483b2d07f79428431 Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Fri, 7 Feb 2014 16:56:41 +0200 +Subject: [PATCH 10/12] plugins/service: Add AutoConnect property + +--- + plugins/service.c | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +diff --git a/plugins/service.c b/plugins/service.c +index c2584c0..bca3abd 100644 +--- a/plugins/service.c ++++ b/plugins/service.c +@@ -236,12 +236,46 @@ static gboolean get_version(const GDBusPropertyTable *property, + return TRUE; + } + ++static gboolean get_auto_connect(const GDBusPropertyTable *property, ++ DBusMessageIter *iter, void *user_data) ++{ ++ struct service_data *data = user_data; ++ dbus_bool_t value = btd_service_get_auto_connect(data->service); ++ ++ dbus_message_iter_append_basic(iter, DBUS_TYPE_BOOLEAN, &value); ++ ++ return TRUE; ++} ++ ++static void set_auto_connect(const GDBusPropertyTable *property, ++ DBusMessageIter *value, ++ GDBusPendingPropertySet id, ++ void *user_data) ++{ ++ struct service_data *data = user_data; ++ dbus_bool_t b; ++ ++ if (dbus_message_iter_get_arg_type(value) != DBUS_TYPE_BOOLEAN) { ++ g_dbus_pending_property_error(id, ++ ERROR_INTERFACE ".InvalidArguments", ++ "Invalid arguments in method call"); ++ return; ++ } ++ ++ dbus_message_iter_get_basic(value, &b); ++ ++ btd_service_set_auto_connect(data->service, b); ++ ++ g_dbus_pending_property_success(id); ++} ++ + static const GDBusPropertyTable service_properties[] = { + { "Device", "o", get_device, NULL, NULL }, + { "State", "s", get_state, NULL, NULL }, + { "RemoteUUID", "s", get_remote_uuid, NULL, remote_uuid_exists }, + { "LocalUUID", "s", get_local_uuid, NULL, local_uuid_exists }, + { "Version", "q", get_version, NULL, version_exists }, ++ { "AutoConnect", "b", get_auto_connect, set_auto_connect, NULL }, + { } + }; + +-- +2.2.0 + diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5/0011-plugins-service-Add-Blocked-property.patch b/meta-ivi/recipes-connectivity/bluez5/bluez5/0011-plugins-service-Add-Blocked-property.patch new file mode 100644 index 0000000..4fb4a50 --- /dev/null +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5/0011-plugins-service-Add-Blocked-property.patch @@ -0,0 +1,64 @@ +From fd98f8eec102c01ea1fffccf7f520a5eaf2153e0 Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Sat, 8 Feb 2014 14:46:18 +0200 +Subject: [PATCH 11/12] plugins/service: Add Blocked property + +--- + plugins/service.c | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +diff --git a/plugins/service.c b/plugins/service.c +index bca3abd..d1db278 100644 +--- a/plugins/service.c ++++ b/plugins/service.c +@@ -269,6 +269,39 @@ static void set_auto_connect(const GDBusPropertyTable *property, + g_dbus_pending_property_success(id); + } + ++static gboolean get_blocked(const GDBusPropertyTable *property, ++ DBusMessageIter *iter, void *user_data) ++{ ++ struct service_data *data = user_data; ++ dbus_bool_t value = btd_service_is_blocked(data->service); ++ ++ dbus_message_iter_append_basic(iter, DBUS_TYPE_BOOLEAN, &value); ++ ++ return TRUE; ++} ++ ++static void set_blocked(const GDBusPropertyTable *property, ++ DBusMessageIter *value, ++ GDBusPendingPropertySet id, ++ void *user_data) ++{ ++ struct service_data *data = user_data; ++ dbus_bool_t b; ++ ++ if (dbus_message_iter_get_arg_type(value) != DBUS_TYPE_BOOLEAN) { ++ g_dbus_pending_property_error(id, ++ ERROR_INTERFACE ".InvalidArguments", ++ "Invalid arguments in method call"); ++ return; ++ } ++ ++ dbus_message_iter_get_basic(value, &b); ++ ++ btd_service_set_blocked(data->service, b); ++ ++ g_dbus_pending_property_success(id); ++} ++ + static const GDBusPropertyTable service_properties[] = { + { "Device", "o", get_device, NULL, NULL }, + { "State", "s", get_state, NULL, NULL }, +@@ -276,6 +309,7 @@ static const GDBusPropertyTable service_properties[] = { + { "LocalUUID", "s", get_local_uuid, NULL, local_uuid_exists }, + { "Version", "q", get_version, NULL, version_exists }, + { "AutoConnect", "b", get_auto_connect, set_auto_connect, NULL }, ++ { "Blocked", "b", get_blocked, set_blocked, NULL }, + { } + }; + +-- +2.2.0 + diff --git a/meta-ivi/recipes-connectivity/bluez5/bluez5_%.bbappend b/meta-ivi/recipes-connectivity/bluez5/bluez5_%.bbappend index 9d3bc31..4c776c6 100644 --- a/meta-ivi/recipes-connectivity/bluez5/bluez5_%.bbappend +++ b/meta-ivi/recipes-connectivity/bluez5/bluez5_%.bbappend @@ -1,14 +1,27 @@ +FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" + # # Service API reference implementation # Revision: 5.15 (Horizon) # Homepage: https://collab.genivi.org/wiki/display/genivi/Bluetooth+Stack+Reference+Implementation +# Actual patches copied from: +# https://review.tizen.org/git/?p=platform/upstream/bluez.git;a=commit;h=abb9a439baaaa9cd6f91ba5af8c6e426cdc8ff8e # -PV = "5.15" -PR = "horizon_r1" - -SRC_URI_remove = "http://kernel.org/pub/linux/bluetooth/bluez-5.15.tar.xz" -SRC_URI_append = "git://git.gitorious.org/bluez/vudentzs-clone.git;protocol=http;branch=for-upstream" -SRCREV = "f76472e7983e52580afbf3a47f2f2e29e26514b9" +SRC_URI_append = " \ + file://0001-plugins-Add-initial-code-for-service-plugin.patch \ + file://0002-plugins-service-Add-initial-code.patch \ + file://0003-plugins-service-Add-State-property.patch \ + file://0004-plugins-service-Add-RemoteUUID-property.patch \ + file://0005-plugins-service-Add-LocalUUID-property.patch \ + file://0006-plugins-service-Add-implemention-of-.Connect-method.patch \ + file://0007-plugins-service-Add-implemention-of-.Disconnect-meth.patch \ + file://0008-plugins-service-Add-Device-property.patch \ + file://0009-plugins-service-Add-Version-property.patch \ + file://0010-plugins-service-Add-AutoConnect-property.patch \ + file://0011-plugins-service-Add-Blocked-property.patch \ + " -S = "${WORKDIR}/git" +EXTRA_OECONF += "--enable-service" +PACKAGES =+ " libbluetooth-plugins-service " +FILES_libbluetooth-plugins-service = "${libdir}/bluetooth/plugins/*.so" diff --git a/meta-ivi/recipes-connectivity/connman/connman_%.bbappend b/meta-ivi/recipes-connectivity/connman/connman_%.bbappend deleted file mode 100644 index d2f8e8e..0000000 --- a/meta-ivi/recipes-connectivity/connman/connman_%.bbappend +++ /dev/null @@ -1,6 +0,0 @@ -PACKAGECONFIG_remove = "bluetooth" -PACKAGECONFIG[bluetooth] = "--enable-bluetooth, --disable-bluetooth, bluez5" -RDEPENDS_${PN}_remove = "bluez4" -RDEPENDS_${PN} += "${@base_contains('PACKAGECONFIG', 'bluetooth', 'bluez5', '', d)}" - -PR = "r1"
\ No newline at end of file diff --git a/meta-ivi/recipes-connectivity/libpcap/libpcap_1.6.1.bbappend b/meta-ivi/recipes-connectivity/libpcap/libpcap_1.6.1.bbappend deleted file mode 100644 index 1c09005..0000000 --- a/meta-ivi/recipes-connectivity/libpcap/libpcap_1.6.1.bbappend +++ /dev/null @@ -1,4 +0,0 @@ -PACKAGECONFIG_remove = "bluetooth" -PACKAGECONFIG[bluetooth] = "--enable-bluetooth, --disable-bluetooth, bluez5" - -PR = "r1"
\ No newline at end of file diff --git a/meta-ivi/recipes-connectivity/ofono/ofono_%.bbappend b/meta-ivi/recipes-connectivity/ofono/ofono_%.bbappend deleted file mode 100644 index ba1813e..0000000 --- a/meta-ivi/recipes-connectivity/ofono/ofono_%.bbappend +++ /dev/null @@ -1,4 +0,0 @@ -DEPENDS_remove = "bluez4" -DEPENDS_append = " bluez5" - -PR = "r1" diff --git a/meta-ivi/recipes-core-ivi/base-passwd/base-passwd/add-default-root-pass.patch b/meta-ivi/recipes-core-ivi/base-passwd/base-passwd/add-default-root-pass.patch deleted file mode 100644 index 320841e..0000000 --- a/meta-ivi/recipes-core-ivi/base-passwd/base-passwd/add-default-root-pass.patch +++ /dev/null @@ -1,10 +0,0 @@ -Index: base-passwd/passwd.master -=================================================================== ---- base-passwd.orig/passwd.master 2012-03-15 16:45:58.149968908 +0200 -+++ base-passwd/passwd.master 2012-03-15 16:47:26.094468934 +0200 -@@ -1,4 +1,4 @@ --root::0:0:root:/root:/bin/sh -+root:\$1\$1DO/lR8M\$f8JOOu4W8GBZzdNzCgSW40:0:0:root:/root:/bin/sh - daemon:*:1:1:daemon:/usr/sbin:/bin/sh - bin:*:2:2:bin:/bin:/bin/sh - sys:*:3:3:sys:/dev:/bin/sh diff --git a/meta-ivi/recipes-core-ivi/base-passwd/base-passwd_3.5.29.bbappend b/meta-ivi/recipes-core-ivi/base-passwd/base-passwd_3.5.29.bbappend deleted file mode 100644 index 46146cc..0000000 --- a/meta-ivi/recipes-core-ivi/base-passwd/base-passwd_3.5.29.bbappend +++ /dev/null @@ -1,6 +0,0 @@ -FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" - -# Set "root" as password for user "root" -SRC_URI += " \ - file://add-default-root-pass.patch \ - " diff --git a/meta-ivi/recipes-core-ivi/busybox/busybox-1.21.1/defconfig b/meta-ivi/recipes-core-ivi/busybox/busybox/defconfig index 6094166..6094166 100644 --- a/meta-ivi/recipes-core-ivi/busybox/busybox-1.21.1/defconfig +++ b/meta-ivi/recipes-core-ivi/busybox/busybox/defconfig diff --git a/meta-ivi/recipes-core-ivi/busybox/busybox_1.22.1.bbappend b/meta-ivi/recipes-core-ivi/busybox/busybox_1.22.1.bbappend deleted file mode 100644 index 14ee104..0000000 --- a/meta-ivi/recipes-core-ivi/busybox/busybox_1.22.1.bbappend +++ /dev/null @@ -1,2 +0,0 @@ -FILESEXTRAPATHS_append := ":${THISDIR}/${PN}-${PV}" -SRC_URI += "file://defconfig" diff --git a/meta-ivi/recipes-core-ivi/busybox/busybox_1.23.1.bbappend b/meta-ivi/recipes-core-ivi/busybox/busybox_1.23.1.bbappend new file mode 100644 index 0000000..d368d16 --- /dev/null +++ b/meta-ivi/recipes-core-ivi/busybox/busybox_1.23.1.bbappend @@ -0,0 +1,8 @@ +FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" +SRC_URI += "file://defconfig" + +# Defconfig doesn't have syslog activated +# Adapt if needed in the future +SYSTEMD_PACKAGES_remove = "${PN}-syslog" +INITSCRIPT_PACKAGES_remove = "${PN}-syslog" +ALTERNATIVE_${PN}-syslog_remove = "syslog-conf" diff --git a/meta-ivi/recipes-core-ivi/dbus/dbus/capi-dbus-add-send-with-reply-set-notify.patch b/meta-ivi/recipes-core-ivi/dbus/dbus/capi-dbus-add-send-with-reply-set-notify.patch new file mode 100644 index 0000000..3f92169 --- /dev/null +++ b/meta-ivi/recipes-core-ivi/dbus/dbus/capi-dbus-add-send-with-reply-set-notify.patch @@ -0,0 +1,201 @@ +From 1dcacc908826f59b580bd1d1a7541fb919d4bd97 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=BCrgen=20Gehring?= <juergen.gehring@bmw.de> +Date: Thu, 23 Apr 2015 02:15:06 -0700 +Subject: [PATCH] Add dbus_connection_send_with_reply_set_notify function for + proper thread handling + +--- + dbus/dbus-connection.c | 155 +++++++++++++++++++++++++++++++++++++++++++++++++ + dbus/dbus-connection.h | 10 ++++ + 2 files changed, 165 insertions(+) + +diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c +index e1068e3..233f179 100644 +--- a/dbus/dbus-connection.c ++++ b/dbus/dbus-connection.c +@@ -3482,6 +3482,161 @@ dbus_connection_send_with_reply (DBusConnection *connection, + } + + /** ++ * Queues a message to send, as with dbus_connection_send(), ++ * but also returns a #DBusPendingCall used to receive a reply to the ++ * message. If no reply is received in the given timeout_milliseconds, ++ * this function expires the pending reply and generates a synthetic ++ * error reply (generated in-process, not by the remote application) ++ * indicating that a timeout occurred. ++ * ++ * A #DBusPendingCall will see a reply message before any filters or ++ * registered object path handlers. See dbus_connection_dispatch() for ++ * details on when handlers are run. ++ * ++ * A #DBusPendingCall will always see exactly one reply message, ++ * unless it's cancelled with dbus_pending_call_cancel(). ++ * ++ * If #NULL is passed for the pending_return, the #DBusPendingCall ++ * will still be generated internally, and used to track ++ * the message reply timeout. This means a timeout error will ++ * occur if no reply arrives, unlike with dbus_connection_send(). ++ * ++ * If -1 is passed for the timeout, a sane default timeout is used. -1 ++ * is typically the best value for the timeout for this reason, unless ++ * you want a very short or very long timeout. If #DBUS_TIMEOUT_INFINITE is ++ * passed for the timeout, no timeout will be set and the call will block ++ * forever. ++ * ++ * @warning if the connection is disconnected or you try to send Unix ++ * file descriptors on a connection that does not support them, the ++ * #DBusPendingCall will be set to #NULL, so be careful with this. ++ * ++ * @param connection the connection ++ * @param message the message to send ++ * @param pending_return return location for a #DBusPendingCall ++ * object, or #NULL if connection is disconnected or when you try to ++ * send Unix file descriptors on a connection that does not support ++ * them. ++ * @param timeout_milliseconds timeout in milliseconds, -1 (or ++ * #DBUS_TIMEOUT_USE_DEFAULT) for default or #DBUS_TIMEOUT_INFINITE for no ++ * timeout ++ * @returns #FALSE if no memory, #TRUE otherwise. ++ * ++ */ ++dbus_bool_t ++dbus_connection_send_with_reply_set_notify (DBusConnection *connection, ++ DBusMessage *message, ++ DBusPendingCall **pending_return, ++ DBusPendingCallNotifyFunction function0, ++ void *user_data0, ++ DBusFreeFunction free_user_data0, ++ int timeout_milliseconds) ++{ ++ DBusPendingCall *pending; ++ dbus_int32_t serial = -1; ++ DBusDispatchStatus status; ++ ++ _dbus_return_val_if_fail (connection != NULL, FALSE); ++ _dbus_return_val_if_fail (message != NULL, FALSE); ++ _dbus_return_val_if_fail (timeout_milliseconds >= 0 || timeout_milliseconds == -1, FALSE); ++ ++ if (pending_return) ++ *pending_return = NULL; ++ ++ CONNECTION_LOCK (connection); ++ ++#ifdef HAVE_UNIX_FD_PASSING ++ ++ if (!_dbus_transport_can_pass_unix_fd(connection->transport) && ++ message->n_unix_fds > 0) ++ { ++ /* Refuse to send fds on a connection that cannot handle ++ them. Unfortunately we cannot return a proper error here, so ++ the best we can do is return TRUE but leave *pending_return ++ as NULL. */ ++ CONNECTION_UNLOCK (connection); ++ return TRUE; ++ } ++ ++#endif ++ ++ if (!_dbus_connection_get_is_connected_unlocked (connection)) ++ { ++ CONNECTION_UNLOCK (connection); ++ ++ return TRUE; ++ } ++ ++ pending = _dbus_pending_call_new_unlocked (connection, ++ timeout_milliseconds, ++ reply_handler_timeout); ++ ++ if (pending == NULL) ++ { ++ CONNECTION_UNLOCK (connection); ++ return FALSE; ++ } ++ ++ if (!dbus_pending_call_set_notify(pending, function0, user_data0, free_user_data0)) ++ { ++ CONNECTION_UNLOCK (connection); ++ return FALSE; ++ } ++ ++ /* Assign a serial to the message */ ++ serial = dbus_message_get_serial (message); ++ if (serial == 0) ++ { ++ serial = _dbus_connection_get_next_client_serial (connection); ++ dbus_message_set_serial (message, serial); ++ } ++ ++ if (!_dbus_pending_call_set_timeout_error_unlocked (pending, message, serial)) ++ goto error; ++ ++ /* Insert the serial in the pending replies hash; ++ * hash takes a refcount on DBusPendingCall. ++ * Also, add the timeout. ++ */ ++ if (!_dbus_connection_attach_pending_call_unlocked (connection, ++ pending)) ++ goto error; ++ ++ if (!_dbus_connection_send_unlocked_no_update (connection, message, NULL)) ++ { ++ _dbus_connection_detach_pending_call_and_unlock (connection, ++ pending); ++ goto error_unlocked; ++ } ++ ++ if (pending_return) ++ *pending_return = pending; /* hand off refcount */ ++ else ++ { ++ _dbus_connection_detach_pending_call_unlocked (connection, pending); ++ /* we still have a ref to the pending call in this case, we unref ++ * after unlocking, below ++ */ ++ } ++ ++ status = _dbus_connection_get_dispatch_status_unlocked (connection); ++ ++ /* this calls out to user code */ ++ _dbus_connection_update_dispatch_status_and_unlock (connection, status); ++ ++ if (pending_return == NULL) ++ dbus_pending_call_unref (pending); ++ ++ return TRUE; ++ ++ error: ++ CONNECTION_UNLOCK (connection); ++ error_unlocked: ++ dbus_pending_call_unref (pending); ++ return FALSE; ++} ++ ++/** + * Sends a message and blocks a certain time period while waiting for + * a reply. This function does not reenter the main loop, + * i.e. messages other than the reply are queued up but not +diff --git a/dbus/dbus-connection.h b/dbus/dbus-connection.h +index fe4d04e..e8cedf1 100644 +--- a/dbus/dbus-connection.h ++++ b/dbus/dbus-connection.h +@@ -229,6 +229,16 @@ dbus_bool_t dbus_connection_send_with_reply (DBusConnection + DBusMessage *message, + DBusPendingCall **pending_return, + int timeout_milliseconds); ++ ++DBUS_EXPORT ++dbus_bool_t dbus_connection_send_with_reply_set_notify (DBusConnection *connection, ++ DBusMessage *message, ++ DBusPendingCall **pending_return, ++ DBusPendingCallNotifyFunction function0, ++ void * user_data0, ++ DBusFreeFunction free_user_data0, ++ int timeout_milliseconds); ++ + DBUS_EXPORT + DBusMessage * dbus_connection_send_with_reply_and_block (DBusConnection *connection, + DBusMessage *message, +-- +1.9.1 + diff --git a/meta-ivi/recipes-core-ivi/dbus/dbus_%.bbappend b/meta-ivi/recipes-core-ivi/dbus/dbus_%.bbappend index cf7f64f..495f219 100644 --- a/meta-ivi/recipes-core-ivi/dbus/dbus_%.bbappend +++ b/meta-ivi/recipes-core-ivi/dbus/dbus_%.bbappend @@ -9,7 +9,10 @@ SRC_URI_AFBUS = "" # add support for GENIVI CommonAPI D-Bus runtime # - http://projects.genivi.org/commonapi/ -SRC_URI_COMMONAPI = "file://dbus-DBusMessage-add-support-for-custom-marshaling.patch" +SRC_URI_COMMONAPI = " \ + file://dbus-DBusMessage-add-support-for-custom-marshaling.patch \ + file://capi-dbus-add-send-with-reply-set-notify.patch \ + " SRC_URI_append = "\ ${SRC_URI_AFBUS} \ diff --git a/meta-ivi/recipes-devtools/qemu/qemu_2.%.bbappend b/meta-ivi/recipes-devtools/qemu/qemu_2.%.bbappend index f1937c7..54b5b8a 100644 --- a/meta-ivi/recipes-devtools/qemu/qemu_2.%.bbappend +++ b/meta-ivi/recipes-devtools/qemu/qemu_2.%.bbappend @@ -1 +1,3 @@ -PACKAGECONFIG_append = "virtfs libusb" +PACKAGECONFIG_append = " virtfs libusb" + +EXTRA_OECONF += " --audio-drv-list=pa" diff --git a/meta-ivi/recipes-extended/common-api/common-api-c++-dbus/fix-with-automake-1-15.patch b/meta-ivi/recipes-extended/common-api/common-api-c++-dbus/fix-with-automake-1-15.patch new file mode 100644 index 0000000..49abf35 --- /dev/null +++ b/meta-ivi/recipes-extended/common-api/common-api-c++-dbus/fix-with-automake-1-15.patch @@ -0,0 +1,30 @@ +Call of AC_CONFIG_AUX_DIR should be made as soon as possible to avoid +issues with automake 1.15. + +https://lists.gnu.org/archive/html/bug-automake/2015-01/txttwTAlDA4OE.txt +https://bugzilla.redhat.com/show_bug.cgi?id=1179182 + +Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com> +Upstream-Status: Submitted [http://bugs.genivi.org/show_bug.cgi?id=353] + +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac ++++ git/configure.ac +@@ -4,12 +4,14 @@ AC_INIT([GENIVI IPC Common API DBus C++] + [], + [CommonAPI-DBus]) + ++AC_CONFIG_AUX_DIR([build-aux]) ++AC_CONFIG_HEADERS([build-aux/config.h]) ++ + AC_USE_SYSTEM_EXTENSIONS + + AC_CONFIG_MACRO_DIR([m4]) + m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) +-AC_CONFIG_AUX_DIR([build-aux]) +-AC_CONFIG_HEADERS([build-aux/config.h]) ++ + AC_CONFIG_FILES([ + Makefile + CommonAPI-DBus.pc diff --git a/meta-ivi/recipes-extended/common-api/common-api-c++-dbus_2.1.6-p1.bb b/meta-ivi/recipes-extended/common-api/common-api-c++-dbus_2.1.6-p6.bb index bf91a97..34b3071 100644 --- a/meta-ivi/recipes-extended/common-api/common-api-c++-dbus_2.1.6-p1.bb +++ b/meta-ivi/recipes-extended/common-api/common-api-c++-dbus_2.1.6-p6.bb @@ -4,7 +4,11 @@ LICENSE = "MPLv2" LIC_FILES_CHKSUM = "file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad" BRANCH ?= "maintain/2.1.6" -SRC_URI = "git://git.projects.genivi.org/ipc/common-api-dbus-runtime.git;protocol=http;branch=${BRANCH};tag=${PV}" +TAG ?= "${PV}" +SRC_URI = " \ + git://git.projects.genivi.org/ipc/common-api-dbus-runtime.git;branch=${BRANCH};tag=${TAG} \ + file://fix-with-automake-1-15.patch \ + " S = "${WORKDIR}/git" DEPENDS = "common-api2 dbus" diff --git a/meta-ivi/recipes-extended/common-api/common-api-c++/fix-with-automake-1-15.patch b/meta-ivi/recipes-extended/common-api/common-api-c++/fix-with-automake-1-15.patch new file mode 100644 index 0000000..1c5eaab --- /dev/null +++ b/meta-ivi/recipes-extended/common-api/common-api-c++/fix-with-automake-1-15.patch @@ -0,0 +1,28 @@ +Call of AC_CONFIG_AUX_DIR should be made as soon as possible to avoid +issues with automake 1.15. + +https://lists.gnu.org/archive/html/bug-automake/2015-01/txttwTAlDA4OE.txt +https://bugzilla.redhat.com/show_bug.cgi?id=1179182 + +Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com> +Upstream-Status: Submitted [http://bugs.genivi.org/show_bug.cgi?id=352] + +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac ++++ git/configure.ac +@@ -4,10 +4,12 @@ AC_INIT([GENIVI IPC Common API C++], + [], + [CommonAPI]) + +-AC_CONFIG_MACRO_DIR([m4]) +-m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) + AC_CONFIG_AUX_DIR([build-aux]) + AC_CONFIG_HEADERS([build-aux/config.h]) ++ ++AC_CONFIG_MACRO_DIR([m4]) ++m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) ++ + AC_CONFIG_FILES([ + Makefile + CommonAPI.pc diff --git a/meta-ivi/recipes-extended/common-api/common-api-c++_2.1.6.bb b/meta-ivi/recipes-extended/common-api/common-api-c++_2.1.6-p1.bb index b5b43d1..5608bc4 100644 --- a/meta-ivi/recipes-extended/common-api/common-api-c++_2.1.6.bb +++ b/meta-ivi/recipes-extended/common-api/common-api-c++_2.1.6-p1.bb @@ -3,9 +3,13 @@ SECTION = "libs" LICENSE = "MPLv2" LIC_FILES_CHKSUM = "file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad" PROVIDES = "common-api2" -PR = "r0" -SRC_URI = "git://git.projects.genivi.org/ipc/common-api-runtime.git;protocol=http;tag=${PV}" +BRANCH ?= "maintain/2.1.6" +TAG ?= "${PV}" +SRC_URI = " \ + git://git.projects.genivi.org/ipc/common-api-runtime.git;branch=${BRANCH};tag=${TAG} \ + file://fix-with-automake-1-15.patch \ + " S = "${WORKDIR}/git" CXXFLAGS := "${@oe_filter_out('-fvisibility-inlines-hidden', '${CXXFLAGS}', d)}" diff --git a/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-with-systemd-209.patch b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-with-systemd-209.patch index 5794803..5bf6bf8 100644 --- a/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-with-systemd-209.patch +++ b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-with-systemd-209.patch @@ -1,18 +1,19 @@ -From 5ec45ad3942e55d83fd0b13ef4bafa39a54e0578 Mon Sep 17 00:00:00 2001 +From 8080b7395c1638baee60fb3c46667f21e00b87fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Bot=C3=B6?= <erik.boto@pelagicore.com> Date: Fri, 4 Apr 2014 10:59:18 +0200 -Subject: [PATCH] Fix build with systemd >= 209 +Subject: [PATCH 1/4] Fix build with systemd >= 209 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit +Upstream-Status: Inappropriate [Configuration Specific] Signed-off-by: Erik Botö <erik.boto@pelagicore.com> --- src/system/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/system/CMakeLists.txt b/src/system/CMakeLists.txt -index d78b2e9..b04e54b 100644 +index ce87914..1d0d224 100644 --- a/src/system/CMakeLists.txt +++ b/src/system/CMakeLists.txt @@ -23,7 +23,7 @@ set(dlt_system_SRCS dlt-system.c dlt-system-options.c dlt-system-process-handlin @@ -25,5 +26,5 @@ index d78b2e9..b04e54b 100644 target_link_libraries(dlt-system dlt ${ZLIB_LIBRARIES}) endif(WITH_SYSTEMD_JOURNAL) -- -1.9.1 +1.9.3 diff --git a/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch new file mode 100644 index 0000000..40c5afb --- /dev/null +++ b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch @@ -0,0 +1,91 @@ +From bcca4c99394ba422d03a5e76f2a0023ef248824a Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei.gherzan@windriver.com> +Date: Tue, 18 Nov 2014 15:47:22 +0100 +Subject: [PATCH 2/4] Don't execute processes as a specific user. + +Upstream-Status: Inappropriate [Configuration Specific] +Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com> +--- + systemd/dlt-adaptor-udp.service.cmake | 1 - + systemd/dlt-dbus.service.cmake | 1 - + systemd/dlt-example-user.service.cmake | 1 - + systemd/dlt-receive.service.cmake | 1 - + systemd/dlt-system.service.cmake | 1 - + systemd/dlt.service.cmake | 1 - + 6 files changed, 6 deletions(-) + +diff --git a/systemd/dlt-adaptor-udp.service.cmake b/systemd/dlt-adaptor-udp.service.cmake +index 0c39637..f446757 100644 +--- a/systemd/dlt-adaptor-udp.service.cmake ++++ b/systemd/dlt-adaptor-udp.service.cmake +@@ -20,7 +20,6 @@ Wants=dlt.service + + [Service] + Type=Simple +-User=genivi + ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-adaptor-udp -a @DLT_ADAPTOR_UDP_APPID@ -c @DLT_ADAPTOR_UDP_CTID@ -p @DLT_ADAPTOR_UDP_PORT@ + LimitCORE=infinity + +diff --git a/systemd/dlt-dbus.service.cmake b/systemd/dlt-dbus.service.cmake +index 2727c2d..d1e3b12 100755 +--- a/systemd/dlt-dbus.service.cmake ++++ b/systemd/dlt-dbus.service.cmake +@@ -21,7 +21,6 @@ Wants=dlt.service +
+ [Service]
+ Type=Simple
+-User=root
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-dbus
+ WatchdogSec=@DLT_WatchdogSec@
+ NotifyAccess=main
+diff --git a/systemd/dlt-example-user.service.cmake b/systemd/dlt-example-user.service.cmake +index 3652292..b67a83c 100644 +--- a/systemd/dlt-example-user.service.cmake ++++ b/systemd/dlt-example-user.service.cmake +@@ -20,6 +20,5 @@ Wants=dlt.service + + [Service] + Type=Simple +-User=genivi + ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-example-user "Hallo from GENIVI DLT example user application" + LimitCORE=infinity +\ No newline at end of file +diff --git a/systemd/dlt-receive.service.cmake b/systemd/dlt-receive.service.cmake +index b92c8b2..4bbdfc2 100644 +--- a/systemd/dlt-receive.service.cmake ++++ b/systemd/dlt-receive.service.cmake +@@ -21,6 +21,5 @@ Wants=dlt.service + + [Service] + Type=Simple +-User=genivi + ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-receive -o /tmp/dlt_receive_log.dlt localhost + LimitCORE=infinity +\ No newline at end of file +diff --git a/systemd/dlt-system.service.cmake b/systemd/dlt-system.service.cmake +index f5e844b..7ec995c 100755 +--- a/systemd/dlt-system.service.cmake ++++ b/systemd/dlt-system.service.cmake +@@ -21,7 +21,6 @@ Wants=dlt.service +
+ [Service]
+ Type=Simple
+-User=genivi
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-system
+ WatchdogSec=@DLT_WatchdogSec@
+ NotifyAccess=main
+diff --git a/systemd/dlt.service.cmake b/systemd/dlt.service.cmake +index 22279c4..7bb05bc 100755 +--- a/systemd/dlt.service.cmake ++++ b/systemd/dlt.service.cmake +@@ -20,7 +20,6 @@ Documentation=man:dlt-daemon(1) man:dlt.conf(5) + + [Service] + Type=Simple +-User=genivi + ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-daemon + WatchdogSec=@DLT_WatchdogSec@ + NotifyAccess=main +-- +1.9.3 + diff --git a/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0003-systemd-unit-type-should-be-in-lowercase-so-use-Type.patch b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0003-systemd-unit-type-should-be-in-lowercase-so-use-Type.patch new file mode 100644 index 0000000..691a500 --- /dev/null +++ b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0003-systemd-unit-type-should-be-in-lowercase-so-use-Type.patch @@ -0,0 +1,98 @@ +From 6804c68ed61f4436818c58cb0abe1c21b4d48aea Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei.gherzan@windriver.com> +Date: Tue, 18 Nov 2014 15:48:50 +0100 +Subject: [PATCH 3/4] systemd/*: unit type should be in lowercase, so use + Type=simple + +Upstream-Status: Submitted [http://lists.genivi.org/pipermail/genivi-diagnostic-log-and-trace/2014-October/000546.html] +Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com> +--- + systemd/dlt-adaptor-udp.service.cmake | 2 +- + systemd/dlt-dbus.service.cmake | 2 +- + systemd/dlt-example-user.service.cmake | 2 +- + systemd/dlt-receive.service.cmake | 2 +- + systemd/dlt-system.service.cmake | 2 +- + systemd/dlt.service.cmake | 2 +- + 6 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/systemd/dlt-adaptor-udp.service.cmake b/systemd/dlt-adaptor-udp.service.cmake +index f446757..81a7158 100644 +--- a/systemd/dlt-adaptor-udp.service.cmake ++++ b/systemd/dlt-adaptor-udp.service.cmake +@@ -19,7 +19,7 @@ Description=GENIVI DLT adaptor stdin. Adaptor for forwarding received UDP messag + Wants=dlt.service + + [Service] +-Type=Simple ++Type=simple + ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-adaptor-udp -a @DLT_ADAPTOR_UDP_APPID@ -c @DLT_ADAPTOR_UDP_CTID@ -p @DLT_ADAPTOR_UDP_PORT@ + LimitCORE=infinity + +diff --git a/systemd/dlt-dbus.service.cmake b/systemd/dlt-dbus.service.cmake +index d1e3b12..75dcdc3 100755 +--- a/systemd/dlt-dbus.service.cmake ++++ b/systemd/dlt-dbus.service.cmake +@@ -20,7 +20,7 @@ Documentation=man:dlt-dbus(1) man:dlt-dbus.conf(5) + Wants=dlt.service
+
+ [Service]
+-Type=Simple
++Type=simple
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-dbus
+ WatchdogSec=@DLT_WatchdogSec@
+ NotifyAccess=main
+diff --git a/systemd/dlt-example-user.service.cmake b/systemd/dlt-example-user.service.cmake +index b67a83c..fe9c567 100644 +--- a/systemd/dlt-example-user.service.cmake ++++ b/systemd/dlt-example-user.service.cmake +@@ -19,6 +19,6 @@ Description=GENIVI DLT example user. Generate DLT messages and store them to fil + Wants=dlt.service + + [Service] +-Type=Simple ++Type=simple + ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-example-user "Hallo from GENIVI DLT example user application" + LimitCORE=infinity +\ No newline at end of file +diff --git a/systemd/dlt-receive.service.cmake b/systemd/dlt-receive.service.cmake +index 4bbdfc2..3b47dd3 100644 +--- a/systemd/dlt-receive.service.cmake ++++ b/systemd/dlt-receive.service.cmake +@@ -20,6 +20,6 @@ Documentation=man:dlt-receive(1) + Wants=dlt.service + + [Service] +-Type=Simple ++Type=simple + ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-receive -o /tmp/dlt_receive_log.dlt localhost + LimitCORE=infinity +\ No newline at end of file +diff --git a/systemd/dlt-system.service.cmake b/systemd/dlt-system.service.cmake +index 7ec995c..d4a4c96 100755 +--- a/systemd/dlt-system.service.cmake ++++ b/systemd/dlt-system.service.cmake +@@ -20,7 +20,7 @@ Documentation=man:dlt-system(1) man:dlt-system.conf(5) + Wants=dlt.service
+
+ [Service]
+-Type=Simple
++Type=simple
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-system
+ WatchdogSec=@DLT_WatchdogSec@
+ NotifyAccess=main
+diff --git a/systemd/dlt.service.cmake b/systemd/dlt.service.cmake +index 7bb05bc..5386ffd 100755 +--- a/systemd/dlt.service.cmake ++++ b/systemd/dlt.service.cmake +@@ -19,7 +19,7 @@ Description=GENIVI DLT logging daemon + Documentation=man:dlt-daemon(1) man:dlt.conf(5) + + [Service] +-Type=Simple ++Type=simple + ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-daemon + WatchdogSec=@DLT_WatchdogSec@ + NotifyAccess=main +-- +1.9.3 + diff --git a/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch new file mode 100644 index 0000000..df762f3 --- /dev/null +++ b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch @@ -0,0 +1,27 @@ +From 9a5e655cf57301008cd61d53c8a410a7f397e650 Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei.gherzan@windriver.com> +Date: Tue, 18 Nov 2014 15:51:30 +0100 +Subject: [PATCH 4/4] Modify systemd config directory + +Upstream-Status: Inappropriate [Configuration Specific] +Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com> +--- + systemd/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/systemd/CMakeLists.txt b/systemd/CMakeLists.txt +index a9838e4..c8feae5 100644 +--- a/systemd/CMakeLists.txt ++++ b/systemd/CMakeLists.txt +@@ -16,7 +16,7 @@ + + if(WITH_SYSTEMD) + +- set(SYSTEMD_CONFIGURATIONS_FILES_DIR ${CMAKE_INSTALL_PREFIX}/lib/systemd/system ) ++ set(SYSTEMD_CONFIGURATIONS_FILES_DIR /lib/systemd/system ) + + if(WITH_SYSTEMD_WATCHDOG) + set( DLT_WatchdogSec 2 ) +-- +1.9.3 + diff --git a/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/modify_systemd_config_dir.patch b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/modify_systemd_config_dir.patch deleted file mode 100644 index b1c3ea2..0000000 --- a/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/modify_systemd_config_dir.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: git/systemd/CMakeLists.txt -=================================================================== ---- git.orig/systemd/CMakeLists.txt 2013-12-03 21:32:52.000000000 +0200 -+++ git/systemd/CMakeLists.txt 2013-12-03 21:33:26.000000000 +0200 -@@ -16,7 +16,7 @@ - - if(WITH_SYSTEMD) - -- set(SYSTEMD_CONFIGURATIONS_FILES_DIR ${CMAKE_INSTALL_PREFIX}/lib/systemd/system ) -+ set(SYSTEMD_CONFIGURATIONS_FILES_DIR /lib/systemd/system ) - - if(WITH_SYSTEMD_WATCHDOG) - set( DLT_WatchdogSec 2 ) diff --git a/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon_2.10.0.bb b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon_2.10.0.bb deleted file mode 100644 index 8543461..0000000 --- a/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon_2.10.0.bb +++ /dev/null @@ -1,55 +0,0 @@ -SUMMARY = "Diagnostic Log and Trace" -DESCRIPTION = "This component provides a standardised log and trace interface, based on \ - thestandardised protocol specified in the AUTOSAR standard 4.0 DLT.This \ - component can be used by GENIVI components and other applications aslogging \ - facility providing \ - - the DLT shared library \ - - the DLT daemon, including startup scripts \ - - the DLT daemon adaptors- the DLT client console utilities \ - - the DLT test applications \ - " -HOMEPAGE = "https://www.genivi.org/" -SECTION = "console/utils" - -inherit gzipnative - -LICENSE = "MPLv2" -LIC_FILES_CHKSUM = " \ - file://LICENSE.txt;md5=99ba60c3fad7eaf8c56bca6dd75cba09 \ - file://MPL.txt;md5=ccdb2761cef70c8b2612624c323f89dc \ - " - -DEPENDS = "zlib" - -SRCREV = "8b48e73f79b4463393916e4c6696917e3dedd026" -PR = "r0" - -SRC_URI = "git://git.projects.genivi.org/${PN}.git \ - file://modify_systemd_config_dir.patch \ - file://0001-Fix-build-with-systemd-209.patch \ - " - -S = "${WORKDIR}/git" - -inherit autotools gettext cmake - -FILES_${PN}-doc += "/usr/share/*" -FILES_${PN}-systemd += "${systemd_unitdir}/system/" - -PACKAGES =+ "${PN}-systemd" - -EXTRA_OECMAKE = "-DWITH_SYSTEMD=ON" - -# Remove "User=genivi" option from systemd services -# as there is no such username -do_install_append() { - sed -i '/User/d' ${D}/${systemd_unitdir}/system/*.service - - if [ ${@base_contains('EXTRA_OECMAKE', '-DWITH_SYSTEMD=ON', 'yes', 'no', d)} = yes ]; then - # Install the required systemd services links - install -d ${D}${base_libdir}/systemd/system/basic.target.wants - ln -sf ../dlt.service ${D}${base_libdir}/systemd/system/basic.target.wants/dlt.service - ln -sf ../dlt-system.service ${D}${base_libdir}/systemd/system/basic.target.wants/dlt-system.service - fi - -} diff --git a/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon_2.11.1.bb b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon_2.11.1.bb new file mode 100644 index 0000000..183e2e9 --- /dev/null +++ b/meta-ivi/recipes-extended/dlt-daemon/dlt-daemon_2.11.1.bb @@ -0,0 +1,44 @@ +SUMMARY = "Diagnostic Log and Trace" +DESCRIPTION = "This component provides a standardised log and trace interface, \ +based on the standardised protocol specified in the AUTOSAR standard 4.0 DLT. \ +This component can be used by GENIVI components and other applications as \ +logging facility providing: \ +- the DLT shared library \ +- the DLT daemon, including startup scripts \ +- the DLT daemon adaptors- the DLT client console utilities \ +- the DLT test applications" +HOMEPAGE = "https://www.genivi.org/" +SECTION = "console/utils" +LICENSE = "MPLv2" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=99ba60c3fad7eaf8c56bca6dd75cba09 \ + file://MPL.txt;md5=ccdb2761cef70c8b2612624c323f89dc" + +DEPENDS = "dbus zlib" + +# FIX ME +# This should be TAG = "v${PV}" but yocto doesn't support lightweight tags for now +# https://bugzilla.yoctoproject.org/show_bug.cgi?id=6881 +TAG = "b8b3ea3a31f7deb681941a19878c82e7b7350ae7" +BRANCH = "v2.11.x" +SRC_URI = "git://git.projects.genivi.org/${PN}.git;branch=${BRANCH};tag=${TAG} \ + file://0001-Fix-build-with-systemd-209.patch \ + file://0002-Don-t-execute-processes-as-a-specific-user.patch \ + file://0003-systemd-unit-type-should-be-in-lowercase-so-use-Type.patch \ + file://0004-Modify-systemd-config-directory.patch" +S = "${WORKDIR}/git" + +inherit gzipnative autotools gettext cmake systemd + +PACKAGES += "${PN}-systemd" +SYSTEMD_PACKAGES = "${PN} ${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "dlt-system.service dlt.service" +SYSTEMD_AUTO_ENABLE_${PN} = "enable" +SYSTEMD_SERVICE_${PN}-systemd = "dlt-example-user.service \ + dlt-dbus.service \ + dlt-adaptor-udp.service \ + dlt-receive.service" +SYSTEMD_AUTO_ENABLE_${PN}-systemd = "disable" + +EXTRA_OECMAKE = "-DWITH_SYSTEMD=ON" + +FILES_${PN}-doc += "/usr/share/dlt-filetransfer" diff --git a/meta-ivi/recipes-extended/node-health-monitor/node-health-monitor_1.3.3.bb b/meta-ivi/recipes-extended/node-health-monitor/node-health-monitor_1.3.5.bb index 0caa712..2d3c7a6 100644 --- a/meta-ivi/recipes-extended/node-health-monitor/node-health-monitor_1.3.3.bb +++ b/meta-ivi/recipes-extended/node-health-monitor/node-health-monitor_1.3.5.bb @@ -4,7 +4,7 @@ LICENSE = "MPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=815ca599c9df247a0c7f619bab123dad" PR = "r2" -SRCREV = "e8ec4787395986599cc2c816ac2bbe56d3c85764" +SRCREV = "851565499527e2d44047de3f6cbe9dd3a84a6c74" SRC_URI = "git://git.projects.genivi.org/lifecycle/node-health-monitor.git \ file://fix-no-libsystemd-daemon.patch \ diff --git a/meta-ivi/recipes-extended/node-state-manager/node-state-manager/link-with-gio.patch b/meta-ivi/recipes-extended/node-state-manager/node-state-manager/link-with-gio.patch new file mode 100644 index 0000000..0217fef --- /dev/null +++ b/meta-ivi/recipes-extended/node-state-manager/node-state-manager/link-with-gio.patch @@ -0,0 +1,17 @@ +NodeStateAccess needs to link to libgio. + +Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com> + +Index: git/NodeStateAccess/Makefile.am +=================================================================== +--- git.orig/NodeStateAccess/Makefile.am ++++ git/NodeStateAccess/Makefile.am +@@ -33,7 +33,7 @@ libNodeStateAccess_la_LIBDADD = $(GIO_LI + $(GLIB_LIBS) \ + $(GOBJECT_LIBS) + +-libNodeStateAccess_la_LDFLAGS = -avoid-version ++libNodeStateAccess_la_LDFLAGS = -avoid-version -lgio-2.0 + + # List generated headers here to assert that they are available when built is started + BUILT_SOURCES = generated/NodeStateConsumer.h \ diff --git a/meta-ivi/recipes-extended/node-state-manager/node-state-manager_2.0.0.bb b/meta-ivi/recipes-extended/node-state-manager/node-state-manager_2.0.0.bb index 5881707..59eccce 100644 --- a/meta-ivi/recipes-extended/node-state-manager/node-state-manager_2.0.0.bb +++ b/meta-ivi/recipes-extended/node-state-manager/node-state-manager_2.0.0.bb @@ -16,11 +16,12 @@ SRCREV = "dd4a86b9459537d2e85489b36abf80f34d12f098" SRC_URI = "git://git.projects.genivi.org/lifecycle/node-state-manager.git \ file://nsm-fix-systemd-service-dep.patch \ file://nsm-fix-no-libsystemd-daemon.patch \ + file://link-with-gio.patch \ " PR = "r1" -EXTRA_OECONF = "${@base_contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '', d)}" +EXTRA_OECONF = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '', d)}" DEPENDS = "dbus glib-2.0 dlt-daemon persistence-client-library systemd" diff --git a/meta-ivi/recipes-extended/persistence-administrator/persistence-administrator/0001-Add-support-for-json-c-0.12.patch b/meta-ivi/recipes-extended/persistence-administrator/persistence-administrator/0001-Add-support-for-json-c-0.12.patch new file mode 100644 index 0000000..99bb684 --- /dev/null +++ b/meta-ivi/recipes-extended/persistence-administrator/persistence-administrator/0001-Add-support-for-json-c-0.12.patch @@ -0,0 +1,41 @@ +From 23b3053a7062ba38cf39e1b0caeb5ec006287d68 Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei.gherzan@windriver.com> +Date: Mon, 22 Jun 2015 22:21:50 +0200 +Subject: [PATCH] Add support for json-c > 0.12 + +Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com> +Upstream-Status: Submitted [http://bugs.genivi.org/show_bug.cgi?id=354] +--- + Administrator/src/ssw_pers_admin_config.c | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Administrator/src/ssw_pers_admin_config.c b/Administrator/src/ssw_pers_admin_config.c +index 62671a5..c52af16 100644 +--- a/Administrator/src/ssw_pers_admin_config.c ++++ b/Administrator/src/ssw_pers_admin_config.c +@@ -25,7 +25,7 @@ + * + **********************************************************************************************************************/ + +-#include <json/json.h> ++#include <json-c/json.h> + + #include <sys/types.h> + #include <sys/stat.h> +diff --git a/configure.ac b/configure.ac +index 5207334..48ed91f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -114,7 +114,7 @@ PKG_CHECK_MODULES([DLT], [automotive-dlt >= 2.2.0]) + PKG_CHECK_MODULES([ZLIB], [zlib >= 1.2.5]) + PKG_CHECK_MODULES([ARCHIVELIB], [libarchive >= 3.0.4]) + PKG_CHECK_MODULES([PERSCOMMON], [libperscommon >= 1.0.1]) +-PKG_CHECK_MODULES([JSON], [json >= 0.9]) ++PKG_CHECK_MODULES([JSON], [json-c >= 0.9]) + PKG_CHECK_MODULES([NSM], [node-state-manager]) + PKG_CHECK_MODULES([SYSTEMD], [libsystemd-daemon >= 37 ]) + +-- +2.1.0 + diff --git a/meta-ivi/recipes-extended/persistence-administrator/persistence-administrator/configure.ac-fix-typo-libperscommon.patch b/meta-ivi/recipes-extended/persistence-administrator/persistence-administrator/configure.ac-fix-typo-libperscommon.patch new file mode 100644 index 0000000..a52f88f --- /dev/null +++ b/meta-ivi/recipes-extended/persistence-administrator/persistence-administrator/configure.ac-fix-typo-libperscommon.patch @@ -0,0 +1,26 @@ +From 887c1367ba633357abe13dde39363f2a9da4c6c6 Mon Sep 17 00:00:00 2001 +From: Holger Behrens <holger.behrens@windriver.com> +Date: Mon, 17 Nov 2014 16:39:21 +0100 +Subject: [[PATCH] configure.ac: fix typo libperscommon + +Signed-off-by: Holger Behrens <holger.behrens@windriver.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 5207334..6e1b2dd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -113,7 +113,7 @@ PKG_CHECK_MODULES([DBUS], [dbus-1 >= 1.4.10]) + PKG_CHECK_MODULES([DLT], [automotive-dlt >= 2.2.0]) + PKG_CHECK_MODULES([ZLIB], [zlib >= 1.2.5]) + PKG_CHECK_MODULES([ARCHIVELIB], [libarchive >= 3.0.4]) +-PKG_CHECK_MODULES([PERSCOMMON], [libperscommon >= 1.0.1]) ++PKG_CHECK_MODULES([PERSCOMMON], [persistence_client_library >= 1.0.1]) + PKG_CHECK_MODULES([JSON], [json >= 0.9]) + PKG_CHECK_MODULES([NSM], [node-state-manager]) + PKG_CHECK_MODULES([SYSTEMD], [libsystemd-daemon >= 37 ]) +-- +2.1.3 + diff --git a/meta-ivi/recipes-extended/persistence-administrator/persistence-administrator_1.0.2.bb b/meta-ivi/recipes-extended/persistence-administrator/persistence-administrator_1.0.5.bb index 21da846..c90f53c 100644 --- a/meta-ivi/recipes-extended/persistence-administrator/persistence-administrator_1.0.2.bb +++ b/meta-ivi/recipes-extended/persistence-administrator/persistence-administrator_1.0.5.bb @@ -6,11 +6,11 @@ SECTION = "base" LICENSE = "MPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=815ca599c9df247a0c7f619bab123dad" -SRC_URI = "git://git.projects.genivi.org/persistence/persistence-administrator.git;protocol=http \ - file://libsystemd_daemon.patch \ - " - -SRCREV = "3a6cc3228b93c647f0ffed4b53641572e78f71d7" +SRC_URI = " \ + git://git.projects.genivi.org/persistence/persistence-administrator.git;tag=${PV} \ + file://libsystemd_daemon.patch \ + file://0001-Add-support-for-json-c-0.12.patch \ + " DEPENDS = "glib-2.0 dbus dlt-daemon libarchive zlib json-c node-state-manager \ systemd persistence-common-object libffi libitzam" diff --git a/meta-ivi/recipes-extended/persistence-client-library/persistence-client-library-1.0.0/0001-Fix-cast-on-64bit-machines.patch b/meta-ivi/recipes-extended/persistence-client-library/persistence-client-library-1.0.0/0001-Fix-cast-on-64bit-machines.patch new file mode 100644 index 0000000..4f86748 --- /dev/null +++ b/meta-ivi/recipes-extended/persistence-client-library/persistence-client-library-1.0.0/0001-Fix-cast-on-64bit-machines.patch @@ -0,0 +1,35 @@ +From d58ab09ddd9a6ce7f47a045ecb9bccb7d59109bd Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei.gherzan@windriver.com> +Date: Sun, 17 May 2015 22:40:55 +0200 +Subject: [PATCH] Fix cast on 64bit machines + +Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com> +--- + src/persistence_client_library_dbus_service.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/persistence_client_library_dbus_service.c b/src/persistence_client_library_dbus_service.c +index c3c2624..84bbb0a 100644 +--- a/src/persistence_client_library_dbus_service.c ++++ b/src/persistence_client_library_dbus_service.c +@@ -286,7 +286,7 @@ static void removeWatch(DBusWatch *watch, void *data) + + (void)data; + +- DLT_LOG(gPclDLTContext, DLT_LOG_DEBUG, DLT_STRING("removeWatch called "), DLT_INT( (int)watch) ); ++ DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("removeWatch called "), DLT_INT( (long)watch) ); + + if(w_data) + free(w_data); +@@ -299,7 +299,7 @@ static void removeWatch(DBusWatch *watch, void *data) + static void watchToggled(DBusWatch *watch, void *data) + { + (void)data; +- DLT_LOG(gPclDLTContext, DLT_LOG_DEBUG, DLT_STRING("watchToggled called "), DLT_INT( (int)watch) ); ++ DLT_LOG(gPclDLTContext, DLT_LOG_INFO, DLT_STRING("watchToggled called "), DLT_INT( (long)watch) ); + + if(dbus_watch_get_enabled(watch)) + addWatch(watch, data); +-- +2.1.0 + diff --git a/meta-ivi/recipes-extended/persistence-client-library/persistence-client-library_0.9.0.bb b/meta-ivi/recipes-extended/persistence-client-library/persistence-client-library_1.0.0.bb index e6aaec7..0054e30 100644 --- a/meta-ivi/recipes-extended/persistence-client-library/persistence-client-library_0.9.0.bb +++ b/meta-ivi/recipes-extended/persistence-client-library/persistence-client-library_1.0.0.bb @@ -9,10 +9,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6161c6840f21a000e9b52af81d2ca823" DEPENDS = "dlt-daemon dbus libcheck persistence-common-object" -PV = "0.9.0+git${SRCPV}" - -SRC_URI = "git://git.projects.genivi.org/persistence/persistence-client-library.git" -SRCREV = "490eb4c0aea864fb7a9b67d83dda76d344afd5f5" +SRC_URI = " \ + git://git.projects.genivi.org/persistence/persistence-client-library.git;tag=v${PV} \ + file://0001-Fix-cast-on-64bit-machines.patch \ + " S = "${WORKDIR}/git" inherit pkgconfig autotools-brokensep @@ -20,10 +20,10 @@ inherit pkgconfig autotools-brokensep PARALLEL_MAKE = "" FILES_${PN} = " \ - ${libdir}/*.so \ - ${libdir}/*.so.* \ - ${sysconfdir} \ -" + ${libdir}/*.so \ + ${libdir}/*.so.* \ + ${sysconfdir} \ + " do_install_append() { install -d ${D}${sysconfdir}/dbus-1/system.d @@ -31,4 +31,3 @@ do_install_append() { } RDEPENDS_${PN} = "node-state-manager" - diff --git a/meta-ivi/recipes-extended/persistence-common-object/persistence-common-object/B251_typedef_uint64_t.patch b/meta-ivi/recipes-extended/persistence-common-object/persistence-common-object/B251_typedef_uint64_t.patch index 018ac02..1f75b2f 100644 --- a/meta-ivi/recipes-extended/persistence-common-object/persistence-common-object/B251_typedef_uint64_t.patch +++ b/meta-ivi/recipes-extended/persistence-common-object/persistence-common-object/B251_typedef_uint64_t.patch @@ -1,17 +1,27 @@ +From 0f5eca77f55f7236b51016e0d7573c078c895640 Mon Sep 17 00:00:00 2001 +From: Holger Behrens <holger.behrens@windriver.com> +Date: Mon, 17 Nov 2014 18:29:45 +0100 +Subject: [[PATCH] persComTypes.h: Bug 251 work around + +Signed-off-by: Holger Behrens <holger.behrens@windriver.com> +--- + inc/protected/persComTypes.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + diff --git a/inc/protected/persComTypes.h b/inc/protected/persComTypes.h -index 4fc0ff7..78f4fb6 100644 +index 47a6664..7a312b4 100644 --- a/inc/protected/persComTypes.h +++ b/inc/protected/persComTypes.h -@@ -77,7 +77,7 @@ typedef __s64 INT64; +@@ -83,7 +83,7 @@ typedef __s64 INT64; typedef __u8 uint8_t; typedef __u16 uint16_t; typedef __u32 uint32_t; -typedef __u64 uint64_t; +//typedef __u64 uint64_t; + #endif /** - * \brief 8 bit signed -@@ -196,7 +196,7 @@ typedef sint32_t* psint32_t; +@@ -203,7 +203,7 @@ typedef sint32_t* psint32_t; /** * \brief Pointer to UNSIGNED-64-Bit */ @@ -20,3 +30,6 @@ index 4fc0ff7..78f4fb6 100644 /** * \brief Pointer to SIGNED-64-Bit */ +-- +2.1.3 + diff --git a/meta-ivi/recipes-extended/persistence-common-object/persistence-common-object/configure.ac-fix-typo.patch b/meta-ivi/recipes-extended/persistence-common-object/persistence-common-object/configure.ac-fix-typo.patch new file mode 100644 index 0000000..ac760ae --- /dev/null +++ b/meta-ivi/recipes-extended/persistence-common-object/persistence-common-object/configure.ac-fix-typo.patch @@ -0,0 +1,26 @@ +From d4aa6cf7344c3d1b244fdddfe95d8300f35aa157 Mon Sep 17 00:00:00 2001 +From: Holger Behrens <holger.behrens@windriver.com> +Date: Mon, 17 Nov 2014 17:08:08 +0100 +Subject: [[PATCH] configure.ac: fix typo + +Signed-off-by: Holger Behrens <holger.behrens@windriver.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index badd5c6..88e8a63 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -25,7 +25,7 @@ m4_define([PERSCOMMON_LIB_VERSION_N],[1001001]) + dnl *************************** + dnl *** Initialize autoconf *** + dnl *************************** +-AC_INIT([persistence-common],[LIBPERSOCOMMON_VERSION_S()]) ++AC_INIT([persistence-common],[PERSCOMMON_PACKAGE_VERSION_S]) + AC_COPYRIGHT([Copyright (c) 2012 Continental Automotive GmbH]) + AC_PREREQ([2.50]) + +-- +2.1.3 + diff --git a/meta-ivi/recipes-extended/persistence-common-object/persistence-common-object_1.0.1.bb b/meta-ivi/recipes-extended/persistence-common-object/persistence-common-object_1.0.3.bb index 952b9a8..dd9e4fe 100644 --- a/meta-ivi/recipes-extended/persistence-common-object/persistence-common-object_1.0.1.bb +++ b/meta-ivi/recipes-extended/persistence-common-object/persistence-common-object_1.0.3.bb @@ -2,16 +2,16 @@ SUMARY = "Common persistence object used by client library and administrator" HOMEPAGE = "http://projects.genivi.org/persistence-client-library" BUGTRACKER = "http://bugs.genivi.org/enter_bug.cgi?product=Persistence" SECTION = "base" - LICENSE = "MPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=815ca599c9df247a0c7f619bab123dad" -SRC_URI = "git://git.projects.genivi.org/persistence/persistence-common-object.git \ - file://B251_typedef_uint64_t.patch" +SRC_URI = " \ + git://git.projects.genivi.org/persistence/persistence-common-object.git;tag=${PV} \ + file://configure.ac-fix-typo.patch \ + file://B251_typedef_uint64_t.patch \ + " #link for bug 251 in bugzilla https://bugs.genivi.org/show_bug.cgi?id=251 -SRCREV = "8779f2dc2801bc273e0251a3aaff867ab07ed6f2" - DEPENDS = "glib-2.0 libitzam dlt-daemon" S = "${WORKDIR}/git" @@ -21,4 +21,3 @@ inherit autotools-brokensep pkgconfig EXTRA_OECONF = "--with-dbuspolicydir=${sysconfdir}" FILES_${PN} += "${datadir}" - diff --git a/meta-ivi/recipes-graphics/layer-management/layer-management_1.1.bb b/meta-ivi/recipes-graphics/layer-management/layer-management_1.1.bb index 8623fc5..6a261fb 100644 --- a/meta-ivi/recipes-graphics/layer-management/layer-management_1.1.bb +++ b/meta-ivi/recipes-graphics/layer-management/layer-management_1.1.bb @@ -51,7 +51,7 @@ FILES_${PN}-dbg += " \ " do_install_append() { - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then install -d ${D}${systemd_unitdir}/system/ install -m 0644 ${WORKDIR}/layermanager.service ${D}${systemd_unitdir}/system fi diff --git a/meta-ivi/recipes-graphics/mesa/mesa_10.%.bbappend b/meta-ivi/recipes-graphics/mesa/mesa_10.%.bbappend index 9d471e4..2561585 100644 --- a/meta-ivi/recipes-graphics/mesa/mesa_10.%.bbappend +++ b/meta-ivi/recipes-graphics/mesa/mesa_10.%.bbappend @@ -1 +1 @@ -PACKAGECONFIG_append = "gallium gallium-egl gallium-llvm" +PACKAGECONFIG_append = " gallium gallium-egl gallium-llvm" diff --git a/meta-ivi/recipes-graphics/wayland/wayland-ivi-extension/use_sysroot_dir.patch b/meta-ivi/recipes-graphics/wayland/wayland-ivi-extension/use_sysroot_dir.patch index 8811879..17dbb9e 100644 --- a/meta-ivi/recipes-graphics/wayland/wayland-ivi-extension/use_sysroot_dir.patch +++ b/meta-ivi/recipes-graphics/wayland/wayland-ivi-extension/use_sysroot_dir.patch @@ -1,13 +1,13 @@ Index: git/weston-ivi-shell/CMakeLists.txt =================================================================== ---- git.orig/weston-ivi-shell/CMakeLists.txt 2014-04-04 00:15:43.000000000 +0300 -+++ git/weston-ivi-shell/CMakeLists.txt 2014-04-04 00:16:20.000000000 +0300 -@@ -44,7 +44,7 @@ +--- git.orig/weston-ivi-shell/CMakeLists.txt ++++ git/weston-ivi-shell/CMakeLists.txt +@@ -49,7 +49,7 @@ link_directories( ${CAIRO_LIBRARY_DIRS} ${WESTON_LIBRARY_DIRS} ${PIXMAN_LIBRARY_DIRS} - ${WESTON_LIBDIR}/weston + =${WESTON_LIBDIR}/weston + ${EGL_LIBRARY_DIRS} + ${GLES_LIBRARY_DIRS} ) - - diff --git a/meta-ivi/recipes-graphics/wayland/wayland-ivi-extension_1.2.0_rc7.bb b/meta-ivi/recipes-graphics/wayland/wayland-ivi-extension_1.2.0.bb index 73e5266..fdc7c50 100644 --- a/meta-ivi/recipes-graphics/wayland/wayland-ivi-extension_1.2.0_rc7.bb +++ b/meta-ivi/recipes-graphics/wayland/wayland-ivi-extension_1.2.0.bb @@ -7,17 +7,14 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=176cedb32f48dd58f07e0c1c717b3ea4" DEPENDS = "weston" -PV = "1.2.0-rc7+git${SRCPV}" - SRC_URI = "git://git.projects.genivi.org/wayland-ivi-extension.git \ file://use_sysroot_dir.patch \ file://fix_compositor_include.patch \ " -SRCREV = "6ee4b2e418bd6c0c9fd21ff7195faff3875da1e8" +SRCREV = "278437417d1ac0958a800eecfebd2a388d6d9ca7" S = "${WORKDIR}/git" inherit cmake autotools FILES_${PN} += "${libdir}/weston/*" FILES_${PN}-dbg += "${libdir}/weston/.debug/*" - diff --git a/meta-ivi/recipes-graphics/wayland/wayland-ivi-extension_1.3.0.bb b/meta-ivi/recipes-graphics/wayland/wayland-ivi-extension_1.3.0.bb new file mode 100644 index 0000000..c8f9ca8 --- /dev/null +++ b/meta-ivi/recipes-graphics/wayland/wayland-ivi-extension_1.3.0.bb @@ -0,0 +1,23 @@ +SUMMARY = "Wayland IVI Extension" +DESCRIPTION = "GENIVI Layer Management API based on Wayland IVI Extension" +HOMEPAGE = "http://projects.genivi.org/wayland-ivi-extension" +BUGTRACKER = "http://bugs.genivi.org/enter_bug.cgi?product=Wayland%20IVI%20Extension" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=176cedb32f48dd58f07e0c1c717b3ea4" + +DEPENDS = "weston" + +# FIX ME +# This should be TAG = "${PV}" but yocto doesn't support lightweight tags for now +# https://bugzilla.yoctoproject.org/show_bug.cgi?id=6881 +TAG = "a4bde3e5a4c21ff7cf28cc027d45d7c63cac2f66" +SRC_URI = "git://git.projects.genivi.org/${PN}.git;tag=${TAG} \ + file://use_sysroot_dir.patch \ + file://fix_compositor_include.patch \ + " +S = "${WORKDIR}/git" + +inherit cmake autotools + +FILES_${PN} += "${libdir}/weston/*" +FILES_${PN}-dbg += "${libdir}/weston/.debug/*" diff --git a/meta-ivi/recipes-graphics/wayland/weston/0001-Enable-disable-default-virtual-keyboard.patch b/meta-ivi/recipes-graphics/wayland/weston/0001-Enable-disable-default-virtual-keyboard.patch new file mode 100644 index 0000000..d6ae6c2 --- /dev/null +++ b/meta-ivi/recipes-graphics/wayland/weston/0001-Enable-disable-default-virtual-keyboard.patch @@ -0,0 +1,84 @@ +From 42f5cc1e4436c34dd1c939ff49f403be609f8f1c Mon Sep 17 00:00:00 2001 +From: Imran Zaman <imran.zaman@intel.com> +Date: Thu, 5 Feb 2015 13:21:44 +0100 +Subject: [PATCH] Enable/disable default virtual keyboard + +Adapted from Tizen commit ad9e205ea7fdb859679b63698a931fa127c5523a + +<quote> +Since fullscreen shell does not support virtual keyboard, +added configure option to enable/disable default virtual +keyboard. This avoids unnecessary trial of launching vkb +and hence will improve boot time + +Change-Id: I67bdd8ee231d101d6e3747a45968758af42ebc5a +Bug-Tizen: TC-810 +Signed-off-by: Imran Zaman <imran.zaman@intel.com> +</quote> + +Signed-off-by: Holger Behrens <holger.behrens@windriver.com> +--- + configure.ac | 10 ++++++++++ + src/text-backend.c | 15 ++++++++++++--- + 2 files changed, 22 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d14ed16..9f898ca 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -456,6 +456,15 @@ if test x$enable_ivi_shell = xyes; then + PKG_CHECK_MODULES(IVI_SHELL, [cairo]) + fi + ++AC_ARG_ENABLE([default-vkb], ++ [AC_HELP_STRING([--enable-default-vkb], ++ [Enable default virtual keyboard])], ++ [], ++ [enable_default_vkb=yes]) ++if test "x$enable_default_vkb" = "xyes"; then ++ AC_DEFINE(HAVE_DEFAULT_VKB, [1], [Enable default virtual keyboard]) ++fi ++ + AC_ARG_ENABLE(wcap-tools, [ --disable-wcap-tools],, enable_wcap_tools=yes) + AM_CONDITIONAL(BUILD_WCAP_TOOLS, test x$enable_wcap_tools = xyes) + if test x$enable_wcap_tools = xyes; then +@@ -558,6 +567,7 @@ AC_MSG_RESULT([ + dbus ${enable_dbus} + + ivi-shell ${enable_ivi_shell} ++ default virtual keyboard ${enable_default_vkb} + + Build wcap utility ${enable_wcap_tools} + Build Fullscreen Shell ${enable_fullscreen_shell} +diff --git a/src/text-backend.c b/src/text-backend.c +index d6a6f3b..4908b8a 100644 +--- a/src/text-backend.c ++++ b/src/text-backend.c +@@ -939,12 +939,21 @@ static void + text_backend_configuration(struct text_backend *text_backend) + { + struct weston_config_section *section; ++ char *client = NULL; ++ int ret = -1; + + section = weston_config_get_section(text_backend->compositor->config, + "input-method", NULL, NULL); +- weston_config_section_get_string(section, "path", +- &text_backend->input_method.path, +- LIBEXECDIR "/weston-keyboard"); ++#if HAVE_DEFAULT_VKB ++ ret = asprintf(&client, "%s/weston-keyboard", ++ weston_config_get_libexec_dir()); ++#endif ++ if (ret < 0) ++ client = NULL; ++ ++ weston_config_section_get_string(section, "path", ++ &text_backend->input_method.path, ++ client); + } + + static void +-- +2.2.2 + diff --git a/meta-ivi/recipes-graphics/wayland/weston/ivi-shell-click-event.patch b/meta-ivi/recipes-graphics/wayland/weston/ivi-shell-click-event.patch new file mode 100644 index 0000000..3921ca9 --- /dev/null +++ b/meta-ivi/recipes-graphics/wayland/weston/ivi-shell-click-event.patch @@ -0,0 +1,124 @@ +From ntanibata@jp.adit-jv.com Fri Dec 12 03:56:24 2014 +Received: from mail.windriver.com (147.11.1.11) by ALA-HCA.corp.ad.wrs.com + (147.11.189.50) with Microsoft SMTP Server (TLS) id 14.3.174.1; Thu, 11 Dec + 2014 18:56:23 -0800 +Received: from mr1.windriver.com (mr1 [192.124.127.25]) by mail.windriver.com + (8.14.9/8.14.5) with ESMTP id sBC2uLlr026848 (version=TLSv1/SSLv3 + cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 11 Dec 2014 18:56:22 + -0800 (PST) +Received: from esa2.edoxs1.iphmx.com (esa2.edoxs1.iphmx.com [68.232.135.254]) + by mr1.windriver.com (8.14.9/8.14.9) with ESMTP id sBC2uL7v028404 + (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=FAIL); Thu, 11 Dec 2014 + 18:56:21 -0800 +X-IronPort-Anti-Spam-Filtered: true +X-IronPort-Anti-Spam-Result: AtUAAKJYilSFwLVOnGdsb2JhbABZg1hYw1aCGwqFbgKBFRYBAQEBAREBAQEBAQYNCQkULoQMAQEBBAECCRsJEAEBLAsBCwQCAQgRBAEBAQoGFwEGAR4JBBoJCAIEEwgMB4gQDsBZhVIBBZFGAQEBAQEBAQEBAQEBAQEBAQEBAQEBEQaPDwEQAgEeBisHBoInTB2BE4Uig3YohEQEgzqBQIFcIoFzgQwNI4ItihODN4QdXwGBAiSBHAEBAQ +X-IPAS-Result: AtUAAKJYilSFwLVOnGdsb2JhbABZg1hYw1aCGwqFbgKBFRYBAQEBAREBAQEBAQYNCQkULoQMAQEBBAECCRsJEAEBLAsBCwQCAQgRBAEBAQoGFwEGAR4JBBoJCAIEEwgMB4gQDsBZhVIBBZFGAQEBAQEBAQEBAQEBAQEBAQEBAQEBEQaPDwEQAgEeBisHBoInTB2BE4Uig3YohEQEgzqBQIFcIoFzgQwNI4ItihODN4QdXwGBAiSBHAEBAQ +X-IronPort-AV: E=Sophos;i="5.07,561,1413270000"; + d="scan'208";a="110097519" +Received: from ma-dnext03.denso.co.jp ([133.192.181.78]) by + esa2.edoxs1.iphmx.com with ESMTP; 11 Dec 2014 18:56:12 -0800 +Received: from guardw2.denso.co.jp (unknown [133.192.24.24]) by + ma-dnext03.denso.co.jp (Postfix) with ESMTP id 25D295D02BA; Fri, 12 Dec 2014 + 11:56:09 +0900 (JST) +DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=adit-jv.com; + s=jpadit-jvmail2011; t=1418352969; + bh=AfmD+uPkOMv42mZQfFad+rgrE601l5DmedvTjy11d4c=; + h=MIME-Version:Content-Type:Content-Transfer-Encoding:Subject:Date: + Message-ID:In-Reply-To:References:From:To:Cc; + b=V6gBLvmpZtG28BTmzIocIVwltzkvm1YCiUgCQ+FFRQ6rUVlsPjLbJ7OGQP3Z47xQT + BveplQwKTCpnNCHqvvqyCNQcuTWbOBjOpgCzkOQH8163Mi6fHeRsrOIWVwvb5WLLbQ + Otpd6b/gvSfgv5uBk3cUQHNeG2aby+iZmdRsaQILqkhv1oUlT7FWBP1hHCLGHpqJL4 + p4MxHtAqKjQlnDJELSK/8ExdbQJGlDsAc0DNk4RzzwUp4Ff3m3CMwRBmkvtma4UVQh + NYbSXaPGDnJcYSg7r9qT5k7K1mbBuoKcz0bNYMtTDUsBOLEirXT0kYWqoFfl+Jaw/q + eY6yHT+Z0lw2A== +Received: by guardw2.denso.co.jp (Postfix, from userid 0) id 15D6E6DF3; Fri, + 12 Dec 2014 11:56:09 +0900 (JST) +Received: from smtp1.denso.co.jp [133.192.24.88] by guardw2 with ESMTP id + MAA08496; Fri, 12 Dec 2014 11:56:08 +0900 +Received: from msj2.adit-jv.com ([10.71.113.25]) by smtp01.denso.co.jp (MOS + 4.2.4-GA) with ESMTP id CJC78590; Fri, 12 Dec 2014 11:56:07 +0900 +X-MimeOLE: Produced By Microsoft Exchange V6.5 +Content-Class: urn:content-classes:message +Content-Type: text/plain; charset="iso-8859-1" +Content-Transfer-Encoding: quoted-printable +Subject: RE: weston-ivi-shell input method not supported +Date: Fri, 12 Dec 2014 11:56:06 +0900 +Message-ID: <EC24A990E5DA3D41A67C0F9C755F987BEA7A60@msj2.adit-jv.com> +In-Reply-To: <0994C93624B9194C867A2AA78BFAA734AD74977C@ALA-MBB.corp.ad.wrs.com> +X-MS-Has-Attach: +X-MS-TNEF-Correlator: +Thread-Topic: weston-ivi-shell input method not supported +Thread-Index: AdAEo9qzd7B8JvN8SiCG1HHmuOgOQgAps/xQAgi50BAAHfTugAAGiR4wACG0O/AAJFPVgAAfTuMAABx/dYABEnjvXgABCAagAFhzyOA= +References: <0994C93624B9194C867A2AA78BFAA734AD7327F7@ALA-MBB.corp.ad.wrs.com> <EC24A990E5DA3D41A67C0F9C755F987BE562C8@msj2.adit-jv.com> <0994C93624B9194C867A2AA78BFAA734AD73F017@ALA-MBB.corp.ad.wrs.com> <EC24A990E5DA3D41A67C0F9C755F987BEA73BB@msj2.adit-jv.com> <0994C93624B9194C867A2AA78BFAA734AD73F824@ALA-MBB.corp.ad.wrs.com> <EC24A990E5DA3D41A67C0F9C755F987BEA7445@msj2.adit-jv.com> <547ECC2F.5000201@windriver.com> <EC24A990E5DA3D41A67C0F9C755F987BEA7500@msj2.adit-jv.com>,<54805D89.5010003@windriver.com> <7A688B48FC95D148BFE83E098348BE505CF002FB@ALA-MBA.corp.ad.wrs.com> <0994C93624B9194C867A2AA78BFAA734AD74977C@ALA-MBB.corp.ad.wrs.com> +From: "Tanibata, Nobuhiko (ADITJ/SWG)" <ntanibata@jp.adit-jv.com> +To: =?iso-8859-1?Q?Bourcier=2C_Fr=E9d=E9ric?= + <Frederic.Bourcier@windriver.com>, "Behrens, Holger" + <Holger.Behrens@windriver.com>, "Sarbu, Florin-Ionut (Florin)" + <Florin.Sarbu@windriver.com>, "Gherzan, Andrei" + <Andrei.Gherzan@windriver.com> +CC: <genivi-ivi-layer-management@lists.genivi.org>, + <philippe.robin@technoveo.com>, "Ishikawa, Tetsuri (ADITJ/SWG)" + <tishikawa@jp.adit-jv.com> +Return-Path: ntanibata@jp.adit-jv.com +X-MS-Exchange-Organization-AuthSource: ALA-HCA.corp.ad.wrs.com +X-MS-Exchange-Organization-AuthAs: Anonymous +MIME-Version: 1.0 +Status: RO +Content-Length: 10061 +Lines: 284 + +Hi Frederic-san, Holger-san, + +I think I find root cause as result of debug. + +For first check, please apply this patch on ivi-shell, branch genivi-1.2.0;= + I think you are using now. +Please forget genivi-1.3.0 in my another mail. Formally we should use 1.3.0= + but for demo purpose first fix might be better. + +----------------------------------------------------------------------------------------------- +Subject: [PATCH] Add the processing which has notice of click event from compositor + +Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA at xddp.denso.co.jp> +--- + ivi-shell/ivi-shell.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c +index 468e66a..9238e93 100644 +--- a/ivi-shell/ivi-shell.c ++++ b/ivi-shell/ivi-shell.c +@@ -413,6 +413,20 @@ surface_configure_notify(struct wl_listener *listener, void *data) + + } + ++static void ++click_to_activate_binding(struct weston_seat *seat, uint32_t time, uint32_t button, ++ void *data) ++{ ++ if (seat->pointer->grab != &seat->pointer->default_grab) { ++ return; ++ } ++ if (seat->pointer->focus == NULL) { ++ return; ++ } ++ ++ weston_surface_activate(seat->pointer->focus->surface, seat); ++} ++ + WL_EXPORT int + module_init(struct weston_compositor *compositor, + int *argc, char *argv[]) +@@ -479,6 +493,8 @@ module_init(struct weston_compositor *compositor, + + keyboard_key_func = ivi_layout->grab_keyboard_key; + ++ weston_compositor_add_button_binding(compositor, BTN_LEFT, 0, click_to_activate_binding, shell); ++ + free(setting.ivi_module); + return 0; + } +1.7.11.7 + +BR, +Nobuhiko Tanibata diff --git a/meta-ivi/recipes-graphics/wayland/weston_1.5.0.bbappend b/meta-ivi/recipes-graphics/wayland/weston_1.5.0.bbappend index 10a417f..52522b0 100644 --- a/meta-ivi/recipes-graphics/wayland/weston_1.5.0.bbappend +++ b/meta-ivi/recipes-graphics/wayland/weston_1.5.0.bbappend @@ -40,6 +40,23 @@ SRC_URI_append = " \ " # +# [PATCH] Add the processing which has notice of click event from compositor +# Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA at xddp.denso.co.jp> +SRC_URI_append = "\ + file://ivi-shell-click-event.patch \ + " +# +# [PATCH] Enable/disable default virtual keyboard +# Signed-off-by: Imran Zaman <imran.zaman@intel.com> +SRC_URI_append = "\ + file://0001-Enable-disable-default-virtual-keyboard.patch \ + " + +EXTRA_OECONF += "\ + --disable-default-vkb \ + " + +# # TO DO # Remove when bug is fixed: https://bugzilla.yoctoproject.org/show_bug.cgi?id=5968 # Due to a yocto bug, applying patches with something else then quilt fails. diff --git a/meta-ivi/recipes-graphics/xorg-lib/xkeyboard-config_%.bbappend b/meta-ivi/recipes-graphics/xorg-lib/xkeyboard-config_%.bbappend new file mode 100644 index 0000000..427e4f6 --- /dev/null +++ b/meta-ivi/recipes-graphics/xorg-lib/xkeyboard-config_%.bbappend @@ -0,0 +1,4 @@ +# FIX ME +# Temporary fix until patch is merged in yocto: +# http://lists.openembedded.org/pipermail/openembedded-core/2014-November/098774.html +inherit gettext diff --git a/meta-ivi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend b/meta-ivi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend index 14c35d0..f8ce77a 100644 --- a/meta-ivi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend +++ b/meta-ivi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend @@ -8,7 +8,7 @@ SYSTEMD_SERVICE_${PN} = "X.service" SRC_URI_append = " file://X.service \ " do_install_append() { - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then install -d ${D}${systemd_unitdir}/system/ install -m 0644 ${WORKDIR}/X.service ${D}${systemd_unitdir}/system fi diff --git a/meta-ivi/recipes-multimedia/audiomanager/audiomanager/0001-Add-CommonAPI-sources-generated-with-CommonAPI-2.1.6.patch b/meta-ivi/recipes-multimedia/audiomanager/audiomanager/0001-Add-CommonAPI-sources-generated-with-CommonAPI-2.1.6.patch new file mode 100644 index 0000000..a1e51bb --- /dev/null +++ b/meta-ivi/recipes-multimedia/audiomanager/audiomanager/0001-Add-CommonAPI-sources-generated-with-CommonAPI-2.1.6.patch @@ -0,0 +1,25986 @@ +From 712d7d611de7357c1324cce4a19f5f6d6ec48cb7 Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan <andrei.gherzan@windriver.com> +Date: Wed, 13 May 2015 16:06:11 +0200 +Subject: [PATCH] Add CommonAPI sources generated with CommonAPI 2.1.6 generator + +Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com> +--- + .../src-gen/org/genivi/NodeStateManager/Consumer.h | 62 + + .../genivi/NodeStateManager/ConsumerDBusProxy.cpp | 284 +++ + .../genivi/NodeStateManager/ConsumerDBusProxy.h | 98 + + .../NodeStateManager/ConsumerDBusStubAdapter.cpp | 305 +++ + .../NodeStateManager/ConsumerDBusStubAdapter.h | 182 ++ + .../org/genivi/NodeStateManager/ConsumerProxy.h | 627 +++++ + .../genivi/NodeStateManager/ConsumerProxyBase.h | 95 + + .../org/genivi/NodeStateManager/ConsumerStub.h | 152 ++ + .../NodeStateManager/ConsumerStubDefault.cpp | 239 ++ + .../genivi/NodeStateManager/ConsumerStubDefault.h | 128 + + .../genivi/NodeStateManager/LifeCycleConsumer.h | 62 + + .../LifeCycleConsumerDBusProxy.cpp | 74 + + .../NodeStateManager/LifeCycleConsumerDBusProxy.h | 62 + + .../LifeCycleConsumerDBusStubAdapter.cpp | 121 + + .../LifeCycleConsumerDBusStubAdapter.h | 113 + + .../NodeStateManager/LifeCycleConsumerProxy.h | 185 ++ + .../NodeStateManager/LifeCycleConsumerProxyBase.h | 49 + + .../NodeStateManager/LifeCycleConsumerStub.h | 98 + + .../LifeCycleConsumerStubDefault.cpp | 46 + + .../LifeCycleConsumerStubDefault.h | 67 + + .../src-gen/org/genivi/am.cpp | 1043 ++++++++ + PluginCommandInterfaceCAPI/src-gen/org/genivi/am.h | 2551 ++++++++++++++++++++ + .../src-gen/org/genivi/am/CommandControl.h | 67 + + .../org/genivi/am/CommandControlDBusProxy.cpp | 651 +++++ + .../org/genivi/am/CommandControlDBusProxy.h | 266 ++ + .../genivi/am/CommandControlDBusStubAdapter.cpp | 1096 +++++++++ + .../org/genivi/am/CommandControlDBusStubAdapter.h | 422 ++++ + .../src-gen/org/genivi/am/CommandControlProxy.h | 1194 +++++++++ + .../org/genivi/am/CommandControlProxyBase.h | 348 +++ + .../src-gen/org/genivi/am/CommandControlStub.h | 492 ++++ + .../org/genivi/am/CommandControlStubDefault.cpp | 456 ++++ + .../org/genivi/am/CommandControlStubDefault.h | 336 +++ + .../src-gen/org/genivi/am.cpp | 1043 ++++++++ + PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.h | 2551 ++++++++++++++++++++ + .../src-gen/org/genivi/am/RoutingControl.h | 63 + + .../org/genivi/am/RoutingControlDBusProxy.cpp | 407 ++++ + .../org/genivi/am/RoutingControlDBusProxy.h | 157 ++ + .../genivi/am/RoutingControlDBusStubAdapter.cpp | 477 ++++ + .../org/genivi/am/RoutingControlDBusStubAdapter.h | 250 ++ + .../src-gen/org/genivi/am/RoutingControlObserver.h | 63 + + .../genivi/am/RoutingControlObserverDBusProxy.cpp | 1135 +++++++++ + .../genivi/am/RoutingControlObserverDBusProxy.h | 357 +++ + .../am/RoutingControlObserverDBusStubAdapter.cpp | 1244 ++++++++++ + .../am/RoutingControlObserverDBusStubAdapter.h | 557 +++++ + .../org/genivi/am/RoutingControlObserverProxy.h | 1921 +++++++++++++++ + .../genivi/am/RoutingControlObserverProxyBase.h | 401 +++ + .../org/genivi/am/RoutingControlObserverStub.h | 407 ++++ + .../am/RoutingControlObserverStubDefault.cpp | 636 +++++ + .../genivi/am/RoutingControlObserverStubDefault.h | 429 ++++ + .../src-gen/org/genivi/am/RoutingControlProxy.h | 712 ++++++ + .../org/genivi/am/RoutingControlProxyBase.h | 163 ++ + .../src-gen/org/genivi/am/RoutingControlStub.h | 198 ++ + .../org/genivi/am/RoutingControlStubDefault.cpp | 224 ++ + .../org/genivi/am/RoutingControlStubDefault.h | 176 ++ + 54 files changed, 25542 insertions(+) + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/Consumer.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.cpp + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.cpp + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxy.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxyBase.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStub.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.cpp + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumer.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.cpp + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.cpp + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxy.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxyBase.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStub.h + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.cpp + create mode 100644 AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.h + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am.cpp + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am.h + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControl.h + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.cpp + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.h + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.cpp + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.h + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxy.h + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxyBase.h + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStub.h + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.cpp + create mode 100644 PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.cpp + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControl.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.cpp + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.cpp + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserver.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.cpp + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.cpp + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxy.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxyBase.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStub.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.cpp + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxy.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxyBase.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStub.h + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.cpp + create mode 100644 PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.h + +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/Consumer.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/Consumer.h +new file mode 100644 +index 0000000..62c8f39 +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/Consumer.h +@@ -0,0 +1,62 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Consumer_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Consumer_H_ ++ ++ ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/types.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++class Consumer { ++ public: ++ virtual ~Consumer() { } ++ ++ static inline const char* getInterfaceId(); ++ static inline CommonAPI::Version getInterfaceVersion(); ++}; ++ ++const char* Consumer::getInterfaceId() { ++ static const char* interfaceId = "org.genivi.NodeStateManager.Consumer"; ++ return interfaceId; ++} ++ ++CommonAPI::Version Consumer::getInterfaceVersion() { ++ return CommonAPI::Version(1, 0); ++} ++ ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++namespace CommonAPI { ++ ++} ++ ++ ++namespace std { ++ //hashes for types ++ ++ //hashes for error types ++} ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Consumer_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.cpp +new file mode 100644 +index 0000000..6f4139e +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.cpp +@@ -0,0 +1,284 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#include "ConsumerDBusProxy.h" ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++std::shared_ptr<CommonAPI::DBus::DBusProxy> createConsumerDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyConnection) { ++ return std::make_shared<ConsumerDBusProxy>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection); ++} ++ ++INITIALIZER(registerConsumerDBusProxy) { ++ CommonAPI::DBus::DBusFactory::registerProxyFactoryMethod(Consumer::getInterfaceId(), ++ &createConsumerDBusProxy); ++} ++ ++ConsumerDBusProxy::ConsumerDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyconnection): ++ CommonAPI::DBus::DBusProxy(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyconnection) ++,bootMode_(*this, "i", "getBootModeAttribute"), ++restartReason_(*this, "i", "getRestartReasonAttribute"), ++shutdownReason_(*this, "i", "getShutdownReasonAttribute"), ++wakeUpReason_(*this, "i", "getWakeUpReasonAttribute") ++, nodeApplicationMode_(*this, "NodeApplicationMode", "i"), ++ sessionStateChanged_(*this, "SessionStateChanged", "sii"), ++ nodeState_(*this, "NodeState", "i") ++ { ++ } ++ ++ConsumerDBusProxy::BootModeAttribute& ConsumerDBusProxy::getBootModeAttribute() { ++ return bootMode_; ++} ++ConsumerDBusProxy::RestartReasonAttribute& ConsumerDBusProxy::getRestartReasonAttribute() { ++ return restartReason_; ++} ++ConsumerDBusProxy::ShutdownReasonAttribute& ConsumerDBusProxy::getShutdownReasonAttribute() { ++ return shutdownReason_; ++} ++ConsumerDBusProxy::WakeUpReasonAttribute& ConsumerDBusProxy::getWakeUpReasonAttribute() { ++ return wakeUpReason_; ++} ++ ++ConsumerDBusProxy::NodeApplicationModeEvent& ConsumerDBusProxy::getNodeApplicationModeEvent() { ++ return nodeApplicationMode_; ++} ++ConsumerDBusProxy::SessionStateChangedEvent& ConsumerDBusProxy::getSessionStateChangedEvent() { ++ return sessionStateChanged_; ++} ++ConsumerDBusProxy::NodeStateEvent& ConsumerDBusProxy::getNodeStateEvent() { ++ return nodeState_; ++} ++ ++void ConsumerDBusProxy::GetAppHealthCount(CommonAPI::CallStatus& callStatus, uint32_t& Count) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<uint32_t> >::callMethodWithReply( ++ *this, ++ "GetAppHealthCount", ++ "", ++ callStatus ++ , Count); ++} ++std::future<CommonAPI::CallStatus> ConsumerDBusProxy::GetAppHealthCountAsync(GetAppHealthCountAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<uint32_t> >::callMethodAsync( ++ *this, ++ "GetAppHealthCount", ++ "", ++ std::move(callback)); ++} ++void ConsumerDBusProxy::LifecycleRequestComplete(const uint32_t& RequestId, const int32_t& Status, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<uint32_t, int32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodWithReply( ++ *this, ++ "LifecycleRequestComplete", ++ "ui", ++ RequestId, Status, ++ callStatus ++ , ErrorCode); ++} ++std::future<CommonAPI::CallStatus> ConsumerDBusProxy::LifecycleRequestCompleteAsync(const uint32_t& RequestId, const int32_t& Status, LifecycleRequestCompleteAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<uint32_t, int32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodAsync( ++ *this, ++ "LifecycleRequestComplete", ++ "ui", ++ RequestId, Status, ++ std::move(callback)); ++} ++void ConsumerDBusProxy::GetInterfaceVersion(CommonAPI::CallStatus& callStatus, uint32_t& Version) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<uint32_t> >::callMethodWithReply( ++ *this, ++ "GetInterfaceVersion", ++ "", ++ callStatus ++ , Version); ++} ++std::future<CommonAPI::CallStatus> ConsumerDBusProxy::GetInterfaceVersionAsync(GetInterfaceVersionAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<uint32_t> >::callMethodAsync( ++ *this, ++ "GetInterfaceVersion", ++ "", ++ std::move(callback)); ++} ++void ConsumerDBusProxy::GetApplicationMode(CommonAPI::CallStatus& callStatus, int32_t& ErrorCode, int32_t& ApplicationModeId) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t, int32_t> >::callMethodWithReply( ++ *this, ++ "GetApplicationMode", ++ "", ++ callStatus ++ , ErrorCode, ApplicationModeId); ++} ++std::future<CommonAPI::CallStatus> ConsumerDBusProxy::GetApplicationModeAsync(GetApplicationModeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t, int32_t> >::callMethodAsync( ++ *this, ++ "GetApplicationMode", ++ "", ++ std::move(callback)); ++} ++void ConsumerDBusProxy::UnRegisterSession(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, std::string, int32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodWithReply( ++ *this, ++ "UnRegisterSession", ++ "ssi", ++ SessionName, SessionOwner, SeatID, ++ callStatus ++ , ErrorCode); ++} ++std::future<CommonAPI::CallStatus> ConsumerDBusProxy::UnRegisterSessionAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, UnRegisterSessionAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, std::string, int32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodAsync( ++ *this, ++ "UnRegisterSession", ++ "ssi", ++ SessionName, SessionOwner, SeatID, ++ std::move(callback)); ++} ++void ConsumerDBusProxy::RegisterSession(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, const int32_t& SessionState, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, std::string, int32_t, int32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodWithReply( ++ *this, ++ "RegisterSession", ++ "ssii", ++ SessionName, SessionOwner, SeatID, SessionState, ++ callStatus ++ , ErrorCode); ++} ++std::future<CommonAPI::CallStatus> ConsumerDBusProxy::RegisterSessionAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, const int32_t& SessionState, RegisterSessionAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, std::string, int32_t, int32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodAsync( ++ *this, ++ "RegisterSession", ++ "ssii", ++ SessionName, SessionOwner, SeatID, SessionState, ++ std::move(callback)); ++} ++void ConsumerDBusProxy::UnRegisterShutdownClient(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, std::string, uint32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodWithReply( ++ *this, ++ "UnRegisterShutdownClient", ++ "ssu", ++ BusName, ObjName, ShutdownMode, ++ callStatus ++ , ErrorCode); ++} ++std::future<CommonAPI::CallStatus> ConsumerDBusProxy::UnRegisterShutdownClientAsync(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, UnRegisterShutdownClientAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, std::string, uint32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodAsync( ++ *this, ++ "UnRegisterShutdownClient", ++ "ssu", ++ BusName, ObjName, ShutdownMode, ++ std::move(callback)); ++} ++void ConsumerDBusProxy::RegisterShutdownClient(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, const uint32_t& TimeoutMs, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, std::string, uint32_t, uint32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodWithReply( ++ *this, ++ "RegisterShutdownClient", ++ "ssuu", ++ BusName, ObjName, ShutdownMode, TimeoutMs, ++ callStatus ++ , ErrorCode); ++} ++std::future<CommonAPI::CallStatus> ConsumerDBusProxy::RegisterShutdownClientAsync(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, const uint32_t& TimeoutMs, RegisterShutdownClientAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, std::string, uint32_t, uint32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodAsync( ++ *this, ++ "RegisterShutdownClient", ++ "ssuu", ++ BusName, ObjName, ShutdownMode, TimeoutMs, ++ std::move(callback)); ++} ++void ConsumerDBusProxy::GetNodeState(CommonAPI::CallStatus& callStatus, int32_t& ErrorCode, int32_t& NodeStateId) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t, int32_t> >::callMethodWithReply( ++ *this, ++ "GetNodeState", ++ "", ++ callStatus ++ , ErrorCode, NodeStateId); ++} ++std::future<CommonAPI::CallStatus> ConsumerDBusProxy::GetNodeStateAsync(GetNodeStateAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t, int32_t> >::callMethodAsync( ++ *this, ++ "GetNodeState", ++ "", ++ std::move(callback)); ++} ++void ConsumerDBusProxy::GetSessionState(const std::string& SessionName, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& SessionState, int32_t& ErrorCode) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, int32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t, int32_t> >::callMethodWithReply( ++ *this, ++ "GetSessionState", ++ "si", ++ SessionName, SeatID, ++ callStatus ++ , SessionState, ErrorCode); ++} ++std::future<CommonAPI::CallStatus> ConsumerDBusProxy::GetSessionStateAsync(const std::string& SessionName, const int32_t& SeatID, GetSessionStateAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, int32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t, int32_t> >::callMethodAsync( ++ *this, ++ "GetSessionState", ++ "si", ++ SessionName, SeatID, ++ std::move(callback)); ++} ++void ConsumerDBusProxy::SetSessionState(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SessionState, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, std::string, int32_t, int32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodWithReply( ++ *this, ++ "SetSessionState", ++ "ssii", ++ SessionName, SessionOwner, SessionState, SeatID, ++ callStatus ++ , ErrorCode); ++} ++std::future<CommonAPI::CallStatus> ConsumerDBusProxy::SetSessionStateAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SessionState, const int32_t& SeatID, SetSessionStateAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, std::string, int32_t, int32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodAsync( ++ *this, ++ "SetSessionState", ++ "ssii", ++ SessionName, SessionOwner, SessionState, SeatID, ++ std::move(callback)); ++} ++ ++ ++ ++void ConsumerDBusProxy::getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const { ++ ownVersionMajor = 1; ++ ownVersionMinor = 0; ++} ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.h +new file mode 100644 +index 0000000..139dd7e +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.h +@@ -0,0 +1,98 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Consumer_DBUS_PROXY_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Consumer_DBUS_PROXY_H_ ++ ++#include <org/genivi/NodeStateManager/ConsumerProxyBase.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/DBus/DBusFactory.h> ++#include <CommonAPI/DBus/DBusProxy.h> ++#include <CommonAPI/DBus/DBusAttribute.h> ++#include <CommonAPI/DBus/DBusEvent.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++#include <string> ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++class ConsumerDBusProxy: virtual public ConsumerProxyBase, virtual public CommonAPI::DBus::DBusProxy { ++ public: ++ ConsumerDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyconnection); ++ ++ virtual ~ConsumerDBusProxy() { } ++ ++ virtual BootModeAttribute& getBootModeAttribute(); ++ virtual RestartReasonAttribute& getRestartReasonAttribute(); ++ virtual ShutdownReasonAttribute& getShutdownReasonAttribute(); ++ virtual WakeUpReasonAttribute& getWakeUpReasonAttribute(); ++ ++ virtual NodeApplicationModeEvent& getNodeApplicationModeEvent(); ++ virtual SessionStateChangedEvent& getSessionStateChangedEvent(); ++ virtual NodeStateEvent& getNodeStateEvent(); ++ ++ virtual void GetAppHealthCount(CommonAPI::CallStatus& callStatus, uint32_t& Count); ++ virtual std::future<CommonAPI::CallStatus> GetAppHealthCountAsync(GetAppHealthCountAsyncCallback callback); ++ virtual void LifecycleRequestComplete(const uint32_t& RequestId, const int32_t& Status, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ virtual std::future<CommonAPI::CallStatus> LifecycleRequestCompleteAsync(const uint32_t& RequestId, const int32_t& Status, LifecycleRequestCompleteAsyncCallback callback); ++ virtual void GetInterfaceVersion(CommonAPI::CallStatus& callStatus, uint32_t& Version); ++ virtual std::future<CommonAPI::CallStatus> GetInterfaceVersionAsync(GetInterfaceVersionAsyncCallback callback); ++ virtual void GetApplicationMode(CommonAPI::CallStatus& callStatus, int32_t& ErrorCode, int32_t& ApplicationModeId); ++ virtual std::future<CommonAPI::CallStatus> GetApplicationModeAsync(GetApplicationModeAsyncCallback callback); ++ virtual void UnRegisterSession(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ virtual std::future<CommonAPI::CallStatus> UnRegisterSessionAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, UnRegisterSessionAsyncCallback callback); ++ virtual void RegisterSession(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, const int32_t& SessionState, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ virtual std::future<CommonAPI::CallStatus> RegisterSessionAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, const int32_t& SessionState, RegisterSessionAsyncCallback callback); ++ virtual void UnRegisterShutdownClient(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ virtual std::future<CommonAPI::CallStatus> UnRegisterShutdownClientAsync(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, UnRegisterShutdownClientAsyncCallback callback); ++ virtual void RegisterShutdownClient(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, const uint32_t& TimeoutMs, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ virtual std::future<CommonAPI::CallStatus> RegisterShutdownClientAsync(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, const uint32_t& TimeoutMs, RegisterShutdownClientAsyncCallback callback); ++ virtual void GetNodeState(CommonAPI::CallStatus& callStatus, int32_t& ErrorCode, int32_t& NodeStateId); ++ virtual std::future<CommonAPI::CallStatus> GetNodeStateAsync(GetNodeStateAsyncCallback callback); ++ virtual void GetSessionState(const std::string& SessionName, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& SessionState, int32_t& ErrorCode); ++ virtual std::future<CommonAPI::CallStatus> GetSessionStateAsync(const std::string& SessionName, const int32_t& SeatID, GetSessionStateAsyncCallback callback); ++ virtual void SetSessionState(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SessionState, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ virtual std::future<CommonAPI::CallStatus> SetSessionStateAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SessionState, const int32_t& SeatID, SetSessionStateAsyncCallback callback); ++ ++ ++ virtual void getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const; ++ ++ private: ++ CommonAPI::DBus::DBusReadonlyAttribute<BootModeAttribute> bootMode_; ++ CommonAPI::DBus::DBusReadonlyAttribute<RestartReasonAttribute> restartReason_; ++ CommonAPI::DBus::DBusReadonlyAttribute<ShutdownReasonAttribute> shutdownReason_; ++ CommonAPI::DBus::DBusReadonlyAttribute<WakeUpReasonAttribute> wakeUpReason_; ++ ++ CommonAPI::DBus::DBusEvent<NodeApplicationModeEvent> nodeApplicationMode_; ++ CommonAPI::DBus::DBusEvent<SessionStateChangedEvent> sessionStateChanged_; ++ CommonAPI::DBus::DBusEvent<NodeStateEvent> nodeState_; ++ ++}; ++ ++ ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Consumer_DBUS_PROXY_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.cpp +new file mode 100644 +index 0000000..1d59a34 +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.cpp +@@ -0,0 +1,305 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++#include "ConsumerDBusStubAdapter.h" ++#include <org/genivi/NodeStateManager/Consumer.h> ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++std::shared_ptr<CommonAPI::DBus::DBusStubAdapter> createConsumerDBusStubAdapter( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stubBase) { ++ return std::make_shared<ConsumerDBusStubAdapter>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection, stubBase); ++} ++ ++INITIALIZER(registerConsumerDBusStubAdapter) { ++ CommonAPI::DBus::DBusFactory::registerAdapterFactoryMethod(Consumer::getInterfaceId(), ++ &createConsumerDBusStubAdapter); ++} ++ ++ ++ ++ConsumerDBusStubAdapterInternal::~ConsumerDBusStubAdapterInternal() { ++ deactivateManagedInstances(); ++ ConsumerDBusStubAdapterHelper::deinit(); ++} ++ ++void ConsumerDBusStubAdapterInternal::deactivateManagedInstances() { ++ ++} ++ ++const char* ConsumerDBusStubAdapterInternal::getMethodsDBusIntrospectionXmlData() const { ++ static const std::string introspectionData = ++ "<method name=\"getInterfaceVersion\">\n" ++ "<arg name=\"value\" type=\"uu\" direction=\"out\" />" ++ "</method>\n" ++ "<method name=\"getBootModeAttribute\">\n" ++ "<arg name=\"value\" type=\"i\" direction=\"out\" />" ++ "</method>\n" ++ "<method name=\"getRestartReasonAttribute\">\n" ++ "<arg name=\"value\" type=\"i\" direction=\"out\" />" ++ "</method>\n" ++ "<method name=\"getShutdownReasonAttribute\">\n" ++ "<arg name=\"value\" type=\"i\" direction=\"out\" />" ++ "</method>\n" ++ "<method name=\"getWakeUpReasonAttribute\">\n" ++ "<arg name=\"value\" type=\"i\" direction=\"out\" />" ++ "</method>\n" ++ "<signal name=\"NodeApplicationMode\">\n" ++ "<arg name=\"ApplicationModeId\" type=\"i\" />\n" ++ "</signal>\n" ++ "<signal name=\"SessionStateChanged\">\n" ++ "<arg name=\"SessionStateName\" type=\"s\" />\n" ++ "<arg name=\"SeatID\" type=\"i\" />\n" ++ "<arg name=\"SessionState\" type=\"i\" />\n" ++ "</signal>\n" ++ "<signal name=\"NodeState\">\n" ++ "<arg name=\"NodeState\" type=\"i\" />\n" ++ "</signal>\n" ++ "<method name=\"GetAppHealthCount\">\n" ++ "<arg name=\"Count\" type=\"u\" direction=\"out\" />\n" ++ "</method>\n" ++ "<method name=\"LifecycleRequestComplete\">\n" ++ "<arg name=\"RequestId\" type=\"u\" direction=\"in\" />\n" ++ "<arg name=\"Status\" type=\"i\" direction=\"in\" />\n" ++ "<arg name=\"ErrorCode\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ "<method name=\"GetInterfaceVersion\">\n" ++ "<arg name=\"Version\" type=\"u\" direction=\"out\" />\n" ++ "</method>\n" ++ "<method name=\"GetApplicationMode\">\n" ++ "<arg name=\"ErrorCode\" type=\"i\" direction=\"out\" />\n" ++ "<arg name=\"ApplicationModeId\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ "<method name=\"UnRegisterSession\">\n" ++ "<arg name=\"SessionName\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"SessionOwner\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"SeatID\" type=\"i\" direction=\"in\" />\n" ++ "<arg name=\"ErrorCode\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ "<method name=\"RegisterSession\">\n" ++ "<arg name=\"SessionName\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"SessionOwner\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"SeatID\" type=\"i\" direction=\"in\" />\n" ++ "<arg name=\"SessionState\" type=\"i\" direction=\"in\" />\n" ++ "<arg name=\"ErrorCode\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ "<method name=\"UnRegisterShutdownClient\">\n" ++ "<arg name=\"BusName\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"ObjName\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"ShutdownMode\" type=\"u\" direction=\"in\" />\n" ++ "<arg name=\"ErrorCode\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ "<method name=\"RegisterShutdownClient\">\n" ++ "<arg name=\"BusName\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"ObjName\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"ShutdownMode\" type=\"u\" direction=\"in\" />\n" ++ "<arg name=\"TimeoutMs\" type=\"u\" direction=\"in\" />\n" ++ "<arg name=\"ErrorCode\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ "<method name=\"GetNodeState\">\n" ++ "<arg name=\"ErrorCode\" type=\"i\" direction=\"out\" />\n" ++ "<arg name=\"NodeStateId\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ "<method name=\"GetSessionState\">\n" ++ "<arg name=\"SessionName\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"SeatID\" type=\"i\" direction=\"in\" />\n" ++ "<arg name=\"SessionState\" type=\"i\" direction=\"out\" />\n" ++ "<arg name=\"ErrorCode\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ "<method name=\"SetSessionState\">\n" ++ "<arg name=\"SessionName\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"SessionOwner\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"SessionState\" type=\"i\" direction=\"in\" />\n" ++ "<arg name=\"SeatID\" type=\"i\" direction=\"in\" />\n" ++ "<arg name=\"ErrorCode\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ ++ ; ++ return introspectionData.c_str(); ++} ++ ++CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ ConsumerStub, ++ CommonAPI::Version ++ > ConsumerDBusStubAdapterInternal::getConsumerInterfaceVersionStubDispatcher(&ConsumerStub::getInterfaceVersion, "uu"); ++ ++CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ ConsumerStub, ++ int32_t ++ > ConsumerDBusStubAdapterInternal::getBootModeAttributeStubDispatcher(&ConsumerStub::getBootModeAttribute, "i"); ++CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ ConsumerStub, ++ int32_t ++ > ConsumerDBusStubAdapterInternal::getRestartReasonAttributeStubDispatcher(&ConsumerStub::getRestartReasonAttribute, "i"); ++CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ ConsumerStub, ++ int32_t ++ > ConsumerDBusStubAdapterInternal::getShutdownReasonAttributeStubDispatcher(&ConsumerStub::getShutdownReasonAttribute, "i"); ++CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ ConsumerStub, ++ int32_t ++ > ConsumerDBusStubAdapterInternal::getWakeUpReasonAttributeStubDispatcher(&ConsumerStub::getWakeUpReasonAttribute, "i"); ++ ++ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<>, ++ std::tuple<uint32_t> ++ > ConsumerDBusStubAdapterInternal::getAppHealthCountStubDispatcher(&ConsumerStub::GetAppHealthCount, "u"); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<uint32_t, int32_t>, ++ std::tuple<int32_t> ++ > ConsumerDBusStubAdapterInternal::lifecycleRequestCompleteStubDispatcher(&ConsumerStub::LifecycleRequestComplete, "i"); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<>, ++ std::tuple<uint32_t> ++ > ConsumerDBusStubAdapterInternal::getInterfaceVersionStubDispatcher(&ConsumerStub::GetInterfaceVersion, "u"); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<>, ++ std::tuple<int32_t, int32_t> ++ > ConsumerDBusStubAdapterInternal::getApplicationModeStubDispatcher(&ConsumerStub::GetApplicationMode, "ii"); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, std::string, int32_t>, ++ std::tuple<int32_t> ++ > ConsumerDBusStubAdapterInternal::unRegisterSessionStubDispatcher(&ConsumerStub::UnRegisterSession, "i"); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, std::string, int32_t, int32_t>, ++ std::tuple<int32_t> ++ > ConsumerDBusStubAdapterInternal::registerSessionStubDispatcher(&ConsumerStub::RegisterSession, "i"); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, std::string, uint32_t>, ++ std::tuple<int32_t> ++ > ConsumerDBusStubAdapterInternal::unRegisterShutdownClientStubDispatcher(&ConsumerStub::UnRegisterShutdownClient, "i"); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, std::string, uint32_t, uint32_t>, ++ std::tuple<int32_t> ++ > ConsumerDBusStubAdapterInternal::registerShutdownClientStubDispatcher(&ConsumerStub::RegisterShutdownClient, "i"); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<>, ++ std::tuple<int32_t, int32_t> ++ > ConsumerDBusStubAdapterInternal::getNodeStateStubDispatcher(&ConsumerStub::GetNodeState, "ii"); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, int32_t>, ++ std::tuple<int32_t, int32_t> ++ > ConsumerDBusStubAdapterInternal::getSessionStateStubDispatcher(&ConsumerStub::GetSessionState, "ii"); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, std::string, int32_t, int32_t>, ++ std::tuple<int32_t> ++ > ConsumerDBusStubAdapterInternal::setSessionStateStubDispatcher(&ConsumerStub::SetSessionState, "i"); ++ ++ ++ ++void ConsumerDBusStubAdapterInternal::fireNodeApplicationModeEvent(const int32_t& ApplicationModeId) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<int32_t>> ++ ::sendSignal( ++ *this, ++ "NodeApplicationMode", ++ "i", ++ ApplicationModeId ++ ); ++} ++void ConsumerDBusStubAdapterInternal::fireSessionStateChangedEvent(const std::string& SessionStateName, const int32_t& SeatID, const int32_t& SessionState) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<std::string, int32_t, int32_t>> ++ ::sendSignal( ++ *this, ++ "SessionStateChanged", ++ "sii", ++ SessionStateName, SeatID, SessionState ++ ); ++} ++void ConsumerDBusStubAdapterInternal::fireNodeStateEvent(const int32_t& NodeState) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<int32_t>> ++ ::sendSignal( ++ *this, ++ "NodeState", ++ "i", ++ NodeState ++ ); ++} ++ ++ ++const ConsumerDBusStubAdapterHelper::StubDispatcherTable& ConsumerDBusStubAdapterInternal::getStubDispatcherTable() { ++ return stubDispatcherTable_; ++} ++ ++const CommonAPI::DBus::StubAttributeTable& ConsumerDBusStubAdapterInternal::getStubAttributeTable() { ++ return stubAttributeTable_; ++} ++ ++ConsumerDBusStubAdapterInternal::ConsumerDBusStubAdapterInternal( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub): ++ CommonAPI::DBus::DBusStubAdapter( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ false), ++ ConsumerDBusStubAdapterHelper( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ std::dynamic_pointer_cast<ConsumerStub>(stub), ++ false), ++ stubDispatcherTable_({ ++ { { "getBootModeAttribute", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getBootModeAttributeStubDispatcher }, ++ { { "getRestartReasonAttribute", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getRestartReasonAttributeStubDispatcher }, ++ { { "getShutdownReasonAttribute", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getShutdownReasonAttributeStubDispatcher }, ++ { { "getWakeUpReasonAttribute", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getWakeUpReasonAttributeStubDispatcher } ++ , ++ { { "GetAppHealthCount", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getAppHealthCountStubDispatcher }, ++ { { "LifecycleRequestComplete", "ui" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::lifecycleRequestCompleteStubDispatcher }, ++ { { "GetInterfaceVersion", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getInterfaceVersionStubDispatcher }, ++ { { "GetApplicationMode", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getApplicationModeStubDispatcher }, ++ { { "UnRegisterSession", "ssi" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::unRegisterSessionStubDispatcher }, ++ { { "RegisterSession", "ssii" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::registerSessionStubDispatcher }, ++ { { "UnRegisterShutdownClient", "ssu" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::unRegisterShutdownClientStubDispatcher }, ++ { { "RegisterShutdownClient", "ssuu" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::registerShutdownClientStubDispatcher }, ++ { { "GetNodeState", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getNodeStateStubDispatcher }, ++ { { "GetSessionState", "si" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getSessionStateStubDispatcher }, ++ { { "SetSessionState", "ssii" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::setSessionStateStubDispatcher } ++ }), ++ stubAttributeTable_() { ++ ++ stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getConsumerInterfaceVersionStubDispatcher }); ++} ++ ++const bool ConsumerDBusStubAdapterInternal::hasFreedesktopProperties() { ++ return false; ++} ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.h +new file mode 100644 +index 0000000..aacecd0 +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.h +@@ -0,0 +1,182 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Consumer_DBUS_STUB_ADAPTER_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Consumer_DBUS_STUB_ADAPTER_H_ ++ ++#include <org/genivi/NodeStateManager/ConsumerStub.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/DBus/DBusStubAdapterHelper.h> ++#include <CommonAPI/DBus/DBusStubAdapter.h> ++#include <CommonAPI/DBus/DBusFactory.h> ++#include <CommonAPI/DBus/DBusServicePublisher.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++typedef CommonAPI::DBus::DBusStubAdapterHelper<ConsumerStub> ConsumerDBusStubAdapterHelper; ++ ++class ConsumerDBusStubAdapterInternal: public virtual ConsumerStubAdapter, public ConsumerDBusStubAdapterHelper { ++ public: ++ ConsumerDBusStubAdapterInternal( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub); ++ ++ ~ConsumerDBusStubAdapterInternal(); ++ ++ virtual const bool hasFreedesktopProperties(); ++ ++ ++ void fireNodeApplicationModeEvent(const int32_t& ApplicationModeId); ++ void fireSessionStateChangedEvent(const std::string& SessionStateName, const int32_t& SeatID, const int32_t& SessionState); ++ void fireNodeStateEvent(const int32_t& NodeState); ++ ++ ++ const ConsumerDBusStubAdapterHelper::StubDispatcherTable& getStubDispatcherTable(); ++ const CommonAPI::DBus::StubAttributeTable& getStubAttributeTable(); ++ ++ void deactivateManagedInstances(); ++ ++ ++static CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ ConsumerStub, ++ CommonAPI::Version ++ > getConsumerInterfaceVersionStubDispatcher; ++ ++static CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ ConsumerStub, ++ int32_t ++ > getBootModeAttributeStubDispatcher; ++static CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ ConsumerStub, ++ int32_t ++ > getRestartReasonAttributeStubDispatcher; ++static CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ ConsumerStub, ++ int32_t ++ > getShutdownReasonAttributeStubDispatcher; ++static CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ ConsumerStub, ++ int32_t ++ > getWakeUpReasonAttributeStubDispatcher; ++ ++ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<>, ++ std::tuple<uint32_t> ++ > getAppHealthCountStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<uint32_t, int32_t>, ++ std::tuple<int32_t> ++ > lifecycleRequestCompleteStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<>, ++ std::tuple<uint32_t> ++ > getInterfaceVersionStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<>, ++ std::tuple<int32_t, int32_t> ++ > getApplicationModeStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, std::string, int32_t>, ++ std::tuple<int32_t> ++ > unRegisterSessionStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, std::string, int32_t, int32_t>, ++ std::tuple<int32_t> ++ > registerSessionStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, std::string, uint32_t>, ++ std::tuple<int32_t> ++ > unRegisterShutdownClientStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, std::string, uint32_t, uint32_t>, ++ std::tuple<int32_t> ++ > registerShutdownClientStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<>, ++ std::tuple<int32_t, int32_t> ++ > getNodeStateStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, int32_t>, ++ std::tuple<int32_t, int32_t> ++ > getSessionStateStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ ConsumerStub, ++ std::tuple<std::string, std::string, int32_t, int32_t>, ++ std::tuple<int32_t> ++ > setSessionStateStubDispatcher; ++ ++ ++ ++ ++ protected: ++ virtual const char* getMethodsDBusIntrospectionXmlData() const; ++ ++ private: ++ ConsumerDBusStubAdapterHelper::StubDispatcherTable stubDispatcherTable_; ++ CommonAPI::DBus::StubAttributeTable stubAttributeTable_; ++}; ++ ++class ConsumerDBusStubAdapter: public ConsumerDBusStubAdapterInternal, public std::enable_shared_from_this<ConsumerDBusStubAdapter> { ++public: ++ ConsumerDBusStubAdapter( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub) : ++ CommonAPI::DBus::DBusStubAdapter( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ false), ++ ConsumerDBusStubAdapterInternal( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ stub) { } ++}; ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Consumer_DBUS_STUB_ADAPTER_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxy.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxy.h +new file mode 100644 +index 0000000..5b7c14a +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxy.h +@@ -0,0 +1,627 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Consumer_PROXY_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Consumer_PROXY_H_ ++ ++#include "ConsumerProxyBase.h" ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/AttributeExtension.h> ++#include <CommonAPI/Factory.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++template <typename ... _AttributeExtensions> ++class ConsumerProxy: virtual public Consumer, virtual public ConsumerProxyBase ++, public _AttributeExtensions... { ++public: ++ ConsumerProxy(std::shared_ptr<CommonAPI::Proxy> delegate); ++ ~ConsumerProxy(); ++ ++ typedef Consumer InterfaceType; ++ ++ ++ /** ++ * Returns the wrapper class that provides access to the attribute BootMode. ++ */ ++ virtual BootModeAttribute& getBootModeAttribute() { ++ return delegate_->getBootModeAttribute(); ++ } ++ /** ++ * Returns the wrapper class that provides access to the attribute RestartReason. ++ */ ++ virtual RestartReasonAttribute& getRestartReasonAttribute() { ++ return delegate_->getRestartReasonAttribute(); ++ } ++ /** ++ * Returns the wrapper class that provides access to the attribute ShutdownReason. ++ */ ++ virtual ShutdownReasonAttribute& getShutdownReasonAttribute() { ++ return delegate_->getShutdownReasonAttribute(); ++ } ++ /** ++ * Returns the wrapper class that provides access to the attribute WakeUpReason. ++ */ ++ virtual WakeUpReasonAttribute& getWakeUpReasonAttribute() { ++ return delegate_->getWakeUpReasonAttribute(); ++ } ++ ++ /** ++ * Returns the wrapper class that provides access to the broadcast NodeApplicationMode. ++ */ ++ virtual NodeApplicationModeEvent& getNodeApplicationModeEvent() { ++ return delegate_->getNodeApplicationModeEvent(); ++ } ++ /** ++ * Returns the wrapper class that provides access to the broadcast SessionStateChanged. ++ */ ++ virtual SessionStateChangedEvent& getSessionStateChangedEvent() { ++ return delegate_->getSessionStateChangedEvent(); ++ } ++ /** ++ * Returns the wrapper class that provides access to the broadcast NodeState. ++ */ ++ virtual NodeStateEvent& getNodeStateEvent() { ++ return delegate_->getNodeStateEvent(); ++ } ++ ++ /** ++ * Calls GetAppHealthCount with synchronous semantics. ++ * ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void GetAppHealthCount(CommonAPI::CallStatus& callStatus, uint32_t& Count); ++ /** ++ * Calls GetAppHealthCount with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> GetAppHealthCountAsync(GetAppHealthCountAsyncCallback callback); ++ /** ++ * Calls LifecycleRequestComplete with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void LifecycleRequestComplete(const uint32_t& RequestId, const int32_t& Status, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ /** ++ * Calls LifecycleRequestComplete with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> LifecycleRequestCompleteAsync(const uint32_t& RequestId, const int32_t& Status, LifecycleRequestCompleteAsyncCallback callback); ++ /** ++ * Calls GetInterfaceVersion with synchronous semantics. ++ * ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void GetInterfaceVersion(CommonAPI::CallStatus& callStatus, uint32_t& Version); ++ /** ++ * Calls GetInterfaceVersion with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> GetInterfaceVersionAsync(GetInterfaceVersionAsyncCallback callback); ++ /** ++ * Calls GetApplicationMode with synchronous semantics. ++ * ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void GetApplicationMode(CommonAPI::CallStatus& callStatus, int32_t& ErrorCode, int32_t& ApplicationModeId); ++ /** ++ * Calls GetApplicationMode with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> GetApplicationModeAsync(GetApplicationModeAsyncCallback callback); ++ /** ++ * Calls UnRegisterSession with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void UnRegisterSession(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ /** ++ * Calls UnRegisterSession with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> UnRegisterSessionAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, UnRegisterSessionAsyncCallback callback); ++ /** ++ * Calls RegisterSession with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void RegisterSession(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, const int32_t& SessionState, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ /** ++ * Calls RegisterSession with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> RegisterSessionAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, const int32_t& SessionState, RegisterSessionAsyncCallback callback); ++ /** ++ * Calls UnRegisterShutdownClient with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void UnRegisterShutdownClient(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ /** ++ * Calls UnRegisterShutdownClient with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> UnRegisterShutdownClientAsync(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, UnRegisterShutdownClientAsyncCallback callback); ++ /** ++ * Calls RegisterShutdownClient with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void RegisterShutdownClient(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, const uint32_t& TimeoutMs, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ /** ++ * Calls RegisterShutdownClient with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> RegisterShutdownClientAsync(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, const uint32_t& TimeoutMs, RegisterShutdownClientAsyncCallback callback); ++ /** ++ * Calls GetNodeState with synchronous semantics. ++ * ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void GetNodeState(CommonAPI::CallStatus& callStatus, int32_t& ErrorCode, int32_t& NodeStateId); ++ /** ++ * Calls GetNodeState with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> GetNodeStateAsync(GetNodeStateAsyncCallback callback); ++ /** ++ * Calls GetSessionState with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void GetSessionState(const std::string& SessionName, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& SessionState, int32_t& ErrorCode); ++ /** ++ * Calls GetSessionState with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> GetSessionStateAsync(const std::string& SessionName, const int32_t& SeatID, GetSessionStateAsyncCallback callback); ++ /** ++ * Calls SetSessionState with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void SetSessionState(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SessionState, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ /** ++ * Calls SetSessionState with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> SetSessionStateAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SessionState, const int32_t& SeatID, SetSessionStateAsyncCallback callback); ++ ++ ++ /** ++ * Returns the CommonAPI address of the remote partner this proxy communicates with. ++ */ ++ virtual std::string getAddress() const; ++ ++ /** ++ * Returns the domain of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getDomain() const; ++ ++ /** ++ * Returns the service ID of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getServiceId() const; ++ ++ /** ++ * Returns the instance ID of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getInstanceId() const; ++ ++ /** ++ * Returns true if the remote partner for this proxy is currently known to be available. ++ */ ++ virtual bool isAvailable() const; ++ ++ /** ++ * Returns true if the remote partner for this proxy is available. ++ */ ++ virtual bool isAvailableBlocking() const; ++ ++ /** ++ * Returns the wrapper class that is used to (de-)register for notifications about ++ * the availability of the remote partner of this proxy. ++ */ ++ virtual CommonAPI::ProxyStatusEvent& getProxyStatusEvent(); ++ ++ /** ++ * Returns the wrapper class that is used to access version information of the remote ++ * partner of this proxy. ++ */ ++ virtual CommonAPI::InterfaceVersionAttribute& getInterfaceVersionAttribute(); ++ ++ private: ++ std::shared_ptr<ConsumerProxyBase> delegate_; ++}; ++ ++#ifdef WIN32 ++ typedef ConsumerProxy<CommonAPI::WINDummyAttributeExtension<CommonAPI::WINDummyAttribute>> ConsumerProxyDefault; ++#else ++ typedef ConsumerProxy<> ConsumerProxyDefault; ++#endif ++ ++namespace ConsumerExtensions { ++ template <template <typename > class _ExtensionType> ++ class BootModeAttributeExtension { ++ public: ++ typedef _ExtensionType<ConsumerProxyBase::BootModeAttribute> extension_type; ++ ++ static_assert(std::is_base_of<typename CommonAPI::AttributeExtension<ConsumerProxyBase::BootModeAttribute>, extension_type>::value, ++ "Not CommonAPI Attribute Extension!"); ++ #ifdef WIN32 ++ BootModeAttributeExtension() {} ++ #endif ++ ++ BootModeAttributeExtension(ConsumerProxyBase& proxy): attributeExtension_(proxy.getBootModeAttribute()) { ++ } ++ ++ inline extension_type& getBootModeAttributeExtension() { ++ return attributeExtension_; ++ } ++ ++ private: ++ extension_type attributeExtension_; ++ }; ++ ++ template <template <typename > class _ExtensionType> ++ class RestartReasonAttributeExtension { ++ public: ++ typedef _ExtensionType<ConsumerProxyBase::RestartReasonAttribute> extension_type; ++ ++ static_assert(std::is_base_of<typename CommonAPI::AttributeExtension<ConsumerProxyBase::RestartReasonAttribute>, extension_type>::value, ++ "Not CommonAPI Attribute Extension!"); ++ #ifdef WIN32 ++ RestartReasonAttributeExtension() {} ++ #endif ++ ++ RestartReasonAttributeExtension(ConsumerProxyBase& proxy): attributeExtension_(proxy.getRestartReasonAttribute()) { ++ } ++ ++ inline extension_type& getRestartReasonAttributeExtension() { ++ return attributeExtension_; ++ } ++ ++ private: ++ extension_type attributeExtension_; ++ }; ++ ++ template <template <typename > class _ExtensionType> ++ class ShutdownReasonAttributeExtension { ++ public: ++ typedef _ExtensionType<ConsumerProxyBase::ShutdownReasonAttribute> extension_type; ++ ++ static_assert(std::is_base_of<typename CommonAPI::AttributeExtension<ConsumerProxyBase::ShutdownReasonAttribute>, extension_type>::value, ++ "Not CommonAPI Attribute Extension!"); ++ #ifdef WIN32 ++ ShutdownReasonAttributeExtension() {} ++ #endif ++ ++ ShutdownReasonAttributeExtension(ConsumerProxyBase& proxy): attributeExtension_(proxy.getShutdownReasonAttribute()) { ++ } ++ ++ inline extension_type& getShutdownReasonAttributeExtension() { ++ return attributeExtension_; ++ } ++ ++ private: ++ extension_type attributeExtension_; ++ }; ++ ++ template <template <typename > class _ExtensionType> ++ class WakeUpReasonAttributeExtension { ++ public: ++ typedef _ExtensionType<ConsumerProxyBase::WakeUpReasonAttribute> extension_type; ++ ++ static_assert(std::is_base_of<typename CommonAPI::AttributeExtension<ConsumerProxyBase::WakeUpReasonAttribute>, extension_type>::value, ++ "Not CommonAPI Attribute Extension!"); ++ #ifdef WIN32 ++ WakeUpReasonAttributeExtension() {} ++ #endif ++ ++ WakeUpReasonAttributeExtension(ConsumerProxyBase& proxy): attributeExtension_(proxy.getWakeUpReasonAttribute()) { ++ } ++ ++ inline extension_type& getWakeUpReasonAttributeExtension() { ++ return attributeExtension_; ++ } ++ ++ private: ++ extension_type attributeExtension_; ++ }; ++ ++} // namespace ConsumerExtensions ++ ++// ++// ConsumerProxy Implementation ++// ++template <typename ... _AttributeExtensions> ++ConsumerProxy<_AttributeExtensions...>::ConsumerProxy(std::shared_ptr<CommonAPI::Proxy> delegate): ++ _AttributeExtensions(*(std::dynamic_pointer_cast<ConsumerProxyBase>(delegate)))..., ++ delegate_(std::dynamic_pointer_cast<ConsumerProxyBase>(delegate)) { ++} ++ ++template <typename ... _AttributeExtensions> ++ConsumerProxy<_AttributeExtensions...>::~ConsumerProxy() { ++} ++ ++template <typename ... _AttributeExtensions> ++void ConsumerProxy<_AttributeExtensions...>::GetAppHealthCount(CommonAPI::CallStatus& callStatus, uint32_t& Count) { ++ delegate_->GetAppHealthCount(callStatus, Count); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> ConsumerProxy<_AttributeExtensions...>::GetAppHealthCountAsync(GetAppHealthCountAsyncCallback callback) { ++ return delegate_->GetAppHealthCountAsync(callback); ++} ++template <typename ... _AttributeExtensions> ++void ConsumerProxy<_AttributeExtensions...>::LifecycleRequestComplete(const uint32_t& RequestId, const int32_t& Status, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ delegate_->LifecycleRequestComplete(RequestId, Status, callStatus, ErrorCode); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> ConsumerProxy<_AttributeExtensions...>::LifecycleRequestCompleteAsync(const uint32_t& RequestId, const int32_t& Status, LifecycleRequestCompleteAsyncCallback callback) { ++ return delegate_->LifecycleRequestCompleteAsync(RequestId, Status, callback); ++} ++template <typename ... _AttributeExtensions> ++void ConsumerProxy<_AttributeExtensions...>::GetInterfaceVersion(CommonAPI::CallStatus& callStatus, uint32_t& Version) { ++ delegate_->GetInterfaceVersion(callStatus, Version); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> ConsumerProxy<_AttributeExtensions...>::GetInterfaceVersionAsync(GetInterfaceVersionAsyncCallback callback) { ++ return delegate_->GetInterfaceVersionAsync(callback); ++} ++template <typename ... _AttributeExtensions> ++void ConsumerProxy<_AttributeExtensions...>::GetApplicationMode(CommonAPI::CallStatus& callStatus, int32_t& ErrorCode, int32_t& ApplicationModeId) { ++ delegate_->GetApplicationMode(callStatus, ErrorCode, ApplicationModeId); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> ConsumerProxy<_AttributeExtensions...>::GetApplicationModeAsync(GetApplicationModeAsyncCallback callback) { ++ return delegate_->GetApplicationModeAsync(callback); ++} ++template <typename ... _AttributeExtensions> ++void ConsumerProxy<_AttributeExtensions...>::UnRegisterSession(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ delegate_->UnRegisterSession(SessionName, SessionOwner, SeatID, callStatus, ErrorCode); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> ConsumerProxy<_AttributeExtensions...>::UnRegisterSessionAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, UnRegisterSessionAsyncCallback callback) { ++ return delegate_->UnRegisterSessionAsync(SessionName, SessionOwner, SeatID, callback); ++} ++template <typename ... _AttributeExtensions> ++void ConsumerProxy<_AttributeExtensions...>::RegisterSession(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, const int32_t& SessionState, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ delegate_->RegisterSession(SessionName, SessionOwner, SeatID, SessionState, callStatus, ErrorCode); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> ConsumerProxy<_AttributeExtensions...>::RegisterSessionAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, const int32_t& SessionState, RegisterSessionAsyncCallback callback) { ++ return delegate_->RegisterSessionAsync(SessionName, SessionOwner, SeatID, SessionState, callback); ++} ++template <typename ... _AttributeExtensions> ++void ConsumerProxy<_AttributeExtensions...>::UnRegisterShutdownClient(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ delegate_->UnRegisterShutdownClient(BusName, ObjName, ShutdownMode, callStatus, ErrorCode); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> ConsumerProxy<_AttributeExtensions...>::UnRegisterShutdownClientAsync(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, UnRegisterShutdownClientAsyncCallback callback) { ++ return delegate_->UnRegisterShutdownClientAsync(BusName, ObjName, ShutdownMode, callback); ++} ++template <typename ... _AttributeExtensions> ++void ConsumerProxy<_AttributeExtensions...>::RegisterShutdownClient(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, const uint32_t& TimeoutMs, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ delegate_->RegisterShutdownClient(BusName, ObjName, ShutdownMode, TimeoutMs, callStatus, ErrorCode); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> ConsumerProxy<_AttributeExtensions...>::RegisterShutdownClientAsync(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, const uint32_t& TimeoutMs, RegisterShutdownClientAsyncCallback callback) { ++ return delegate_->RegisterShutdownClientAsync(BusName, ObjName, ShutdownMode, TimeoutMs, callback); ++} ++template <typename ... _AttributeExtensions> ++void ConsumerProxy<_AttributeExtensions...>::GetNodeState(CommonAPI::CallStatus& callStatus, int32_t& ErrorCode, int32_t& NodeStateId) { ++ delegate_->GetNodeState(callStatus, ErrorCode, NodeStateId); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> ConsumerProxy<_AttributeExtensions...>::GetNodeStateAsync(GetNodeStateAsyncCallback callback) { ++ return delegate_->GetNodeStateAsync(callback); ++} ++template <typename ... _AttributeExtensions> ++void ConsumerProxy<_AttributeExtensions...>::GetSessionState(const std::string& SessionName, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& SessionState, int32_t& ErrorCode) { ++ delegate_->GetSessionState(SessionName, SeatID, callStatus, SessionState, ErrorCode); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> ConsumerProxy<_AttributeExtensions...>::GetSessionStateAsync(const std::string& SessionName, const int32_t& SeatID, GetSessionStateAsyncCallback callback) { ++ return delegate_->GetSessionStateAsync(SessionName, SeatID, callback); ++} ++template <typename ... _AttributeExtensions> ++void ConsumerProxy<_AttributeExtensions...>::SetSessionState(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SessionState, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ delegate_->SetSessionState(SessionName, SessionOwner, SessionState, SeatID, callStatus, ErrorCode); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> ConsumerProxy<_AttributeExtensions...>::SetSessionStateAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SessionState, const int32_t& SeatID, SetSessionStateAsyncCallback callback) { ++ return delegate_->SetSessionStateAsync(SessionName, SessionOwner, SessionState, SeatID, callback); ++} ++ ++template <typename ... _AttributeExtensions> ++std::string ConsumerProxy<_AttributeExtensions...>::getAddress() const { ++ return delegate_->getAddress(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& ConsumerProxy<_AttributeExtensions...>::getDomain() const { ++ return delegate_->getDomain(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& ConsumerProxy<_AttributeExtensions...>::getServiceId() const { ++ return delegate_->getServiceId(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& ConsumerProxy<_AttributeExtensions...>::getInstanceId() const { ++ return delegate_->getInstanceId(); ++} ++ ++template <typename ... _AttributeExtensions> ++bool ConsumerProxy<_AttributeExtensions...>::isAvailable() const { ++ return delegate_->isAvailable(); ++} ++ ++template <typename ... _AttributeExtensions> ++bool ConsumerProxy<_AttributeExtensions...>::isAvailableBlocking() const { ++ return delegate_->isAvailableBlocking(); ++} ++ ++template <typename ... _AttributeExtensions> ++CommonAPI::ProxyStatusEvent& ConsumerProxy<_AttributeExtensions...>::getProxyStatusEvent() { ++ return delegate_->getProxyStatusEvent(); ++} ++ ++template <typename ... _AttributeExtensions> ++CommonAPI::InterfaceVersionAttribute& ConsumerProxy<_AttributeExtensions...>::getInterfaceVersionAttribute() { ++ return delegate_->getInterfaceVersionAttribute(); ++} ++ ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++namespace CommonAPI { ++template<template<typename > class _AttributeExtension> ++struct DefaultAttributeProxyFactoryHelper<org::genivi::NodeStateManager::ConsumerProxy, ++ _AttributeExtension> { ++ typedef typename org::genivi::NodeStateManager::ConsumerProxy< ++ org::genivi::NodeStateManager::ConsumerExtensions::BootModeAttributeExtension<_AttributeExtension>, ++ org::genivi::NodeStateManager::ConsumerExtensions::RestartReasonAttributeExtension<_AttributeExtension>, ++ org::genivi::NodeStateManager::ConsumerExtensions::ShutdownReasonAttributeExtension<_AttributeExtension>, ++ org::genivi::NodeStateManager::ConsumerExtensions::WakeUpReasonAttributeExtension<_AttributeExtension> ++ > class_t; ++}; ++} ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Consumer_PROXY_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxyBase.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxyBase.h +new file mode 100644 +index 0000000..b0afe99 +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxyBase.h +@@ -0,0 +1,95 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Consumer_PROXY_BASE_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Consumer_PROXY_BASE_H_ ++ ++#include "Consumer.h" ++ ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <vector> ++ ++#include <CommonAPI/Attribute.h> ++#include <CommonAPI/Event.h> ++#include <CommonAPI/Proxy.h> ++#include <functional> ++#include <future> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++class ConsumerProxyBase: virtual public CommonAPI::Proxy { ++ public: ++ typedef CommonAPI::ReadonlyAttribute<int32_t> BootModeAttribute; ++ typedef CommonAPI::ReadonlyAttribute<int32_t> RestartReasonAttribute; ++ typedef CommonAPI::ReadonlyAttribute<int32_t> ShutdownReasonAttribute; ++ typedef CommonAPI::ReadonlyAttribute<int32_t> WakeUpReasonAttribute; ++ typedef CommonAPI::Event<int32_t> NodeApplicationModeEvent; ++ typedef CommonAPI::Event<std::string, int32_t, int32_t> SessionStateChangedEvent; ++ typedef CommonAPI::Event<int32_t> NodeStateEvent; ++ ++ typedef std::function<void(const CommonAPI::CallStatus&, const uint32_t&)> GetAppHealthCountAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const int32_t&)> LifecycleRequestCompleteAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const uint32_t&)> GetInterfaceVersionAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const int32_t&, const int32_t&)> GetApplicationModeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const int32_t&)> UnRegisterSessionAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const int32_t&)> RegisterSessionAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const int32_t&)> UnRegisterShutdownClientAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const int32_t&)> RegisterShutdownClientAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const int32_t&, const int32_t&)> GetNodeStateAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const int32_t&, const int32_t&)> GetSessionStateAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const int32_t&)> SetSessionStateAsyncCallback; ++ ++ virtual BootModeAttribute& getBootModeAttribute() = 0; ++ virtual RestartReasonAttribute& getRestartReasonAttribute() = 0; ++ virtual ShutdownReasonAttribute& getShutdownReasonAttribute() = 0; ++ virtual WakeUpReasonAttribute& getWakeUpReasonAttribute() = 0; ++ ++ virtual NodeApplicationModeEvent& getNodeApplicationModeEvent() = 0; ++ virtual SessionStateChangedEvent& getSessionStateChangedEvent() = 0; ++ virtual NodeStateEvent& getNodeStateEvent() = 0; ++ ++ virtual void GetAppHealthCount(CommonAPI::CallStatus& callStatus, uint32_t& Count) = 0; ++ virtual std::future<CommonAPI::CallStatus> GetAppHealthCountAsync(GetAppHealthCountAsyncCallback callback) = 0; ++ virtual void LifecycleRequestComplete(const uint32_t& RequestId, const int32_t& Status, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) = 0; ++ virtual std::future<CommonAPI::CallStatus> LifecycleRequestCompleteAsync(const uint32_t& RequestId, const int32_t& Status, LifecycleRequestCompleteAsyncCallback callback) = 0; ++ virtual void GetInterfaceVersion(CommonAPI::CallStatus& callStatus, uint32_t& Version) = 0; ++ virtual std::future<CommonAPI::CallStatus> GetInterfaceVersionAsync(GetInterfaceVersionAsyncCallback callback) = 0; ++ virtual void GetApplicationMode(CommonAPI::CallStatus& callStatus, int32_t& ErrorCode, int32_t& ApplicationModeId) = 0; ++ virtual std::future<CommonAPI::CallStatus> GetApplicationModeAsync(GetApplicationModeAsyncCallback callback) = 0; ++ virtual void UnRegisterSession(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) = 0; ++ virtual std::future<CommonAPI::CallStatus> UnRegisterSessionAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, UnRegisterSessionAsyncCallback callback) = 0; ++ virtual void RegisterSession(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, const int32_t& SessionState, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) = 0; ++ virtual std::future<CommonAPI::CallStatus> RegisterSessionAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SeatID, const int32_t& SessionState, RegisterSessionAsyncCallback callback) = 0; ++ virtual void UnRegisterShutdownClient(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) = 0; ++ virtual std::future<CommonAPI::CallStatus> UnRegisterShutdownClientAsync(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, UnRegisterShutdownClientAsyncCallback callback) = 0; ++ virtual void RegisterShutdownClient(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, const uint32_t& TimeoutMs, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) = 0; ++ virtual std::future<CommonAPI::CallStatus> RegisterShutdownClientAsync(const std::string& BusName, const std::string& ObjName, const uint32_t& ShutdownMode, const uint32_t& TimeoutMs, RegisterShutdownClientAsyncCallback callback) = 0; ++ virtual void GetNodeState(CommonAPI::CallStatus& callStatus, int32_t& ErrorCode, int32_t& NodeStateId) = 0; ++ virtual std::future<CommonAPI::CallStatus> GetNodeStateAsync(GetNodeStateAsyncCallback callback) = 0; ++ virtual void GetSessionState(const std::string& SessionName, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& SessionState, int32_t& ErrorCode) = 0; ++ virtual std::future<CommonAPI::CallStatus> GetSessionStateAsync(const std::string& SessionName, const int32_t& SeatID, GetSessionStateAsyncCallback callback) = 0; ++ virtual void SetSessionState(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SessionState, const int32_t& SeatID, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) = 0; ++ virtual std::future<CommonAPI::CallStatus> SetSessionStateAsync(const std::string& SessionName, const std::string& SessionOwner, const int32_t& SessionState, const int32_t& SeatID, SetSessionStateAsyncCallback callback) = 0; ++}; ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Consumer_PROXY_BASE_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStub.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStub.h +new file mode 100644 +index 0000000..107749e +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStub.h +@@ -0,0 +1,152 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Consumer_STUB_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Consumer_STUB_H_ ++ ++ ++ ++ ++#include "Consumer.h" ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <unordered_set> ++#include <vector> ++ ++#include <CommonAPI/Stub.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++/** ++ * Receives messages from remote and handles all dispatching of deserialized calls ++ * to a stub for the service Consumer. Also provides means to send broadcasts ++ * and attribute-changed-notifications of observable attributes as defined by this service. ++ * An application developer should not need to bother with this class. ++ */ ++class ConsumerStubAdapter: virtual public CommonAPI::StubAdapter, public Consumer { ++ public: ++ ++ /** ++ * Sends a broadcast event for NodeApplicationMode. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireNodeApplicationModeEvent(const int32_t& ApplicationModeId) = 0; ++ /** ++ * Sends a broadcast event for SessionStateChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireSessionStateChangedEvent(const std::string& SessionStateName, const int32_t& SeatID, const int32_t& SessionState) = 0; ++ /** ++ * Sends a broadcast event for NodeState. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireNodeStateEvent(const int32_t& NodeState) = 0; ++ ++ ++ virtual void deactivateManagedInstances() = 0; ++protected: ++ /** ++ * Defines properties for storing the ClientIds of clients / proxies that have ++ * subscribed to the selective broadcasts ++ */ ++}; ++ ++ ++/** ++ * Defines the necessary callbacks to handle remote set events related to the attributes ++ * defined in the IDL description for Consumer. ++ * For each attribute two callbacks are defined: ++ * - a verification callback that allows to verify the requested value and to prevent setting ++ * e.g. an invalid value ("onRemoteSet<AttributeName>"). ++ * - an action callback to do local work after the attribute value has been changed ++ * ("onRemote<AttributeName>Changed"). ++ * ++ * This class and the one below are the ones an application developer needs to have ++ * a look at if he wants to implement a service. ++ */ ++class ConsumerStubRemoteEvent { ++ public: ++ virtual ~ConsumerStubRemoteEvent() { } ++ ++ ++ ++ ++ ++}; ++ ++ ++/** ++ * Defines the interface that must be implemented by any class that should provide ++ * the service Consumer to remote clients. ++ * This class and the one above are the ones an application developer needs to have ++ * a look at if he wants to implement a service. ++ */ ++class ConsumerStub: public virtual CommonAPI::Stub<ConsumerStubAdapter, ConsumerStubRemoteEvent> { ++public: ++ virtual ~ConsumerStub() { } ++ virtual const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) = 0; ++ ++ /// Provides getter access to the attribute BootMode ++ virtual const int32_t& getBootModeAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId) = 0; ++ /// Provides getter access to the attribute RestartReason ++ virtual const int32_t& getRestartReasonAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId) = 0; ++ /// Provides getter access to the attribute ShutdownReason ++ virtual const int32_t& getShutdownReasonAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId) = 0; ++ /// Provides getter access to the attribute WakeUpReason ++ virtual const int32_t& getWakeUpReasonAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId) = 0; ++ ++ /// This is the method that will be called on remote calls on the method GetAppHealthCount. ++ virtual void GetAppHealthCount(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t& Count) = 0; ++ /// This is the method that will be called on remote calls on the method LifecycleRequestComplete. ++ virtual void LifecycleRequestComplete(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t RequestId, int32_t Status, int32_t& ErrorCode) = 0; ++ /// This is the method that will be called on remote calls on the method GetInterfaceVersion. ++ virtual void GetInterfaceVersion(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t& Version) = 0; ++ /// This is the method that will be called on remote calls on the method GetApplicationMode. ++ virtual void GetApplicationMode(const std::shared_ptr<CommonAPI::ClientId> clientId, int32_t& ErrorCode, int32_t& ApplicationModeId) = 0; ++ /// This is the method that will be called on remote calls on the method UnRegisterSession. ++ virtual void UnRegisterSession(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, std::string SessionOwner, int32_t SeatID, int32_t& ErrorCode) = 0; ++ /// This is the method that will be called on remote calls on the method RegisterSession. ++ virtual void RegisterSession(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, std::string SessionOwner, int32_t SeatID, int32_t SessionState, int32_t& ErrorCode) = 0; ++ /// This is the method that will be called on remote calls on the method UnRegisterShutdownClient. ++ virtual void UnRegisterShutdownClient(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string BusName, std::string ObjName, uint32_t ShutdownMode, int32_t& ErrorCode) = 0; ++ /// This is the method that will be called on remote calls on the method RegisterShutdownClient. ++ virtual void RegisterShutdownClient(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string BusName, std::string ObjName, uint32_t ShutdownMode, uint32_t TimeoutMs, int32_t& ErrorCode) = 0; ++ /// This is the method that will be called on remote calls on the method GetNodeState. ++ virtual void GetNodeState(const std::shared_ptr<CommonAPI::ClientId> clientId, int32_t& ErrorCode, int32_t& NodeStateId) = 0; ++ /// This is the method that will be called on remote calls on the method GetSessionState. ++ virtual void GetSessionState(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, int32_t SeatID, int32_t& SessionState, int32_t& ErrorCode) = 0; ++ /// This is the method that will be called on remote calls on the method SetSessionState. ++ virtual void SetSessionState(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, std::string SessionOwner, int32_t SessionState, int32_t SeatID, int32_t& ErrorCode) = 0; ++ /// Sends a broadcast event for NodeApplicationMode. ++ virtual void fireNodeApplicationModeEvent(const int32_t& ApplicationModeId) = 0; ++ /// Sends a broadcast event for SessionStateChanged. ++ virtual void fireSessionStateChangedEvent(const std::string& SessionStateName, const int32_t& SeatID, const int32_t& SessionState) = 0; ++ /// Sends a broadcast event for NodeState. ++ virtual void fireNodeStateEvent(const int32_t& NodeState) = 0; ++ ++ using CommonAPI::Stub<ConsumerStubAdapter, ConsumerStubRemoteEvent>::initStubAdapter; ++ typedef CommonAPI::Stub<ConsumerStubAdapter, ConsumerStubRemoteEvent>::StubAdapterType StubAdapterType; ++ typedef CommonAPI::Stub<ConsumerStubAdapter, ConsumerStubRemoteEvent>::RemoteEventHandlerType RemoteEventHandlerType; ++ typedef ConsumerStubRemoteEvent RemoteEventType; ++ typedef Consumer StubInterface; ++}; ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Consumer_STUB_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.cpp +new file mode 100644 +index 0000000..18edb79 +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.cpp +@@ -0,0 +1,239 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++#include <org/genivi/NodeStateManager/ConsumerStubDefault.h> ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++ConsumerStubDefault::ConsumerStubDefault(): ++ remoteEventHandler_(this), ++ interfaceVersion_(Consumer::getInterfaceVersion()) { ++} ++ ++const CommonAPI::Version& ConsumerStubDefault::getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) { ++ return interfaceVersion_; ++} ++ ++ConsumerStubRemoteEvent* ConsumerStubDefault::initStubAdapter(const std::shared_ptr<ConsumerStubAdapter>& stubAdapter) { ++ CommonAPI::Stub<ConsumerStubAdapter, ConsumerStubRemoteEvent>::stubAdapter_ = stubAdapter; ++ return &remoteEventHandler_; ++} ++ ++const int32_t& ConsumerStubDefault::getBootModeAttribute() { ++ return bootModeAttributeValue_; ++} ++ ++const int32_t& ConsumerStubDefault::getBootModeAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId) { ++ return getBootModeAttribute(); ++} ++ ++void ConsumerStubDefault::setBootModeAttribute(int32_t value) { ++ trySetBootModeAttribute(std::move(value)); ++} ++ ++bool ConsumerStubDefault::trySetBootModeAttribute(int32_t value) { ++ if (!validateBootModeAttributeRequestedValue(value)) ++ return false; ++ ++ const bool valueChanged = (bootModeAttributeValue_ != value); ++ bootModeAttributeValue_ = std::move(value); ++ return valueChanged; ++} ++ ++bool ConsumerStubDefault::validateBootModeAttributeRequestedValue(const int32_t& value) { ++ return true; ++} ++ ++ ++const int32_t& ConsumerStubDefault::getRestartReasonAttribute() { ++ return restartReasonAttributeValue_; ++} ++ ++const int32_t& ConsumerStubDefault::getRestartReasonAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId) { ++ return getRestartReasonAttribute(); ++} ++ ++void ConsumerStubDefault::setRestartReasonAttribute(int32_t value) { ++ trySetRestartReasonAttribute(std::move(value)); ++} ++ ++bool ConsumerStubDefault::trySetRestartReasonAttribute(int32_t value) { ++ if (!validateRestartReasonAttributeRequestedValue(value)) ++ return false; ++ ++ const bool valueChanged = (restartReasonAttributeValue_ != value); ++ restartReasonAttributeValue_ = std::move(value); ++ return valueChanged; ++} ++ ++bool ConsumerStubDefault::validateRestartReasonAttributeRequestedValue(const int32_t& value) { ++ return true; ++} ++ ++ ++const int32_t& ConsumerStubDefault::getShutdownReasonAttribute() { ++ return shutdownReasonAttributeValue_; ++} ++ ++const int32_t& ConsumerStubDefault::getShutdownReasonAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId) { ++ return getShutdownReasonAttribute(); ++} ++ ++void ConsumerStubDefault::setShutdownReasonAttribute(int32_t value) { ++ trySetShutdownReasonAttribute(std::move(value)); ++} ++ ++bool ConsumerStubDefault::trySetShutdownReasonAttribute(int32_t value) { ++ if (!validateShutdownReasonAttributeRequestedValue(value)) ++ return false; ++ ++ const bool valueChanged = (shutdownReasonAttributeValue_ != value); ++ shutdownReasonAttributeValue_ = std::move(value); ++ return valueChanged; ++} ++ ++bool ConsumerStubDefault::validateShutdownReasonAttributeRequestedValue(const int32_t& value) { ++ return true; ++} ++ ++ ++const int32_t& ConsumerStubDefault::getWakeUpReasonAttribute() { ++ return wakeUpReasonAttributeValue_; ++} ++ ++const int32_t& ConsumerStubDefault::getWakeUpReasonAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId) { ++ return getWakeUpReasonAttribute(); ++} ++ ++void ConsumerStubDefault::setWakeUpReasonAttribute(int32_t value) { ++ trySetWakeUpReasonAttribute(std::move(value)); ++} ++ ++bool ConsumerStubDefault::trySetWakeUpReasonAttribute(int32_t value) { ++ if (!validateWakeUpReasonAttributeRequestedValue(value)) ++ return false; ++ ++ const bool valueChanged = (wakeUpReasonAttributeValue_ != value); ++ wakeUpReasonAttributeValue_ = std::move(value); ++ return valueChanged; ++} ++ ++bool ConsumerStubDefault::validateWakeUpReasonAttributeRequestedValue(const int32_t& value) { ++ return true; ++} ++ ++ ++ ++void ConsumerStubDefault::GetAppHealthCount(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t& Count) { ++ // Call old style methods in default ++ GetAppHealthCount(Count); ++} ++void ConsumerStubDefault::GetAppHealthCount(uint32_t& Count) { ++ // No operation in default ++} ++ ++void ConsumerStubDefault::LifecycleRequestComplete(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t RequestId, int32_t Status, int32_t& ErrorCode) { ++ // Call old style methods in default ++ LifecycleRequestComplete(RequestId, Status, ErrorCode); ++} ++void ConsumerStubDefault::LifecycleRequestComplete(uint32_t RequestId, int32_t Status, int32_t& ErrorCode) { ++ // No operation in default ++} ++ ++void ConsumerStubDefault::GetInterfaceVersion(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t& Version) { ++ // Call old style methods in default ++ GetInterfaceVersion(Version); ++} ++void ConsumerStubDefault::GetInterfaceVersion(uint32_t& Version) { ++ // No operation in default ++} ++ ++void ConsumerStubDefault::GetApplicationMode(const std::shared_ptr<CommonAPI::ClientId> clientId, int32_t& ErrorCode, int32_t& ApplicationModeId) { ++ // Call old style methods in default ++ GetApplicationMode(ErrorCode, ApplicationModeId); ++} ++void ConsumerStubDefault::GetApplicationMode(int32_t& ErrorCode, int32_t& ApplicationModeId) { ++ // No operation in default ++} ++ ++void ConsumerStubDefault::UnRegisterSession(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, std::string SessionOwner, int32_t SeatID, int32_t& ErrorCode) { ++ // Call old style methods in default ++ UnRegisterSession(SessionName, SessionOwner, SeatID, ErrorCode); ++} ++void ConsumerStubDefault::UnRegisterSession(std::string SessionName, std::string SessionOwner, int32_t SeatID, int32_t& ErrorCode) { ++ // No operation in default ++} ++ ++void ConsumerStubDefault::RegisterSession(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, std::string SessionOwner, int32_t SeatID, int32_t SessionState, int32_t& ErrorCode) { ++ // Call old style methods in default ++ RegisterSession(SessionName, SessionOwner, SeatID, SessionState, ErrorCode); ++} ++void ConsumerStubDefault::RegisterSession(std::string SessionName, std::string SessionOwner, int32_t SeatID, int32_t SessionState, int32_t& ErrorCode) { ++ // No operation in default ++} ++ ++void ConsumerStubDefault::UnRegisterShutdownClient(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string BusName, std::string ObjName, uint32_t ShutdownMode, int32_t& ErrorCode) { ++ // Call old style methods in default ++ UnRegisterShutdownClient(BusName, ObjName, ShutdownMode, ErrorCode); ++} ++void ConsumerStubDefault::UnRegisterShutdownClient(std::string BusName, std::string ObjName, uint32_t ShutdownMode, int32_t& ErrorCode) { ++ // No operation in default ++} ++ ++void ConsumerStubDefault::RegisterShutdownClient(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string BusName, std::string ObjName, uint32_t ShutdownMode, uint32_t TimeoutMs, int32_t& ErrorCode) { ++ // Call old style methods in default ++ RegisterShutdownClient(BusName, ObjName, ShutdownMode, TimeoutMs, ErrorCode); ++} ++void ConsumerStubDefault::RegisterShutdownClient(std::string BusName, std::string ObjName, uint32_t ShutdownMode, uint32_t TimeoutMs, int32_t& ErrorCode) { ++ // No operation in default ++} ++ ++void ConsumerStubDefault::GetNodeState(const std::shared_ptr<CommonAPI::ClientId> clientId, int32_t& ErrorCode, int32_t& NodeStateId) { ++ // Call old style methods in default ++ GetNodeState(ErrorCode, NodeStateId); ++} ++void ConsumerStubDefault::GetNodeState(int32_t& ErrorCode, int32_t& NodeStateId) { ++ // No operation in default ++} ++ ++void ConsumerStubDefault::GetSessionState(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, int32_t SeatID, int32_t& SessionState, int32_t& ErrorCode) { ++ // Call old style methods in default ++ GetSessionState(SessionName, SeatID, SessionState, ErrorCode); ++} ++void ConsumerStubDefault::GetSessionState(std::string SessionName, int32_t SeatID, int32_t& SessionState, int32_t& ErrorCode) { ++ // No operation in default ++} ++ ++void ConsumerStubDefault::SetSessionState(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, std::string SessionOwner, int32_t SessionState, int32_t SeatID, int32_t& ErrorCode) { ++ // Call old style methods in default ++ SetSessionState(SessionName, SessionOwner, SessionState, SeatID, ErrorCode); ++} ++void ConsumerStubDefault::SetSessionState(std::string SessionName, std::string SessionOwner, int32_t SessionState, int32_t SeatID, int32_t& ErrorCode) { ++ // No operation in default ++} ++ ++ ++void ConsumerStubDefault::fireNodeApplicationModeEvent(const int32_t& ApplicationModeId) { ++ stubAdapter_->fireNodeApplicationModeEvent(ApplicationModeId); ++} ++void ConsumerStubDefault::fireSessionStateChangedEvent(const std::string& SessionStateName, const int32_t& SeatID, const int32_t& SessionState) { ++ stubAdapter_->fireSessionStateChangedEvent(SessionStateName, SeatID, SessionState); ++} ++void ConsumerStubDefault::fireNodeStateEvent(const int32_t& NodeState) { ++ stubAdapter_->fireNodeStateEvent(NodeState); ++} ++ ++ ++ConsumerStubDefault::RemoteEventHandler::RemoteEventHandler(ConsumerStubDefault* defaultStub): ++ defaultStub_(defaultStub) { ++} ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.h +new file mode 100644 +index 0000000..b28944c +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.h +@@ -0,0 +1,128 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Consumer_STUB_DEFAULT_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Consumer_STUB_DEFAULT_H_ ++ ++ ++#include <org/genivi/NodeStateManager/ConsumerStub.h> ++#include <sstream> ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++/** ++ * Provides a default implementation for ConsumerStubRemoteEvent and ++ * ConsumerStub. Method callbacks have an empty implementation, ++ * remote set calls on attributes will always change the value of the attribute ++ * to the one received. ++ * ++ * Override this stub if you only want to provide a subset of the functionality ++ * that would be defined for this service, and/or if you do not need any non-default ++ * behaviour. ++ */ ++class ConsumerStubDefault : public virtual ConsumerStub { ++public: ++ ConsumerStubDefault(); ++ ++ ConsumerStubRemoteEvent* initStubAdapter(const std::shared_ptr<ConsumerStubAdapter>& stubAdapter); ++ ++ const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId); ++ ++ virtual const int32_t& getBootModeAttribute(); ++ virtual const int32_t& getBootModeAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId); ++ virtual void setBootModeAttribute(int32_t value); ++ virtual const int32_t& getRestartReasonAttribute(); ++ virtual const int32_t& getRestartReasonAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId); ++ virtual void setRestartReasonAttribute(int32_t value); ++ virtual const int32_t& getShutdownReasonAttribute(); ++ virtual const int32_t& getShutdownReasonAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId); ++ virtual void setShutdownReasonAttribute(int32_t value); ++ virtual const int32_t& getWakeUpReasonAttribute(); ++ virtual const int32_t& getWakeUpReasonAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId); ++ virtual void setWakeUpReasonAttribute(int32_t value); ++ ++ virtual void GetAppHealthCount(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t& Count); ++ virtual void GetAppHealthCount(uint32_t& Count); ++ ++ virtual void LifecycleRequestComplete(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t RequestId, int32_t Status, int32_t& ErrorCode); ++ virtual void LifecycleRequestComplete(uint32_t RequestId, int32_t Status, int32_t& ErrorCode); ++ ++ virtual void GetInterfaceVersion(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t& Version); ++ virtual void GetInterfaceVersion(uint32_t& Version); ++ ++ virtual void GetApplicationMode(const std::shared_ptr<CommonAPI::ClientId> clientId, int32_t& ErrorCode, int32_t& ApplicationModeId); ++ virtual void GetApplicationMode(int32_t& ErrorCode, int32_t& ApplicationModeId); ++ ++ virtual void UnRegisterSession(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, std::string SessionOwner, int32_t SeatID, int32_t& ErrorCode); ++ virtual void UnRegisterSession(std::string SessionName, std::string SessionOwner, int32_t SeatID, int32_t& ErrorCode); ++ ++ virtual void RegisterSession(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, std::string SessionOwner, int32_t SeatID, int32_t SessionState, int32_t& ErrorCode); ++ virtual void RegisterSession(std::string SessionName, std::string SessionOwner, int32_t SeatID, int32_t SessionState, int32_t& ErrorCode); ++ ++ virtual void UnRegisterShutdownClient(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string BusName, std::string ObjName, uint32_t ShutdownMode, int32_t& ErrorCode); ++ virtual void UnRegisterShutdownClient(std::string BusName, std::string ObjName, uint32_t ShutdownMode, int32_t& ErrorCode); ++ ++ virtual void RegisterShutdownClient(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string BusName, std::string ObjName, uint32_t ShutdownMode, uint32_t TimeoutMs, int32_t& ErrorCode); ++ virtual void RegisterShutdownClient(std::string BusName, std::string ObjName, uint32_t ShutdownMode, uint32_t TimeoutMs, int32_t& ErrorCode); ++ ++ virtual void GetNodeState(const std::shared_ptr<CommonAPI::ClientId> clientId, int32_t& ErrorCode, int32_t& NodeStateId); ++ virtual void GetNodeState(int32_t& ErrorCode, int32_t& NodeStateId); ++ ++ virtual void GetSessionState(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, int32_t SeatID, int32_t& SessionState, int32_t& ErrorCode); ++ virtual void GetSessionState(std::string SessionName, int32_t SeatID, int32_t& SessionState, int32_t& ErrorCode); ++ ++ virtual void SetSessionState(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string SessionName, std::string SessionOwner, int32_t SessionState, int32_t SeatID, int32_t& ErrorCode); ++ virtual void SetSessionState(std::string SessionName, std::string SessionOwner, int32_t SessionState, int32_t SeatID, int32_t& ErrorCode); ++ ++ ++ virtual void fireNodeApplicationModeEvent(const int32_t& ApplicationModeId); ++ virtual void fireSessionStateChangedEvent(const std::string& SessionStateName, const int32_t& SeatID, const int32_t& SessionState); ++ virtual void fireNodeStateEvent(const int32_t& NodeState); ++ ++ ++protected: ++ virtual bool trySetBootModeAttribute(int32_t value); ++ virtual bool validateBootModeAttributeRequestedValue(const int32_t& value); ++ virtual bool trySetRestartReasonAttribute(int32_t value); ++ virtual bool validateRestartReasonAttributeRequestedValue(const int32_t& value); ++ virtual bool trySetShutdownReasonAttribute(int32_t value); ++ virtual bool validateShutdownReasonAttributeRequestedValue(const int32_t& value); ++ virtual bool trySetWakeUpReasonAttribute(int32_t value); ++ virtual bool validateWakeUpReasonAttributeRequestedValue(const int32_t& value); ++ class RemoteEventHandler: public virtual ConsumerStubRemoteEvent { ++ public: ++ RemoteEventHandler(ConsumerStubDefault* defaultStub); ++ ++ ++ ++ ++ ++ ++ private: ++ ConsumerStubDefault* defaultStub_; ++ }; ++private: ++ ConsumerStubDefault::RemoteEventHandler remoteEventHandler_; ++ ++ int32_t bootModeAttributeValue_; ++ int32_t restartReasonAttributeValue_; ++ int32_t shutdownReasonAttributeValue_; ++ int32_t wakeUpReasonAttributeValue_; ++ ++ CommonAPI::Version interfaceVersion_; ++}; ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Consumer_STUB_DEFAULT_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumer.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumer.h +new file mode 100644 +index 0000000..d810ef8 +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumer.h +@@ -0,0 +1,62 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_H_ ++ ++ ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/types.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++class LifeCycleConsumer { ++ public: ++ virtual ~LifeCycleConsumer() { } ++ ++ static inline const char* getInterfaceId(); ++ static inline CommonAPI::Version getInterfaceVersion(); ++}; ++ ++const char* LifeCycleConsumer::getInterfaceId() { ++ static const char* interfaceId = "org.genivi.NodeStateManager.LifeCycleConsumer"; ++ return interfaceId; ++} ++ ++CommonAPI::Version LifeCycleConsumer::getInterfaceVersion() { ++ return CommonAPI::Version(1, 0); ++} ++ ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++namespace CommonAPI { ++ ++} ++ ++ ++namespace std { ++ //hashes for types ++ ++ //hashes for error types ++} ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.cpp +new file mode 100644 +index 0000000..877f3cc +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.cpp +@@ -0,0 +1,74 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#include "LifeCycleConsumerDBusProxy.h" ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++std::shared_ptr<CommonAPI::DBus::DBusProxy> createLifeCycleConsumerDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyConnection) { ++ return std::make_shared<LifeCycleConsumerDBusProxy>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection); ++} ++ ++INITIALIZER(registerLifeCycleConsumerDBusProxy) { ++ CommonAPI::DBus::DBusFactory::registerProxyFactoryMethod(LifeCycleConsumer::getInterfaceId(), ++ &createLifeCycleConsumerDBusProxy); ++} ++ ++LifeCycleConsumerDBusProxy::LifeCycleConsumerDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyconnection): ++ CommonAPI::DBus::DBusProxy(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyconnection) ++ { ++ } ++ ++ ++ ++void LifeCycleConsumerDBusProxy::LifecycleRequest(const uint32_t& Request, const uint32_t& RequestId, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<uint32_t, uint32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodWithReply( ++ *this, ++ "LifecycleRequest", ++ "uu", ++ Request, RequestId, ++ callStatus ++ , ErrorCode); ++} ++std::future<CommonAPI::CallStatus> LifeCycleConsumerDBusProxy::LifecycleRequestAsync(const uint32_t& Request, const uint32_t& RequestId, LifecycleRequestAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<uint32_t, uint32_t>, ++ CommonAPI::DBus::DBusSerializableArguments<int32_t> >::callMethodAsync( ++ *this, ++ "LifecycleRequest", ++ "uu", ++ Request, RequestId, ++ std::move(callback)); ++} ++ ++ ++ ++void LifeCycleConsumerDBusProxy::getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const { ++ ownVersionMajor = 1; ++ ownVersionMinor = 0; ++} ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.h +new file mode 100644 +index 0000000..abaa4d1 +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.h +@@ -0,0 +1,62 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_DBUS_PROXY_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_DBUS_PROXY_H_ ++ ++#include <org/genivi/NodeStateManager/LifeCycleConsumerProxyBase.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/DBus/DBusFactory.h> ++#include <CommonAPI/DBus/DBusProxy.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++#include <string> ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++class LifeCycleConsumerDBusProxy: virtual public LifeCycleConsumerProxyBase, virtual public CommonAPI::DBus::DBusProxy { ++ public: ++ LifeCycleConsumerDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyconnection); ++ ++ virtual ~LifeCycleConsumerDBusProxy() { } ++ ++ ++ ++ virtual void LifecycleRequest(const uint32_t& Request, const uint32_t& RequestId, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ virtual std::future<CommonAPI::CallStatus> LifecycleRequestAsync(const uint32_t& Request, const uint32_t& RequestId, LifecycleRequestAsyncCallback callback); ++ ++ ++ virtual void getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const; ++ ++ private: ++ ++ ++}; ++ ++ ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_DBUS_PROXY_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.cpp +new file mode 100644 +index 0000000..0a2bb4d +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.cpp +@@ -0,0 +1,121 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++#include "LifeCycleConsumerDBusStubAdapter.h" ++#include <org/genivi/NodeStateManager/LifeCycleConsumer.h> ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++std::shared_ptr<CommonAPI::DBus::DBusStubAdapter> createLifeCycleConsumerDBusStubAdapter( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stubBase) { ++ return std::make_shared<LifeCycleConsumerDBusStubAdapter>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection, stubBase); ++} ++ ++INITIALIZER(registerLifeCycleConsumerDBusStubAdapter) { ++ CommonAPI::DBus::DBusFactory::registerAdapterFactoryMethod(LifeCycleConsumer::getInterfaceId(), ++ &createLifeCycleConsumerDBusStubAdapter); ++} ++ ++ ++ ++LifeCycleConsumerDBusStubAdapterInternal::~LifeCycleConsumerDBusStubAdapterInternal() { ++ deactivateManagedInstances(); ++ LifeCycleConsumerDBusStubAdapterHelper::deinit(); ++} ++ ++void LifeCycleConsumerDBusStubAdapterInternal::deactivateManagedInstances() { ++ ++} ++ ++const char* LifeCycleConsumerDBusStubAdapterInternal::getMethodsDBusIntrospectionXmlData() const { ++ static const std::string introspectionData = ++ "<method name=\"getInterfaceVersion\">\n" ++ "<arg name=\"value\" type=\"uu\" direction=\"out\" />" ++ "</method>\n" ++ "<method name=\"LifecycleRequest\">\n" ++ "<arg name=\"Request\" type=\"u\" direction=\"in\" />\n" ++ "<arg name=\"RequestId\" type=\"u\" direction=\"in\" />\n" ++ "<arg name=\"ErrorCode\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ ++ ; ++ return introspectionData.c_str(); ++} ++ ++CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ LifeCycleConsumerStub, ++ CommonAPI::Version ++ > LifeCycleConsumerDBusStubAdapterInternal::getLifeCycleConsumerInterfaceVersionStubDispatcher(&LifeCycleConsumerStub::getInterfaceVersion, "uu"); ++ ++ ++ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ LifeCycleConsumerStub, ++ std::tuple<uint32_t, uint32_t>, ++ std::tuple<int32_t> ++ > LifeCycleConsumerDBusStubAdapterInternal::lifecycleRequestStubDispatcher(&LifeCycleConsumerStub::LifecycleRequest, "i"); ++ ++ ++ ++ ++ ++const LifeCycleConsumerDBusStubAdapterHelper::StubDispatcherTable& LifeCycleConsumerDBusStubAdapterInternal::getStubDispatcherTable() { ++ return stubDispatcherTable_; ++} ++ ++const CommonAPI::DBus::StubAttributeTable& LifeCycleConsumerDBusStubAdapterInternal::getStubAttributeTable() { ++ return stubAttributeTable_; ++} ++ ++LifeCycleConsumerDBusStubAdapterInternal::LifeCycleConsumerDBusStubAdapterInternal( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub): ++ CommonAPI::DBus::DBusStubAdapter( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ false), ++ LifeCycleConsumerDBusStubAdapterHelper( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ std::dynamic_pointer_cast<LifeCycleConsumerStub>(stub), ++ false), ++ stubDispatcherTable_({ ++ { { "LifecycleRequest", "uu" }, &org::genivi::NodeStateManager::LifeCycleConsumerDBusStubAdapterInternal::lifecycleRequestStubDispatcher } ++ }), ++ stubAttributeTable_() { ++ ++ stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::NodeStateManager::LifeCycleConsumerDBusStubAdapterInternal::getLifeCycleConsumerInterfaceVersionStubDispatcher }); ++} ++ ++const bool LifeCycleConsumerDBusStubAdapterInternal::hasFreedesktopProperties() { ++ return false; ++} ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.h +new file mode 100644 +index 0000000..ac3d6ed +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.h +@@ -0,0 +1,113 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_DBUS_STUB_ADAPTER_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_DBUS_STUB_ADAPTER_H_ ++ ++#include <org/genivi/NodeStateManager/LifeCycleConsumerStub.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/DBus/DBusStubAdapterHelper.h> ++#include <CommonAPI/DBus/DBusStubAdapter.h> ++#include <CommonAPI/DBus/DBusFactory.h> ++#include <CommonAPI/DBus/DBusServicePublisher.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++typedef CommonAPI::DBus::DBusStubAdapterHelper<LifeCycleConsumerStub> LifeCycleConsumerDBusStubAdapterHelper; ++ ++class LifeCycleConsumerDBusStubAdapterInternal: public virtual LifeCycleConsumerStubAdapter, public LifeCycleConsumerDBusStubAdapterHelper { ++ public: ++ LifeCycleConsumerDBusStubAdapterInternal( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub); ++ ++ ~LifeCycleConsumerDBusStubAdapterInternal(); ++ ++ virtual const bool hasFreedesktopProperties(); ++ ++ ++ ++ ++ const LifeCycleConsumerDBusStubAdapterHelper::StubDispatcherTable& getStubDispatcherTable(); ++ const CommonAPI::DBus::StubAttributeTable& getStubAttributeTable(); ++ ++ void deactivateManagedInstances(); ++ ++ ++static CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ LifeCycleConsumerStub, ++ CommonAPI::Version ++ > getLifeCycleConsumerInterfaceVersionStubDispatcher; ++ ++ ++ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ LifeCycleConsumerStub, ++ std::tuple<uint32_t, uint32_t>, ++ std::tuple<int32_t> ++ > lifecycleRequestStubDispatcher; ++ ++ ++ ++ ++ protected: ++ virtual const char* getMethodsDBusIntrospectionXmlData() const; ++ ++ private: ++ LifeCycleConsumerDBusStubAdapterHelper::StubDispatcherTable stubDispatcherTable_; ++ CommonAPI::DBus::StubAttributeTable stubAttributeTable_; ++}; ++ ++class LifeCycleConsumerDBusStubAdapter: public LifeCycleConsumerDBusStubAdapterInternal, public std::enable_shared_from_this<LifeCycleConsumerDBusStubAdapter> { ++public: ++ LifeCycleConsumerDBusStubAdapter( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub) : ++ CommonAPI::DBus::DBusStubAdapter( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ false), ++ LifeCycleConsumerDBusStubAdapterInternal( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ stub) { } ++}; ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_DBUS_STUB_ADAPTER_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxy.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxy.h +new file mode 100644 +index 0000000..710e1d8 +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxy.h +@@ -0,0 +1,185 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_PROXY_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_PROXY_H_ ++ ++#include "LifeCycleConsumerProxyBase.h" ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++template <typename ... _AttributeExtensions> ++class LifeCycleConsumerProxy: virtual public LifeCycleConsumer, virtual public LifeCycleConsumerProxyBase ++, public _AttributeExtensions... { ++public: ++ LifeCycleConsumerProxy(std::shared_ptr<CommonAPI::Proxy> delegate); ++ ~LifeCycleConsumerProxy(); ++ ++ typedef LifeCycleConsumer InterfaceType; ++ ++ ++ ++ ++ /** ++ * Calls LifecycleRequest with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void LifecycleRequest(const uint32_t& Request, const uint32_t& RequestId, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode); ++ /** ++ * Calls LifecycleRequest with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> LifecycleRequestAsync(const uint32_t& Request, const uint32_t& RequestId, LifecycleRequestAsyncCallback callback); ++ ++ ++ /** ++ * Returns the CommonAPI address of the remote partner this proxy communicates with. ++ */ ++ virtual std::string getAddress() const; ++ ++ /** ++ * Returns the domain of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getDomain() const; ++ ++ /** ++ * Returns the service ID of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getServiceId() const; ++ ++ /** ++ * Returns the instance ID of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getInstanceId() const; ++ ++ /** ++ * Returns true if the remote partner for this proxy is currently known to be available. ++ */ ++ virtual bool isAvailable() const; ++ ++ /** ++ * Returns true if the remote partner for this proxy is available. ++ */ ++ virtual bool isAvailableBlocking() const; ++ ++ /** ++ * Returns the wrapper class that is used to (de-)register for notifications about ++ * the availability of the remote partner of this proxy. ++ */ ++ virtual CommonAPI::ProxyStatusEvent& getProxyStatusEvent(); ++ ++ /** ++ * Returns the wrapper class that is used to access version information of the remote ++ * partner of this proxy. ++ */ ++ virtual CommonAPI::InterfaceVersionAttribute& getInterfaceVersionAttribute(); ++ ++ private: ++ std::shared_ptr<LifeCycleConsumerProxyBase> delegate_; ++}; ++ ++#ifdef WIN32 ++ typedef LifeCycleConsumerProxy<CommonAPI::WINDummyAttributeExtension<CommonAPI::WINDummyAttribute>> LifeCycleConsumerProxyDefault; ++#else ++ typedef LifeCycleConsumerProxy<> LifeCycleConsumerProxyDefault; ++#endif ++ ++ ++// ++// LifeCycleConsumerProxy Implementation ++// ++template <typename ... _AttributeExtensions> ++LifeCycleConsumerProxy<_AttributeExtensions...>::LifeCycleConsumerProxy(std::shared_ptr<CommonAPI::Proxy> delegate): ++ _AttributeExtensions(*(std::dynamic_pointer_cast<LifeCycleConsumerProxyBase>(delegate)))..., ++ delegate_(std::dynamic_pointer_cast<LifeCycleConsumerProxyBase>(delegate)) { ++} ++ ++template <typename ... _AttributeExtensions> ++LifeCycleConsumerProxy<_AttributeExtensions...>::~LifeCycleConsumerProxy() { ++} ++ ++template <typename ... _AttributeExtensions> ++void LifeCycleConsumerProxy<_AttributeExtensions...>::LifecycleRequest(const uint32_t& Request, const uint32_t& RequestId, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) { ++ delegate_->LifecycleRequest(Request, RequestId, callStatus, ErrorCode); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> LifeCycleConsumerProxy<_AttributeExtensions...>::LifecycleRequestAsync(const uint32_t& Request, const uint32_t& RequestId, LifecycleRequestAsyncCallback callback) { ++ return delegate_->LifecycleRequestAsync(Request, RequestId, callback); ++} ++ ++template <typename ... _AttributeExtensions> ++std::string LifeCycleConsumerProxy<_AttributeExtensions...>::getAddress() const { ++ return delegate_->getAddress(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& LifeCycleConsumerProxy<_AttributeExtensions...>::getDomain() const { ++ return delegate_->getDomain(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& LifeCycleConsumerProxy<_AttributeExtensions...>::getServiceId() const { ++ return delegate_->getServiceId(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& LifeCycleConsumerProxy<_AttributeExtensions...>::getInstanceId() const { ++ return delegate_->getInstanceId(); ++} ++ ++template <typename ... _AttributeExtensions> ++bool LifeCycleConsumerProxy<_AttributeExtensions...>::isAvailable() const { ++ return delegate_->isAvailable(); ++} ++ ++template <typename ... _AttributeExtensions> ++bool LifeCycleConsumerProxy<_AttributeExtensions...>::isAvailableBlocking() const { ++ return delegate_->isAvailableBlocking(); ++} ++ ++template <typename ... _AttributeExtensions> ++CommonAPI::ProxyStatusEvent& LifeCycleConsumerProxy<_AttributeExtensions...>::getProxyStatusEvent() { ++ return delegate_->getProxyStatusEvent(); ++} ++ ++template <typename ... _AttributeExtensions> ++CommonAPI::InterfaceVersionAttribute& LifeCycleConsumerProxy<_AttributeExtensions...>::getInterfaceVersionAttribute() { ++ return delegate_->getInterfaceVersionAttribute(); ++} ++ ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_PROXY_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxyBase.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxyBase.h +new file mode 100644 +index 0000000..c6b3c4b +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxyBase.h +@@ -0,0 +1,49 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_PROXY_BASE_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_PROXY_BASE_H_ ++ ++#include "LifeCycleConsumer.h" ++ ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <vector> ++ ++#include <CommonAPI/Proxy.h> ++#include <functional> ++#include <future> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++class LifeCycleConsumerProxyBase: virtual public CommonAPI::Proxy { ++ public: ++ ++ typedef std::function<void(const CommonAPI::CallStatus&, const int32_t&)> LifecycleRequestAsyncCallback; ++ ++ ++ ++ virtual void LifecycleRequest(const uint32_t& Request, const uint32_t& RequestId, CommonAPI::CallStatus& callStatus, int32_t& ErrorCode) = 0; ++ virtual std::future<CommonAPI::CallStatus> LifecycleRequestAsync(const uint32_t& Request, const uint32_t& RequestId, LifecycleRequestAsyncCallback callback) = 0; ++}; ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_PROXY_BASE_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStub.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStub.h +new file mode 100644 +index 0000000..b7c8de6 +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStub.h +@@ -0,0 +1,98 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_STUB_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_STUB_H_ ++ ++ ++ ++ ++#include "LifeCycleConsumer.h" ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <vector> ++ ++#include <CommonAPI/Stub.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++/** ++ * Receives messages from remote and handles all dispatching of deserialized calls ++ * to a stub for the service LifeCycleConsumer. Also provides means to send broadcasts ++ * and attribute-changed-notifications of observable attributes as defined by this service. ++ * An application developer should not need to bother with this class. ++ */ ++class LifeCycleConsumerStubAdapter: virtual public CommonAPI::StubAdapter, public LifeCycleConsumer { ++ public: ++ ++ ++ ++ virtual void deactivateManagedInstances() = 0; ++protected: ++ /** ++ * Defines properties for storing the ClientIds of clients / proxies that have ++ * subscribed to the selective broadcasts ++ */ ++}; ++ ++ ++/** ++ * Defines the necessary callbacks to handle remote set events related to the attributes ++ * defined in the IDL description for LifeCycleConsumer. ++ * For each attribute two callbacks are defined: ++ * - a verification callback that allows to verify the requested value and to prevent setting ++ * e.g. an invalid value ("onRemoteSet<AttributeName>"). ++ * - an action callback to do local work after the attribute value has been changed ++ * ("onRemote<AttributeName>Changed"). ++ * ++ * This class and the one below are the ones an application developer needs to have ++ * a look at if he wants to implement a service. ++ */ ++class LifeCycleConsumerStubRemoteEvent { ++ public: ++ virtual ~LifeCycleConsumerStubRemoteEvent() { } ++ ++}; ++ ++ ++/** ++ * Defines the interface that must be implemented by any class that should provide ++ * the service LifeCycleConsumer to remote clients. ++ * This class and the one above are the ones an application developer needs to have ++ * a look at if he wants to implement a service. ++ */ ++class LifeCycleConsumerStub: public virtual CommonAPI::Stub<LifeCycleConsumerStubAdapter, LifeCycleConsumerStubRemoteEvent> { ++public: ++ virtual ~LifeCycleConsumerStub() { } ++ virtual const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) = 0; ++ ++ ++ /// This is the method that will be called on remote calls on the method LifecycleRequest. ++ virtual void LifecycleRequest(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t Request, uint32_t RequestId, int32_t& ErrorCode) = 0; ++ ++ using CommonAPI::Stub<LifeCycleConsumerStubAdapter, LifeCycleConsumerStubRemoteEvent>::initStubAdapter; ++ typedef CommonAPI::Stub<LifeCycleConsumerStubAdapter, LifeCycleConsumerStubRemoteEvent>::StubAdapterType StubAdapterType; ++ typedef CommonAPI::Stub<LifeCycleConsumerStubAdapter, LifeCycleConsumerStubRemoteEvent>::RemoteEventHandlerType RemoteEventHandlerType; ++ typedef LifeCycleConsumerStubRemoteEvent RemoteEventType; ++ typedef LifeCycleConsumer StubInterface; ++}; ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_STUB_H_ +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.cpp +new file mode 100644 +index 0000000..aa86851 +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.cpp +@@ -0,0 +1,46 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++#include <org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.h> ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++LifeCycleConsumerStubDefault::LifeCycleConsumerStubDefault(): ++ remoteEventHandler_(this), ++ interfaceVersion_(LifeCycleConsumer::getInterfaceVersion()) { ++} ++ ++const CommonAPI::Version& LifeCycleConsumerStubDefault::getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) { ++ return interfaceVersion_; ++} ++ ++LifeCycleConsumerStubRemoteEvent* LifeCycleConsumerStubDefault::initStubAdapter(const std::shared_ptr<LifeCycleConsumerStubAdapter>& stubAdapter) { ++ CommonAPI::Stub<LifeCycleConsumerStubAdapter, LifeCycleConsumerStubRemoteEvent>::stubAdapter_ = stubAdapter; ++ return &remoteEventHandler_; ++} ++ ++ ++void LifeCycleConsumerStubDefault::LifecycleRequest(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t Request, uint32_t RequestId, int32_t& ErrorCode) { ++ // Call old style methods in default ++ LifecycleRequest(Request, RequestId, ErrorCode); ++} ++void LifeCycleConsumerStubDefault::LifecycleRequest(uint32_t Request, uint32_t RequestId, int32_t& ErrorCode) { ++ // No operation in default ++} ++ ++ ++ ++ ++LifeCycleConsumerStubDefault::RemoteEventHandler::RemoteEventHandler(LifeCycleConsumerStubDefault* defaultStub): ++ defaultStub_(defaultStub) { ++} ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org +diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.h +new file mode 100644 +index 0000000..a474249 +--- /dev/null ++++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.h +@@ -0,0 +1,67 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_STUB_DEFAULT_H_ ++#define ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_STUB_DEFAULT_H_ ++ ++ ++#include <org/genivi/NodeStateManager/LifeCycleConsumerStub.h> ++#include <sstream> ++ ++namespace org { ++namespace genivi { ++namespace NodeStateManager { ++ ++/** ++ * Provides a default implementation for LifeCycleConsumerStubRemoteEvent and ++ * LifeCycleConsumerStub. Method callbacks have an empty implementation, ++ * remote set calls on attributes will always change the value of the attribute ++ * to the one received. ++ * ++ * Override this stub if you only want to provide a subset of the functionality ++ * that would be defined for this service, and/or if you do not need any non-default ++ * behaviour. ++ */ ++class LifeCycleConsumerStubDefault : public virtual LifeCycleConsumerStub { ++public: ++ LifeCycleConsumerStubDefault(); ++ ++ LifeCycleConsumerStubRemoteEvent* initStubAdapter(const std::shared_ptr<LifeCycleConsumerStubAdapter>& stubAdapter); ++ ++ const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId); ++ ++ ++ virtual void LifecycleRequest(const std::shared_ptr<CommonAPI::ClientId> clientId, uint32_t Request, uint32_t RequestId, int32_t& ErrorCode); ++ virtual void LifecycleRequest(uint32_t Request, uint32_t RequestId, int32_t& ErrorCode); ++ ++ ++ ++ ++protected: ++ class RemoteEventHandler: public virtual LifeCycleConsumerStubRemoteEvent { ++ public: ++ RemoteEventHandler(LifeCycleConsumerStubDefault* defaultStub); ++ ++ ++ private: ++ LifeCycleConsumerStubDefault* defaultStub_; ++ }; ++private: ++ LifeCycleConsumerStubDefault::RemoteEventHandler remoteEventHandler_; ++ ++ ++ CommonAPI::Version interfaceVersion_; ++}; ++ ++} // namespace NodeStateManager ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_NODESTATEMANAGER_Life_Cycle_Consumer_STUB_DEFAULT_H_ +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.cpp b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.cpp +new file mode 100644 +index 0000000..8092420 +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.cpp +@@ -0,0 +1,1043 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#include "am.h" ++ ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++am_Route_s::am_Route_s(const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_RoutingElement_L& routeValue): ++ sourceID(sourceIDValue), ++ sinkID(sinkIDValue), ++ route(routeValue) ++{ ++} ++ ++ ++bool operator==(const am_Route_s& lhs, const am_Route_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sourceID == rhs.sourceID && ++ lhs.sinkID == rhs.sinkID && ++ lhs.route == rhs.route ++ ; ++} ++ ++void am_Route_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sourceID; ++ inputStream >> sinkID; ++ inputStream >> route; ++} ++ ++void am_Route_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sourceID; ++ outputStream << sinkID; ++ outputStream << route; ++} ++ ++am_Availability_s::am_Availability_s(const am_Availability_e& availabilityValue, const am_CustomAvailabilityReason_t& availabilityReasonValue): ++ availability(availabilityValue), ++ availabilityReason(availabilityReasonValue) ++{ ++} ++ ++ ++bool operator==(const am_Availability_s& lhs, const am_Availability_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.availability == rhs.availability && ++ lhs.availabilityReason == rhs.availabilityReason ++ ; ++} ++ ++void am_Availability_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> availability; ++ inputStream >> availabilityReason; ++} ++ ++void am_Availability_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << availability; ++ outputStream << availabilityReason; ++} ++ ++am_ClassProperty_s::am_ClassProperty_s(const am_CustomClassProperty_t& classPropertyValue, const int16_t& valueValue): ++ classProperty(classPropertyValue), ++ value(valueValue) ++{ ++} ++ ++ ++bool operator==(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.classProperty == rhs.classProperty && ++ lhs.value == rhs.value ++ ; ++} ++ ++void am_ClassProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> classProperty; ++ inputStream >> value; ++} ++ ++void am_ClassProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << classProperty; ++ outputStream << value; ++} ++ ++am_Crossfader_s::am_Crossfader_s(const am_crossfaderID_t& crossfaderIDValue, const std::string& nameValue, const am_sinkID_t& sinkID_AValue, const am_sinkID_t& sinkID_BValue, const am_sourceID_t& sourceIDValue, const am_HotSink_e& hotSinkValue): ++ crossfaderID(crossfaderIDValue), ++ name(nameValue), ++ sinkID_A(sinkID_AValue), ++ sinkID_B(sinkID_BValue), ++ sourceID(sourceIDValue), ++ hotSink(hotSinkValue) ++{ ++} ++ ++ ++bool operator==(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.crossfaderID == rhs.crossfaderID && ++ lhs.name == rhs.name && ++ lhs.sinkID_A == rhs.sinkID_A && ++ lhs.sinkID_B == rhs.sinkID_B && ++ lhs.sourceID == rhs.sourceID && ++ lhs.hotSink == rhs.hotSink ++ ; ++} ++ ++void am_Crossfader_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> crossfaderID; ++ inputStream >> name; ++ inputStream >> sinkID_A; ++ inputStream >> sinkID_B; ++ inputStream >> sourceID; ++ inputStream >> hotSink; ++} ++ ++void am_Crossfader_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << crossfaderID; ++ outputStream << name; ++ outputStream << sinkID_A; ++ outputStream << sinkID_B; ++ outputStream << sourceID; ++ outputStream << hotSink; ++} ++ ++am_Gateway_s::am_Gateway_s(const am_gatewayID_t& gatewayIDValue, const std::string& nameValue, const am_sinkID_t& sinkIDValue, const am_sourceID_t& sourceIDValue, const am_domainID_t& domainSinkIDValue, const am_domainID_t& domainSourceIDValue, const am_domainID_t& controlDomainIDValue, const am_ConnectionFormat_L& listSourceFormatsValue, const am_ConnectionFormat_L& listSinkFormatsValue, const am_Convertion_L& convertionMatrixValue): ++ gatewayID(gatewayIDValue), ++ name(nameValue), ++ sinkID(sinkIDValue), ++ sourceID(sourceIDValue), ++ domainSinkID(domainSinkIDValue), ++ domainSourceID(domainSourceIDValue), ++ controlDomainID(controlDomainIDValue), ++ listSourceFormats(listSourceFormatsValue), ++ listSinkFormats(listSinkFormatsValue), ++ convertionMatrix(convertionMatrixValue) ++{ ++} ++ ++ ++bool operator==(const am_Gateway_s& lhs, const am_Gateway_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.gatewayID == rhs.gatewayID && ++ lhs.name == rhs.name && ++ lhs.sinkID == rhs.sinkID && ++ lhs.sourceID == rhs.sourceID && ++ lhs.domainSinkID == rhs.domainSinkID && ++ lhs.domainSourceID == rhs.domainSourceID && ++ lhs.controlDomainID == rhs.controlDomainID && ++ lhs.listSourceFormats == rhs.listSourceFormats && ++ lhs.listSinkFormats == rhs.listSinkFormats && ++ lhs.convertionMatrix == rhs.convertionMatrix ++ ; ++} ++ ++void am_Gateway_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> gatewayID; ++ inputStream >> name; ++ inputStream >> sinkID; ++ inputStream >> sourceID; ++ inputStream >> domainSinkID; ++ inputStream >> domainSourceID; ++ inputStream >> controlDomainID; ++ inputStream >> listSourceFormats; ++ inputStream >> listSinkFormats; ++ inputStream >> convertionMatrix; ++} ++ ++void am_Gateway_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << gatewayID; ++ outputStream << name; ++ outputStream << sinkID; ++ outputStream << sourceID; ++ outputStream << domainSinkID; ++ outputStream << domainSourceID; ++ outputStream << controlDomainID; ++ outputStream << listSourceFormats; ++ outputStream << listSinkFormats; ++ outputStream << convertionMatrix; ++} ++ ++am_Converter_s::am_Converter_s(const am_converterID_t& converterIDValue, const std::string& nameValue, const am_sinkID_t& sinkIDValue, const am_sourceID_t& sourceIDValue, const am_domainID_t& domainIDValue, const am_ConnectionFormat_L& listSourceFormatsValue, const am_ConnectionFormat_L& listSinkFormatsValue, const am_Convertion_L& convertionMatrixValue): ++ converterID(converterIDValue), ++ name(nameValue), ++ sinkID(sinkIDValue), ++ sourceID(sourceIDValue), ++ domainID(domainIDValue), ++ listSourceFormats(listSourceFormatsValue), ++ listSinkFormats(listSinkFormatsValue), ++ convertionMatrix(convertionMatrixValue) ++{ ++} ++ ++ ++bool operator==(const am_Converter_s& lhs, const am_Converter_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.converterID == rhs.converterID && ++ lhs.name == rhs.name && ++ lhs.sinkID == rhs.sinkID && ++ lhs.sourceID == rhs.sourceID && ++ lhs.domainID == rhs.domainID && ++ lhs.listSourceFormats == rhs.listSourceFormats && ++ lhs.listSinkFormats == rhs.listSinkFormats && ++ lhs.convertionMatrix == rhs.convertionMatrix ++ ; ++} ++ ++void am_Converter_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> converterID; ++ inputStream >> name; ++ inputStream >> sinkID; ++ inputStream >> sourceID; ++ inputStream >> domainID; ++ inputStream >> listSourceFormats; ++ inputStream >> listSinkFormats; ++ inputStream >> convertionMatrix; ++} ++ ++void am_Converter_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << converterID; ++ outputStream << name; ++ outputStream << sinkID; ++ outputStream << sourceID; ++ outputStream << domainID; ++ outputStream << listSourceFormats; ++ outputStream << listSinkFormats; ++ outputStream << convertionMatrix; ++} ++ ++am_RoutingElement_s::am_RoutingElement_s(const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_domainID_t& domainIDValue, const am_CustomConnectionFormat_t& connectionFormatValue): ++ sourceID(sourceIDValue), ++ sinkID(sinkIDValue), ++ domainID(domainIDValue), ++ connectionFormat(connectionFormatValue) ++{ ++} ++ ++ ++bool operator==(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sourceID == rhs.sourceID && ++ lhs.sinkID == rhs.sinkID && ++ lhs.domainID == rhs.domainID && ++ lhs.connectionFormat == rhs.connectionFormat ++ ; ++} ++ ++void am_RoutingElement_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sourceID; ++ inputStream >> sinkID; ++ inputStream >> domainID; ++ inputStream >> connectionFormat; ++} ++ ++void am_RoutingElement_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sourceID; ++ outputStream << sinkID; ++ outputStream << domainID; ++ outputStream << connectionFormat; ++} ++ ++am_SoundProperty_s::am_SoundProperty_s(const am_CustomSoundPropertyType_t& typeValue, const int16_t& valueValue): ++ type(typeValue), ++ value(valueValue) ++{ ++} ++ ++ ++bool operator==(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.value == rhs.value ++ ; ++} ++ ++void am_SoundProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> value; ++} ++ ++void am_SoundProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << value; ++} ++ ++am_SystemProperty_s::am_SystemProperty_s(const am_CustomSystemPropertyType_t& typeValue, const int16_t& valueValue): ++ type(typeValue), ++ value(valueValue) ++{ ++} ++ ++ ++bool operator==(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.value == rhs.value ++ ; ++} ++ ++void am_SystemProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> value; ++} ++ ++void am_SystemProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << value; ++} ++ ++am_SinkClass_s::am_SinkClass_s(const am_sinkClass_t& sinkClassIDValue, const std::string& nameValue, const am_ClassProperty_L& listClassPropertiesValue): ++ sinkClassID(sinkClassIDValue), ++ name(nameValue), ++ listClassProperties(listClassPropertiesValue) ++{ ++} ++ ++ ++bool operator==(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sinkClassID == rhs.sinkClassID && ++ lhs.name == rhs.name && ++ lhs.listClassProperties == rhs.listClassProperties ++ ; ++} ++ ++void am_SinkClass_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sinkClassID; ++ inputStream >> name; ++ inputStream >> listClassProperties; ++} ++ ++void am_SinkClass_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sinkClassID; ++ outputStream << name; ++ outputStream << listClassProperties; ++} ++ ++am_SourceClass_s::am_SourceClass_s(const am_sourceClass_t& sourceClassIDValue, const std::string& nameValue, const am_ClassProperty_L& listClassPropertiesValue): ++ sourceClassID(sourceClassIDValue), ++ name(nameValue), ++ listClassProperties(listClassPropertiesValue) ++{ ++} ++ ++ ++bool operator==(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sourceClassID == rhs.sourceClassID && ++ lhs.name == rhs.name && ++ lhs.listClassProperties == rhs.listClassProperties ++ ; ++} ++ ++void am_SourceClass_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sourceClassID; ++ inputStream >> name; ++ inputStream >> listClassProperties; ++} ++ ++void am_SourceClass_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sourceClassID; ++ outputStream << name; ++ outputStream << listClassProperties; ++} ++ ++am_SourceType_s::am_SourceType_s(const am_sourceID_t& sourceIDValue, const std::string& nameValue, const am_Availability_s& availabilityValue, const am_sourceClass_t& sourceClassIDValue): ++ sourceID(sourceIDValue), ++ name(nameValue), ++ availability(availabilityValue), ++ sourceClassID(sourceClassIDValue) ++{ ++} ++ ++ ++bool operator==(const am_SourceType_s& lhs, const am_SourceType_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sourceID == rhs.sourceID && ++ lhs.name == rhs.name && ++ lhs.availability == rhs.availability && ++ lhs.sourceClassID == rhs.sourceClassID ++ ; ++} ++ ++void am_SourceType_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sourceID; ++ inputStream >> name; ++ inputStream >> availability; ++ inputStream >> sourceClassID; ++} ++ ++void am_SourceType_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sourceID; ++ outputStream << name; ++ outputStream << availability; ++ outputStream << sourceClassID; ++} ++ ++am_SinkType_s::am_SinkType_s(const am_sinkID_t& sinkIDValue, const std::string& nameValue, const am_Availability_s& availabilityValue, const am_mainVolume_t& volumeValue, const am_MuteState_e& muteStateValue, const am_sinkClass_t& sinkClassIDValue): ++ sinkID(sinkIDValue), ++ name(nameValue), ++ availability(availabilityValue), ++ volume(volumeValue), ++ muteState(muteStateValue), ++ sinkClassID(sinkClassIDValue) ++{ ++} ++ ++ ++bool operator==(const am_SinkType_s& lhs, const am_SinkType_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sinkID == rhs.sinkID && ++ lhs.name == rhs.name && ++ lhs.availability == rhs.availability && ++ lhs.volume == rhs.volume && ++ lhs.muteState == rhs.muteState && ++ lhs.sinkClassID == rhs.sinkClassID ++ ; ++} ++ ++void am_SinkType_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sinkID; ++ inputStream >> name; ++ inputStream >> availability; ++ inputStream >> volume; ++ inputStream >> muteState; ++ inputStream >> sinkClassID; ++} ++ ++void am_SinkType_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sinkID; ++ outputStream << name; ++ outputStream << availability; ++ outputStream << volume; ++ outputStream << muteState; ++ outputStream << sinkClassID; ++} ++ ++am_Handle_s::am_Handle_s(const am_Handle_e& handleTypeValue, const uint16_t& handleValue): ++ handleType(handleTypeValue), ++ handle(handleValue) ++{ ++} ++ ++ ++bool operator==(const am_Handle_s& lhs, const am_Handle_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.handleType == rhs.handleType && ++ lhs.handle == rhs.handle ++ ; ++} ++ ++void am_Handle_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> handleType; ++ inputStream >> handle; ++} ++ ++void am_Handle_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << handleType; ++ outputStream << handle; ++} ++ ++am_MainSoundProperty_s::am_MainSoundProperty_s(const am_CustomMainSoundPropertyType_t& typeValue, const int16_t& valueValue): ++ type(typeValue), ++ value(valueValue) ++{ ++} ++ ++ ++bool operator==(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.value == rhs.value ++ ; ++} ++ ++void am_MainSoundProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> value; ++} ++ ++void am_MainSoundProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << value; ++} ++ ++am_MainConnectionType_s::am_MainConnectionType_s(const am_mainConnectionID_t& mainConnectionIDValue, const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_timeSync_t& delayValue, const am_ConnectionState_e& connectionStateValue): ++ mainConnectionID(mainConnectionIDValue), ++ sourceID(sourceIDValue), ++ sinkID(sinkIDValue), ++ delay(delayValue), ++ connectionState(connectionStateValue) ++{ ++} ++ ++ ++bool operator==(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.mainConnectionID == rhs.mainConnectionID && ++ lhs.sourceID == rhs.sourceID && ++ lhs.sinkID == rhs.sinkID && ++ lhs.delay == rhs.delay && ++ lhs.connectionState == rhs.connectionState ++ ; ++} ++ ++void am_MainConnectionType_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> mainConnectionID; ++ inputStream >> sourceID; ++ inputStream >> sinkID; ++ inputStream >> delay; ++ inputStream >> connectionState; ++} ++ ++void am_MainConnectionType_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << mainConnectionID; ++ outputStream << sourceID; ++ outputStream << sinkID; ++ outputStream << delay; ++ outputStream << connectionState; ++} ++ ++am_MainConnection_s::am_MainConnection_s(const am_mainConnectionID_t& mainConnectionIDValue, const am_ConnectionState_e& connectionStateValue, const am_sinkID_t& sinkIDValue, const am_sourceID_t& sourceIDValue, const am_timeSync_t& delayValue, const am_ConnectionID_L& listConnectionIDValue): ++ mainConnectionID(mainConnectionIDValue), ++ connectionState(connectionStateValue), ++ sinkID(sinkIDValue), ++ sourceID(sourceIDValue), ++ delay(delayValue), ++ listConnectionID(listConnectionIDValue) ++{ ++} ++ ++ ++bool operator==(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.mainConnectionID == rhs.mainConnectionID && ++ lhs.connectionState == rhs.connectionState && ++ lhs.sinkID == rhs.sinkID && ++ lhs.sourceID == rhs.sourceID && ++ lhs.delay == rhs.delay && ++ lhs.listConnectionID == rhs.listConnectionID ++ ; ++} ++ ++void am_MainConnection_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> mainConnectionID; ++ inputStream >> connectionState; ++ inputStream >> sinkID; ++ inputStream >> sourceID; ++ inputStream >> delay; ++ inputStream >> listConnectionID; ++} ++ ++void am_MainConnection_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << mainConnectionID; ++ outputStream << connectionState; ++ outputStream << sinkID; ++ outputStream << sourceID; ++ outputStream << delay; ++ outputStream << listConnectionID; ++} ++ ++am_NotificationPayload_s::am_NotificationPayload_s(const am_CustomNotificationType_t& typeValue, const int16_t& valueValue): ++ type(typeValue), ++ value(valueValue) ++{ ++} ++ ++ ++bool operator==(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.value == rhs.value ++ ; ++} ++ ++void am_NotificationPayload_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> value; ++} ++ ++void am_NotificationPayload_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << value; ++} ++ ++am_NotificationConfiguration_s::am_NotificationConfiguration_s(const am_CustomNotificationType_t& typeValue, const am_NotificationStatus_e& statusValue, const int16_t& parameterValue): ++ type(typeValue), ++ status(statusValue), ++ parameter(parameterValue) ++{ ++} ++ ++ ++bool operator==(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.status == rhs.status && ++ lhs.parameter == rhs.parameter ++ ; ++} ++ ++void am_NotificationConfiguration_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> status; ++ inputStream >> parameter; ++} ++ ++void am_NotificationConfiguration_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << status; ++ outputStream << parameter; ++} ++ ++am_Sink_s::am_Sink_s(const am_sinkID_t& sinkIDValue, const std::string& nameValue, const am_domainID_t& domainIDValue, const am_sinkClass_t& sinkClassIDValue, const am_volume_t& volumeValue, const bool& visibleValue, const am_Availability_s& availableValue, const am_MuteState_e& muteStateValue, const am_mainVolume_t& mainVolumeValue, const am_SoundProperty_L& listSoundPropertiesValue, const am_ConnectionFormat_L& listConnectionFormatsValue, const am_MainSoundProperty_L& listMainSoundPropertiesValue, const am_NotificationConfiguration_L& listMainNotificationConfigurationsValue, const am_NotificationConfiguration_L& listNotificationConfigurationsValue): ++ sinkID(sinkIDValue), ++ name(nameValue), ++ domainID(domainIDValue), ++ sinkClassID(sinkClassIDValue), ++ volume(volumeValue), ++ visible(visibleValue), ++ available(availableValue), ++ muteState(muteStateValue), ++ mainVolume(mainVolumeValue), ++ listSoundProperties(listSoundPropertiesValue), ++ listConnectionFormats(listConnectionFormatsValue), ++ listMainSoundProperties(listMainSoundPropertiesValue), ++ listMainNotificationConfigurations(listMainNotificationConfigurationsValue), ++ listNotificationConfigurations(listNotificationConfigurationsValue) ++{ ++} ++ ++ ++bool operator==(const am_Sink_s& lhs, const am_Sink_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sinkID == rhs.sinkID && ++ lhs.name == rhs.name && ++ lhs.domainID == rhs.domainID && ++ lhs.sinkClassID == rhs.sinkClassID && ++ lhs.volume == rhs.volume && ++ lhs.visible == rhs.visible && ++ lhs.available == rhs.available && ++ lhs.muteState == rhs.muteState && ++ lhs.mainVolume == rhs.mainVolume && ++ lhs.listSoundProperties == rhs.listSoundProperties && ++ lhs.listConnectionFormats == rhs.listConnectionFormats && ++ lhs.listMainSoundProperties == rhs.listMainSoundProperties && ++ lhs.listMainNotificationConfigurations == rhs.listMainNotificationConfigurations && ++ lhs.listNotificationConfigurations == rhs.listNotificationConfigurations ++ ; ++} ++ ++void am_Sink_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sinkID; ++ inputStream >> name; ++ inputStream >> domainID; ++ inputStream >> sinkClassID; ++ inputStream >> volume; ++ inputStream >> visible; ++ inputStream >> available; ++ inputStream >> muteState; ++ inputStream >> mainVolume; ++ inputStream >> listSoundProperties; ++ inputStream >> listConnectionFormats; ++ inputStream >> listMainSoundProperties; ++ inputStream >> listMainNotificationConfigurations; ++ inputStream >> listNotificationConfigurations; ++} ++ ++void am_Sink_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sinkID; ++ outputStream << name; ++ outputStream << domainID; ++ outputStream << sinkClassID; ++ outputStream << volume; ++ outputStream << visible; ++ outputStream << available; ++ outputStream << muteState; ++ outputStream << mainVolume; ++ outputStream << listSoundProperties; ++ outputStream << listConnectionFormats; ++ outputStream << listMainSoundProperties; ++ outputStream << listMainNotificationConfigurations; ++ outputStream << listNotificationConfigurations; ++} ++ ++am_Source_s::am_Source_s(const am_sourceID_t& sourceIDValue, const am_domainID_t& domainIDValue, const std::string& nameValue, const am_sourceClass_t& sourceClassIDValue, const am_SourceState_e& sourceStateValue, const am_volume_t& volumeValue, const bool& visibleValue, const am_Availability_s& availableValue, const am_InterruptState_e& interruptStateValue, const am_SoundProperty_L& listSoundPropertiesValue, const am_ConnectionFormat_L& listConnectionFormatsValue, const am_MainSoundProperty_L& listMainSoundPropertiesValue, const am_NotificationConfiguration_L& listMainNotificationConfigurationsValue, const am_NotificationConfiguration_L& listNotificationConfigurationsValue): ++ sourceID(sourceIDValue), ++ domainID(domainIDValue), ++ name(nameValue), ++ sourceClassID(sourceClassIDValue), ++ sourceState(sourceStateValue), ++ volume(volumeValue), ++ visible(visibleValue), ++ available(availableValue), ++ interruptState(interruptStateValue), ++ listSoundProperties(listSoundPropertiesValue), ++ listConnectionFormats(listConnectionFormatsValue), ++ listMainSoundProperties(listMainSoundPropertiesValue), ++ listMainNotificationConfigurations(listMainNotificationConfigurationsValue), ++ listNotificationConfigurations(listNotificationConfigurationsValue) ++{ ++} ++ ++ ++bool operator==(const am_Source_s& lhs, const am_Source_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sourceID == rhs.sourceID && ++ lhs.domainID == rhs.domainID && ++ lhs.name == rhs.name && ++ lhs.sourceClassID == rhs.sourceClassID && ++ lhs.sourceState == rhs.sourceState && ++ lhs.volume == rhs.volume && ++ lhs.visible == rhs.visible && ++ lhs.available == rhs.available && ++ lhs.interruptState == rhs.interruptState && ++ lhs.listSoundProperties == rhs.listSoundProperties && ++ lhs.listConnectionFormats == rhs.listConnectionFormats && ++ lhs.listMainSoundProperties == rhs.listMainSoundProperties && ++ lhs.listMainNotificationConfigurations == rhs.listMainNotificationConfigurations && ++ lhs.listNotificationConfigurations == rhs.listNotificationConfigurations ++ ; ++} ++ ++void am_Source_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sourceID; ++ inputStream >> domainID; ++ inputStream >> name; ++ inputStream >> sourceClassID; ++ inputStream >> sourceState; ++ inputStream >> volume; ++ inputStream >> visible; ++ inputStream >> available; ++ inputStream >> interruptState; ++ inputStream >> listSoundProperties; ++ inputStream >> listConnectionFormats; ++ inputStream >> listMainSoundProperties; ++ inputStream >> listMainNotificationConfigurations; ++ inputStream >> listNotificationConfigurations; ++} ++ ++void am_Source_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sourceID; ++ outputStream << domainID; ++ outputStream << name; ++ outputStream << sourceClassID; ++ outputStream << sourceState; ++ outputStream << volume; ++ outputStream << visible; ++ outputStream << available; ++ outputStream << interruptState; ++ outputStream << listSoundProperties; ++ outputStream << listConnectionFormats; ++ outputStream << listMainSoundProperties; ++ outputStream << listMainNotificationConfigurations; ++ outputStream << listNotificationConfigurations; ++} ++ ++am_Domain_s::am_Domain_s(const am_domainID_t& domainIDValue, const std::string& nameValue, const std::string& busnameValue, const std::string& nodenameValue, const bool& earlyValue, const bool& completeValue, const am_DomainState_e& stateValue): ++ domainID(domainIDValue), ++ name(nameValue), ++ busname(busnameValue), ++ nodename(nodenameValue), ++ early(earlyValue), ++ complete(completeValue), ++ state(stateValue) ++{ ++} ++ ++ ++bool operator==(const am_Domain_s& lhs, const am_Domain_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.domainID == rhs.domainID && ++ lhs.name == rhs.name && ++ lhs.busname == rhs.busname && ++ lhs.nodename == rhs.nodename && ++ lhs.early == rhs.early && ++ lhs.complete == rhs.complete && ++ lhs.state == rhs.state ++ ; ++} ++ ++void am_Domain_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> domainID; ++ inputStream >> name; ++ inputStream >> busname; ++ inputStream >> nodename; ++ inputStream >> early; ++ inputStream >> complete; ++ inputStream >> state; ++} ++ ++void am_Domain_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << domainID; ++ outputStream << name; ++ outputStream << busname; ++ outputStream << nodename; ++ outputStream << early; ++ outputStream << complete; ++ outputStream << state; ++} ++ ++am_EarlyData_s::am_EarlyData_s(const am_EarlyDataType_e& typeValue, const am_DataType_u& sinksourceValue, const am_EarlyData_u& dataValue): ++ type(typeValue), ++ sinksource(sinksourceValue), ++ data(dataValue) ++{ ++} ++ ++ ++bool operator==(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.sinksource == rhs.sinksource && ++ lhs.data == rhs.data ++ ; ++} ++ ++void am_EarlyData_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> sinksource; ++ inputStream >> data; ++} ++ ++void am_EarlyData_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << sinksource; ++ outputStream << data; ++} ++ ++am_Connection_s::am_Connection_s(const am_connectionID_t& connectionIDValue, const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_timeSync_t& delayValue, const am_CustomConnectionFormat_t& connectionFormatValue): ++ connectionID(connectionIDValue), ++ sourceID(sourceIDValue), ++ sinkID(sinkIDValue), ++ delay(delayValue), ++ connectionFormat(connectionFormatValue) ++{ ++} ++ ++ ++bool operator==(const am_Connection_s& lhs, const am_Connection_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.connectionID == rhs.connectionID && ++ lhs.sourceID == rhs.sourceID && ++ lhs.sinkID == rhs.sinkID && ++ lhs.delay == rhs.delay && ++ lhs.connectionFormat == rhs.connectionFormat ++ ; ++} ++ ++void am_Connection_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> connectionID; ++ inputStream >> sourceID; ++ inputStream >> sinkID; ++ inputStream >> delay; ++ inputStream >> connectionFormat; ++} ++ ++void am_Connection_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << connectionID; ++ outputStream << sourceID; ++ outputStream << sinkID; ++ outputStream << delay; ++ outputStream << connectionFormat; ++} ++ ++am_Volumes_s::am_Volumes_s(const am_VolumeType_e& volumeTypeValue, const am_DataType_u& volumeIDValue, const am_volume_t& volumeValue, const am_CustomRampType_t& rampValue, const am_time_t& timeValue): ++ volumeType(volumeTypeValue), ++ volumeID(volumeIDValue), ++ volume(volumeValue), ++ ramp(rampValue), ++ time(timeValue) ++{ ++} ++ ++ ++bool operator==(const am_Volumes_s& lhs, const am_Volumes_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.volumeType == rhs.volumeType && ++ lhs.volumeID == rhs.volumeID && ++ lhs.volume == rhs.volume && ++ lhs.ramp == rhs.ramp && ++ lhs.time == rhs.time ++ ; ++} ++ ++void am_Volumes_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> volumeType; ++ inputStream >> volumeID; ++ inputStream >> volume; ++ inputStream >> ramp; ++ inputStream >> time; ++} ++ ++void am_Volumes_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << volumeType; ++ outputStream << volumeID; ++ outputStream << volume; ++ outputStream << ramp; ++ outputStream << time; ++} ++ ++ ++ ++} // namespace am ++} // namespace genivi ++} // namespace org +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.h +new file mode 100644 +index 0000000..e75db5d +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.h +@@ -0,0 +1,2551 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_am_H_ ++#define ORG_GENIVI_am_H_ ++ ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/InputStream.h> ++#include <CommonAPI/OutputStream.h> ++#include <CommonAPI/SerializableStruct.h> ++#include <CommonAPI/SerializableVariant.h> ++#include <CommonAPI/types.h> ++#include <cstdint> ++#include <memory> ++#include <string> ++#include <vector> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++ ++namespace am { ++ /** ++ * a source ID ++ */ ++ /** ++ * a source ID ++ */ ++ typedef uint16_t am_sourceID_t; ++ /** ++ * a mainConnection ID ++ */ ++ /** ++ * a mainConnection ID ++ */ ++ typedef uint16_t am_mainConnectionID_t; ++ /** ++ * offset time that is introduced in milli seconds. ++ */ ++ /** ++ * offset time that is introduced in milli seconds. ++ */ ++ typedef int16_t am_timeSync_t; ++ /** ++ * a sink ID ++ */ ++ /** ++ * a sink ID ++ */ ++ typedef uint16_t am_sinkID_t; ++ /** ++ * represents the connection state ++ */ ++ enum class am_ConnectionState_e: int32_t { ++ CS_UNKNOWN = 0, ++ /** ++ * This means the connection is just building up ++ */ ++ CS_CONNECTING = 1, ++ /** ++ * the connection is ready to be used ++ */ ++ CS_CONNECTED = 2, ++ /** ++ * the connection is in the course to be knocked down ++ */ ++ CS_DISCONNECTING = 3, ++ /** ++ * only relevant for connectionStatechanged. Is send after the connection was ++ * removed ++ */ ++ CS_DISCONNECTED = 4, ++ /** ++ * this means the connection is still build up but unused at the moment ++ */ ++ CS_SUSPENDED = 5, ++ CS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_ConnectionState_eComparator; ++ /** ++ * this type holds all information of connections relevant to the HMI ++ */ ++ /** ++ * this type holds all information of connections relevant to the HMI ++ */ ++ struct am_MainConnectionType_s: CommonAPI::SerializableStruct { ++ /** ++ * the ID of the mainconnection ++ */ ++ am_mainConnectionID_t mainConnectionID; ++ /** ++ * the sourceID where the connection starts ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * the sinkID where the connection ends ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * the delay of the mainconnection ++ */ ++ am_timeSync_t delay; ++ /** ++ * the current connection state ++ */ ++ am_ConnectionState_e connectionState; ++ ++ am_MainConnectionType_s() = default; ++ am_MainConnectionType_s(const am_mainConnectionID_t& mainConnectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_timeSync_t& delay, const am_ConnectionState_e& connectionState); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ } ++ }; ++ typedef std::vector<am_MainConnectionType_s> am_MainConnection_L; ++ /** ++ * product specific identifier of property ++ */ ++ /** ++ * product specific identifier of property ++ */ ++ typedef uint16_t am_CustomClassProperty_t; ++ /** ++ * describes class properties ++ */ ++ /** ++ * describes class properties ++ */ ++ struct am_ClassProperty_s: CommonAPI::SerializableStruct { ++ /** ++ * the property as enum ++ */ ++ am_CustomClassProperty_t classProperty; ++ /** ++ * the value of the property ++ */ ++ int16_t value; ++ ++ am_ClassProperty_s() = default; ++ am_ClassProperty_s(const am_CustomClassProperty_t& classProperty, const int16_t& value); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ typedef std::vector<am_ClassProperty_s> am_ClassProperty_L; ++ typedef uint16_t am_sinkClass_t; ++ /** ++ * struct describing sinkclasses ++ */ ++ /** ++ * struct describing sinkclasses ++ */ ++ struct am_SinkClass_s: CommonAPI::SerializableStruct { ++ /** ++ * the ID of the sinkClass ++ */ ++ am_sinkClass_t sinkClassID; ++ /** ++ * the name of the sinkClass - must be unique in the system ++ */ ++ std::string name; ++ /** ++ * the list of the class properties. These are pairs of a project specific enum ++ * describing the type of the value and an integer holding the real value. ++ */ ++ am_ClassProperty_L listClassProperties; ++ ++ am_SinkClass_s() = default; ++ am_SinkClass_s(const am_sinkClass_t& sinkClassID, const std::string& name, const am_ClassProperty_L& listClassProperties); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ typedef std::vector<am_SinkClass_s> am_SinkClass_L; ++ /** ++ * This is the volume presented on the command interface. It is in the duty of the ++ * Controller to change the volumes given here into meaningful values on the ++ * routing interface. ++ The range of this type is customer specific. ++ */ ++ /** ++ * This is the volume presented on the command interface. It is in the duty of the ++ * Controller to change the volumes given here into meaningful values on the ++ * routing interface. ++ The range of this type is customer specific. ++ */ ++ typedef int16_t am_mainVolume_t; ++ /** ++ * This project specific value gives the information about reason for reason for ++ * Source/Sink change ++ */ ++ /** ++ * This project specific value gives the information about reason for reason for ++ * Source/Sink change ++ */ ++ typedef uint16_t am_CustomAvailabilityReason_t; ++ /** ++ * with the help of this enum, sinks and sources can report their availability ++ * state ++ */ ++ enum class am_Availability_e: int32_t { ++ /** ++ * default ++ */ ++ A_UNKNOWN = 0, ++ /** ++ * The source / sink is available ++ */ ++ A_AVAILABLE = 1, ++ /** ++ * the source / sink is not available ++ */ ++ A_UNAVAILABLE = 2, ++ A_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_Availability_eComparator; ++ enum class am_MuteState_e: int32_t { ++ /** ++ * default ++ */ ++ MS_UNKNOWN = 0, ++ /** ++ * the source / sink is muted ++ */ ++ MS_MUTED = 1, ++ /** ++ * the source / sink is unmuted ++ */ ++ MS_UNMUTED = 2, ++ MS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_MuteState_eComparator; ++ /** ++ * this describes the availability of a sink or a source together with the latest ++ * change ++ */ ++ /** ++ * this describes the availability of a sink or a source together with the latest ++ * change ++ */ ++ struct am_Availability_s: CommonAPI::SerializableStruct { ++ /** ++ * the current availability state ++ */ ++ am_Availability_e availability; ++ /** ++ * the reason for the last change. This can be used to trigger events that deal ++ * with state changes. ++ */ ++ am_CustomAvailabilityReason_t availabilityReason; ++ ++ am_Availability_s() = default; ++ am_Availability_s(const am_Availability_e& availability, const am_CustomAvailabilityReason_t& availabilityReason); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ /** ++ * this type holds all information of sinks relevant to the HMI ++ */ ++ /** ++ * this type holds all information of sinks relevant to the HMI ++ */ ++ struct am_SinkType_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the sink, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * The name of the sink. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * This attribute reflects the availability of the sink. There are several reasons ++ * why a sink could be not available for the moment: for example the shutdown of ++ * a sink because of overtemperature or over- & undervoltage. The ++ * availability consists of two pieces of information: ++ ++ Availablility: the ++ * status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN ++ ++ * AvailabilityReason: this informs about the last reason for a change in ++ * availability. The reasons itself are product specific. ++ */ ++ am_Availability_s availability; ++ /** ++ * This is the representation of the Volume for the commandInterface. It is used ++ * by the HMI to set the volume of a sink, the AudioManagerController has to ++ * transform this into real source and sink volumes. ++ */ ++ am_mainVolume_t volume; ++ am_MuteState_e muteState; ++ /** ++ * The sinkClassID references to a sinkClass. With the help of classification, ++ * rules can be setup to define the system behaviour. ++ */ ++ am_sinkClass_t sinkClassID; ++ ++ am_SinkType_s() = default; ++ am_SinkType_s(const am_sinkID_t& sinkID, const std::string& name, const am_Availability_s& availability, const am_mainVolume_t& volume, const am_MuteState_e& muteState, const am_sinkClass_t& sinkClassID); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ typedef std::vector<am_SinkType_s> am_SinkType_L; ++ typedef uint16_t am_sourceClass_t; ++ /** ++ * struct describing source classes ++ */ ++ /** ++ * struct describing source classes ++ */ ++ struct am_SourceClass_s: CommonAPI::SerializableStruct { ++ /** ++ * the source ID ++ */ ++ am_sourceClass_t sourceClassID; ++ /** ++ * the name of the sourceClass - must be unique in the system ++ */ ++ std::string name; ++ /** ++ * the list of the class properties. These are pairs of a project specific enum ++ * describing the type of the value and an integer holding the real value. ++ */ ++ am_ClassProperty_L listClassProperties; ++ ++ am_SourceClass_s() = default; ++ am_SourceClass_s(const am_sourceClass_t& sourceClassID, const std::string& name, const am_ClassProperty_L& listClassProperties); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ typedef std::vector<am_SourceClass_s> am_SourceClass_L; ++ /** ++ * this type holds all information of sources relevant to the HMI ++ */ ++ /** ++ * this type holds all information of sources relevant to the HMI ++ */ ++ struct am_SourceType_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the source, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * The name of the source. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * the availability of the source ++ */ ++ am_Availability_s availability; ++ /** ++ * the sourceClassID, indicates the class the source is in. This information can ++ * be used by the Controller to implement different behaviour for different ++ * classes. ++ */ ++ am_sourceClass_t sourceClassID; ++ ++ am_SourceType_s() = default; ++ am_SourceType_s(const am_sourceID_t& sourceID, const std::string& name, const am_Availability_s& availability, const am_sourceClass_t& sourceClassID); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ typedef std::vector<am_SourceType_s> am_SourceType_L; ++ /** ++ * describes the different system properties. Project specific ++ */ ++ /** ++ * describes the different system properties. Project specific ++ */ ++ typedef uint16_t am_CustomSystemPropertyType_t; ++ /** ++ * struct describing system properties ++ */ ++ /** ++ * struct describing system properties ++ */ ++ struct am_SystemProperty_s: CommonAPI::SerializableStruct { ++ /** ++ * the type that is set ++ */ ++ am_CustomSystemPropertyType_t type; ++ /** ++ * the value ++ */ ++ int16_t value; ++ ++ am_SystemProperty_s() = default; ++ am_SystemProperty_s(const am_CustomSystemPropertyType_t& type, const int16_t& value); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ typedef std::vector<am_SystemProperty_s> am_SystemProperty_L; ++ /** ++ * a connection ID ++ */ ++ /** ++ * a connection ID ++ */ ++ typedef uint16_t am_connectionID_t; ++ typedef std::vector<am_connectionID_t> am_ConnectionID_L; ++ /** ++ * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and ++ * maximum can be limited by actual project. ++ */ ++ /** ++ * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and ++ * maximum can be limited by actual project. ++ */ ++ typedef int16_t am_volume_t; ++ /** ++ * Project specific sound properties. ++ */ ++ /** ++ * Project specific sound properties. ++ */ ++ typedef uint16_t am_CustomSoundPropertyType_t; ++ /** ++ * This enum characterizes the data of the EarlyData_t ++ */ ++ enum class am_EarlyDataType_e: int32_t { ++ /** ++ * default ++ */ ++ ES_UNKNOWN = 0, ++ /** ++ * the source volume ++ */ ++ ED_SOURCE_VOLUME = 1, ++ /** ++ * the sink volume ++ */ ++ ED_SINK_VOLUME = 2, ++ /** ++ * a source property ++ */ ++ ED_SOURCE_PROPERTY = 3, ++ /** ++ * a sink property ++ */ ++ ED_SINK_PROPERTY = 4, ++ ED_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_EarlyDataType_eComparator; ++ /** ++ * struct describing the sound property ++ */ ++ /** ++ * struct describing the sound property ++ */ ++ struct am_SoundProperty_s: CommonAPI::SerializableStruct { ++ /** ++ * the type of the property - a project specific enum ++ */ ++ am_CustomSoundPropertyType_t type; ++ /** ++ * the actual value of the property ++ */ ++ int16_t value; ++ ++ am_SoundProperty_s() = default; ++ am_SoundProperty_s(const am_CustomSoundPropertyType_t& type, const int16_t& value); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ /** ++ * data type depends of am_EarlyDataType_e: ++ volume_t in case of ED_SOURCE_VOLUME, ++ * ED_SINK_VOLUME ++ soundProperty_t in case of ED_SOURCE_PROPERTY, ++ * ED_SINK_PROPERTY ++ */ ++ /** ++ * data type depends of am_EarlyDataType_e: ++ volume_t in case of ED_SOURCE_VOLUME, ++ * ED_SINK_VOLUME ++ soundProperty_t in case of ED_SOURCE_PROPERTY, ++ * ED_SINK_PROPERTY ++ */ ++ typedef CommonAPI::Variant<am_volume_t, am_SoundProperty_s> am_EarlyData_u; ++ /** ++ * data type depends of am_EarlyDataType_e: ++ sourceID in case of ED_SOURCE_VOLUME, ++ * ED_SOURCE_PROPERTY ++ sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY ++ */ ++ /** ++ * data type depends of am_EarlyDataType_e: ++ sourceID in case of ED_SOURCE_VOLUME, ++ * ED_SOURCE_PROPERTY ++ sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY ++ */ ++ typedef CommonAPI::Variant<am_sinkID_t, am_sourceID_t> am_DataType_u; ++ struct am_EarlyData_s: CommonAPI::SerializableStruct { ++ am_EarlyDataType_e type; ++ am_DataType_u sinksource; ++ am_EarlyData_u data; ++ ++ am_EarlyData_s() = default; ++ am_EarlyData_s(const am_EarlyDataType_e& type, const am_DataType_u& sinksource, const am_EarlyData_u& data); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeVariantType(); ++ typeOutputStream.writeVariantType(); ++ } ++ }; ++ typedef std::vector<am_EarlyData_s> am_EarlyData_L; ++ /** ++ * Here are all SoundProperties that can be set via the CommandInterface. Product ++ * specific ++ */ ++ /** ++ * Here are all SoundProperties that can be set via the CommandInterface. Product ++ * specific ++ */ ++ typedef uint16_t am_CustomMainSoundPropertyType_t; ++ /** ++ * struct describung mainsound property ++ */ ++ /** ++ * struct describung mainsound property ++ */ ++ struct am_MainSoundProperty_s: CommonAPI::SerializableStruct { ++ /** ++ * the type of the property ++ */ ++ am_CustomMainSoundPropertyType_t type; ++ /** ++ * the actual value ++ */ ++ int16_t value; ++ ++ am_MainSoundProperty_s() = default; ++ am_MainSoundProperty_s(const am_CustomMainSoundPropertyType_t& type, const int16_t& value); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ typedef std::vector<am_MainSoundProperty_s> am_MainSoundProperty_L; ++ /** ++ * gives the type of the Notification. ++ */ ++ /** ++ * gives the type of the Notification. ++ */ ++ typedef uint16_t am_CustomNotificationType_t; ++ enum class am_NotificationStatus_e: int32_t { ++ NS_UNKNOWN = 0, ++ /** ++ * No notification, the function is turned off ++ */ ++ NS_OFF = 1, ++ /** ++ * Periodic notifications are sent out. The period in ms is given by ++ * am_NotificationParameter ++ */ ++ NS_PERIODIC = 2, ++ /** ++ * The notification is sent out when the minimum given by am_NotificationParameter ++ * is reached. ++ */ ++ NS_MINIMUM = 3, ++ /** ++ * The notification is sent out when the maximum given by am_NotificationParameter ++ * is reached. ++ */ ++ NS_MAXIMUM = 4, ++ /** ++ * The notification is sent out when a change happened. The Resolution of the ++ * change is defined by am_NotificationParameter. ++ */ ++ NS_CHANGE_ = 5, ++ NS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_NotificationStatus_eComparator; ++ /** ++ * This struct holds information about the configuration for notifications ++ */ ++ /** ++ * This struct holds information about the configuration for notifications ++ */ ++ struct am_NotificationConfiguration_s: CommonAPI::SerializableStruct { ++ /** ++ * The notification type of the notification ++ */ ++ am_CustomNotificationType_t type; ++ /** ++ * The Notification status. This can be periodic, min/max value based or even off ++ * for example ++ */ ++ am_NotificationStatus_e status; ++ /** ++ * This gives additional information to the notification status. ++ Relation between ++ * notification status and the value: ++ NS_PERIODIC - the period in ms ++ NS_MINIMUM ++ * - the minimum value that triggers the notification ++ NS_MAXIMUM - the maximum ++ * value that triggers the notifcation ++ NS_CHANGE - the resolution of the change ++ * value ++ */ ++ int16_t parameter; ++ ++ am_NotificationConfiguration_s() = default; ++ am_NotificationConfiguration_s(const am_CustomNotificationType_t& type, const am_NotificationStatus_e& status, const int16_t& parameter); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ typedef std::vector<am_NotificationConfiguration_s> am_NotificationConfiguration_L; ++ /** ++ * a domain ID ++ */ ++ /** ++ * a domain ID ++ */ ++ typedef uint16_t am_domainID_t; ++ /** ++ * This project specific value classifies the format in which data is exchanged ++ * within a connection. ++ */ ++ /** ++ * This project specific value classifies the format in which data is exchanged ++ * within a connection. ++ */ ++ typedef uint16_t am_CustomConnectionFormat_t; ++ /** ++ * This represents one "hopp" in a route ++ */ ++ /** ++ * This represents one "hopp" in a route ++ */ ++ struct am_RoutingElement_s: CommonAPI::SerializableStruct { ++ /** ++ * the source ID ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * the sinkID ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * the domainID the routeElement is in ++ */ ++ am_domainID_t domainID; ++ /** ++ * the connectionformat that is used for the route ++ */ ++ am_CustomConnectionFormat_t connectionFormat; ++ ++ am_RoutingElement_s() = default; ++ am_RoutingElement_s(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_domainID_t& domainID, const am_CustomConnectionFormat_t& connectionFormat); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ typedef std::vector<am_RoutingElement_s> am_RoutingElement_L; ++ typedef std::vector<am_SoundProperty_s> am_SoundProperty_L; ++ /** ++ * time in ms! ++ */ ++ /** ++ * time in ms! ++ */ ++ typedef int16_t am_time_t; ++ /** ++ * For products, different ramp types can be defined here. ++ It is in the ++ * responsibility of the product to make sure that the routing plugins are aware ++ * of the ramp types used. ++ */ ++ /** ++ * For products, different ramp types can be defined here. ++ It is in the ++ * responsibility of the product to make sure that the routing plugins are aware ++ * of the ramp types used. ++ */ ++ typedef uint16_t am_CustomRampType_t; ++ /** ++ * This datatype determines if a sourceID or a sinkID is used in the union ++ * following ++ */ ++ enum class am_VolumeType_e: int32_t { ++ VT_UNKNOWN = 0, ++ /** ++ * the following type is a sink ++ */ ++ VT_SINK = 1, ++ /** ++ * the following type is a source ++ */ ++ VT_SOURCE = 2, ++ VT_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_VolumeType_eComparator; ++ /** ++ * This types describe a mixed description for source and sinks volumes. ++ */ ++ /** ++ * This types describe a mixed description for source and sinks volumes. ++ */ ++ struct am_Volumes_s: CommonAPI::SerializableStruct { ++ /** ++ * describes the type of the volume: source or sink. ++ */ ++ am_VolumeType_e volumeType; ++ /** ++ * either sourceID or sinkID ++ */ ++ am_DataType_u volumeID; ++ /** ++ * The volume ++ */ ++ am_volume_t volume; ++ /** ++ * the ramp that shall be driven ++ */ ++ am_CustomRampType_t ramp; ++ /** ++ * the time for the ramp ++ */ ++ am_time_t time; ++ ++ am_Volumes_s() = default; ++ am_Volumes_s(const am_VolumeType_e& volumeType, const am_DataType_u& volumeID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeVariantType(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ typedef std::vector<am_Volumes_s> am_Volumes_L; ++ typedef std::vector<am_CustomConnectionFormat_t> am_ConnectionFormat_L; ++ typedef bool am_bool_t; ++ typedef std::vector<am_bool_t> am_Convertion_L; ++ /** ++ * a gateway ID ++ */ ++ /** ++ * a gateway ID ++ */ ++ typedef uint16_t am_gatewayID_t; ++ /** ++ * a converter ID ++ */ ++ /** ++ * a converter ID ++ */ ++ typedef uint16_t am_converterID_t; ++ /** ++ * a crossfader ID ++ */ ++ /** ++ * a crossfader ID ++ */ ++ typedef uint16_t am_crossfaderID_t; ++ /** ++ * speed ++ */ ++ /** ++ * speed ++ */ ++ typedef uint16_t am_speed_t; ++ /** ++ * describes the active sink of a crossfader. ++ */ ++ enum class am_HotSink_e: int32_t { ++ /** ++ * default ++ */ ++ HS_UNKNOWN = 0, ++ /** ++ * sinkA is active ++ */ ++ HS_SINKA = 1, ++ /** ++ * sinkB is active ++ */ ++ HS_SINKB = 2, ++ /** ++ * the crossfader is in the transition state ++ */ ++ HS_INTERMEDIATE = 3, ++ HS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_HotSink_eComparator; ++ enum class am_DomainState_e: int32_t { ++ /** ++ * default ++ */ ++ DS_UNKNOWN = 0, ++ /** ++ * the domain is controlled by the daemon ++ */ ++ DS_CONTROLLED = 1, ++ /** ++ * the domain is independent starting up ++ */ ++ DS_INDEPENDENT_STARTUP = 1, ++ /** ++ * the domain is independent running down ++ */ ++ DS_INDEPENDENT_RUNDOWN = 2, ++ DS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_DomainState_eComparator; ++ /** ++ * the errors of the audiomanager. All possible errors are in here. This enum is ++ * used widely as return parameter. ++ */ ++ enum class am_Error_e: int32_t { ++ /** ++ * no error - positive reply ++ */ ++ E_OK = 0, ++ /** ++ * default ++ */ ++ E_UNKNOWN = 1, ++ /** ++ * value out of range ++ */ ++ E_OUT_OF_RANGE = 2, ++ /** ++ * not used ++ */ ++ E_NOT_USED = 3, ++ /** ++ * a database error occurred ++ */ ++ E_DATABASE_ERROR = 4, ++ /** ++ * the desired object already exists ++ */ ++ E_ALREADY_EXISTS = 5, ++ /** ++ * there is no change ++ */ ++ E_NO_CHANGE = 6, ++ /** ++ * the desired action is not possible ++ */ ++ E_NOT_POSSIBLE = 7, ++ /** ++ * the desired object is non existent ++ */ ++ E_NON_EXISTENT = 8, ++ /** ++ * the asynchronous action was aborted ++ */ ++ E_ABORTED = 9, ++ /** ++ * This error is returned in case a connect is issued with a connectionFormat that ++ * cannot be selected for the connection. This could be either due to the ++ * capabilities of a source or a sink or gateway compatibilities for example ++ */ ++ E_WRONG_FORMAT = 10, ++ E_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_Error_eComparator; ++ enum class am_InterruptState_e: int32_t { ++ /** ++ * default ++ */ ++ IS_UNKNOWN = 0, ++ /** ++ * the interrupt state is off - no interrupt ++ */ ++ IS_OFF = 1, ++ /** ++ * the interrupt state is interrupted - the interrupt is active ++ */ ++ IS_INTERRUPTED = 2, ++ IS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_InterruptState_eComparator; ++ /** ++ * This enumeration is used to define the type of the action that is correlated to ++ * a handle. ++ */ ++ enum class am_Handle_e: int32_t { ++ H_UNKNOWN = 0, ++ H_CONNECT = 1, ++ H_DISCONNECT = 2, ++ H_SETSOURCESTATE = 3, ++ H_SETSINKVOLUME = 4, ++ H_SETSOURCEVOLUME = 5, ++ H_SETSINKSOUNDPROPERTY = 6, ++ H_SETSOURCESOUNDPROPERTY = 7, ++ H_SETSINKSOUNDPROPERTIES = 8, ++ H_SETSOURCESOUNDPROPERTIES = 9, ++ H_CROSSFADE = 10, ++ H_SETVOLUMES = 11, ++ H_SETSINKNOTIFICATION = 12, ++ H_SETSOURCENOTIFICATION = 13, ++ H_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_Handle_eComparator; ++ /** ++ * The source state reflects the state of the source ++ */ ++ enum class am_SourceState_e: int32_t { ++ SS_UNKNNOWN = 0, ++ /** ++ * The source can be activly heared ++ */ ++ SS_ON = 1, ++ /** ++ * The source cannot be heared ++ */ ++ SS_OFF = 2, ++ /** ++ * The source is paused. Meaning it cannot be heared but should be prepared to ++ * play again soon. ++ */ ++ SS_PAUSED = 3, ++ SS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_SourceState_eComparator; ++ /** ++ * This enum describes the ready state of the routing part ++ */ ++ enum class am_RoutingReady_e: int32_t { ++ RR_UNKNOWN = 0, ++ RR_READY = 1, ++ RR_RUNDOWN = 2 ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_RoutingReady_eComparator; ++ /** ++ * a list of routing elements that lead from source to sink ++ */ ++ /** ++ * a list of routing elements that lead from source to sink ++ */ ++ struct am_Route_s: CommonAPI::SerializableStruct { ++ /** ++ * the sourceID where the route starts ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * the sinkID where the route ends ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * the actual route as list of routing elements ++ */ ++ am_RoutingElement_L route; ++ ++ am_Route_s() = default; ++ am_Route_s(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_RoutingElement_L& route); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * This struct describes the attribiutes of a crossfader. ++ */ ++ /** ++ * This struct describes the attribiutes of a crossfader. ++ */ ++ struct am_Crossfader_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the crossfader, it is unique in the system. There are 2 ways, ++ * ID can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManager daemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_crossfaderID_t crossfaderID; ++ /** ++ * The name of the crossfader. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * The sinkID of the SinkA. Sinks shall be registered before registering the ++ * crossfader. ++ */ ++ am_sinkID_t sinkID_A; ++ /** ++ * The sinkID of the SinkB. Sinks shall be registered before registering the ++ * crossfader. ++ */ ++ am_sinkID_t sinkID_B; ++ /** ++ * The sourceID of the crossfader source. The source shall be registered before ++ * the crossfader. ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * This enum can have 3 states: ++ ++ HS_SINKA sinkA is the current hot one, sinkB ++ * is not audible ++ HS_SINKB sinkB is the current hot one, sinkB is not ++ * audible ++ HS_INTERMEDIATE the fader is stuck in between a cross-fading ++ * action. This could be due to an abort or an error. Before using the ++ * crossfader, it must be set to either HS_SINKA or HS_SINKB. ++ */ ++ am_HotSink_e hotSink; ++ ++ am_Crossfader_s() = default; ++ am_Crossfader_s(const am_crossfaderID_t& crossfaderID, const std::string& name, const am_sinkID_t& sinkID_A, const am_sinkID_t& sinkID_B, const am_sourceID_t& sourceID, const am_HotSink_e& hotSink); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ } ++ }; ++ /** ++ * This struct describes the attributes of a gateway. ++ */ ++ /** ++ * This struct describes the attributes of a gateway. ++ */ ++ struct am_Gateway_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the gateway, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_gatewayID_t gatewayID; ++ /** ++ * The name of the gateway. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * The sinkID of the gateway sink-end. The sink is a full blown sink with ++ * connectionFormats, sinkClassIDs etc... It makes sense to register the sinks of ++ * a gateway as non-visible. Care needs to be taken that the connectionsFormats ++ * match with the ones in the conversionMatrix. If the sink is located in the ++ * controllingDomain, the ID needs to be retrieved by registering the sink before ++ * registering the gateway. In case the sink is in a different domain, the ID ++ * needs to be retrieved via peeking. ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * The sourceID of the gateway sink-end. The sink is a full blown source with ++ * connectionFormats, sinkClassIDs etc... It makes sense to register the sources ++ * of a gateway as non-visible. Care needs to be taken that the ++ * connectionsFormats match with the ones in the conversionMatrix. If the source ++ * is located in the controllingDomain, the ID needs to be retrieved by ++ * registering the source before registering the gateway. In case the source is ++ * in a different domain, the ID needs to be retrieved via peeking. ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * The ID of the sink. If the domain is the same like the controlling domain, the ++ * ID is known due to registration. If the domain is different, the ID needs to ++ * be retrieved via peeking. ++ */ ++ am_domainID_t domainSinkID; ++ /** ++ * The ID of the source. If the domain is the same like the controlling domain, ++ * the ID is known due to registration. If the domain is different, the ID needs ++ * to be retrieved via peeking. ++ */ ++ am_domainID_t domainSourceID; ++ /** ++ * This is the ID of the domain that registers the gateway. ++ */ ++ am_domainID_t controlDomainID; ++ /** ++ * This is the list of available formats on the source side of the gateway. It is ++ * not defined during the gateway registration but copied from the source ++ * registration. ++ */ ++ am_ConnectionFormat_L listSourceFormats; ++ /** ++ * This is the list of available formats on the sink side of the gateway. It is ++ * not defined during the gateway registration but copied from the sink ++ * registration. ++ */ ++ am_ConnectionFormat_L listSinkFormats; ++ /** ++ * This is matrix holding information about the conversion capability of the ++ * gateway, it's length is defined by the length(listSinkFormats) x ++ * length(listSourceFormats). ++ If a SinkFormat can be converted into a ++ * SourceFormat, the vector will hold a 1, if no conversion is possible, a ++ * 0. ++ The data is stored row orientated, where the rows are related to the ++ * sinksFormats and the columns to the sourceFormats. The first value will hold ++ * the conversion information from the first sourceFormat to the first sinkFormat ++ * for example and the seventh value the information about the 3rd sinkFormat to ++ * the 1st sourceFormat in case we would have 3 sourceFormats. ++ */ ++ am_Convertion_L convertionMatrix; ++ ++ am_Gateway_s() = default; ++ am_Gateway_s(const am_gatewayID_t& gatewayID, const std::string& name, const am_sinkID_t& sinkID, const am_sourceID_t& sourceID, const am_domainID_t& domainSinkID, const am_domainID_t& domainSourceID, const am_domainID_t& controlDomainID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * This struct describes the attributes of a gateway. ++ */ ++ /** ++ * This struct describes the attributes of a gateway. ++ */ ++ struct am_Converter_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the gateway, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_converterID_t converterID; ++ /** ++ * The name of the gateway. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * The sinkID of the gateway sink-end. The sink is a full blown sink with ++ * connectionFormats, sinkClassIDs etc... It makes sense to register the sinks of ++ * a gateway as non-visible. Care needs to be taken that the connectionsFormats ++ * match with the ones in the conversionMatrix. If the sink is located in the ++ * controllingDomain, the ID needs to be retrieved by registering the sink before ++ * registering the gateway. In case the sink is in a different domain, the ID ++ * needs to be retrieved via peeking. ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * The sourceID of the gateway sink-end. The sink is a full blown source with ++ * connectionFormats, sinkClassIDs etc... It makes sense to register the sources ++ * of a gateway as non-visible. Care needs to be taken that the ++ * connectionsFormats match with the ones in the conversionMatrix. If the source ++ * is located in the controllingDomain, the ID needs to be retrieved by ++ * registering the source before registering the gateway. In case the source is ++ * in a different domain, the ID needs to be retrieved via peeking. ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * The ID of the sink. If the domain is the same like the controlling domain, the ++ * ID is known due to registration. If the domain is different, the ID needs to ++ * be retrieved via peeking. ++ */ ++ am_domainID_t domainID; ++ /** ++ * This is the list of available formats on the source side of the gateway. It is ++ * not defined during the gateway registration but copied from the source ++ * registration. ++ */ ++ am_ConnectionFormat_L listSourceFormats; ++ /** ++ * This is the list of available formats on the sink side of the gateway. It is ++ * not defined during the gateway registration but copied from the sink ++ * registration. ++ */ ++ am_ConnectionFormat_L listSinkFormats; ++ /** ++ * This is matrix holding information about the conversion capability of the ++ * gateway, it's length is defined by the length(listSinkFormats) x ++ * length(listSourceFormats). ++ If a SinkFormat can be converted into a ++ * SourceFormat, the vector will hold a 1, if no conversion is possible, a ++ * 0. ++ The data is stored row orientated, where the rows are related to the ++ * sinksFormats and the columns to the sourceFormats. The first value will hold ++ * the conversion information from the first sourceFormat to the first sinkFormat ++ * for example and the seventh value the information about the 3rd sinkFormat to ++ * the 1st sourceFormat in case we would have 3 sourceFormats. ++ */ ++ am_Convertion_L convertionMatrix; ++ ++ am_Converter_s() = default; ++ am_Converter_s(const am_converterID_t& converterID, const std::string& name, const am_sinkID_t& sinkID, const am_sourceID_t& sourceID, const am_domainID_t& domainID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * a handle is used for asynchronous operations and is uniquely assigned for each ++ * of this operations ++ */ ++ /** ++ * a handle is used for asynchronous operations and is uniquely assigned for each ++ * of this operations ++ */ ++ struct am_Handle_s: CommonAPI::SerializableStruct { ++ /** ++ * the handletype ++ */ ++ am_Handle_e handleType; ++ /** ++ * the handle as value ++ */ ++ uint16_t handle; ++ ++ am_Handle_s() = default; ++ am_Handle_s(const am_Handle_e& handleType, const uint16_t& handle); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ /** ++ * struct that holds attribiutes of a mainconnection ++ */ ++ /** ++ * struct that holds attribiutes of a mainconnection ++ */ ++ struct am_MainConnection_s: CommonAPI::SerializableStruct { ++ /** ++ * the assigned ID ++ */ ++ am_mainConnectionID_t mainConnectionID; ++ /** ++ * the current connection state ++ */ ++ am_ConnectionState_e connectionState; ++ /** ++ * the sinkID ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * the sourceID ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * the delay of the connection ++ */ ++ am_timeSync_t delay; ++ /** ++ * the list of sub connection IDs the mainconnection consists of ++ */ ++ am_ConnectionID_L listConnectionID; ++ ++ am_MainConnection_s() = default; ++ am_MainConnection_s(const am_mainConnectionID_t& mainConnectionID, const am_ConnectionState_e& connectionState, const am_sinkID_t& sinkID, const am_sourceID_t& sourceID, const am_timeSync_t& delay, const am_ConnectionID_L& listConnectionID); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * This struct holds the payload of a notification. ++ */ ++ /** ++ * This struct holds the payload of a notification. ++ */ ++ struct am_NotificationPayload_s: CommonAPI::SerializableStruct { ++ /** ++ * This defines the notification type ++ */ ++ am_CustomNotificationType_t type; ++ /** ++ * This is finally the value of the notification. It's meaning depends on the ++ * notificationType ++ */ ++ int16_t value; ++ ++ am_NotificationPayload_s() = default; ++ am_NotificationPayload_s(const am_CustomNotificationType_t& type, const int16_t& value); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ /** ++ * This struct describes the attribiutes of a sink ++ */ ++ /** ++ * This struct describes the attribiutes of a sink ++ */ ++ struct am_Sink_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the sink, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * The name of the sink. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * The domainID is the domain the sink belongs to. A sink can only be in one ++ * domain. ++ */ ++ am_domainID_t domainID; ++ /** ++ * The sinkClassID references to a sinkClass. With the help of classification, ++ * rules can be setup to define the system behaviour. ++ */ ++ am_sinkClass_t sinkClassID; ++ /** ++ * This is the volume of the sink. It is set by the AudioManagerController. ++ */ ++ am_volume_t volume; ++ /** ++ * This Boolean flag indicates whether a sink is visible to the commandInterface ++ * or not. If the User must have the possibility to choose the source in the HMI, ++ * it must be visible. But there are also good reasons for invisible sinks, for ++ * example if the sink is part of a crossfader or gateway. HMI relevant changes ++ * in visible sinks will be automatically reported by the daemon to the ++ * commandInterface. ++ */ ++ bool visible; ++ /** ++ * This attribute reflects the availability of the sink. There are several reasons ++ * why a sink could be not available for the moment: for example the shutdown of ++ * a sink because of overtemperature or over- & undervoltage. The ++ * availability consists of two pieces of information: ++ ++ Availablility: the ++ * status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN ++ ++ * AvailabilityReason: this informs about the last reason for a change in ++ * availability. The reasons itself are product specific. ++ */ ++ am_Availability_s available; ++ /** ++ * This attribute reflects the muteState of the sink. The information is not the ++ * "real" state of the sink, but the HMI representation for he commandInterface ++ * controlled by the AudioManagerController. ++ */ ++ am_MuteState_e muteState; ++ /** ++ * This is the representation of the Volume for the commandInterface. It is used ++ * by the HMI to set the volume of a sink, the AudioManagerController has to ++ * transform this into real source and sink volumes. ++ */ ++ am_mainVolume_t mainVolume; ++ /** ++ * This is the list of soundProperties, that the sink is capable of. The ++ * soundProperties itself are project specific. For sinks, a possible ++ * soundProperty could be for example settings. ++ */ ++ am_SoundProperty_L listSoundProperties; ++ /** ++ * This list holds information about the formats that the Source is capable of ++ * supporting when delivering audio. ++ */ ++ am_ConnectionFormat_L listConnectionFormats; ++ /** ++ * This is the list of the available mainSoundProperties. The principle is the ++ * same than with soundProperties, but they are only visible to the ++ * CommandInterface. ++ */ ++ am_MainSoundProperty_L listMainSoundProperties; ++ /** ++ * This is the list of the MainNotificationConfigurations. These notifications ++ * work on the level of command interface. ++ */ ++ am_NotificationConfiguration_L listMainNotificationConfigurations; ++ /** ++ * This is the list of the NotificationConfigurations. These notifications work on ++ * the level of RoutingPlugins. ++ */ ++ am_NotificationConfiguration_L listNotificationConfigurations; ++ ++ am_Sink_s() = default; ++ am_Sink_s(const am_sinkID_t& sinkID, const std::string& name, const am_domainID_t& domainID, const am_sinkClass_t& sinkClassID, const am_volume_t& volume, const bool& visible, const am_Availability_s& available, const am_MuteState_e& muteState, const am_mainVolume_t& mainVolume, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, const am_NotificationConfiguration_L& listMainNotificationConfigurations, const am_NotificationConfiguration_L& listNotificationConfigurations); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * This struct describes the attribiutes of a source ++ */ ++ /** ++ * This struct describes the attribiutes of a source ++ */ ++ struct am_Source_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the source, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * The domainID is the domain the source belongs to. A source can only be in one ++ * domain. ++ */ ++ am_domainID_t domainID; ++ /** ++ * The name of the source. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * the sourceClassID, indicates the class the source is in. This information can ++ * be used by the Controller to implement different behaviour for different ++ * classes. ++ */ ++ am_sourceClass_t sourceClassID; ++ /** ++ * The source state is an indication towards the source if it is actively heard or ++ * not. The source can use this information to implement features like automatic ++ * spin down of CD's in case the CD is not the active source or AF following of a ++ * tuner that is not actively heard. The source state is set by the ++ * AudioManagerController.There are 3 possible states: ++ ++ SS_ON: the source is ++ * active ++ SS_OFF: the source is off ++ SS_PAUSED: the source is paused and ++ * not active. ++ */ ++ am_SourceState_e sourceState; ++ /** ++ * This is the volume of the source. It is set by the AudioManagerController. It ++ * is used to adopt different audiolevels in a system and mixing of sources (e.g. ++ * navigation hints & music). ++ */ ++ am_volume_t volume; ++ /** ++ * This Boolean flag indicates whether a source is visible to the commandInterface ++ * or not. If the User must have the possibility to choose the source in the HMI, ++ * it must be visible. But there are also good reasons for invisible sources, for ++ * example if the source is part of a crossfader or gateway. HMI relevant changes ++ * in visible sources will be automatically reported by the daemon to the ++ * commandInterface. ++ */ ++ bool visible; ++ /** ++ * This attribute reflects the availability of the source. There are several ++ * reasons why a source could be not available for the moment. For example a CD ++ * player which has no CD entered in the slot can be unavailable, or a USB player ++ * with no or unreadable stick attached. Other scenarios involve the shutdown of ++ * a source because of overtemperature or over- & undervoltage. The ++ * availability consists of two informations: ++ ++ Availablility: the status ++ * itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN ++ ++ * AvailabilityReason: this informs about the last reason for a change in ++ * availability. The reasons itself are product specific. ++ */ ++ am_Availability_s available; ++ /** ++ * Some special sources can have special behaviors, the are so called "Low Level ++ * Interrupts". Here the current status is documented. The information can be ++ * used by the AudioManagerController to react to the changes by for example ++ * lowering the volume of the mainSources. The two states are ++ ++ IS_OFF: the ++ * interrupt is not active at the moment ++ IS_INTERRUPTED: the interrupt is ++ * playing at the moment. ++ */ ++ am_InterruptState_e interruptState; ++ /** ++ * This is the list of soundProperties, that the source is capable of. The ++ * soundProperties itself are project specific. For sources, a possible ++ * soundProperty could be navigation volume offset, for example. ++ */ ++ am_SoundProperty_L listSoundProperties; ++ /** ++ * This list holds information about the formats that the Source is capable of ++ * supporting when delivering audio. ++ */ ++ am_ConnectionFormat_L listConnectionFormats; ++ /** ++ * This is the list of the available mainSoundProperties. The principle is the ++ * same than with soundProperties, but they are only visible to the ++ * CommandInterface. ++ */ ++ am_MainSoundProperty_L listMainSoundProperties; ++ /** ++ * The list of MainNotificationConfigurations. These notifications work on the ++ * level of CommandInterface. ++ */ ++ am_NotificationConfiguration_L listMainNotificationConfigurations; ++ /** ++ * The list of MainNotificationConfigurations. These notifications work on the ++ * level of RoutingInterface. ++ */ ++ am_NotificationConfiguration_L listNotificationConfigurations; ++ ++ am_Source_s() = default; ++ am_Source_s(const am_sourceID_t& sourceID, const am_domainID_t& domainID, const std::string& name, const am_sourceClass_t& sourceClassID, const am_SourceState_e& sourceState, const am_volume_t& volume, const bool& visible, const am_Availability_s& available, const am_InterruptState_e& interruptState, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, const am_NotificationConfiguration_L& listMainNotificationConfigurations, const am_NotificationConfiguration_L& listNotificationConfigurations); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * This struct describes the attribiutes of a domain ++ */ ++ /** ++ * This struct describes the attribiutes of a domain ++ */ ++ struct am_Domain_s: CommonAPI::SerializableStruct { ++ /** ++ * the domain ID ++ */ ++ am_domainID_t domainID; ++ /** ++ * the name of the domain ++ */ ++ std::string name; ++ /** ++ * the busname. This is equal to a plugin name and is used to dispatch messages to ++ * the elements of a plugin ++ */ ++ std::string busname; ++ /** ++ * the name of the node ++ */ ++ std::string nodename; ++ /** ++ * indicated if the domain is independent at startup or not ++ */ ++ bool early; ++ /** ++ * indicates if the domain registration is complete or not ++ */ ++ bool complete; ++ /** ++ * the current domain state ++ */ ++ am_DomainState_e state; ++ ++ am_Domain_s() = default; ++ am_Domain_s(const am_domainID_t& domainID, const std::string& name, const std::string& busname, const std::string& nodename, const bool& early, const bool& complete, const am_DomainState_e& state); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.writeInt32Type(); ++ } ++ }; ++ /** ++ * a connection ++ */ ++ /** ++ * a connection ++ */ ++ struct am_Connection_s: CommonAPI::SerializableStruct { ++ /** ++ * the assigned ID ++ */ ++ am_connectionID_t connectionID; ++ /** ++ * the source the audio flows from ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * the sink the audio flows to ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * the delay of the conneciton ++ */ ++ am_timeSync_t delay; ++ /** ++ * the used connectionformat ++ */ ++ am_CustomConnectionFormat_t connectionFormat; ++ ++ am_Connection_s() = default; ++ am_Connection_s(const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_timeSync_t& delay, const am_CustomConnectionFormat_t& connectionFormat); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Availability_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Availability_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_Availability_eComparator { ++ inline bool operator()(const am_Availability_e& lhs, const am_Availability_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_HotSink_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_HotSink_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_HotSink_eComparator { ++ inline bool operator()(const am_HotSink_e& lhs, const am_HotSink_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_ConnectionState_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_ConnectionState_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_ConnectionState_eComparator { ++ inline bool operator()(const am_ConnectionState_e& lhs, const am_ConnectionState_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_DomainState_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_DomainState_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_DomainState_eComparator { ++ inline bool operator()(const am_DomainState_e& lhs, const am_DomainState_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_EarlyDataType_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_EarlyDataType_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_EarlyDataType_eComparator { ++ inline bool operator()(const am_EarlyDataType_e& lhs, const am_EarlyDataType_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Error_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Error_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_Error_eComparator { ++ inline bool operator()(const am_Error_e& lhs, const am_Error_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_MuteState_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_MuteState_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_MuteState_eComparator { ++ inline bool operator()(const am_MuteState_e& lhs, const am_MuteState_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_InterruptState_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_InterruptState_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_InterruptState_eComparator { ++ inline bool operator()(const am_InterruptState_e& lhs, const am_InterruptState_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_VolumeType_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_VolumeType_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_VolumeType_eComparator { ++ inline bool operator()(const am_VolumeType_e& lhs, const am_VolumeType_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_NotificationStatus_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_NotificationStatus_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_NotificationStatus_eComparator { ++ inline bool operator()(const am_NotificationStatus_e& lhs, const am_NotificationStatus_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Handle_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Handle_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_Handle_eComparator { ++ inline bool operator()(const am_Handle_e& lhs, const am_Handle_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_SourceState_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_SourceState_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_SourceState_eComparator { ++ inline bool operator()(const am_SourceState_e& lhs, const am_SourceState_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_RoutingReady_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_RoutingReady_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_RoutingReady_eComparator { ++ inline bool operator()(const am_RoutingReady_e& lhs, const am_RoutingReady_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++bool operator==(const am_Route_s& lhs, const am_Route_s& rhs); ++inline bool operator!=(const am_Route_s& lhs, const am_Route_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Availability_s& lhs, const am_Availability_s& rhs); ++inline bool operator!=(const am_Availability_s& lhs, const am_Availability_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs); ++inline bool operator!=(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs); ++inline bool operator!=(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Gateway_s& lhs, const am_Gateway_s& rhs); ++inline bool operator!=(const am_Gateway_s& lhs, const am_Gateway_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Converter_s& lhs, const am_Converter_s& rhs); ++inline bool operator!=(const am_Converter_s& lhs, const am_Converter_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs); ++inline bool operator!=(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs); ++inline bool operator!=(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs); ++inline bool operator!=(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs); ++inline bool operator!=(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs); ++inline bool operator!=(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SourceType_s& lhs, const am_SourceType_s& rhs); ++inline bool operator!=(const am_SourceType_s& lhs, const am_SourceType_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SinkType_s& lhs, const am_SinkType_s& rhs); ++inline bool operator!=(const am_SinkType_s& lhs, const am_SinkType_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Handle_s& lhs, const am_Handle_s& rhs); ++inline bool operator!=(const am_Handle_s& lhs, const am_Handle_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs); ++inline bool operator!=(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs); ++inline bool operator!=(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs); ++inline bool operator!=(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs); ++inline bool operator!=(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs); ++inline bool operator!=(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Sink_s& lhs, const am_Sink_s& rhs); ++inline bool operator!=(const am_Sink_s& lhs, const am_Sink_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Source_s& lhs, const am_Source_s& rhs); ++inline bool operator!=(const am_Source_s& lhs, const am_Source_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Domain_s& lhs, const am_Domain_s& rhs); ++inline bool operator!=(const am_Domain_s& lhs, const am_Domain_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs); ++inline bool operator!=(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Connection_s& lhs, const am_Connection_s& rhs); ++inline bool operator!=(const am_Connection_s& lhs, const am_Connection_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Volumes_s& lhs, const am_Volumes_s& rhs); ++inline bool operator!=(const am_Volumes_s& lhs, const am_Volumes_s& rhs) { ++ return !(lhs == rhs); ++} ++ ++ ++static inline const char* getTypeCollectionName() { ++ static const char* typeCollectionName = "org.genivi.am"; ++ return typeCollectionName; ++} ++ ++inline CommonAPI::Version getTypeCollectionVersion() { ++ return CommonAPI::Version(2, 0); ++} ++ ++} // namespace am ++ ++} // namespace genivi ++} // namespace org ++ ++namespace CommonAPI { ++ ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_Availability_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_Availability_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Availability_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_Availability_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Availability_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_HotSink_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_HotSink_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_HotSink_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_HotSink_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_HotSink_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_ConnectionState_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_ConnectionState_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_ConnectionState_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_ConnectionState_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_ConnectionState_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_DomainState_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_DomainState_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_DomainState_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_DomainState_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_DomainState_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_EarlyDataType_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_EarlyDataType_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_EarlyDataType_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_EarlyDataType_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_EarlyDataType_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_Error_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_Error_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Error_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_Error_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Error_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_MuteState_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_MuteState_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_MuteState_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_MuteState_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_MuteState_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_InterruptState_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_InterruptState_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_InterruptState_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_InterruptState_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_InterruptState_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_VolumeType_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_VolumeType_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_VolumeType_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_VolumeType_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_VolumeType_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_NotificationStatus_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_NotificationStatus_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_NotificationStatus_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_NotificationStatus_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_NotificationStatus_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_Handle_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_Handle_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Handle_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_Handle_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Handle_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_SourceState_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_SourceState_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_SourceState_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_SourceState_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_SourceState_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_RoutingReady_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_RoutingReady_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_RoutingReady_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_RoutingReady_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_RoutingReady_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ ++} ++ ++ ++namespace std { ++ //Hash for am_Availability_e ++ template<> ++ struct hash<org::genivi::am::am_Availability_e> { ++ inline size_t operator()(const org::genivi::am::am_Availability_e& am_Availability_e) const { ++ return static_cast<int32_t>(am_Availability_e); ++ } ++ }; ++ //Hash for am_HotSink_e ++ template<> ++ struct hash<org::genivi::am::am_HotSink_e> { ++ inline size_t operator()(const org::genivi::am::am_HotSink_e& am_HotSink_e) const { ++ return static_cast<int32_t>(am_HotSink_e); ++ } ++ }; ++ //Hash for am_ConnectionState_e ++ template<> ++ struct hash<org::genivi::am::am_ConnectionState_e> { ++ inline size_t operator()(const org::genivi::am::am_ConnectionState_e& am_ConnectionState_e) const { ++ return static_cast<int32_t>(am_ConnectionState_e); ++ } ++ }; ++ //Hash for am_DomainState_e ++ template<> ++ struct hash<org::genivi::am::am_DomainState_e> { ++ inline size_t operator()(const org::genivi::am::am_DomainState_e& am_DomainState_e) const { ++ return static_cast<int32_t>(am_DomainState_e); ++ } ++ }; ++ //Hash for am_EarlyDataType_e ++ template<> ++ struct hash<org::genivi::am::am_EarlyDataType_e> { ++ inline size_t operator()(const org::genivi::am::am_EarlyDataType_e& am_EarlyDataType_e) const { ++ return static_cast<int32_t>(am_EarlyDataType_e); ++ } ++ }; ++ //Hash for am_Error_e ++ template<> ++ struct hash<org::genivi::am::am_Error_e> { ++ inline size_t operator()(const org::genivi::am::am_Error_e& am_Error_e) const { ++ return static_cast<int32_t>(am_Error_e); ++ } ++ }; ++ //Hash for am_MuteState_e ++ template<> ++ struct hash<org::genivi::am::am_MuteState_e> { ++ inline size_t operator()(const org::genivi::am::am_MuteState_e& am_MuteState_e) const { ++ return static_cast<int32_t>(am_MuteState_e); ++ } ++ }; ++ //Hash for am_InterruptState_e ++ template<> ++ struct hash<org::genivi::am::am_InterruptState_e> { ++ inline size_t operator()(const org::genivi::am::am_InterruptState_e& am_InterruptState_e) const { ++ return static_cast<int32_t>(am_InterruptState_e); ++ } ++ }; ++ //Hash for am_VolumeType_e ++ template<> ++ struct hash<org::genivi::am::am_VolumeType_e> { ++ inline size_t operator()(const org::genivi::am::am_VolumeType_e& am_VolumeType_e) const { ++ return static_cast<int32_t>(am_VolumeType_e); ++ } ++ }; ++ //Hash for am_NotificationStatus_e ++ template<> ++ struct hash<org::genivi::am::am_NotificationStatus_e> { ++ inline size_t operator()(const org::genivi::am::am_NotificationStatus_e& am_NotificationStatus_e) const { ++ return static_cast<int32_t>(am_NotificationStatus_e); ++ } ++ }; ++ //Hash for am_Handle_e ++ template<> ++ struct hash<org::genivi::am::am_Handle_e> { ++ inline size_t operator()(const org::genivi::am::am_Handle_e& am_Handle_e) const { ++ return static_cast<int32_t>(am_Handle_e); ++ } ++ }; ++ //Hash for am_SourceState_e ++ template<> ++ struct hash<org::genivi::am::am_SourceState_e> { ++ inline size_t operator()(const org::genivi::am::am_SourceState_e& am_SourceState_e) const { ++ return static_cast<int32_t>(am_SourceState_e); ++ } ++ }; ++ //Hash for am_RoutingReady_e ++ template<> ++ struct hash<org::genivi::am::am_RoutingReady_e> { ++ inline size_t operator()(const org::genivi::am::am_RoutingReady_e& am_RoutingReady_e) const { ++ return static_cast<int32_t>(am_RoutingReady_e); ++ } ++ }; ++} ++ ++#endif // ORG_GENIVI_am_H_ +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControl.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControl.h +new file mode 100644 +index 0000000..106e5ad +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControl.h +@@ -0,0 +1,67 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * The interface towards the Controlling Instance (e.g HMI). It handles the ++ * communication towards the HMI and other system components who need to interact ++ * with the audiomanagement. ++There are two rules that have to be kept in mind ++ * when implementing against this interface: ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Command_Control_H_ ++#define ORG_GENIVI_AM_Command_Control_H_ ++ ++ ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/types.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++class CommandControl { ++ public: ++ virtual ~CommandControl() { } ++ ++ static inline const char* getInterfaceId(); ++ static inline CommonAPI::Version getInterfaceVersion(); ++}; ++ ++const char* CommandControl::getInterfaceId() { ++ static const char* interfaceId = "org.genivi.am.CommandControl"; ++ return interfaceId; ++} ++ ++CommonAPI::Version CommandControl::getInterfaceVersion() { ++ return CommonAPI::Version(2, 0); ++} ++ ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++namespace CommonAPI { ++ ++} ++ ++ ++namespace std { ++ //hashes for types ++ ++ //hashes for error types ++} ++ ++#endif // ORG_GENIVI_AM_Command_Control_H_ +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.cpp b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.cpp +new file mode 100644 +index 0000000..bf46af3 +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.cpp +@@ -0,0 +1,651 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * The interface towards the Controlling Instance (e.g HMI). It handles the ++ * communication towards the HMI and other system components who need to interact ++ * with the audiomanagement. ++There are two rules that have to be kept in mind ++ * when implementing against this interface: ++ * @author Christian Mueller ++ */ ++#include "CommandControlDBusProxy.h" ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++std::shared_ptr<CommonAPI::DBus::DBusProxy> createCommandControlDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyConnection) { ++ return std::make_shared<CommandControlDBusProxy>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection); ++} ++ ++INITIALIZER(registerCommandControlDBusProxy) { ++ CommonAPI::DBus::DBusFactory::registerProxyFactoryMethod(CommandControl::getInterfaceId(), ++ &createCommandControlDBusProxy); ++} ++ ++CommandControlDBusProxy::CommandControlDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyconnection): ++ CommonAPI::DBus::DBusProxy(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyconnection) ++, newMainConnection_(*this, "newMainConnection", "(qqqni)"), ++ removedMainConnection_(*this, "removedMainConnection", "q"), ++ newSink_(*this, "newSink", "(qs(iq)niq)"), ++ removedSink_(*this, "removedSink", "q"), ++ newSource_(*this, "newSource", "(qs(iq)q)"), ++ removedSource_(*this, "removedSource", "q"), ++ numberOfSinkClassesChanged_(*this, "numberOfSinkClassesChanged", ""), ++ numberOfSourceClassesChanged_(*this, "numberOfSourceClassesChanged", ""), ++ mainConnectionStateChanged_(*this, "mainConnectionStateChanged", "qi"), ++ mainSinkSoundPropertyChanged_(*this, "mainSinkSoundPropertyChanged", "q(qn)"), ++ mainSourceSoundPropertyChanged_(*this, "mainSourceSoundPropertyChanged", "q(qn)"), ++ sinkAvailabilityChanged_(*this, "sinkAvailabilityChanged", "q(iq)"), ++ sourceAvailabilityChanged_(*this, "sourceAvailabilityChanged", "q(iq)"), ++ volumeChanged_(*this, "volumeChanged", "qn"), ++ sinkMuteStateChanged_(*this, "sinkMuteStateChanged", "qi"), ++ systemPropertyChanged_(*this, "systemPropertyChanged", "(qn)"), ++ timingInformationChanged_(*this, "timingInformationChanged", "qn"), ++ sinkUpdated_(*this, "sinkUpdated", "qqa(qn)"), ++ sourceUpdated_(*this, "sourceUpdated", "qqa(qn)"), ++ sinkNotification_(*this, "sinkNotification", "q(qn)"), ++ sourceNotification_(*this, "sourceNotification", "q(qn)"), ++ mainSinkNotificationConfigurationChanged_(*this, "mainSinkNotificationConfigurationChanged", "q(qin)"), ++ mainSourceNotificationConfigurationChanged_(*this, "mainSourceNotificationConfigurationChanged", "q(qin)") ++ { ++ } ++ ++ ++CommandControlDBusProxy::NewMainConnectionEvent& CommandControlDBusProxy::getNewMainConnectionEvent() { ++ return newMainConnection_; ++} ++CommandControlDBusProxy::RemovedMainConnectionEvent& CommandControlDBusProxy::getRemovedMainConnectionEvent() { ++ return removedMainConnection_; ++} ++CommandControlDBusProxy::NewSinkEvent& CommandControlDBusProxy::getNewSinkEvent() { ++ return newSink_; ++} ++CommandControlDBusProxy::RemovedSinkEvent& CommandControlDBusProxy::getRemovedSinkEvent() { ++ return removedSink_; ++} ++CommandControlDBusProxy::NewSourceEvent& CommandControlDBusProxy::getNewSourceEvent() { ++ return newSource_; ++} ++CommandControlDBusProxy::RemovedSourceEvent& CommandControlDBusProxy::getRemovedSourceEvent() { ++ return removedSource_; ++} ++CommandControlDBusProxy::NumberOfSinkClassesChangedEvent& CommandControlDBusProxy::getNumberOfSinkClassesChangedEvent() { ++ return numberOfSinkClassesChanged_; ++} ++CommandControlDBusProxy::NumberOfSourceClassesChangedEvent& CommandControlDBusProxy::getNumberOfSourceClassesChangedEvent() { ++ return numberOfSourceClassesChanged_; ++} ++CommandControlDBusProxy::MainConnectionStateChangedEvent& CommandControlDBusProxy::getMainConnectionStateChangedEvent() { ++ return mainConnectionStateChanged_; ++} ++CommandControlDBusProxy::MainSinkSoundPropertyChangedEvent& CommandControlDBusProxy::getMainSinkSoundPropertyChangedEvent() { ++ return mainSinkSoundPropertyChanged_; ++} ++CommandControlDBusProxy::MainSourceSoundPropertyChangedEvent& CommandControlDBusProxy::getMainSourceSoundPropertyChangedEvent() { ++ return mainSourceSoundPropertyChanged_; ++} ++CommandControlDBusProxy::SinkAvailabilityChangedEvent& CommandControlDBusProxy::getSinkAvailabilityChangedEvent() { ++ return sinkAvailabilityChanged_; ++} ++CommandControlDBusProxy::SourceAvailabilityChangedEvent& CommandControlDBusProxy::getSourceAvailabilityChangedEvent() { ++ return sourceAvailabilityChanged_; ++} ++CommandControlDBusProxy::VolumeChangedEvent& CommandControlDBusProxy::getVolumeChangedEvent() { ++ return volumeChanged_; ++} ++CommandControlDBusProxy::SinkMuteStateChangedEvent& CommandControlDBusProxy::getSinkMuteStateChangedEvent() { ++ return sinkMuteStateChanged_; ++} ++CommandControlDBusProxy::SystemPropertyChangedEvent& CommandControlDBusProxy::getSystemPropertyChangedEvent() { ++ return systemPropertyChanged_; ++} ++CommandControlDBusProxy::TimingInformationChangedEvent& CommandControlDBusProxy::getTimingInformationChangedEvent() { ++ return timingInformationChanged_; ++} ++CommandControlDBusProxy::SinkUpdatedEvent& CommandControlDBusProxy::getSinkUpdatedEvent() { ++ return sinkUpdated_; ++} ++CommandControlDBusProxy::SourceUpdatedEvent& CommandControlDBusProxy::getSourceUpdatedEvent() { ++ return sourceUpdated_; ++} ++CommandControlDBusProxy::SinkNotificationEvent& CommandControlDBusProxy::getSinkNotificationEvent() { ++ return sinkNotification_; ++} ++CommandControlDBusProxy::SourceNotificationEvent& CommandControlDBusProxy::getSourceNotificationEvent() { ++ return sourceNotification_; ++} ++CommandControlDBusProxy::MainSinkNotificationConfigurationChangedEvent& CommandControlDBusProxy::getMainSinkNotificationConfigurationChangedEvent() { ++ return mainSinkNotificationConfigurationChanged_; ++} ++CommandControlDBusProxy::MainSourceNotificationConfigurationChangedEvent& CommandControlDBusProxy::getMainSourceNotificationConfigurationChangedEvent() { ++ return mainSourceNotificationConfigurationChanged_; ++} ++ ++/** ++ * connects a source to sink ++(at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ */ ++void CommandControlDBusProxy::connect(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_mainConnectionID_t& mainConnectionID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_sinkID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_mainConnectionID_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "connect", ++ "qq", ++ sourceID, sinkID, ++ callStatus ++ , mainConnectionID, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::connectAsync(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, ConnectAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_sinkID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_mainConnectionID_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "connect", ++ "qq", ++ sourceID, sinkID, ++ std::move(callback)); ++} ++/** ++ * disconnects a mainConnection ++(at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ */ ++void CommandControlDBusProxy::disconnect(const am_mainConnectionID_t& mainConnectionID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_mainConnectionID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "disconnect", ++ "q", ++ mainConnectionID, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::disconnectAsync(const am_mainConnectionID_t& mainConnectionID, DisconnectAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_mainConnectionID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "disconnect", ++ "q", ++ mainConnectionID, ++ std::move(callback)); ++} ++/** ++ * sets the volume for a sink ++(at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ */ ++void CommandControlDBusProxy::setVolume(const am_sinkID_t& sinkID, const am_mainVolume_t& volume, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_mainVolume_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "setVolume", ++ "qn", ++ sinkID, volume, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::setVolumeAsync(const am_sinkID_t& sinkID, const am_mainVolume_t& volume, SetVolumeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_mainVolume_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "setVolume", ++ "qn", ++ sinkID, volume, ++ std::move(callback)); ++} ++/** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ */ ++void CommandControlDBusProxy::volumeStep(const am_sinkID_t& sinkID, const int16_t& volStep, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, int16_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "volumeStep", ++ "qn", ++ sinkID, volStep, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volStep, VolumeStepAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, int16_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "volumeStep", ++ "qn", ++ sinkID, volStep, ++ std::move(callback)); ++} ++/** ++ * sets the mute state of a sink ++(at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ */ ++void CommandControlDBusProxy::setSinkMuteState(const am_sinkID_t& sinkID, const am_MuteState_e& muteState, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_MuteState_e>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "setSinkMuteState", ++ "qi", ++ sinkID, muteState, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::setSinkMuteStateAsync(const am_sinkID_t& sinkID, const am_MuteState_e& muteState, SetSinkMuteStateAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_MuteState_e>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "setSinkMuteState", ++ "qi", ++ sinkID, muteState, ++ std::move(callback)); ++} ++/** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++(at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++void CommandControlDBusProxy::setMainSinkSoundProperty(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_MainSoundProperty_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "setMainSinkSoundProperty", ++ "q(qn)", ++ sinkID, soundProperty, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::setMainSinkSoundPropertyAsync(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty, SetMainSinkSoundPropertyAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_MainSoundProperty_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "setMainSinkSoundProperty", ++ "q(qn)", ++ sinkID, soundProperty, ++ std::move(callback)); ++} ++/** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++(at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++void CommandControlDBusProxy::setMainSourceSoundProperty(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_MainSoundProperty_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "setMainSourceSoundProperty", ++ "q(qn)", ++ sourceID, soundProperty, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::setMainSourceSoundPropertyAsync(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty, SetMainSourceSoundPropertyAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_MainSoundProperty_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "setMainSourceSoundProperty", ++ "q(qn)", ++ sourceID, soundProperty, ++ std::move(callback)); ++} ++/** ++ * is used to set a specific system property. ++(at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ */ ++void CommandControlDBusProxy::setSystemProperty(const am_SystemProperty_s& property, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_SystemProperty_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "setSystemProperty", ++ "(qn)", ++ property, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::setSystemPropertyAsync(const am_SystemProperty_s& property, SetSystemPropertyAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_SystemProperty_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "setSystemProperty", ++ "(qn)", ++ property, ++ std::move(callback)); ++} ++/** ++ * returns the actual list of MainConnections ++(at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++void CommandControlDBusProxy::getListMainConnections(CommonAPI::CallStatus& callStatus, am_MainConnection_L& listConnections, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_MainConnection_L, am_Error_e> >::callMethodWithReply( ++ *this, ++ "getListMainConnections", ++ "", ++ callStatus ++ , listConnections, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListMainConnectionsAsync(GetListMainConnectionsAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_MainConnection_L, am_Error_e> >::callMethodAsync( ++ *this, ++ "getListMainConnections", ++ "", ++ std::move(callback)); ++} ++/** ++ * returns the actual list of Sinks ++(at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++void CommandControlDBusProxy::getListMainSinks(CommonAPI::CallStatus& callStatus, am_SinkType_L& listMainSinks, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_SinkType_L, am_Error_e> >::callMethodWithReply( ++ *this, ++ "getListMainSinks", ++ "", ++ callStatus ++ , listMainSinks, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListMainSinksAsync(GetListMainSinksAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_SinkType_L, am_Error_e> >::callMethodAsync( ++ *this, ++ "getListMainSinks", ++ "", ++ std::move(callback)); ++} ++/** ++ * returns the actual list of Sources ++(at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++void CommandControlDBusProxy::getListMainSources(CommonAPI::CallStatus& callStatus, am_SourceType_L& listMainSources, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_SourceType_L, am_Error_e> >::callMethodWithReply( ++ *this, ++ "getListMainSources", ++ "", ++ callStatus ++ , listMainSources, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListMainSourcesAsync(GetListMainSourcesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_SourceType_L, am_Error_e> >::callMethodAsync( ++ *this, ++ "getListMainSources", ++ "", ++ std::move(callback)); ++} ++/** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++(at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ */ ++void CommandControlDBusProxy::getListMainSinkSoundProperties(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_MainSoundProperty_L, am_Error_e> >::callMethodWithReply( ++ *this, ++ "getListMainSinkSoundProperties", ++ "q", ++ sinkID, ++ callStatus ++ , listSoundProperties, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListMainSinkSoundPropertiesAsync(const am_sinkID_t& sinkID, GetListMainSinkSoundPropertiesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_MainSoundProperty_L, am_Error_e> >::callMethodAsync( ++ *this, ++ "getListMainSinkSoundProperties", ++ "q", ++ sinkID, ++ std::move(callback)); ++} ++/** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++(at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++void CommandControlDBusProxy::getListMainSourceSoundProperties(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_MainSoundProperty_L, am_Error_e> >::callMethodWithReply( ++ *this, ++ "getListMainSourceSoundProperties", ++ "q", ++ sourceID, ++ callStatus ++ , listSourceProperties, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListMainSourceSoundPropertiesAsync(const am_sourceID_t& sourceID, GetListMainSourceSoundPropertiesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_MainSoundProperty_L, am_Error_e> >::callMethodAsync( ++ *this, ++ "getListMainSourceSoundProperties", ++ "q", ++ sourceID, ++ std::move(callback)); ++} ++/** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++(at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++void CommandControlDBusProxy::getListSourceClasses(CommonAPI::CallStatus& callStatus, am_SourceClass_L& listSourceClasses, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_SourceClass_L, am_Error_e> >::callMethodWithReply( ++ *this, ++ "getListSourceClasses", ++ "", ++ callStatus ++ , listSourceClasses, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListSourceClassesAsync(GetListSourceClassesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_SourceClass_L, am_Error_e> >::callMethodAsync( ++ *this, ++ "getListSourceClasses", ++ "", ++ std::move(callback)); ++} ++/** ++ * This is used to retrieve SinkClass Information of all sink classes ++(at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ */ ++void CommandControlDBusProxy::getListSinkClasses(CommonAPI::CallStatus& callStatus, am_SinkClass_L& listSinkClasses, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_SinkClass_L, am_Error_e> >::callMethodWithReply( ++ *this, ++ "getListSinkClasses", ++ "", ++ callStatus ++ , listSinkClasses, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListSinkClassesAsync(GetListSinkClassesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_SinkClass_L, am_Error_e> >::callMethodAsync( ++ *this, ++ "getListSinkClasses", ++ "", ++ std::move(callback)); ++} ++/** ++ * Retrieves a complete list of all systemProperties. ++(at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++void CommandControlDBusProxy::getListSystemProperties(CommonAPI::CallStatus& callStatus, am_SystemProperty_L& listSystemProperties, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_SystemProperty_L, am_Error_e> >::callMethodWithReply( ++ *this, ++ "getListSystemProperties", ++ "", ++ callStatus ++ , listSystemProperties, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListSystemPropertiesAsync(GetListSystemPropertiesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, ++ CommonAPI::DBus::DBusSerializableArguments<am_SystemProperty_L, am_Error_e> >::callMethodAsync( ++ *this, ++ "getListSystemProperties", ++ "", ++ std::move(callback)); ++} ++/** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++(at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ */ ++void CommandControlDBusProxy::getTimingInformation(const am_mainConnectionID_t& mainConnectionID, CommonAPI::CallStatus& callStatus, am_timeSync_t& delay, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_mainConnectionID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_timeSync_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "getTimingInformation", ++ "q", ++ mainConnectionID, ++ callStatus ++ , delay, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getTimingInformationAsync(const am_mainConnectionID_t& mainConnectionID, GetTimingInformationAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_mainConnectionID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_timeSync_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "getTimingInformation", ++ "q", ++ mainConnectionID, ++ std::move(callback)); ++} ++/** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ */ ++void CommandControlDBusProxy::getListMainSinkNotificationConfigurations(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_NotificationConfiguration_L, am_Error_e> >::callMethodWithReply( ++ *this, ++ "getListMainSinkNotificationConfigurations", ++ "q", ++ sinkID, ++ callStatus ++ , listMainNotificationConfigurations, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListMainSinkNotificationConfigurationsAsync(const am_sinkID_t& sinkID, GetListMainSinkNotificationConfigurationsAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_NotificationConfiguration_L, am_Error_e> >::callMethodAsync( ++ *this, ++ "getListMainSinkNotificationConfigurations", ++ "q", ++ sinkID, ++ std::move(callback)); ++} ++/** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ */ ++void CommandControlDBusProxy::getListMainSourceNotificationConfigurations(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_NotificationConfiguration_L, am_Error_e> >::callMethodWithReply( ++ *this, ++ "getListMainSourceNotificationConfigurations", ++ "q", ++ sourceID, ++ callStatus ++ , listMainNotificationConfigurations, error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListMainSourceNotificationConfigurationsAsync(const am_sourceID_t& sourceID, GetListMainSourceNotificationConfigurationsAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_NotificationConfiguration_L, am_Error_e> >::callMethodAsync( ++ *this, ++ "getListMainSourceNotificationConfigurations", ++ "q", ++ sourceID, ++ std::move(callback)); ++} ++/** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++(at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ */ ++void CommandControlDBusProxy::setMainSinkNotificationConfiguration(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_NotificationConfiguration_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "setMainSinkNotificationConfiguration", ++ "q(qin)", ++ sinkID, mainNotificationConfiguration, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::setMainSinkNotificationConfigurationAsync(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration, SetMainSinkNotificationConfigurationAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_NotificationConfiguration_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "setMainSinkNotificationConfiguration", ++ "q(qin)", ++ sinkID, mainNotificationConfiguration, ++ std::move(callback)); ++} ++/** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++(at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ */ ++void CommandControlDBusProxy::setMainSourceNotificationConfiguration(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_NotificationConfiguration_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "setMainSourceNotificationConfiguration", ++ "q(qin)", ++ sourceID, mainNotificationConfiguration, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> CommandControlDBusProxy::setMainSourceNotificationConfigurationAsync(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration, SetMainSourceNotificationConfigurationAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_NotificationConfiguration_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "setMainSourceNotificationConfiguration", ++ "q(qin)", ++ sourceID, mainNotificationConfiguration, ++ std::move(callback)); ++} ++ ++ ++ ++void CommandControlDBusProxy::getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const { ++ ownVersionMajor = 2; ++ ownVersionMinor = 0; ++} ++ ++} // namespace am ++} // namespace genivi ++} // namespace org +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.h +new file mode 100644 +index 0000000..c2a53ca +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.h +@@ -0,0 +1,266 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * The interface towards the Controlling Instance (e.g HMI). It handles the ++ * communication towards the HMI and other system components who need to interact ++ * with the audiomanagement. ++There are two rules that have to be kept in mind ++ * when implementing against this interface: ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Command_Control_DBUS_PROXY_H_ ++#define ORG_GENIVI_AM_Command_Control_DBUS_PROXY_H_ ++ ++#include <org/genivi/am/CommandControlProxyBase.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/DBus/DBusFactory.h> ++#include <CommonAPI/DBus/DBusProxy.h> ++#include <CommonAPI/DBus/DBusEvent.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++#include <string> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++class CommandControlDBusProxy: virtual public CommandControlProxyBase, virtual public CommonAPI::DBus::DBusProxy { ++ public: ++ CommandControlDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyconnection); ++ ++ virtual ~CommandControlDBusProxy() { } ++ ++ ++ virtual NewMainConnectionEvent& getNewMainConnectionEvent(); ++ virtual RemovedMainConnectionEvent& getRemovedMainConnectionEvent(); ++ virtual NewSinkEvent& getNewSinkEvent(); ++ virtual RemovedSinkEvent& getRemovedSinkEvent(); ++ virtual NewSourceEvent& getNewSourceEvent(); ++ virtual RemovedSourceEvent& getRemovedSourceEvent(); ++ virtual NumberOfSinkClassesChangedEvent& getNumberOfSinkClassesChangedEvent(); ++ virtual NumberOfSourceClassesChangedEvent& getNumberOfSourceClassesChangedEvent(); ++ virtual MainConnectionStateChangedEvent& getMainConnectionStateChangedEvent(); ++ virtual MainSinkSoundPropertyChangedEvent& getMainSinkSoundPropertyChangedEvent(); ++ virtual MainSourceSoundPropertyChangedEvent& getMainSourceSoundPropertyChangedEvent(); ++ virtual SinkAvailabilityChangedEvent& getSinkAvailabilityChangedEvent(); ++ virtual SourceAvailabilityChangedEvent& getSourceAvailabilityChangedEvent(); ++ virtual VolumeChangedEvent& getVolumeChangedEvent(); ++ virtual SinkMuteStateChangedEvent& getSinkMuteStateChangedEvent(); ++ virtual SystemPropertyChangedEvent& getSystemPropertyChangedEvent(); ++ virtual TimingInformationChangedEvent& getTimingInformationChangedEvent(); ++ virtual SinkUpdatedEvent& getSinkUpdatedEvent(); ++ virtual SourceUpdatedEvent& getSourceUpdatedEvent(); ++ virtual SinkNotificationEvent& getSinkNotificationEvent(); ++ virtual SourceNotificationEvent& getSourceNotificationEvent(); ++ virtual MainSinkNotificationConfigurationChangedEvent& getMainSinkNotificationConfigurationChangedEvent(); ++ virtual MainSourceNotificationConfigurationChangedEvent& getMainSourceNotificationConfigurationChangedEvent(); ++ ++ /** ++ * connects a source to sink ++ (at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ */ ++ virtual void connect(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_mainConnectionID_t& mainConnectionID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> connectAsync(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, ConnectAsyncCallback callback); ++ /** ++ * disconnects a mainConnection ++ (at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ */ ++ virtual void disconnect(const am_mainConnectionID_t& mainConnectionID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> disconnectAsync(const am_mainConnectionID_t& mainConnectionID, DisconnectAsyncCallback callback); ++ /** ++ * sets the volume for a sink ++ (at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ */ ++ virtual void setVolume(const am_sinkID_t& sinkID, const am_mainVolume_t& volume, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> setVolumeAsync(const am_sinkID_t& sinkID, const am_mainVolume_t& volume, SetVolumeAsyncCallback callback); ++ /** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ */ ++ virtual void volumeStep(const am_sinkID_t& sinkID, const int16_t& volStep, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volStep, VolumeStepAsyncCallback callback); ++ /** ++ * sets the mute state of a sink ++ (at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ */ ++ virtual void setSinkMuteState(const am_sinkID_t& sinkID, const am_MuteState_e& muteState, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> setSinkMuteStateAsync(const am_sinkID_t& sinkID, const am_MuteState_e& muteState, SetSinkMuteStateAsyncCallback callback); ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ virtual void setMainSinkSoundProperty(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> setMainSinkSoundPropertyAsync(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty, SetMainSinkSoundPropertyAsyncCallback callback); ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ virtual void setMainSourceSoundProperty(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> setMainSourceSoundPropertyAsync(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty, SetMainSourceSoundPropertyAsyncCallback callback); ++ /** ++ * is used to set a specific system property. ++ (at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ */ ++ virtual void setSystemProperty(const am_SystemProperty_s& property, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> setSystemPropertyAsync(const am_SystemProperty_s& property, SetSystemPropertyAsyncCallback callback); ++ /** ++ * returns the actual list of MainConnections ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void getListMainConnections(CommonAPI::CallStatus& callStatus, am_MainConnection_L& listConnections, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> getListMainConnectionsAsync(GetListMainConnectionsAsyncCallback callback); ++ /** ++ * returns the actual list of Sinks ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ virtual void getListMainSinks(CommonAPI::CallStatus& callStatus, am_SinkType_L& listMainSinks, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> getListMainSinksAsync(GetListMainSinksAsyncCallback callback); ++ /** ++ * returns the actual list of Sources ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ virtual void getListMainSources(CommonAPI::CallStatus& callStatus, am_SourceType_L& listMainSources, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> getListMainSourcesAsync(GetListMainSourcesAsyncCallback callback); ++ /** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++ (at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListMainSinkSoundProperties(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> getListMainSinkSoundPropertiesAsync(const am_sinkID_t& sinkID, GetListMainSinkSoundPropertiesAsyncCallback callback); ++ /** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListMainSourceSoundProperties(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> getListMainSourceSoundPropertiesAsync(const am_sourceID_t& sourceID, GetListMainSourceSoundPropertiesAsyncCallback callback); ++ /** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListSourceClasses(CommonAPI::CallStatus& callStatus, am_SourceClass_L& listSourceClasses, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> getListSourceClassesAsync(GetListSourceClassesAsyncCallback callback); ++ /** ++ * This is used to retrieve SinkClass Information of all sink classes ++ (at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListSinkClasses(CommonAPI::CallStatus& callStatus, am_SinkClass_L& listSinkClasses, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> getListSinkClassesAsync(GetListSinkClassesAsyncCallback callback); ++ /** ++ * Retrieves a complete list of all systemProperties. ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void getListSystemProperties(CommonAPI::CallStatus& callStatus, am_SystemProperty_L& listSystemProperties, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> getListSystemPropertiesAsync(GetListSystemPropertiesAsyncCallback callback); ++ /** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++ (at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ */ ++ virtual void getTimingInformation(const am_mainConnectionID_t& mainConnectionID, CommonAPI::CallStatus& callStatus, am_timeSync_t& delay, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> getTimingInformationAsync(const am_mainConnectionID_t& mainConnectionID, GetTimingInformationAsyncCallback callback); ++ /** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ */ ++ virtual void getListMainSinkNotificationConfigurations(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> getListMainSinkNotificationConfigurationsAsync(const am_sinkID_t& sinkID, GetListMainSinkNotificationConfigurationsAsyncCallback callback); ++ /** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ */ ++ virtual void getListMainSourceNotificationConfigurations(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> getListMainSourceNotificationConfigurationsAsync(const am_sourceID_t& sourceID, GetListMainSourceNotificationConfigurationsAsyncCallback callback); ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ */ ++ virtual void setMainSinkNotificationConfiguration(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> setMainSinkNotificationConfigurationAsync(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration, SetMainSinkNotificationConfigurationAsyncCallback callback); ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ */ ++ virtual void setMainSourceNotificationConfiguration(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> setMainSourceNotificationConfigurationAsync(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration, SetMainSourceNotificationConfigurationAsyncCallback callback); ++ ++ ++ virtual void getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const; ++ ++ private: ++ ++ CommonAPI::DBus::DBusEvent<NewMainConnectionEvent> newMainConnection_; ++ CommonAPI::DBus::DBusEvent<RemovedMainConnectionEvent> removedMainConnection_; ++ CommonAPI::DBus::DBusEvent<NewSinkEvent> newSink_; ++ CommonAPI::DBus::DBusEvent<RemovedSinkEvent> removedSink_; ++ CommonAPI::DBus::DBusEvent<NewSourceEvent> newSource_; ++ CommonAPI::DBus::DBusEvent<RemovedSourceEvent> removedSource_; ++ CommonAPI::DBus::DBusEvent<NumberOfSinkClassesChangedEvent> numberOfSinkClassesChanged_; ++ CommonAPI::DBus::DBusEvent<NumberOfSourceClassesChangedEvent> numberOfSourceClassesChanged_; ++ CommonAPI::DBus::DBusEvent<MainConnectionStateChangedEvent> mainConnectionStateChanged_; ++ CommonAPI::DBus::DBusEvent<MainSinkSoundPropertyChangedEvent> mainSinkSoundPropertyChanged_; ++ CommonAPI::DBus::DBusEvent<MainSourceSoundPropertyChangedEvent> mainSourceSoundPropertyChanged_; ++ CommonAPI::DBus::DBusEvent<SinkAvailabilityChangedEvent> sinkAvailabilityChanged_; ++ CommonAPI::DBus::DBusEvent<SourceAvailabilityChangedEvent> sourceAvailabilityChanged_; ++ CommonAPI::DBus::DBusEvent<VolumeChangedEvent> volumeChanged_; ++ CommonAPI::DBus::DBusEvent<SinkMuteStateChangedEvent> sinkMuteStateChanged_; ++ CommonAPI::DBus::DBusEvent<SystemPropertyChangedEvent> systemPropertyChanged_; ++ CommonAPI::DBus::DBusEvent<TimingInformationChangedEvent> timingInformationChanged_; ++ CommonAPI::DBus::DBusEvent<SinkUpdatedEvent> sinkUpdated_; ++ CommonAPI::DBus::DBusEvent<SourceUpdatedEvent> sourceUpdated_; ++ CommonAPI::DBus::DBusEvent<SinkNotificationEvent> sinkNotification_; ++ CommonAPI::DBus::DBusEvent<SourceNotificationEvent> sourceNotification_; ++ CommonAPI::DBus::DBusEvent<MainSinkNotificationConfigurationChangedEvent> mainSinkNotificationConfigurationChanged_; ++ CommonAPI::DBus::DBusEvent<MainSourceNotificationConfigurationChangedEvent> mainSourceNotificationConfigurationChanged_; ++ ++}; ++ ++ ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Command_Control_DBUS_PROXY_H_ +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.cpp b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.cpp +new file mode 100644 +index 0000000..6da5cfd +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.cpp +@@ -0,0 +1,1096 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++#include "CommandControlDBusStubAdapter.h" ++#include <org/genivi/am/CommandControl.h> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++std::shared_ptr<CommonAPI::DBus::DBusStubAdapter> createCommandControlDBusStubAdapter( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stubBase) { ++ return std::make_shared<CommandControlDBusStubAdapter>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection, stubBase); ++} ++ ++INITIALIZER(registerCommandControlDBusStubAdapter) { ++ CommonAPI::DBus::DBusFactory::registerAdapterFactoryMethod(CommandControl::getInterfaceId(), ++ &createCommandControlDBusStubAdapter); ++} ++ ++ ++ ++CommandControlDBusStubAdapterInternal::~CommandControlDBusStubAdapterInternal() { ++ deactivateManagedInstances(); ++ CommandControlDBusStubAdapterHelper::deinit(); ++} ++ ++void CommandControlDBusStubAdapterInternal::deactivateManagedInstances() { ++ ++} ++ ++const char* CommandControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXmlData() const { ++ static const std::string introspectionData = ++ "<method name=\"getInterfaceVersion\">\n" ++ "<arg name=\"value\" type=\"uu\" direction=\"out\" />" ++ "</method>\n" ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ "<signal name=\"newMainConnection\">\n" ++ "<arg name=\"mainConnection\" type=\"(qqqni)\" />\n" ++ "</signal>\n" ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ "<signal name=\"removedMainConnection\">\n" ++ "<arg name=\"mainConnection\" type=\"q\" />\n" ++ "</signal>\n" ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ "<signal name=\"newSink\">\n" ++ "<arg name=\"sink\" type=\"(qs(iq)niq)\" />\n" ++ "</signal>\n" ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ "<signal name=\"removedSink\">\n" ++ "<arg name=\"sinkID\" type=\"q\" />\n" ++ "</signal>\n" ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ "<signal name=\"newSource\">\n" ++ "<arg name=\"source\" type=\"(qs(iq)q)\" />\n" ++ "</signal>\n" ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ "<signal name=\"removedSource\">\n" ++ "<arg name=\"source\" type=\"q\" />\n" ++ "</signal>\n" ++ /** ++ * this callback is fired if the number of sink classes changed ++ */ ++ "<signal name=\"numberOfSinkClassesChanged\">\n" ++ "</signal>\n" ++ /** ++ * this callback is fired if the number of source classes changed ++ */ ++ "<signal name=\"numberOfSourceClassesChanged\">\n" ++ "</signal>\n" ++ /** ++ * This callback is called when the ConnectionState of a connection changed. ++ */ ++ "<signal name=\"mainConnectionStateChanged\">\n" ++ "<arg name=\"connectionID\" type=\"q\" />\n" ++ "<arg name=\"connectionState\" type=\"i\" />\n" ++ "</signal>\n" ++ /** ++ * this callback indicates that a sinkSoundProperty has changed. ++ */ ++ "<signal name=\"mainSinkSoundPropertyChanged\">\n" ++ "<arg name=\"sinkID\" type=\"q\" />\n" ++ "<arg name=\"soundProperty\" type=\"(qn)\" />\n" ++ "</signal>\n" ++ /** ++ * this callback indicates that a sourceSoundProperty has changed. ++ */ ++ "<signal name=\"mainSourceSoundPropertyChanged\">\n" ++ "<arg name=\"sourceID\" type=\"q\" />\n" ++ "<arg name=\"soundProperty\" type=\"(qn)\" />\n" ++ "</signal>\n" ++ /** ++ * this callback is called when the availability of a sink has changed ++ */ ++ "<signal name=\"sinkAvailabilityChanged\">\n" ++ "<arg name=\"sinkID\" type=\"q\" />\n" ++ "<arg name=\"availability\" type=\"(iq)\" />\n" ++ "</signal>\n" ++ /** ++ * this callback is called when the availability of source has changed. ++ */ ++ "<signal name=\"sourceAvailabilityChanged\">\n" ++ "<arg name=\"sourceID\" type=\"q\" />\n" ++ "<arg name=\"availability\" type=\"(iq)\" />\n" ++ "</signal>\n" ++ /** ++ * this callback indicates a volume change on the indicated sink ++ */ ++ "<signal name=\"volumeChanged\">\n" ++ "<arg name=\"sinkID\" type=\"q\" />\n" ++ "<arg name=\"volume\" type=\"n\" />\n" ++ "</signal>\n" ++ /** ++ * this callback indicates a mute state change on a sink. ++ */ ++ "<signal name=\"sinkMuteStateChanged\">\n" ++ "<arg name=\"sinkID\" type=\"q\" />\n" ++ "<arg name=\"muteState\" type=\"i\" />\n" ++ "</signal>\n" ++ /** ++ * is fired if a systemProperty changed ++ */ ++ "<signal name=\"systemPropertyChanged\">\n" ++ "<arg name=\"systemProperty\" type=\"(qn)\" />\n" ++ "</signal>\n" ++ /** ++ * This callback is fired if the timinginformation for a mainConnectionID changed ++ */ ++ "<signal name=\"timingInformationChanged\">\n" ++ "<arg name=\"mainConnectionID\" type=\"q\" />\n" ++ "<arg name=\"time\" type=\"n\" />\n" ++ "</signal>\n" ++ /** ++ * This callback is called when a sink is updated. ++ */ ++ "<signal name=\"sinkUpdated\">\n" ++ "<arg name=\"sinkID\" type=\"q\" />\n" ++ "<arg name=\"sinkClassID\" type=\"q\" />\n" ++ "<arg name=\"listMainSoundProperties\" type=\"a(qn)\" />\n" ++ "</signal>\n" ++ /** ++ * This callback is called when a source is updated. ++ */ ++ "<signal name=\"sourceUpdated\">\n" ++ "<arg name=\"sourceID\" type=\"q\" />\n" ++ "<arg name=\"sourceClassID\" type=\"q\" />\n" ++ "<arg name=\"listMainSoundProperties\" type=\"a(qn)\" />\n" ++ "</signal>\n" ++ /** ++ * This callback is called when a notificated value of a sink changes. ++ */ ++ "<signal name=\"sinkNotification\">\n" ++ "<arg name=\"sinkID\" type=\"q\" />\n" ++ "<arg name=\"notification\" type=\"(qn)\" />\n" ++ "</signal>\n" ++ /** ++ * This callback is called when a notifcated value of a source changes. ++ */ ++ "<signal name=\"sourceNotification\">\n" ++ "<arg name=\"sourceID\" type=\"q\" />\n" ++ "<arg name=\"notification\" type=\"(qn)\" />\n" ++ "</signal>\n" ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ "<signal name=\"mainSinkNotificationConfigurationChanged\">\n" ++ "<arg name=\"sinkID\" type=\"q\" />\n" ++ "<arg name=\"mainNotificationConfiguration\" type=\"(qin)\" />\n" ++ "</signal>\n" ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ "<signal name=\"mainSourceNotificationConfigurationChanged\">\n" ++ "<arg name=\"sourceID\" type=\"q\" />\n" ++ "<arg name=\"mainNotificationConfiguration\" type=\"(qin)\" />\n" ++ "</signal>\n" ++ /** ++ * connects a source to sink ++ (at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ */ ++ "<method name=\"connect\">\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"mainConnectionID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * disconnects a mainConnection ++ (at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ */ ++ "<method name=\"disconnect\">\n" ++ "<arg name=\"mainConnectionID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * sets the volume for a sink ++ (at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ */ ++ "<method name=\"setVolume\">\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"volume\" type=\"n\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ */ ++ "<method name=\"volumeStep\">\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"volStep\" type=\"n\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * sets the mute state of a sink ++ (at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ */ ++ "<method name=\"setSinkMuteState\">\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"muteState\" type=\"i\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ "<method name=\"setMainSinkSoundProperty\">\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"soundProperty\" type=\"(qn)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ "<method name=\"setMainSourceSoundProperty\">\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"soundProperty\" type=\"(qn)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * is used to set a specific system property. ++ (at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ */ ++ "<method name=\"setSystemProperty\">\n" ++ "<arg name=\"property\" type=\"(qn)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * returns the actual list of MainConnections ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ "<method name=\"getListMainConnections\">\n" ++ "<arg name=\"listConnections\" type=\"a(qqqni)\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * returns the actual list of Sinks ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ "<method name=\"getListMainSinks\">\n" ++ "<arg name=\"listMainSinks\" type=\"a(qs(iq)niq)\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * returns the actual list of Sources ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ "<method name=\"getListMainSources\">\n" ++ "<arg name=\"listMainSources\" type=\"a(qs(iq)q)\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++ (at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ */ ++ "<method name=\"getListMainSinkSoundProperties\">\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"listSoundProperties\" type=\"a(qn)\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ "<method name=\"getListMainSourceSoundProperties\">\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"listSourceProperties\" type=\"a(qn)\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ "<method name=\"getListSourceClasses\">\n" ++ "<arg name=\"listSourceClasses\" type=\"a(qsa(qn))\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * This is used to retrieve SinkClass Information of all sink classes ++ (at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ */ ++ "<method name=\"getListSinkClasses\">\n" ++ "<arg name=\"listSinkClasses\" type=\"a(qsa(qn))\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * Retrieves a complete list of all systemProperties. ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ "<method name=\"getListSystemProperties\">\n" ++ "<arg name=\"listSystemProperties\" type=\"a(qn)\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++ (at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ */ ++ "<method name=\"getTimingInformation\">\n" ++ "<arg name=\"mainConnectionID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"delay\" type=\"n\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ */ ++ "<method name=\"getListMainSinkNotificationConfigurations\">\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"listMainNotificationConfigurations\" type=\"a(qin)\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ */ ++ "<method name=\"getListMainSourceNotificationConfigurations\">\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"listMainNotificationConfigurations\" type=\"a(qin)\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ */ ++ "<method name=\"setMainSinkNotificationConfiguration\">\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"mainNotificationConfiguration\" type=\"(qin)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ */ ++ "<method name=\"setMainSourceNotificationConfiguration\">\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"mainNotificationConfiguration\" type=\"(qin)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ ++ ; ++ return introspectionData.c_str(); ++} ++ ++CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ CommandControlStub, ++ CommonAPI::Version ++ > CommandControlDBusStubAdapterInternal::getCommandControlInterfaceVersionStubDispatcher(&CommandControlStub::getInterfaceVersion, "uu"); ++ ++ ++ ++/** ++ * connects a source to sink ++(at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sourceID_t, am_sinkID_t>, ++ std::tuple<am_mainConnectionID_t, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::connectStubDispatcher(&CommandControlStub::connect, "qi"); ++/** ++ * disconnects a mainConnection ++(at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_mainConnectionID_t>, ++ std::tuple<am_Error_e> ++ > CommandControlDBusStubAdapterInternal::disconnectStubDispatcher(&CommandControlStub::disconnect, "i"); ++/** ++ * sets the volume for a sink ++(at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t, am_mainVolume_t>, ++ std::tuple<am_Error_e> ++ > CommandControlDBusStubAdapterInternal::setVolumeStubDispatcher(&CommandControlStub::setVolume, "i"); ++/** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t, int16_t>, ++ std::tuple<am_Error_e> ++ > CommandControlDBusStubAdapterInternal::volumeStepStubDispatcher(&CommandControlStub::volumeStep, "i"); ++/** ++ * sets the mute state of a sink ++(at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t, am_MuteState_e>, ++ std::tuple<am_Error_e> ++ > CommandControlDBusStubAdapterInternal::setSinkMuteStateStubDispatcher(&CommandControlStub::setSinkMuteState, "i"); ++/** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++(at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t, am_MainSoundProperty_s>, ++ std::tuple<am_Error_e> ++ > CommandControlDBusStubAdapterInternal::setMainSinkSoundPropertyStubDispatcher(&CommandControlStub::setMainSinkSoundProperty, "i"); ++/** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++(at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sourceID_t, am_MainSoundProperty_s>, ++ std::tuple<am_Error_e> ++ > CommandControlDBusStubAdapterInternal::setMainSourceSoundPropertyStubDispatcher(&CommandControlStub::setMainSourceSoundProperty, "i"); ++/** ++ * is used to set a specific system property. ++(at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_SystemProperty_s>, ++ std::tuple<am_Error_e> ++ > CommandControlDBusStubAdapterInternal::setSystemPropertyStubDispatcher(&CommandControlStub::setSystemProperty, "i"); ++/** ++ * returns the actual list of MainConnections ++(at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_MainConnection_L, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::getListMainConnectionsStubDispatcher(&CommandControlStub::getListMainConnections, "a(qqqni)i"); ++/** ++ * returns the actual list of Sinks ++(at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_SinkType_L, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::getListMainSinksStubDispatcher(&CommandControlStub::getListMainSinks, "a(qs(iq)niq)i"); ++/** ++ * returns the actual list of Sources ++(at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_SourceType_L, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::getListMainSourcesStubDispatcher(&CommandControlStub::getListMainSources, "a(qs(iq)q)i"); ++/** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++(at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t>, ++ std::tuple<am_MainSoundProperty_L, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::getListMainSinkSoundPropertiesStubDispatcher(&CommandControlStub::getListMainSinkSoundProperties, "a(qn)i"); ++/** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++(at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sourceID_t>, ++ std::tuple<am_MainSoundProperty_L, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::getListMainSourceSoundPropertiesStubDispatcher(&CommandControlStub::getListMainSourceSoundProperties, "a(qn)i"); ++/** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++(at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_SourceClass_L, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::getListSourceClassesStubDispatcher(&CommandControlStub::getListSourceClasses, "a(qsa(qn))i"); ++/** ++ * This is used to retrieve SinkClass Information of all sink classes ++(at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_SinkClass_L, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::getListSinkClassesStubDispatcher(&CommandControlStub::getListSinkClasses, "a(qsa(qn))i"); ++/** ++ * Retrieves a complete list of all systemProperties. ++(at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_SystemProperty_L, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::getListSystemPropertiesStubDispatcher(&CommandControlStub::getListSystemProperties, "a(qn)i"); ++/** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++(at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_mainConnectionID_t>, ++ std::tuple<am_timeSync_t, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::getTimingInformationStubDispatcher(&CommandControlStub::getTimingInformation, "ni"); ++/** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t>, ++ std::tuple<am_NotificationConfiguration_L, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::getListMainSinkNotificationConfigurationsStubDispatcher(&CommandControlStub::getListMainSinkNotificationConfigurations, "a(qin)i"); ++/** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sourceID_t>, ++ std::tuple<am_NotificationConfiguration_L, am_Error_e> ++ > CommandControlDBusStubAdapterInternal::getListMainSourceNotificationConfigurationsStubDispatcher(&CommandControlStub::getListMainSourceNotificationConfigurations, "a(qin)i"); ++/** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++(at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t, am_NotificationConfiguration_s>, ++ std::tuple<am_Error_e> ++ > CommandControlDBusStubAdapterInternal::setMainSinkNotificationConfigurationStubDispatcher(&CommandControlStub::setMainSinkNotificationConfiguration, "i"); ++/** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++(at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sourceID_t, am_NotificationConfiguration_s>, ++ std::tuple<am_Error_e> ++ > CommandControlDBusStubAdapterInternal::setMainSourceNotificationConfigurationStubDispatcher(&CommandControlStub::setMainSourceNotificationConfiguration, "i"); ++ ++ ++ ++/** ++ * Callback that is called when the number of connections change ++ */ ++void CommandControlDBusStubAdapterInternal::fireNewMainConnectionEvent(const am_MainConnectionType_s& mainConnection) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_MainConnectionType_s>> ++ ::sendSignal( ++ *this, ++ "newMainConnection", ++ "(qqqni)", ++ mainConnection ++ ); ++} ++/** ++ * Callback that is called when the number of connections change ++ */ ++void CommandControlDBusStubAdapterInternal::fireRemovedMainConnectionEvent(const am_mainConnectionID_t& mainConnection) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_mainConnectionID_t>> ++ ::sendSignal( ++ *this, ++ "removedMainConnection", ++ "q", ++ mainConnection ++ ); ++} ++/** ++ * Callback that is called when the number of sinks change ++ */ ++void CommandControlDBusStubAdapterInternal::fireNewSinkEvent(const am_SinkType_s& sink) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_SinkType_s>> ++ ::sendSignal( ++ *this, ++ "newSink", ++ "(qs(iq)niq)", ++ sink ++ ); ++} ++/** ++ * Callback that is called when the number of sinks change ++ */ ++void CommandControlDBusStubAdapterInternal::fireRemovedSinkEvent(const am_sinkID_t& sinkID) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t>> ++ ::sendSignal( ++ *this, ++ "removedSink", ++ "q", ++ sinkID ++ ); ++} ++/** ++ * Callback that is called when the number of sources change ++ */ ++void CommandControlDBusStubAdapterInternal::fireNewSourceEvent(const am_SourceType_s& source) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_SourceType_s>> ++ ::sendSignal( ++ *this, ++ "newSource", ++ "(qs(iq)q)", ++ source ++ ); ++} ++/** ++ * Callback that is called when the number of sources change ++ */ ++void CommandControlDBusStubAdapterInternal::fireRemovedSourceEvent(const am_sourceID_t& source) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t>> ++ ::sendSignal( ++ *this, ++ "removedSource", ++ "q", ++ source ++ ); ++} ++/** ++ * this callback is fired if the number of sink classes changed ++ */ ++void CommandControlDBusStubAdapterInternal::fireNumberOfSinkClassesChangedEvent() { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<>> ++ ::sendSignal( ++ *this, ++ "numberOfSinkClassesChanged", ++ "" ++ ); ++} ++/** ++ * this callback is fired if the number of source classes changed ++ */ ++void CommandControlDBusStubAdapterInternal::fireNumberOfSourceClassesChangedEvent() { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<>> ++ ::sendSignal( ++ *this, ++ "numberOfSourceClassesChanged", ++ "" ++ ); ++} ++/** ++ * This callback is called when the ConnectionState of a connection changed. ++ */ ++void CommandControlDBusStubAdapterInternal::fireMainConnectionStateChangedEvent(const am_mainConnectionID_t& connectionID, const am_ConnectionState_e& connectionState) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_mainConnectionID_t, am_ConnectionState_e>> ++ ::sendSignal( ++ *this, ++ "mainConnectionStateChanged", ++ "qi", ++ connectionID, connectionState ++ ); ++} ++/** ++ * this callback indicates that a sinkSoundProperty has changed. ++ */ ++void CommandControlDBusStubAdapterInternal::fireMainSinkSoundPropertyChangedEvent(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_MainSoundProperty_s>> ++ ::sendSignal( ++ *this, ++ "mainSinkSoundPropertyChanged", ++ "q(qn)", ++ sinkID, soundProperty ++ ); ++} ++/** ++ * this callback indicates that a sourceSoundProperty has changed. ++ */ ++void CommandControlDBusStubAdapterInternal::fireMainSourceSoundPropertyChangedEvent(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_MainSoundProperty_s>> ++ ::sendSignal( ++ *this, ++ "mainSourceSoundPropertyChanged", ++ "q(qn)", ++ sourceID, soundProperty ++ ); ++} ++/** ++ * this callback is called when the availability of a sink has changed ++ */ ++void CommandControlDBusStubAdapterInternal::fireSinkAvailabilityChangedEvent(const am_sinkID_t& sinkID, const am_Availability_s& availability) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_Availability_s>> ++ ::sendSignal( ++ *this, ++ "sinkAvailabilityChanged", ++ "q(iq)", ++ sinkID, availability ++ ); ++} ++/** ++ * this callback is called when the availability of source has changed. ++ */ ++void CommandControlDBusStubAdapterInternal::fireSourceAvailabilityChangedEvent(const am_sourceID_t& sourceID, const am_Availability_s& availability) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_Availability_s>> ++ ::sendSignal( ++ *this, ++ "sourceAvailabilityChanged", ++ "q(iq)", ++ sourceID, availability ++ ); ++} ++/** ++ * this callback indicates a volume change on the indicated sink ++ */ ++void CommandControlDBusStubAdapterInternal::fireVolumeChangedEvent(const am_sinkID_t& sinkID, const am_mainVolume_t& volume) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_mainVolume_t>> ++ ::sendSignal( ++ *this, ++ "volumeChanged", ++ "qn", ++ sinkID, volume ++ ); ++} ++/** ++ * this callback indicates a mute state change on a sink. ++ */ ++void CommandControlDBusStubAdapterInternal::fireSinkMuteStateChangedEvent(const am_sinkID_t& sinkID, const am_MuteState_e& muteState) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_MuteState_e>> ++ ::sendSignal( ++ *this, ++ "sinkMuteStateChanged", ++ "qi", ++ sinkID, muteState ++ ); ++} ++/** ++ * is fired if a systemProperty changed ++ */ ++void CommandControlDBusStubAdapterInternal::fireSystemPropertyChangedEvent(const am_SystemProperty_s& systemProperty) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_SystemProperty_s>> ++ ::sendSignal( ++ *this, ++ "systemPropertyChanged", ++ "(qn)", ++ systemProperty ++ ); ++} ++/** ++ * This callback is fired if the timinginformation for a mainConnectionID changed ++ */ ++void CommandControlDBusStubAdapterInternal::fireTimingInformationChangedEvent(const am_mainConnectionID_t& mainConnectionID, const am_timeSync_t& time) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_mainConnectionID_t, am_timeSync_t>> ++ ::sendSignal( ++ *this, ++ "timingInformationChanged", ++ "qn", ++ mainConnectionID, time ++ ); ++} ++/** ++ * This callback is called when a sink is updated. ++ */ ++void CommandControlDBusStubAdapterInternal::fireSinkUpdatedEvent(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_MainSoundProperty_L& listMainSoundProperties) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_sinkClass_t, am_MainSoundProperty_L>> ++ ::sendSignal( ++ *this, ++ "sinkUpdated", ++ "qqa(qn)", ++ sinkID, sinkClassID, listMainSoundProperties ++ ); ++} ++/** ++ * This callback is called when a source is updated. ++ */ ++void CommandControlDBusStubAdapterInternal::fireSourceUpdatedEvent(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_MainSoundProperty_L& listMainSoundProperties) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_sourceClass_t, am_MainSoundProperty_L>> ++ ::sendSignal( ++ *this, ++ "sourceUpdated", ++ "qqa(qn)", ++ sourceID, sourceClassID, listMainSoundProperties ++ ); ++} ++/** ++ * This callback is called when a notificated value of a sink changes. ++ */ ++void CommandControlDBusStubAdapterInternal::fireSinkNotificationEvent(const am_sinkID_t& sinkID, const am_NotificationPayload_s& notification) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_NotificationPayload_s>> ++ ::sendSignal( ++ *this, ++ "sinkNotification", ++ "q(qn)", ++ sinkID, notification ++ ); ++} ++/** ++ * This callback is called when a notifcated value of a source changes. ++ */ ++void CommandControlDBusStubAdapterInternal::fireSourceNotificationEvent(const am_sourceID_t& sourceID, const am_NotificationPayload_s& notification) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_NotificationPayload_s>> ++ ::sendSignal( ++ *this, ++ "sourceNotification", ++ "q(qn)", ++ sourceID, notification ++ ); ++} ++/** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++void CommandControlDBusStubAdapterInternal::fireMainSinkNotificationConfigurationChangedEvent(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_NotificationConfiguration_s>> ++ ::sendSignal( ++ *this, ++ "mainSinkNotificationConfigurationChanged", ++ "q(qin)", ++ sinkID, mainNotificationConfiguration ++ ); ++} ++/** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++void CommandControlDBusStubAdapterInternal::fireMainSourceNotificationConfigurationChangedEvent(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_NotificationConfiguration_s>> ++ ::sendSignal( ++ *this, ++ "mainSourceNotificationConfigurationChanged", ++ "q(qin)", ++ sourceID, mainNotificationConfiguration ++ ); ++} ++ ++ ++const CommandControlDBusStubAdapterHelper::StubDispatcherTable& CommandControlDBusStubAdapterInternal::getStubDispatcherTable() { ++ return stubDispatcherTable_; ++} ++ ++const CommonAPI::DBus::StubAttributeTable& CommandControlDBusStubAdapterInternal::getStubAttributeTable() { ++ return stubAttributeTable_; ++} ++ ++CommandControlDBusStubAdapterInternal::CommandControlDBusStubAdapterInternal( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub): ++ CommonAPI::DBus::DBusStubAdapter( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ false), ++ CommandControlDBusStubAdapterHelper( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ std::dynamic_pointer_cast<CommandControlStub>(stub), ++ false), ++ stubDispatcherTable_({ ++ /** ++ * connects a source to sink ++ (at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ */ ++ { { "connect", "qq" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::connectStubDispatcher }, ++ /** ++ * disconnects a mainConnection ++ (at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ */ ++ { { "disconnect", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::disconnectStubDispatcher }, ++ /** ++ * sets the volume for a sink ++ (at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ */ ++ { { "setVolume", "qn" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setVolumeStubDispatcher }, ++ /** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ */ ++ { { "volumeStep", "qn" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::volumeStepStubDispatcher }, ++ /** ++ * sets the mute state of a sink ++ (at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ */ ++ { { "setSinkMuteState", "qi" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setSinkMuteStateStubDispatcher }, ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ { { "setMainSinkSoundProperty", "q(qn)" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setMainSinkSoundPropertyStubDispatcher }, ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ { { "setMainSourceSoundProperty", "q(qn)" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setMainSourceSoundPropertyStubDispatcher }, ++ /** ++ * is used to set a specific system property. ++ (at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ */ ++ { { "setSystemProperty", "(qn)" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setSystemPropertyStubDispatcher }, ++ /** ++ * returns the actual list of MainConnections ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ { { "getListMainConnections", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainConnectionsStubDispatcher }, ++ /** ++ * returns the actual list of Sinks ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ { { "getListMainSinks", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSinksStubDispatcher }, ++ /** ++ * returns the actual list of Sources ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ { { "getListMainSources", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSourcesStubDispatcher }, ++ /** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++ (at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ */ ++ { { "getListMainSinkSoundProperties", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSinkSoundPropertiesStubDispatcher }, ++ /** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ { { "getListMainSourceSoundProperties", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSourceSoundPropertiesStubDispatcher }, ++ /** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ { { "getListSourceClasses", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListSourceClassesStubDispatcher }, ++ /** ++ * This is used to retrieve SinkClass Information of all sink classes ++ (at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ */ ++ { { "getListSinkClasses", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListSinkClassesStubDispatcher }, ++ /** ++ * Retrieves a complete list of all systemProperties. ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ { { "getListSystemProperties", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListSystemPropertiesStubDispatcher }, ++ /** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++ (at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ */ ++ { { "getTimingInformation", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getTimingInformationStubDispatcher }, ++ /** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ */ ++ { { "getListMainSinkNotificationConfigurations", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSinkNotificationConfigurationsStubDispatcher }, ++ /** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ */ ++ { { "getListMainSourceNotificationConfigurations", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSourceNotificationConfigurationsStubDispatcher }, ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ */ ++ { { "setMainSinkNotificationConfiguration", "q(qin)" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setMainSinkNotificationConfigurationStubDispatcher }, ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ */ ++ { { "setMainSourceNotificationConfiguration", "q(qin)" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setMainSourceNotificationConfigurationStubDispatcher } ++ }), ++ stubAttributeTable_() { ++ ++ stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getCommandControlInterfaceVersionStubDispatcher }); ++} ++ ++const bool CommandControlDBusStubAdapterInternal::hasFreedesktopProperties() { ++ return false; ++} ++ ++} // namespace am ++} // namespace genivi ++} // namespace org +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.h +new file mode 100644 +index 0000000..0909211 +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.h +@@ -0,0 +1,422 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * The interface towards the Controlling Instance (e.g HMI). It handles the ++ * communication towards the HMI and other system components who need to interact ++ * with the audiomanagement. ++There are two rules that have to be kept in mind ++ * when implementing against this interface: ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Command_Control_DBUS_STUB_ADAPTER_H_ ++#define ORG_GENIVI_AM_Command_Control_DBUS_STUB_ADAPTER_H_ ++ ++#include <org/genivi/am/CommandControlStub.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/DBus/DBusStubAdapterHelper.h> ++#include <CommonAPI/DBus/DBusStubAdapter.h> ++#include <CommonAPI/DBus/DBusFactory.h> ++#include <CommonAPI/DBus/DBusServicePublisher.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++typedef CommonAPI::DBus::DBusStubAdapterHelper<CommandControlStub> CommandControlDBusStubAdapterHelper; ++ ++class CommandControlDBusStubAdapterInternal: public virtual CommandControlStubAdapter, public CommandControlDBusStubAdapterHelper { ++ public: ++ CommandControlDBusStubAdapterInternal( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub); ++ ++ ~CommandControlDBusStubAdapterInternal(); ++ ++ virtual const bool hasFreedesktopProperties(); ++ ++ ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ void fireNewMainConnectionEvent(const am_MainConnectionType_s& mainConnection); ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ void fireRemovedMainConnectionEvent(const am_mainConnectionID_t& mainConnection); ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ void fireNewSinkEvent(const am_SinkType_s& sink); ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ void fireRemovedSinkEvent(const am_sinkID_t& sinkID); ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ void fireNewSourceEvent(const am_SourceType_s& source); ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ void fireRemovedSourceEvent(const am_sourceID_t& source); ++ /** ++ * this callback is fired if the number of sink classes changed ++ */ ++ void fireNumberOfSinkClassesChangedEvent(); ++ /** ++ * this callback is fired if the number of source classes changed ++ */ ++ void fireNumberOfSourceClassesChangedEvent(); ++ /** ++ * This callback is called when the ConnectionState of a connection changed. ++ */ ++ void fireMainConnectionStateChangedEvent(const am_mainConnectionID_t& connectionID, const am_ConnectionState_e& connectionState); ++ /** ++ * this callback indicates that a sinkSoundProperty has changed. ++ */ ++ void fireMainSinkSoundPropertyChangedEvent(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty); ++ /** ++ * this callback indicates that a sourceSoundProperty has changed. ++ */ ++ void fireMainSourceSoundPropertyChangedEvent(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty); ++ /** ++ * this callback is called when the availability of a sink has changed ++ */ ++ void fireSinkAvailabilityChangedEvent(const am_sinkID_t& sinkID, const am_Availability_s& availability); ++ /** ++ * this callback is called when the availability of source has changed. ++ */ ++ void fireSourceAvailabilityChangedEvent(const am_sourceID_t& sourceID, const am_Availability_s& availability); ++ /** ++ * this callback indicates a volume change on the indicated sink ++ */ ++ void fireVolumeChangedEvent(const am_sinkID_t& sinkID, const am_mainVolume_t& volume); ++ /** ++ * this callback indicates a mute state change on a sink. ++ */ ++ void fireSinkMuteStateChangedEvent(const am_sinkID_t& sinkID, const am_MuteState_e& muteState); ++ /** ++ * is fired if a systemProperty changed ++ */ ++ void fireSystemPropertyChangedEvent(const am_SystemProperty_s& systemProperty); ++ /** ++ * This callback is fired if the timinginformation for a mainConnectionID changed ++ */ ++ void fireTimingInformationChangedEvent(const am_mainConnectionID_t& mainConnectionID, const am_timeSync_t& time); ++ /** ++ * This callback is called when a sink is updated. ++ */ ++ void fireSinkUpdatedEvent(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_MainSoundProperty_L& listMainSoundProperties); ++ /** ++ * This callback is called when a source is updated. ++ */ ++ void fireSourceUpdatedEvent(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_MainSoundProperty_L& listMainSoundProperties); ++ /** ++ * This callback is called when a notificated value of a sink changes. ++ */ ++ void fireSinkNotificationEvent(const am_sinkID_t& sinkID, const am_NotificationPayload_s& notification); ++ /** ++ * This callback is called when a notifcated value of a source changes. ++ */ ++ void fireSourceNotificationEvent(const am_sourceID_t& sourceID, const am_NotificationPayload_s& notification); ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ void fireMainSinkNotificationConfigurationChangedEvent(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration); ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ void fireMainSourceNotificationConfigurationChangedEvent(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration); ++ ++ ++ const CommandControlDBusStubAdapterHelper::StubDispatcherTable& getStubDispatcherTable(); ++ const CommonAPI::DBus::StubAttributeTable& getStubAttributeTable(); ++ ++ void deactivateManagedInstances(); ++ ++ ++static CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ CommandControlStub, ++ CommonAPI::Version ++ > getCommandControlInterfaceVersionStubDispatcher; ++ ++ ++ ++/** ++ * connects a source to sink ++(at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sourceID_t, am_sinkID_t>, ++ std::tuple<am_mainConnectionID_t, am_Error_e> ++ > connectStubDispatcher; ++/** ++ * disconnects a mainConnection ++(at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_mainConnectionID_t>, ++ std::tuple<am_Error_e> ++ > disconnectStubDispatcher; ++/** ++ * sets the volume for a sink ++(at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t, am_mainVolume_t>, ++ std::tuple<am_Error_e> ++ > setVolumeStubDispatcher; ++/** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t, int16_t>, ++ std::tuple<am_Error_e> ++ > volumeStepStubDispatcher; ++/** ++ * sets the mute state of a sink ++(at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t, am_MuteState_e>, ++ std::tuple<am_Error_e> ++ > setSinkMuteStateStubDispatcher; ++/** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++(at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t, am_MainSoundProperty_s>, ++ std::tuple<am_Error_e> ++ > setMainSinkSoundPropertyStubDispatcher; ++/** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++(at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sourceID_t, am_MainSoundProperty_s>, ++ std::tuple<am_Error_e> ++ > setMainSourceSoundPropertyStubDispatcher; ++/** ++ * is used to set a specific system property. ++(at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_SystemProperty_s>, ++ std::tuple<am_Error_e> ++ > setSystemPropertyStubDispatcher; ++/** ++ * returns the actual list of MainConnections ++(at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_MainConnection_L, am_Error_e> ++ > getListMainConnectionsStubDispatcher; ++/** ++ * returns the actual list of Sinks ++(at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_SinkType_L, am_Error_e> ++ > getListMainSinksStubDispatcher; ++/** ++ * returns the actual list of Sources ++(at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_SourceType_L, am_Error_e> ++ > getListMainSourcesStubDispatcher; ++/** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++(at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t>, ++ std::tuple<am_MainSoundProperty_L, am_Error_e> ++ > getListMainSinkSoundPropertiesStubDispatcher; ++/** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++(at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sourceID_t>, ++ std::tuple<am_MainSoundProperty_L, am_Error_e> ++ > getListMainSourceSoundPropertiesStubDispatcher; ++/** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++(at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_SourceClass_L, am_Error_e> ++ > getListSourceClassesStubDispatcher; ++/** ++ * This is used to retrieve SinkClass Information of all sink classes ++(at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_SinkClass_L, am_Error_e> ++ > getListSinkClassesStubDispatcher; ++/** ++ * Retrieves a complete list of all systemProperties. ++(at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<>, ++ std::tuple<am_SystemProperty_L, am_Error_e> ++ > getListSystemPropertiesStubDispatcher; ++/** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++(at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_mainConnectionID_t>, ++ std::tuple<am_timeSync_t, am_Error_e> ++ > getTimingInformationStubDispatcher; ++/** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t>, ++ std::tuple<am_NotificationConfiguration_L, am_Error_e> ++ > getListMainSinkNotificationConfigurationsStubDispatcher; ++/** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sourceID_t>, ++ std::tuple<am_NotificationConfiguration_L, am_Error_e> ++ > getListMainSourceNotificationConfigurationsStubDispatcher; ++/** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++(at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sinkID_t, am_NotificationConfiguration_s>, ++ std::tuple<am_Error_e> ++ > setMainSinkNotificationConfigurationStubDispatcher; ++/** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++(at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ CommandControlStub, ++ std::tuple<am_sourceID_t, am_NotificationConfiguration_s>, ++ std::tuple<am_Error_e> ++ > setMainSourceNotificationConfigurationStubDispatcher; ++ ++ ++ ++ ++ protected: ++ virtual const char* getMethodsDBusIntrospectionXmlData() const; ++ ++ private: ++ CommandControlDBusStubAdapterHelper::StubDispatcherTable stubDispatcherTable_; ++ CommonAPI::DBus::StubAttributeTable stubAttributeTable_; ++}; ++ ++class CommandControlDBusStubAdapter: public CommandControlDBusStubAdapterInternal, public std::enable_shared_from_this<CommandControlDBusStubAdapter> { ++public: ++ CommandControlDBusStubAdapter( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub) : ++ CommonAPI::DBus::DBusStubAdapter( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ false), ++ CommandControlDBusStubAdapterInternal( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ stub) { } ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Command_Control_DBUS_STUB_ADAPTER_H_ +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxy.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxy.h +new file mode 100644 +index 0000000..03e6a62 +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxy.h +@@ -0,0 +1,1194 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * The interface towards the Controlling Instance (e.g HMI). It handles the ++ * communication towards the HMI and other system components who need to interact ++ * with the audiomanagement. ++There are two rules that have to be kept in mind ++ * when implementing against this interface: ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Command_Control_PROXY_H_ ++#define ORG_GENIVI_AM_Command_Control_PROXY_H_ ++ ++#include "CommandControlProxyBase.h" ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++template <typename ... _AttributeExtensions> ++class CommandControlProxy: virtual public CommandControl, virtual public CommandControlProxyBase ++, public _AttributeExtensions... { ++public: ++ CommandControlProxy(std::shared_ptr<CommonAPI::Proxy> delegate); ++ ~CommandControlProxy(); ++ ++ typedef CommandControl InterfaceType; ++ ++ ++ ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast newMainConnection. ++ */ ++ virtual NewMainConnectionEvent& getNewMainConnectionEvent() { ++ return delegate_->getNewMainConnectionEvent(); ++ } ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast removedMainConnection. ++ */ ++ virtual RemovedMainConnectionEvent& getRemovedMainConnectionEvent() { ++ return delegate_->getRemovedMainConnectionEvent(); ++ } ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast newSink. ++ */ ++ virtual NewSinkEvent& getNewSinkEvent() { ++ return delegate_->getNewSinkEvent(); ++ } ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast removedSink. ++ */ ++ virtual RemovedSinkEvent& getRemovedSinkEvent() { ++ return delegate_->getRemovedSinkEvent(); ++ } ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast newSource. ++ */ ++ virtual NewSourceEvent& getNewSourceEvent() { ++ return delegate_->getNewSourceEvent(); ++ } ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast removedSource. ++ */ ++ virtual RemovedSourceEvent& getRemovedSourceEvent() { ++ return delegate_->getRemovedSourceEvent(); ++ } ++ /** ++ * this callback is fired if the number of sink classes changed ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast numberOfSinkClassesChanged. ++ */ ++ virtual NumberOfSinkClassesChangedEvent& getNumberOfSinkClassesChangedEvent() { ++ return delegate_->getNumberOfSinkClassesChangedEvent(); ++ } ++ /** ++ * this callback is fired if the number of source classes changed ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast numberOfSourceClassesChanged. ++ */ ++ virtual NumberOfSourceClassesChangedEvent& getNumberOfSourceClassesChangedEvent() { ++ return delegate_->getNumberOfSourceClassesChangedEvent(); ++ } ++ /** ++ * This callback is called when the ConnectionState of a connection changed. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast mainConnectionStateChanged. ++ */ ++ virtual MainConnectionStateChangedEvent& getMainConnectionStateChangedEvent() { ++ return delegate_->getMainConnectionStateChangedEvent(); ++ } ++ /** ++ * this callback indicates that a sinkSoundProperty has changed. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast mainSinkSoundPropertyChanged. ++ */ ++ virtual MainSinkSoundPropertyChangedEvent& getMainSinkSoundPropertyChangedEvent() { ++ return delegate_->getMainSinkSoundPropertyChangedEvent(); ++ } ++ /** ++ * this callback indicates that a sourceSoundProperty has changed. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast mainSourceSoundPropertyChanged. ++ */ ++ virtual MainSourceSoundPropertyChangedEvent& getMainSourceSoundPropertyChangedEvent() { ++ return delegate_->getMainSourceSoundPropertyChangedEvent(); ++ } ++ /** ++ * this callback is called when the availability of a sink has changed ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast sinkAvailabilityChanged. ++ */ ++ virtual SinkAvailabilityChangedEvent& getSinkAvailabilityChangedEvent() { ++ return delegate_->getSinkAvailabilityChangedEvent(); ++ } ++ /** ++ * this callback is called when the availability of source has changed. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast sourceAvailabilityChanged. ++ */ ++ virtual SourceAvailabilityChangedEvent& getSourceAvailabilityChangedEvent() { ++ return delegate_->getSourceAvailabilityChangedEvent(); ++ } ++ /** ++ * this callback indicates a volume change on the indicated sink ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast volumeChanged. ++ */ ++ virtual VolumeChangedEvent& getVolumeChangedEvent() { ++ return delegate_->getVolumeChangedEvent(); ++ } ++ /** ++ * this callback indicates a mute state change on a sink. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast sinkMuteStateChanged. ++ */ ++ virtual SinkMuteStateChangedEvent& getSinkMuteStateChangedEvent() { ++ return delegate_->getSinkMuteStateChangedEvent(); ++ } ++ /** ++ * is fired if a systemProperty changed ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast systemPropertyChanged. ++ */ ++ virtual SystemPropertyChangedEvent& getSystemPropertyChangedEvent() { ++ return delegate_->getSystemPropertyChangedEvent(); ++ } ++ /** ++ * This callback is fired if the timinginformation for a mainConnectionID changed ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast timingInformationChanged. ++ */ ++ virtual TimingInformationChangedEvent& getTimingInformationChangedEvent() { ++ return delegate_->getTimingInformationChangedEvent(); ++ } ++ /** ++ * This callback is called when a sink is updated. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast sinkUpdated. ++ */ ++ virtual SinkUpdatedEvent& getSinkUpdatedEvent() { ++ return delegate_->getSinkUpdatedEvent(); ++ } ++ /** ++ * This callback is called when a source is updated. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast sourceUpdated. ++ */ ++ virtual SourceUpdatedEvent& getSourceUpdatedEvent() { ++ return delegate_->getSourceUpdatedEvent(); ++ } ++ /** ++ * This callback is called when a notificated value of a sink changes. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast sinkNotification. ++ */ ++ virtual SinkNotificationEvent& getSinkNotificationEvent() { ++ return delegate_->getSinkNotificationEvent(); ++ } ++ /** ++ * This callback is called when a notifcated value of a source changes. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast sourceNotification. ++ */ ++ virtual SourceNotificationEvent& getSourceNotificationEvent() { ++ return delegate_->getSourceNotificationEvent(); ++ } ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast mainSinkNotificationConfigurationChanged. ++ */ ++ virtual MainSinkNotificationConfigurationChangedEvent& getMainSinkNotificationConfigurationChangedEvent() { ++ return delegate_->getMainSinkNotificationConfigurationChangedEvent(); ++ } ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the broadcast mainSourceNotificationConfigurationChanged. ++ */ ++ virtual MainSourceNotificationConfigurationChangedEvent& getMainSourceNotificationConfigurationChangedEvent() { ++ return delegate_->getMainSourceNotificationConfigurationChangedEvent(); ++ } ++ ++ /** ++ * connects a source to sink ++ (at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ * ++ * Calls connect with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void connect(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_mainConnectionID_t& mainConnectionID, am_Error_e& error); ++ /** ++ * Calls connect with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> connectAsync(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, ConnectAsyncCallback callback); ++ /** ++ * disconnects a mainConnection ++ (at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ * ++ * Calls disconnect with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void disconnect(const am_mainConnectionID_t& mainConnectionID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls disconnect with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> disconnectAsync(const am_mainConnectionID_t& mainConnectionID, DisconnectAsyncCallback callback); ++ /** ++ * sets the volume for a sink ++ (at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ * ++ * Calls setVolume with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void setVolume(const am_sinkID_t& sinkID, const am_mainVolume_t& volume, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls setVolume with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> setVolumeAsync(const am_sinkID_t& sinkID, const am_mainVolume_t& volume, SetVolumeAsyncCallback callback); ++ /** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ * ++ * Calls volumeStep with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void volumeStep(const am_sinkID_t& sinkID, const int16_t& volStep, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls volumeStep with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volStep, VolumeStepAsyncCallback callback); ++ /** ++ * sets the mute state of a sink ++ (at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ * ++ * Calls setSinkMuteState with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void setSinkMuteState(const am_sinkID_t& sinkID, const am_MuteState_e& muteState, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls setSinkMuteState with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> setSinkMuteStateAsync(const am_sinkID_t& sinkID, const am_MuteState_e& muteState, SetSinkMuteStateAsyncCallback callback); ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ * ++ * Calls setMainSinkSoundProperty with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void setMainSinkSoundProperty(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls setMainSinkSoundProperty with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> setMainSinkSoundPropertyAsync(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty, SetMainSinkSoundPropertyAsyncCallback callback); ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ * ++ * Calls setMainSourceSoundProperty with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void setMainSourceSoundProperty(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls setMainSourceSoundProperty with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> setMainSourceSoundPropertyAsync(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty, SetMainSourceSoundPropertyAsyncCallback callback); ++ /** ++ * is used to set a specific system property. ++ (at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ * ++ * Calls setSystemProperty with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void setSystemProperty(const am_SystemProperty_s& property, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls setSystemProperty with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> setSystemPropertyAsync(const am_SystemProperty_s& property, SetSystemPropertyAsyncCallback callback); ++ /** ++ * returns the actual list of MainConnections ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ * ++ * Calls getListMainConnections with synchronous semantics. ++ * ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void getListMainConnections(CommonAPI::CallStatus& callStatus, am_MainConnection_L& listConnections, am_Error_e& error); ++ /** ++ * Calls getListMainConnections with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> getListMainConnectionsAsync(GetListMainConnectionsAsyncCallback callback); ++ /** ++ * returns the actual list of Sinks ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ * ++ * Calls getListMainSinks with synchronous semantics. ++ * ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void getListMainSinks(CommonAPI::CallStatus& callStatus, am_SinkType_L& listMainSinks, am_Error_e& error); ++ /** ++ * Calls getListMainSinks with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> getListMainSinksAsync(GetListMainSinksAsyncCallback callback); ++ /** ++ * returns the actual list of Sources ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ * ++ * Calls getListMainSources with synchronous semantics. ++ * ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void getListMainSources(CommonAPI::CallStatus& callStatus, am_SourceType_L& listMainSources, am_Error_e& error); ++ /** ++ * Calls getListMainSources with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> getListMainSourcesAsync(GetListMainSourcesAsyncCallback callback); ++ /** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++ (at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ * ++ * Calls getListMainSinkSoundProperties with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void getListMainSinkSoundProperties(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error); ++ /** ++ * Calls getListMainSinkSoundProperties with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> getListMainSinkSoundPropertiesAsync(const am_sinkID_t& sinkID, GetListMainSinkSoundPropertiesAsyncCallback callback); ++ /** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ * ++ * Calls getListMainSourceSoundProperties with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void getListMainSourceSoundProperties(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error); ++ /** ++ * Calls getListMainSourceSoundProperties with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> getListMainSourceSoundPropertiesAsync(const am_sourceID_t& sourceID, GetListMainSourceSoundPropertiesAsyncCallback callback); ++ /** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ * ++ * Calls getListSourceClasses with synchronous semantics. ++ * ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void getListSourceClasses(CommonAPI::CallStatus& callStatus, am_SourceClass_L& listSourceClasses, am_Error_e& error); ++ /** ++ * Calls getListSourceClasses with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> getListSourceClassesAsync(GetListSourceClassesAsyncCallback callback); ++ /** ++ * This is used to retrieve SinkClass Information of all sink classes ++ (at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ * ++ * Calls getListSinkClasses with synchronous semantics. ++ * ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void getListSinkClasses(CommonAPI::CallStatus& callStatus, am_SinkClass_L& listSinkClasses, am_Error_e& error); ++ /** ++ * Calls getListSinkClasses with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> getListSinkClassesAsync(GetListSinkClassesAsyncCallback callback); ++ /** ++ * Retrieves a complete list of all systemProperties. ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ * ++ * Calls getListSystemProperties with synchronous semantics. ++ * ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void getListSystemProperties(CommonAPI::CallStatus& callStatus, am_SystemProperty_L& listSystemProperties, am_Error_e& error); ++ /** ++ * Calls getListSystemProperties with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> getListSystemPropertiesAsync(GetListSystemPropertiesAsyncCallback callback); ++ /** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++ (at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ * ++ * Calls getTimingInformation with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void getTimingInformation(const am_mainConnectionID_t& mainConnectionID, CommonAPI::CallStatus& callStatus, am_timeSync_t& delay, am_Error_e& error); ++ /** ++ * Calls getTimingInformation with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> getTimingInformationAsync(const am_mainConnectionID_t& mainConnectionID, GetTimingInformationAsyncCallback callback); ++ /** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ * ++ * Calls getListMainSinkNotificationConfigurations with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void getListMainSinkNotificationConfigurations(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); ++ /** ++ * Calls getListMainSinkNotificationConfigurations with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> getListMainSinkNotificationConfigurationsAsync(const am_sinkID_t& sinkID, GetListMainSinkNotificationConfigurationsAsyncCallback callback); ++ /** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ * ++ * Calls getListMainSourceNotificationConfigurations with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void getListMainSourceNotificationConfigurations(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); ++ /** ++ * Calls getListMainSourceNotificationConfigurations with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> getListMainSourceNotificationConfigurationsAsync(const am_sourceID_t& sourceID, GetListMainSourceNotificationConfigurationsAsyncCallback callback); ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ * ++ * Calls setMainSinkNotificationConfiguration with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void setMainSinkNotificationConfiguration(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls setMainSinkNotificationConfiguration with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> setMainSinkNotificationConfigurationAsync(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration, SetMainSinkNotificationConfigurationAsyncCallback callback); ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ * ++ * Calls setMainSourceNotificationConfiguration with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void setMainSourceNotificationConfiguration(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls setMainSourceNotificationConfiguration with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> setMainSourceNotificationConfigurationAsync(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration, SetMainSourceNotificationConfigurationAsyncCallback callback); ++ ++ ++ /** ++ * Returns the CommonAPI address of the remote partner this proxy communicates with. ++ */ ++ virtual std::string getAddress() const; ++ ++ /** ++ * Returns the domain of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getDomain() const; ++ ++ /** ++ * Returns the service ID of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getServiceId() const; ++ ++ /** ++ * Returns the instance ID of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getInstanceId() const; ++ ++ /** ++ * Returns true if the remote partner for this proxy is currently known to be available. ++ */ ++ virtual bool isAvailable() const; ++ ++ /** ++ * Returns true if the remote partner for this proxy is available. ++ */ ++ virtual bool isAvailableBlocking() const; ++ ++ /** ++ * Returns the wrapper class that is used to (de-)register for notifications about ++ * the availability of the remote partner of this proxy. ++ */ ++ virtual CommonAPI::ProxyStatusEvent& getProxyStatusEvent(); ++ ++ /** ++ * Returns the wrapper class that is used to access version information of the remote ++ * partner of this proxy. ++ */ ++ virtual CommonAPI::InterfaceVersionAttribute& getInterfaceVersionAttribute(); ++ ++ private: ++ std::shared_ptr<CommandControlProxyBase> delegate_; ++}; ++ ++#ifdef WIN32 ++ typedef CommandControlProxy<CommonAPI::WINDummyAttributeExtension<CommonAPI::WINDummyAttribute>> CommandControlProxyDefault; ++#else ++ typedef CommandControlProxy<> CommandControlProxyDefault; ++#endif ++ ++ ++// ++// CommandControlProxy Implementation ++// ++template <typename ... _AttributeExtensions> ++CommandControlProxy<_AttributeExtensions...>::CommandControlProxy(std::shared_ptr<CommonAPI::Proxy> delegate): ++ _AttributeExtensions(*(std::dynamic_pointer_cast<CommandControlProxyBase>(delegate)))..., ++ delegate_(std::dynamic_pointer_cast<CommandControlProxyBase>(delegate)) { ++} ++ ++template <typename ... _AttributeExtensions> ++CommandControlProxy<_AttributeExtensions...>::~CommandControlProxy() { ++} ++ ++/** ++ * connects a source to sink ++(at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::connect(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_mainConnectionID_t& mainConnectionID, am_Error_e& error) { ++ delegate_->connect(sourceID, sinkID, callStatus, mainConnectionID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::connectAsync(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, ConnectAsyncCallback callback) { ++ return delegate_->connectAsync(sourceID, sinkID, callback); ++} ++/** ++ * disconnects a mainConnection ++(at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::disconnect(const am_mainConnectionID_t& mainConnectionID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->disconnect(mainConnectionID, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::disconnectAsync(const am_mainConnectionID_t& mainConnectionID, DisconnectAsyncCallback callback) { ++ return delegate_->disconnectAsync(mainConnectionID, callback); ++} ++/** ++ * sets the volume for a sink ++(at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::setVolume(const am_sinkID_t& sinkID, const am_mainVolume_t& volume, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->setVolume(sinkID, volume, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::setVolumeAsync(const am_sinkID_t& sinkID, const am_mainVolume_t& volume, SetVolumeAsyncCallback callback) { ++ return delegate_->setVolumeAsync(sinkID, volume, callback); ++} ++/** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::volumeStep(const am_sinkID_t& sinkID, const int16_t& volStep, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->volumeStep(sinkID, volStep, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volStep, VolumeStepAsyncCallback callback) { ++ return delegate_->volumeStepAsync(sinkID, volStep, callback); ++} ++/** ++ * sets the mute state of a sink ++(at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::setSinkMuteState(const am_sinkID_t& sinkID, const am_MuteState_e& muteState, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->setSinkMuteState(sinkID, muteState, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::setSinkMuteStateAsync(const am_sinkID_t& sinkID, const am_MuteState_e& muteState, SetSinkMuteStateAsyncCallback callback) { ++ return delegate_->setSinkMuteStateAsync(sinkID, muteState, callback); ++} ++/** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++(at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::setMainSinkSoundProperty(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->setMainSinkSoundProperty(sinkID, soundProperty, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::setMainSinkSoundPropertyAsync(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty, SetMainSinkSoundPropertyAsyncCallback callback) { ++ return delegate_->setMainSinkSoundPropertyAsync(sinkID, soundProperty, callback); ++} ++/** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++(at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::setMainSourceSoundProperty(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->setMainSourceSoundProperty(sourceID, soundProperty, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::setMainSourceSoundPropertyAsync(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty, SetMainSourceSoundPropertyAsyncCallback callback) { ++ return delegate_->setMainSourceSoundPropertyAsync(sourceID, soundProperty, callback); ++} ++/** ++ * is used to set a specific system property. ++(at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::setSystemProperty(const am_SystemProperty_s& property, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->setSystemProperty(property, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::setSystemPropertyAsync(const am_SystemProperty_s& property, SetSystemPropertyAsyncCallback callback) { ++ return delegate_->setSystemPropertyAsync(property, callback); ++} ++/** ++ * returns the actual list of MainConnections ++(at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::getListMainConnections(CommonAPI::CallStatus& callStatus, am_MainConnection_L& listConnections, am_Error_e& error) { ++ delegate_->getListMainConnections(callStatus, listConnections, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::getListMainConnectionsAsync(GetListMainConnectionsAsyncCallback callback) { ++ return delegate_->getListMainConnectionsAsync(callback); ++} ++/** ++ * returns the actual list of Sinks ++(at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::getListMainSinks(CommonAPI::CallStatus& callStatus, am_SinkType_L& listMainSinks, am_Error_e& error) { ++ delegate_->getListMainSinks(callStatus, listMainSinks, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::getListMainSinksAsync(GetListMainSinksAsyncCallback callback) { ++ return delegate_->getListMainSinksAsync(callback); ++} ++/** ++ * returns the actual list of Sources ++(at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::getListMainSources(CommonAPI::CallStatus& callStatus, am_SourceType_L& listMainSources, am_Error_e& error) { ++ delegate_->getListMainSources(callStatus, listMainSources, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::getListMainSourcesAsync(GetListMainSourcesAsyncCallback callback) { ++ return delegate_->getListMainSourcesAsync(callback); ++} ++/** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++(at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::getListMainSinkSoundProperties(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error) { ++ delegate_->getListMainSinkSoundProperties(sinkID, callStatus, listSoundProperties, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::getListMainSinkSoundPropertiesAsync(const am_sinkID_t& sinkID, GetListMainSinkSoundPropertiesAsyncCallback callback) { ++ return delegate_->getListMainSinkSoundPropertiesAsync(sinkID, callback); ++} ++/** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++(at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::getListMainSourceSoundProperties(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error) { ++ delegate_->getListMainSourceSoundProperties(sourceID, callStatus, listSourceProperties, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::getListMainSourceSoundPropertiesAsync(const am_sourceID_t& sourceID, GetListMainSourceSoundPropertiesAsyncCallback callback) { ++ return delegate_->getListMainSourceSoundPropertiesAsync(sourceID, callback); ++} ++/** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++(at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::getListSourceClasses(CommonAPI::CallStatus& callStatus, am_SourceClass_L& listSourceClasses, am_Error_e& error) { ++ delegate_->getListSourceClasses(callStatus, listSourceClasses, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::getListSourceClassesAsync(GetListSourceClassesAsyncCallback callback) { ++ return delegate_->getListSourceClassesAsync(callback); ++} ++/** ++ * This is used to retrieve SinkClass Information of all sink classes ++(at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::getListSinkClasses(CommonAPI::CallStatus& callStatus, am_SinkClass_L& listSinkClasses, am_Error_e& error) { ++ delegate_->getListSinkClasses(callStatus, listSinkClasses, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::getListSinkClassesAsync(GetListSinkClassesAsyncCallback callback) { ++ return delegate_->getListSinkClassesAsync(callback); ++} ++/** ++ * Retrieves a complete list of all systemProperties. ++(at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::getListSystemProperties(CommonAPI::CallStatus& callStatus, am_SystemProperty_L& listSystemProperties, am_Error_e& error) { ++ delegate_->getListSystemProperties(callStatus, listSystemProperties, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::getListSystemPropertiesAsync(GetListSystemPropertiesAsyncCallback callback) { ++ return delegate_->getListSystemPropertiesAsync(callback); ++} ++/** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++(at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::getTimingInformation(const am_mainConnectionID_t& mainConnectionID, CommonAPI::CallStatus& callStatus, am_timeSync_t& delay, am_Error_e& error) { ++ delegate_->getTimingInformation(mainConnectionID, callStatus, delay, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::getTimingInformationAsync(const am_mainConnectionID_t& mainConnectionID, GetTimingInformationAsyncCallback callback) { ++ return delegate_->getTimingInformationAsync(mainConnectionID, callback); ++} ++/** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::getListMainSinkNotificationConfigurations(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) { ++ delegate_->getListMainSinkNotificationConfigurations(sinkID, callStatus, listMainNotificationConfigurations, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::getListMainSinkNotificationConfigurationsAsync(const am_sinkID_t& sinkID, GetListMainSinkNotificationConfigurationsAsyncCallback callback) { ++ return delegate_->getListMainSinkNotificationConfigurationsAsync(sinkID, callback); ++} ++/** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::getListMainSourceNotificationConfigurations(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) { ++ delegate_->getListMainSourceNotificationConfigurations(sourceID, callStatus, listMainNotificationConfigurations, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::getListMainSourceNotificationConfigurationsAsync(const am_sourceID_t& sourceID, GetListMainSourceNotificationConfigurationsAsyncCallback callback) { ++ return delegate_->getListMainSourceNotificationConfigurationsAsync(sourceID, callback); ++} ++/** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++(at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::setMainSinkNotificationConfiguration(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->setMainSinkNotificationConfiguration(sinkID, mainNotificationConfiguration, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::setMainSinkNotificationConfigurationAsync(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration, SetMainSinkNotificationConfigurationAsyncCallback callback) { ++ return delegate_->setMainSinkNotificationConfigurationAsync(sinkID, mainNotificationConfiguration, callback); ++} ++/** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++(at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ */ ++template <typename ... _AttributeExtensions> ++void CommandControlProxy<_AttributeExtensions...>::setMainSourceNotificationConfiguration(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->setMainSourceNotificationConfiguration(sourceID, mainNotificationConfiguration, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::setMainSourceNotificationConfigurationAsync(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration, SetMainSourceNotificationConfigurationAsyncCallback callback) { ++ return delegate_->setMainSourceNotificationConfigurationAsync(sourceID, mainNotificationConfiguration, callback); ++} ++ ++template <typename ... _AttributeExtensions> ++std::string CommandControlProxy<_AttributeExtensions...>::getAddress() const { ++ return delegate_->getAddress(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& CommandControlProxy<_AttributeExtensions...>::getDomain() const { ++ return delegate_->getDomain(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& CommandControlProxy<_AttributeExtensions...>::getServiceId() const { ++ return delegate_->getServiceId(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& CommandControlProxy<_AttributeExtensions...>::getInstanceId() const { ++ return delegate_->getInstanceId(); ++} ++ ++template <typename ... _AttributeExtensions> ++bool CommandControlProxy<_AttributeExtensions...>::isAvailable() const { ++ return delegate_->isAvailable(); ++} ++ ++template <typename ... _AttributeExtensions> ++bool CommandControlProxy<_AttributeExtensions...>::isAvailableBlocking() const { ++ return delegate_->isAvailableBlocking(); ++} ++ ++template <typename ... _AttributeExtensions> ++CommonAPI::ProxyStatusEvent& CommandControlProxy<_AttributeExtensions...>::getProxyStatusEvent() { ++ return delegate_->getProxyStatusEvent(); ++} ++ ++template <typename ... _AttributeExtensions> ++CommonAPI::InterfaceVersionAttribute& CommandControlProxy<_AttributeExtensions...>::getInterfaceVersionAttribute() { ++ return delegate_->getInterfaceVersionAttribute(); ++} ++ ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++ ++#endif // ORG_GENIVI_AM_Command_Control_PROXY_H_ +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxyBase.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxyBase.h +new file mode 100644 +index 0000000..767b9e1 +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxyBase.h +@@ -0,0 +1,348 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * The interface towards the Controlling Instance (e.g HMI). It handles the ++ * communication towards the HMI and other system components who need to interact ++ * with the audiomanagement. ++There are two rules that have to be kept in mind ++ * when implementing against this interface: ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Command_Control_PROXY_BASE_H_ ++#define ORG_GENIVI_AM_Command_Control_PROXY_BASE_H_ ++ ++#include "CommandControl.h" ++ ++ ++#include <org/genivi/am.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/InputStream.h> ++#include <CommonAPI/OutputStream.h> ++#include <CommonAPI/SerializableStruct.h> ++#include <cstdint> ++#include <string> ++#include <vector> ++ ++#include <CommonAPI/Event.h> ++#include <CommonAPI/Proxy.h> ++#include <functional> ++#include <future> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++class CommandControlProxyBase: virtual public CommonAPI::Proxy { ++ public: ++ typedef CommonAPI::Event<am_MainConnectionType_s> NewMainConnectionEvent; ++ typedef CommonAPI::Event<am_mainConnectionID_t> RemovedMainConnectionEvent; ++ typedef CommonAPI::Event<am_SinkType_s> NewSinkEvent; ++ typedef CommonAPI::Event<am_sinkID_t> RemovedSinkEvent; ++ typedef CommonAPI::Event<am_SourceType_s> NewSourceEvent; ++ typedef CommonAPI::Event<am_sourceID_t> RemovedSourceEvent; ++ typedef CommonAPI::Event<> NumberOfSinkClassesChangedEvent; ++ typedef CommonAPI::Event<> NumberOfSourceClassesChangedEvent; ++ typedef CommonAPI::Event<am_mainConnectionID_t, am_ConnectionState_e> MainConnectionStateChangedEvent; ++ typedef CommonAPI::Event<am_sinkID_t, am_MainSoundProperty_s> MainSinkSoundPropertyChangedEvent; ++ typedef CommonAPI::Event<am_sourceID_t, am_MainSoundProperty_s> MainSourceSoundPropertyChangedEvent; ++ typedef CommonAPI::Event<am_sinkID_t, am_Availability_s> SinkAvailabilityChangedEvent; ++ typedef CommonAPI::Event<am_sourceID_t, am_Availability_s> SourceAvailabilityChangedEvent; ++ typedef CommonAPI::Event<am_sinkID_t, am_mainVolume_t> VolumeChangedEvent; ++ typedef CommonAPI::Event<am_sinkID_t, am_MuteState_e> SinkMuteStateChangedEvent; ++ typedef CommonAPI::Event<am_SystemProperty_s> SystemPropertyChangedEvent; ++ typedef CommonAPI::Event<am_mainConnectionID_t, am_timeSync_t> TimingInformationChangedEvent; ++ typedef CommonAPI::Event<am_sinkID_t, am_sinkClass_t, am_MainSoundProperty_L> SinkUpdatedEvent; ++ typedef CommonAPI::Event<am_sourceID_t, am_sourceClass_t, am_MainSoundProperty_L> SourceUpdatedEvent; ++ typedef CommonAPI::Event<am_sinkID_t, am_NotificationPayload_s> SinkNotificationEvent; ++ typedef CommonAPI::Event<am_sourceID_t, am_NotificationPayload_s> SourceNotificationEvent; ++ typedef CommonAPI::Event<am_sinkID_t, am_NotificationConfiguration_s> MainSinkNotificationConfigurationChangedEvent; ++ typedef CommonAPI::Event<am_sourceID_t, am_NotificationConfiguration_s> MainSourceNotificationConfigurationChangedEvent; ++ ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_mainConnectionID_t&, const am_Error_e&)> ConnectAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> DisconnectAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> SetVolumeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> VolumeStepAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> SetSinkMuteStateAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> SetMainSinkSoundPropertyAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> SetMainSourceSoundPropertyAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> SetSystemPropertyAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_MainConnection_L&, const am_Error_e&)> GetListMainConnectionsAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_SinkType_L&, const am_Error_e&)> GetListMainSinksAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_SourceType_L&, const am_Error_e&)> GetListMainSourcesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_MainSoundProperty_L&, const am_Error_e&)> GetListMainSinkSoundPropertiesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_MainSoundProperty_L&, const am_Error_e&)> GetListMainSourceSoundPropertiesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_SourceClass_L&, const am_Error_e&)> GetListSourceClassesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_SinkClass_L&, const am_Error_e&)> GetListSinkClassesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_SystemProperty_L&, const am_Error_e&)> GetListSystemPropertiesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_timeSync_t&, const am_Error_e&)> GetTimingInformationAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_NotificationConfiguration_L&, const am_Error_e&)> GetListMainSinkNotificationConfigurationsAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_NotificationConfiguration_L&, const am_Error_e&)> GetListMainSourceNotificationConfigurationsAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> SetMainSinkNotificationConfigurationAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> SetMainSourceNotificationConfigurationAsyncCallback; ++ ++ ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ virtual NewMainConnectionEvent& getNewMainConnectionEvent() = 0; ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ virtual RemovedMainConnectionEvent& getRemovedMainConnectionEvent() = 0; ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ virtual NewSinkEvent& getNewSinkEvent() = 0; ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ virtual RemovedSinkEvent& getRemovedSinkEvent() = 0; ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ virtual NewSourceEvent& getNewSourceEvent() = 0; ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ virtual RemovedSourceEvent& getRemovedSourceEvent() = 0; ++ /** ++ * this callback is fired if the number of sink classes changed ++ */ ++ virtual NumberOfSinkClassesChangedEvent& getNumberOfSinkClassesChangedEvent() = 0; ++ /** ++ * this callback is fired if the number of source classes changed ++ */ ++ virtual NumberOfSourceClassesChangedEvent& getNumberOfSourceClassesChangedEvent() = 0; ++ /** ++ * This callback is called when the ConnectionState of a connection changed. ++ */ ++ virtual MainConnectionStateChangedEvent& getMainConnectionStateChangedEvent() = 0; ++ /** ++ * this callback indicates that a sinkSoundProperty has changed. ++ */ ++ virtual MainSinkSoundPropertyChangedEvent& getMainSinkSoundPropertyChangedEvent() = 0; ++ /** ++ * this callback indicates that a sourceSoundProperty has changed. ++ */ ++ virtual MainSourceSoundPropertyChangedEvent& getMainSourceSoundPropertyChangedEvent() = 0; ++ /** ++ * this callback is called when the availability of a sink has changed ++ */ ++ virtual SinkAvailabilityChangedEvent& getSinkAvailabilityChangedEvent() = 0; ++ /** ++ * this callback is called when the availability of source has changed. ++ */ ++ virtual SourceAvailabilityChangedEvent& getSourceAvailabilityChangedEvent() = 0; ++ /** ++ * this callback indicates a volume change on the indicated sink ++ */ ++ virtual VolumeChangedEvent& getVolumeChangedEvent() = 0; ++ /** ++ * this callback indicates a mute state change on a sink. ++ */ ++ virtual SinkMuteStateChangedEvent& getSinkMuteStateChangedEvent() = 0; ++ /** ++ * is fired if a systemProperty changed ++ */ ++ virtual SystemPropertyChangedEvent& getSystemPropertyChangedEvent() = 0; ++ /** ++ * This callback is fired if the timinginformation for a mainConnectionID changed ++ */ ++ virtual TimingInformationChangedEvent& getTimingInformationChangedEvent() = 0; ++ /** ++ * This callback is called when a sink is updated. ++ */ ++ virtual SinkUpdatedEvent& getSinkUpdatedEvent() = 0; ++ /** ++ * This callback is called when a source is updated. ++ */ ++ virtual SourceUpdatedEvent& getSourceUpdatedEvent() = 0; ++ /** ++ * This callback is called when a notificated value of a sink changes. ++ */ ++ virtual SinkNotificationEvent& getSinkNotificationEvent() = 0; ++ /** ++ * This callback is called when a notifcated value of a source changes. ++ */ ++ virtual SourceNotificationEvent& getSourceNotificationEvent() = 0; ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ virtual MainSinkNotificationConfigurationChangedEvent& getMainSinkNotificationConfigurationChangedEvent() = 0; ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ virtual MainSourceNotificationConfigurationChangedEvent& getMainSourceNotificationConfigurationChangedEvent() = 0; ++ ++ /** ++ * connects a source to sink ++ (at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ */ ++ virtual void connect(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_mainConnectionID_t& mainConnectionID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> connectAsync(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, ConnectAsyncCallback callback) = 0; ++ /** ++ * disconnects a mainConnection ++ (at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ */ ++ virtual void disconnect(const am_mainConnectionID_t& mainConnectionID, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> disconnectAsync(const am_mainConnectionID_t& mainConnectionID, DisconnectAsyncCallback callback) = 0; ++ /** ++ * sets the volume for a sink ++ (at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ */ ++ virtual void setVolume(const am_sinkID_t& sinkID, const am_mainVolume_t& volume, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> setVolumeAsync(const am_sinkID_t& sinkID, const am_mainVolume_t& volume, SetVolumeAsyncCallback callback) = 0; ++ /** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ */ ++ virtual void volumeStep(const am_sinkID_t& sinkID, const int16_t& volStep, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volStep, VolumeStepAsyncCallback callback) = 0; ++ /** ++ * sets the mute state of a sink ++ (at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ */ ++ virtual void setSinkMuteState(const am_sinkID_t& sinkID, const am_MuteState_e& muteState, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> setSinkMuteStateAsync(const am_sinkID_t& sinkID, const am_MuteState_e& muteState, SetSinkMuteStateAsyncCallback callback) = 0; ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ virtual void setMainSinkSoundProperty(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> setMainSinkSoundPropertyAsync(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty, SetMainSinkSoundPropertyAsyncCallback callback) = 0; ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ virtual void setMainSourceSoundProperty(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> setMainSourceSoundPropertyAsync(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty, SetMainSourceSoundPropertyAsyncCallback callback) = 0; ++ /** ++ * is used to set a specific system property. ++ (at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ */ ++ virtual void setSystemProperty(const am_SystemProperty_s& property, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> setSystemPropertyAsync(const am_SystemProperty_s& property, SetSystemPropertyAsyncCallback callback) = 0; ++ /** ++ * returns the actual list of MainConnections ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void getListMainConnections(CommonAPI::CallStatus& callStatus, am_MainConnection_L& listConnections, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> getListMainConnectionsAsync(GetListMainConnectionsAsyncCallback callback) = 0; ++ /** ++ * returns the actual list of Sinks ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ virtual void getListMainSinks(CommonAPI::CallStatus& callStatus, am_SinkType_L& listMainSinks, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> getListMainSinksAsync(GetListMainSinksAsyncCallback callback) = 0; ++ /** ++ * returns the actual list of Sources ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ virtual void getListMainSources(CommonAPI::CallStatus& callStatus, am_SourceType_L& listMainSources, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> getListMainSourcesAsync(GetListMainSourcesAsyncCallback callback) = 0; ++ /** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++ (at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListMainSinkSoundProperties(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> getListMainSinkSoundPropertiesAsync(const am_sinkID_t& sinkID, GetListMainSinkSoundPropertiesAsyncCallback callback) = 0; ++ /** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListMainSourceSoundProperties(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> getListMainSourceSoundPropertiesAsync(const am_sourceID_t& sourceID, GetListMainSourceSoundPropertiesAsyncCallback callback) = 0; ++ /** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListSourceClasses(CommonAPI::CallStatus& callStatus, am_SourceClass_L& listSourceClasses, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> getListSourceClassesAsync(GetListSourceClassesAsyncCallback callback) = 0; ++ /** ++ * This is used to retrieve SinkClass Information of all sink classes ++ (at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListSinkClasses(CommonAPI::CallStatus& callStatus, am_SinkClass_L& listSinkClasses, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> getListSinkClassesAsync(GetListSinkClassesAsyncCallback callback) = 0; ++ /** ++ * Retrieves a complete list of all systemProperties. ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void getListSystemProperties(CommonAPI::CallStatus& callStatus, am_SystemProperty_L& listSystemProperties, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> getListSystemPropertiesAsync(GetListSystemPropertiesAsyncCallback callback) = 0; ++ /** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++ (at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ */ ++ virtual void getTimingInformation(const am_mainConnectionID_t& mainConnectionID, CommonAPI::CallStatus& callStatus, am_timeSync_t& delay, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> getTimingInformationAsync(const am_mainConnectionID_t& mainConnectionID, GetTimingInformationAsyncCallback callback) = 0; ++ /** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ */ ++ virtual void getListMainSinkNotificationConfigurations(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> getListMainSinkNotificationConfigurationsAsync(const am_sinkID_t& sinkID, GetListMainSinkNotificationConfigurationsAsyncCallback callback) = 0; ++ /** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ */ ++ virtual void getListMainSourceNotificationConfigurations(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> getListMainSourceNotificationConfigurationsAsync(const am_sourceID_t& sourceID, GetListMainSourceNotificationConfigurationsAsyncCallback callback) = 0; ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ */ ++ virtual void setMainSinkNotificationConfiguration(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> setMainSinkNotificationConfigurationAsync(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration, SetMainSinkNotificationConfigurationAsyncCallback callback) = 0; ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ */ ++ virtual void setMainSourceNotificationConfiguration(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> setMainSourceNotificationConfigurationAsync(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration, SetMainSourceNotificationConfigurationAsyncCallback callback) = 0; ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Command_Control_PROXY_BASE_H_ +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStub.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStub.h +new file mode 100644 +index 0000000..4e15ce0 +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStub.h +@@ -0,0 +1,492 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * The interface towards the Controlling Instance (e.g HMI). It handles the ++ * communication towards the HMI and other system components who need to interact ++ * with the audiomanagement. ++There are two rules that have to be kept in mind ++ * when implementing against this interface: ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Command_Control_STUB_H_ ++#define ORG_GENIVI_AM_Command_Control_STUB_H_ ++ ++ ++ ++#include <org/genivi/am.h> ++ ++#include "CommandControl.h" ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/InputStream.h> ++#include <CommonAPI/OutputStream.h> ++#include <CommonAPI/SerializableStruct.h> ++#include <cstdint> ++#include <string> ++#include <unordered_set> ++#include <vector> ++ ++#include <CommonAPI/Stub.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++/** ++ * Receives messages from remote and handles all dispatching of deserialized calls ++ * to a stub for the service CommandControl. Also provides means to send broadcasts ++ * and attribute-changed-notifications of observable attributes as defined by this service. ++ * An application developer should not need to bother with this class. ++ */ ++class CommandControlStubAdapter: virtual public CommonAPI::StubAdapter, public CommandControl { ++ public: ++ ++ /** ++ * Sends a broadcast event for newMainConnection. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireNewMainConnectionEvent(const am_MainConnectionType_s& mainConnection) = 0; ++ /** ++ * Sends a broadcast event for removedMainConnection. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireRemovedMainConnectionEvent(const am_mainConnectionID_t& mainConnection) = 0; ++ /** ++ * Sends a broadcast event for newSink. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireNewSinkEvent(const am_SinkType_s& sink) = 0; ++ /** ++ * Sends a broadcast event for removedSink. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireRemovedSinkEvent(const am_sinkID_t& sinkID) = 0; ++ /** ++ * Sends a broadcast event for newSource. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireNewSourceEvent(const am_SourceType_s& source) = 0; ++ /** ++ * Sends a broadcast event for removedSource. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireRemovedSourceEvent(const am_sourceID_t& source) = 0; ++ /** ++ * Sends a broadcast event for numberOfSinkClassesChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireNumberOfSinkClassesChangedEvent() = 0; ++ /** ++ * Sends a broadcast event for numberOfSourceClassesChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireNumberOfSourceClassesChangedEvent() = 0; ++ /** ++ * Sends a broadcast event for mainConnectionStateChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireMainConnectionStateChangedEvent(const am_mainConnectionID_t& connectionID, const am_ConnectionState_e& connectionState) = 0; ++ /** ++ * Sends a broadcast event for mainSinkSoundPropertyChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireMainSinkSoundPropertyChangedEvent(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty) = 0; ++ /** ++ * Sends a broadcast event for mainSourceSoundPropertyChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireMainSourceSoundPropertyChangedEvent(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty) = 0; ++ /** ++ * Sends a broadcast event for sinkAvailabilityChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireSinkAvailabilityChangedEvent(const am_sinkID_t& sinkID, const am_Availability_s& availability) = 0; ++ /** ++ * Sends a broadcast event for sourceAvailabilityChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireSourceAvailabilityChangedEvent(const am_sourceID_t& sourceID, const am_Availability_s& availability) = 0; ++ /** ++ * Sends a broadcast event for volumeChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireVolumeChangedEvent(const am_sinkID_t& sinkID, const am_mainVolume_t& volume) = 0; ++ /** ++ * Sends a broadcast event for sinkMuteStateChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireSinkMuteStateChangedEvent(const am_sinkID_t& sinkID, const am_MuteState_e& muteState) = 0; ++ /** ++ * Sends a broadcast event for systemPropertyChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireSystemPropertyChangedEvent(const am_SystemProperty_s& systemProperty) = 0; ++ /** ++ * Sends a broadcast event for timingInformationChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireTimingInformationChangedEvent(const am_mainConnectionID_t& mainConnectionID, const am_timeSync_t& time) = 0; ++ /** ++ * Sends a broadcast event for sinkUpdated. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireSinkUpdatedEvent(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_MainSoundProperty_L& listMainSoundProperties) = 0; ++ /** ++ * Sends a broadcast event for sourceUpdated. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireSourceUpdatedEvent(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_MainSoundProperty_L& listMainSoundProperties) = 0; ++ /** ++ * Sends a broadcast event for sinkNotification. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireSinkNotificationEvent(const am_sinkID_t& sinkID, const am_NotificationPayload_s& notification) = 0; ++ /** ++ * Sends a broadcast event for sourceNotification. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireSourceNotificationEvent(const am_sourceID_t& sourceID, const am_NotificationPayload_s& notification) = 0; ++ /** ++ * Sends a broadcast event for mainSinkNotificationConfigurationChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireMainSinkNotificationConfigurationChangedEvent(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration) = 0; ++ /** ++ * Sends a broadcast event for mainSourceNotificationConfigurationChanged. Should not be called directly. ++ * Instead, the "fire<broadcastName>Event" methods of the stub should be used. ++ */ ++ virtual void fireMainSourceNotificationConfigurationChangedEvent(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration) = 0; ++ ++ ++ virtual void deactivateManagedInstances() = 0; ++protected: ++ /** ++ * Defines properties for storing the ClientIds of clients / proxies that have ++ * subscribed to the selective broadcasts ++ */ ++}; ++ ++ ++/** ++ * Defines the necessary callbacks to handle remote set events related to the attributes ++ * defined in the IDL description for CommandControl. ++ * For each attribute two callbacks are defined: ++ * - a verification callback that allows to verify the requested value and to prevent setting ++ * e.g. an invalid value ("onRemoteSet<AttributeName>"). ++ * - an action callback to do local work after the attribute value has been changed ++ * ("onRemote<AttributeName>Changed"). ++ * ++ * This class and the one below are the ones an application developer needs to have ++ * a look at if he wants to implement a service. ++ */ ++class CommandControlStubRemoteEvent { ++ public: ++ virtual ~CommandControlStubRemoteEvent() { } ++ ++}; ++ ++ ++/** ++ * Defines the interface that must be implemented by any class that should provide ++ * the service CommandControl to remote clients. ++ * This class and the one above are the ones an application developer needs to have ++ * a look at if he wants to implement a service. ++ */ ++class CommandControlStub: public virtual CommonAPI::Stub<CommandControlStubAdapter, CommandControlStubRemoteEvent> { ++public: ++ virtual ~CommandControlStub() { } ++ virtual const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) = 0; ++ ++ ++ /** ++ * connects a source to sink ++ (at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ */ ++ /// This is the method that will be called on remote calls on the method connect. ++ virtual void connect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID, am_Error_e& error) = 0; ++ /** ++ * disconnects a mainConnection ++ (at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ */ ++ /// This is the method that will be called on remote calls on the method disconnect. ++ virtual void disconnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_mainConnectionID_t mainConnectionID, am_Error_e& error) = 0; ++ /** ++ * sets the volume for a sink ++ (at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ */ ++ /// This is the method that will be called on remote calls on the method setVolume. ++ virtual void setVolume(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_mainVolume_t volume, am_Error_e& error) = 0; ++ /** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ */ ++ /// This is the method that will be called on remote calls on the method volumeStep. ++ virtual void volumeStep(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, int16_t volStep, am_Error_e& error) = 0; ++ /** ++ * sets the mute state of a sink ++ (at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ */ ++ /// This is the method that will be called on remote calls on the method setSinkMuteState. ++ virtual void setSinkMuteState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MuteState_e muteState, am_Error_e& error) = 0; ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ /// This is the method that will be called on remote calls on the method setMainSinkSoundProperty. ++ virtual void setMainSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MainSoundProperty_s soundProperty, am_Error_e& error) = 0; ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ /// This is the method that will be called on remote calls on the method setMainSourceSoundProperty. ++ virtual void setMainSourceSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_MainSoundProperty_s soundProperty, am_Error_e& error) = 0; ++ /** ++ * is used to set a specific system property. ++ (at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ */ ++ /// This is the method that will be called on remote calls on the method setSystemProperty. ++ virtual void setSystemProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SystemProperty_s property, am_Error_e& error) = 0; ++ /** ++ * returns the actual list of MainConnections ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ /// This is the method that will be called on remote calls on the method getListMainConnections. ++ virtual void getListMainConnections(const std::shared_ptr<CommonAPI::ClientId> clientId, am_MainConnection_L& listConnections, am_Error_e& error) = 0; ++ /** ++ * returns the actual list of Sinks ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ /// This is the method that will be called on remote calls on the method getListMainSinks. ++ virtual void getListMainSinks(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SinkType_L& listMainSinks, am_Error_e& error) = 0; ++ /** ++ * returns the actual list of Sources ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ /// This is the method that will be called on remote calls on the method getListMainSources. ++ virtual void getListMainSources(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SourceType_L& listMainSources, am_Error_e& error) = 0; ++ /** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++ (at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ */ ++ /// This is the method that will be called on remote calls on the method getListMainSinkSoundProperties. ++ virtual void getListMainSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error) = 0; ++ /** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ /// This is the method that will be called on remote calls on the method getListMainSourceSoundProperties. ++ virtual void getListMainSourceSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error) = 0; ++ /** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ /// This is the method that will be called on remote calls on the method getListSourceClasses. ++ virtual void getListSourceClasses(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SourceClass_L& listSourceClasses, am_Error_e& error) = 0; ++ /** ++ * This is used to retrieve SinkClass Information of all sink classes ++ (at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ */ ++ /// This is the method that will be called on remote calls on the method getListSinkClasses. ++ virtual void getListSinkClasses(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SinkClass_L& listSinkClasses, am_Error_e& error) = 0; ++ /** ++ * Retrieves a complete list of all systemProperties. ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ /// This is the method that will be called on remote calls on the method getListSystemProperties. ++ virtual void getListSystemProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SystemProperty_L& listSystemProperties, am_Error_e& error) = 0; ++ /** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++ (at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ */ ++ /// This is the method that will be called on remote calls on the method getTimingInformation. ++ virtual void getTimingInformation(const std::shared_ptr<CommonAPI::ClientId> clientId, am_mainConnectionID_t mainConnectionID, am_timeSync_t& delay, am_Error_e& error) = 0; ++ /** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ */ ++ /// This is the method that will be called on remote calls on the method getListMainSinkNotificationConfigurations. ++ virtual void getListMainSinkNotificationConfigurations(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) = 0; ++ /** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ */ ++ /// This is the method that will be called on remote calls on the method getListMainSourceNotificationConfigurations. ++ virtual void getListMainSourceNotificationConfigurations(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) = 0; ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ */ ++ /// This is the method that will be called on remote calls on the method setMainSinkNotificationConfiguration. ++ virtual void setMainSinkNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error) = 0; ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ */ ++ /// This is the method that will be called on remote calls on the method setMainSourceNotificationConfiguration. ++ virtual void setMainSourceNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error) = 0; ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ /// Sends a broadcast event for newMainConnection. ++ virtual void fireNewMainConnectionEvent(const am_MainConnectionType_s& mainConnection) = 0; ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ /// Sends a broadcast event for removedMainConnection. ++ virtual void fireRemovedMainConnectionEvent(const am_mainConnectionID_t& mainConnection) = 0; ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ /// Sends a broadcast event for newSink. ++ virtual void fireNewSinkEvent(const am_SinkType_s& sink) = 0; ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ /// Sends a broadcast event for removedSink. ++ virtual void fireRemovedSinkEvent(const am_sinkID_t& sinkID) = 0; ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ /// Sends a broadcast event for newSource. ++ virtual void fireNewSourceEvent(const am_SourceType_s& source) = 0; ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ /// Sends a broadcast event for removedSource. ++ virtual void fireRemovedSourceEvent(const am_sourceID_t& source) = 0; ++ /** ++ * this callback is fired if the number of sink classes changed ++ */ ++ /// Sends a broadcast event for numberOfSinkClassesChanged. ++ virtual void fireNumberOfSinkClassesChangedEvent() = 0; ++ /** ++ * this callback is fired if the number of source classes changed ++ */ ++ /// Sends a broadcast event for numberOfSourceClassesChanged. ++ virtual void fireNumberOfSourceClassesChangedEvent() = 0; ++ /** ++ * This callback is called when the ConnectionState of a connection changed. ++ */ ++ /// Sends a broadcast event for mainConnectionStateChanged. ++ virtual void fireMainConnectionStateChangedEvent(const am_mainConnectionID_t& connectionID, const am_ConnectionState_e& connectionState) = 0; ++ /** ++ * this callback indicates that a sinkSoundProperty has changed. ++ */ ++ /// Sends a broadcast event for mainSinkSoundPropertyChanged. ++ virtual void fireMainSinkSoundPropertyChangedEvent(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty) = 0; ++ /** ++ * this callback indicates that a sourceSoundProperty has changed. ++ */ ++ /// Sends a broadcast event for mainSourceSoundPropertyChanged. ++ virtual void fireMainSourceSoundPropertyChangedEvent(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty) = 0; ++ /** ++ * this callback is called when the availability of a sink has changed ++ */ ++ /// Sends a broadcast event for sinkAvailabilityChanged. ++ virtual void fireSinkAvailabilityChangedEvent(const am_sinkID_t& sinkID, const am_Availability_s& availability) = 0; ++ /** ++ * this callback is called when the availability of source has changed. ++ */ ++ /// Sends a broadcast event for sourceAvailabilityChanged. ++ virtual void fireSourceAvailabilityChangedEvent(const am_sourceID_t& sourceID, const am_Availability_s& availability) = 0; ++ /** ++ * this callback indicates a volume change on the indicated sink ++ */ ++ /// Sends a broadcast event for volumeChanged. ++ virtual void fireVolumeChangedEvent(const am_sinkID_t& sinkID, const am_mainVolume_t& volume) = 0; ++ /** ++ * this callback indicates a mute state change on a sink. ++ */ ++ /// Sends a broadcast event for sinkMuteStateChanged. ++ virtual void fireSinkMuteStateChangedEvent(const am_sinkID_t& sinkID, const am_MuteState_e& muteState) = 0; ++ /** ++ * is fired if a systemProperty changed ++ */ ++ /// Sends a broadcast event for systemPropertyChanged. ++ virtual void fireSystemPropertyChangedEvent(const am_SystemProperty_s& systemProperty) = 0; ++ /** ++ * This callback is fired if the timinginformation for a mainConnectionID changed ++ */ ++ /// Sends a broadcast event for timingInformationChanged. ++ virtual void fireTimingInformationChangedEvent(const am_mainConnectionID_t& mainConnectionID, const am_timeSync_t& time) = 0; ++ /** ++ * This callback is called when a sink is updated. ++ */ ++ /// Sends a broadcast event for sinkUpdated. ++ virtual void fireSinkUpdatedEvent(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_MainSoundProperty_L& listMainSoundProperties) = 0; ++ /** ++ * This callback is called when a source is updated. ++ */ ++ /// Sends a broadcast event for sourceUpdated. ++ virtual void fireSourceUpdatedEvent(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_MainSoundProperty_L& listMainSoundProperties) = 0; ++ /** ++ * This callback is called when a notificated value of a sink changes. ++ */ ++ /// Sends a broadcast event for sinkNotification. ++ virtual void fireSinkNotificationEvent(const am_sinkID_t& sinkID, const am_NotificationPayload_s& notification) = 0; ++ /** ++ * This callback is called when a notifcated value of a source changes. ++ */ ++ /// Sends a broadcast event for sourceNotification. ++ virtual void fireSourceNotificationEvent(const am_sourceID_t& sourceID, const am_NotificationPayload_s& notification) = 0; ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ /// Sends a broadcast event for mainSinkNotificationConfigurationChanged. ++ virtual void fireMainSinkNotificationConfigurationChangedEvent(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration) = 0; ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ /// Sends a broadcast event for mainSourceNotificationConfigurationChanged. ++ virtual void fireMainSourceNotificationConfigurationChangedEvent(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration) = 0; ++ ++ using CommonAPI::Stub<CommandControlStubAdapter, CommandControlStubRemoteEvent>::initStubAdapter; ++ typedef CommonAPI::Stub<CommandControlStubAdapter, CommandControlStubRemoteEvent>::StubAdapterType StubAdapterType; ++ typedef CommonAPI::Stub<CommandControlStubAdapter, CommandControlStubRemoteEvent>::RemoteEventHandlerType RemoteEventHandlerType; ++ typedef CommandControlStubRemoteEvent RemoteEventType; ++ typedef CommandControl StubInterface; ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Command_Control_STUB_H_ +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.cpp b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.cpp +new file mode 100644 +index 0000000..cca1a5e +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.cpp +@@ -0,0 +1,456 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++#include <org/genivi/am/CommandControlStubDefault.h> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++CommandControlStubDefault::CommandControlStubDefault(): ++ remoteEventHandler_(this), ++ interfaceVersion_(CommandControl::getInterfaceVersion()) { ++} ++ ++const CommonAPI::Version& CommandControlStubDefault::getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) { ++ return interfaceVersion_; ++} ++ ++CommandControlStubRemoteEvent* CommandControlStubDefault::initStubAdapter(const std::shared_ptr<CommandControlStubAdapter>& stubAdapter) { ++ CommonAPI::Stub<CommandControlStubAdapter, CommandControlStubRemoteEvent>::stubAdapter_ = stubAdapter; ++ return &remoteEventHandler_; ++} ++ ++ ++/** ++ * connects a source to sink ++(at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ */ ++void CommandControlStubDefault::connect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID, am_Error_e& error) { ++ // Call old style methods in default ++ connect(sourceID, sinkID, mainConnectionID, error); ++} ++void CommandControlStubDefault::connect(am_sourceID_t sourceID, am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * disconnects a mainConnection ++(at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ */ ++void CommandControlStubDefault::disconnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_mainConnectionID_t mainConnectionID, am_Error_e& error) { ++ // Call old style methods in default ++ disconnect(mainConnectionID, error); ++} ++void CommandControlStubDefault::disconnect(am_mainConnectionID_t mainConnectionID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * sets the volume for a sink ++(at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ */ ++void CommandControlStubDefault::setVolume(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_mainVolume_t volume, am_Error_e& error) { ++ // Call old style methods in default ++ setVolume(sinkID, volume, error); ++} ++void CommandControlStubDefault::setVolume(am_sinkID_t sinkID, am_mainVolume_t volume, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ */ ++void CommandControlStubDefault::volumeStep(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, int16_t volStep, am_Error_e& error) { ++ // Call old style methods in default ++ volumeStep(sinkID, volStep, error); ++} ++void CommandControlStubDefault::volumeStep(am_sinkID_t sinkID, int16_t volStep, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * sets the mute state of a sink ++(at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ */ ++void CommandControlStubDefault::setSinkMuteState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MuteState_e muteState, am_Error_e& error) { ++ // Call old style methods in default ++ setSinkMuteState(sinkID, muteState, error); ++} ++void CommandControlStubDefault::setSinkMuteState(am_sinkID_t sinkID, am_MuteState_e muteState, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++(at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++void CommandControlStubDefault::setMainSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MainSoundProperty_s soundProperty, am_Error_e& error) { ++ // Call old style methods in default ++ setMainSinkSoundProperty(sinkID, soundProperty, error); ++} ++void CommandControlStubDefault::setMainSinkSoundProperty(am_sinkID_t sinkID, am_MainSoundProperty_s soundProperty, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++(at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++void CommandControlStubDefault::setMainSourceSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_MainSoundProperty_s soundProperty, am_Error_e& error) { ++ // Call old style methods in default ++ setMainSourceSoundProperty(sourceID, soundProperty, error); ++} ++void CommandControlStubDefault::setMainSourceSoundProperty(am_sourceID_t sourceID, am_MainSoundProperty_s soundProperty, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * is used to set a specific system property. ++(at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ */ ++void CommandControlStubDefault::setSystemProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SystemProperty_s property, am_Error_e& error) { ++ // Call old style methods in default ++ setSystemProperty(property, error); ++} ++void CommandControlStubDefault::setSystemProperty(am_SystemProperty_s property, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * returns the actual list of MainConnections ++(at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++void CommandControlStubDefault::getListMainConnections(const std::shared_ptr<CommonAPI::ClientId> clientId, am_MainConnection_L& listConnections, am_Error_e& error) { ++ // Call old style methods in default ++ getListMainConnections(listConnections, error); ++} ++void CommandControlStubDefault::getListMainConnections(am_MainConnection_L& listConnections, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * returns the actual list of Sinks ++(at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++void CommandControlStubDefault::getListMainSinks(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SinkType_L& listMainSinks, am_Error_e& error) { ++ // Call old style methods in default ++ getListMainSinks(listMainSinks, error); ++} ++void CommandControlStubDefault::getListMainSinks(am_SinkType_L& listMainSinks, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * returns the actual list of Sources ++(at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++void CommandControlStubDefault::getListMainSources(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SourceType_L& listMainSources, am_Error_e& error) { ++ // Call old style methods in default ++ getListMainSources(listMainSources, error); ++} ++void CommandControlStubDefault::getListMainSources(am_SourceType_L& listMainSources, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++(at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ */ ++void CommandControlStubDefault::getListMainSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error) { ++ // Call old style methods in default ++ getListMainSinkSoundProperties(sinkID, listSoundProperties, error); ++} ++void CommandControlStubDefault::getListMainSinkSoundProperties(am_sinkID_t sinkID, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++(at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++void CommandControlStubDefault::getListMainSourceSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error) { ++ // Call old style methods in default ++ getListMainSourceSoundProperties(sourceID, listSourceProperties, error); ++} ++void CommandControlStubDefault::getListMainSourceSoundProperties(am_sourceID_t sourceID, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++(at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++void CommandControlStubDefault::getListSourceClasses(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SourceClass_L& listSourceClasses, am_Error_e& error) { ++ // Call old style methods in default ++ getListSourceClasses(listSourceClasses, error); ++} ++void CommandControlStubDefault::getListSourceClasses(am_SourceClass_L& listSourceClasses, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * This is used to retrieve SinkClass Information of all sink classes ++(at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ */ ++void CommandControlStubDefault::getListSinkClasses(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SinkClass_L& listSinkClasses, am_Error_e& error) { ++ // Call old style methods in default ++ getListSinkClasses(listSinkClasses, error); ++} ++void CommandControlStubDefault::getListSinkClasses(am_SinkClass_L& listSinkClasses, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * Retrieves a complete list of all systemProperties. ++(at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++void CommandControlStubDefault::getListSystemProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SystemProperty_L& listSystemProperties, am_Error_e& error) { ++ // Call old style methods in default ++ getListSystemProperties(listSystemProperties, error); ++} ++void CommandControlStubDefault::getListSystemProperties(am_SystemProperty_L& listSystemProperties, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++(at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ */ ++void CommandControlStubDefault::getTimingInformation(const std::shared_ptr<CommonAPI::ClientId> clientId, am_mainConnectionID_t mainConnectionID, am_timeSync_t& delay, am_Error_e& error) { ++ // Call old style methods in default ++ getTimingInformation(mainConnectionID, delay, error); ++} ++void CommandControlStubDefault::getTimingInformation(am_mainConnectionID_t mainConnectionID, am_timeSync_t& delay, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ */ ++void CommandControlStubDefault::getListMainSinkNotificationConfigurations(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) { ++ // Call old style methods in default ++ getListMainSinkNotificationConfigurations(sinkID, listMainNotificationConfigurations, error); ++} ++void CommandControlStubDefault::getListMainSinkNotificationConfigurations(am_sinkID_t sinkID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ */ ++void CommandControlStubDefault::getListMainSourceNotificationConfigurations(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) { ++ // Call old style methods in default ++ getListMainSourceNotificationConfigurations(sourceID, listMainNotificationConfigurations, error); ++} ++void CommandControlStubDefault::getListMainSourceNotificationConfigurations(am_sourceID_t sourceID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++(at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ */ ++void CommandControlStubDefault::setMainSinkNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error) { ++ // Call old style methods in default ++ setMainSinkNotificationConfiguration(sinkID, mainNotificationConfiguration, error); ++} ++void CommandControlStubDefault::setMainSinkNotificationConfiguration(am_sinkID_t sinkID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++(at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ */ ++void CommandControlStubDefault::setMainSourceNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error) { ++ // Call old style methods in default ++ setMainSourceNotificationConfiguration(sourceID, mainNotificationConfiguration, error); ++} ++void CommandControlStubDefault::setMainSourceNotificationConfiguration(am_sourceID_t sourceID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error) { ++ // No operation in default ++} ++ ++ ++/** ++ * Callback that is called when the number of connections change ++ */ ++void CommandControlStubDefault::fireNewMainConnectionEvent(const am_MainConnectionType_s& mainConnection) { ++ stubAdapter_->fireNewMainConnectionEvent(mainConnection); ++} ++/** ++ * Callback that is called when the number of connections change ++ */ ++void CommandControlStubDefault::fireRemovedMainConnectionEvent(const am_mainConnectionID_t& mainConnection) { ++ stubAdapter_->fireRemovedMainConnectionEvent(mainConnection); ++} ++/** ++ * Callback that is called when the number of sinks change ++ */ ++void CommandControlStubDefault::fireNewSinkEvent(const am_SinkType_s& sink) { ++ stubAdapter_->fireNewSinkEvent(sink); ++} ++/** ++ * Callback that is called when the number of sinks change ++ */ ++void CommandControlStubDefault::fireRemovedSinkEvent(const am_sinkID_t& sinkID) { ++ stubAdapter_->fireRemovedSinkEvent(sinkID); ++} ++/** ++ * Callback that is called when the number of sources change ++ */ ++void CommandControlStubDefault::fireNewSourceEvent(const am_SourceType_s& source) { ++ stubAdapter_->fireNewSourceEvent(source); ++} ++/** ++ * Callback that is called when the number of sources change ++ */ ++void CommandControlStubDefault::fireRemovedSourceEvent(const am_sourceID_t& source) { ++ stubAdapter_->fireRemovedSourceEvent(source); ++} ++/** ++ * this callback is fired if the number of sink classes changed ++ */ ++void CommandControlStubDefault::fireNumberOfSinkClassesChangedEvent() { ++ stubAdapter_->fireNumberOfSinkClassesChangedEvent(); ++} ++/** ++ * this callback is fired if the number of source classes changed ++ */ ++void CommandControlStubDefault::fireNumberOfSourceClassesChangedEvent() { ++ stubAdapter_->fireNumberOfSourceClassesChangedEvent(); ++} ++/** ++ * This callback is called when the ConnectionState of a connection changed. ++ */ ++void CommandControlStubDefault::fireMainConnectionStateChangedEvent(const am_mainConnectionID_t& connectionID, const am_ConnectionState_e& connectionState) { ++ stubAdapter_->fireMainConnectionStateChangedEvent(connectionID, connectionState); ++} ++/** ++ * this callback indicates that a sinkSoundProperty has changed. ++ */ ++void CommandControlStubDefault::fireMainSinkSoundPropertyChangedEvent(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty) { ++ stubAdapter_->fireMainSinkSoundPropertyChangedEvent(sinkID, soundProperty); ++} ++/** ++ * this callback indicates that a sourceSoundProperty has changed. ++ */ ++void CommandControlStubDefault::fireMainSourceSoundPropertyChangedEvent(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty) { ++ stubAdapter_->fireMainSourceSoundPropertyChangedEvent(sourceID, soundProperty); ++} ++/** ++ * this callback is called when the availability of a sink has changed ++ */ ++void CommandControlStubDefault::fireSinkAvailabilityChangedEvent(const am_sinkID_t& sinkID, const am_Availability_s& availability) { ++ stubAdapter_->fireSinkAvailabilityChangedEvent(sinkID, availability); ++} ++/** ++ * this callback is called when the availability of source has changed. ++ */ ++void CommandControlStubDefault::fireSourceAvailabilityChangedEvent(const am_sourceID_t& sourceID, const am_Availability_s& availability) { ++ stubAdapter_->fireSourceAvailabilityChangedEvent(sourceID, availability); ++} ++/** ++ * this callback indicates a volume change on the indicated sink ++ */ ++void CommandControlStubDefault::fireVolumeChangedEvent(const am_sinkID_t& sinkID, const am_mainVolume_t& volume) { ++ stubAdapter_->fireVolumeChangedEvent(sinkID, volume); ++} ++/** ++ * this callback indicates a mute state change on a sink. ++ */ ++void CommandControlStubDefault::fireSinkMuteStateChangedEvent(const am_sinkID_t& sinkID, const am_MuteState_e& muteState) { ++ stubAdapter_->fireSinkMuteStateChangedEvent(sinkID, muteState); ++} ++/** ++ * is fired if a systemProperty changed ++ */ ++void CommandControlStubDefault::fireSystemPropertyChangedEvent(const am_SystemProperty_s& systemProperty) { ++ stubAdapter_->fireSystemPropertyChangedEvent(systemProperty); ++} ++/** ++ * This callback is fired if the timinginformation for a mainConnectionID changed ++ */ ++void CommandControlStubDefault::fireTimingInformationChangedEvent(const am_mainConnectionID_t& mainConnectionID, const am_timeSync_t& time) { ++ stubAdapter_->fireTimingInformationChangedEvent(mainConnectionID, time); ++} ++/** ++ * This callback is called when a sink is updated. ++ */ ++void CommandControlStubDefault::fireSinkUpdatedEvent(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_MainSoundProperty_L& listMainSoundProperties) { ++ stubAdapter_->fireSinkUpdatedEvent(sinkID, sinkClassID, listMainSoundProperties); ++} ++/** ++ * This callback is called when a source is updated. ++ */ ++void CommandControlStubDefault::fireSourceUpdatedEvent(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_MainSoundProperty_L& listMainSoundProperties) { ++ stubAdapter_->fireSourceUpdatedEvent(sourceID, sourceClassID, listMainSoundProperties); ++} ++/** ++ * This callback is called when a notificated value of a sink changes. ++ */ ++void CommandControlStubDefault::fireSinkNotificationEvent(const am_sinkID_t& sinkID, const am_NotificationPayload_s& notification) { ++ stubAdapter_->fireSinkNotificationEvent(sinkID, notification); ++} ++/** ++ * This callback is called when a notifcated value of a source changes. ++ */ ++void CommandControlStubDefault::fireSourceNotificationEvent(const am_sourceID_t& sourceID, const am_NotificationPayload_s& notification) { ++ stubAdapter_->fireSourceNotificationEvent(sourceID, notification); ++} ++/** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++void CommandControlStubDefault::fireMainSinkNotificationConfigurationChangedEvent(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration) { ++ stubAdapter_->fireMainSinkNotificationConfigurationChangedEvent(sinkID, mainNotificationConfiguration); ++} ++/** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++void CommandControlStubDefault::fireMainSourceNotificationConfigurationChangedEvent(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration) { ++ stubAdapter_->fireMainSourceNotificationConfigurationChangedEvent(sourceID, mainNotificationConfiguration); ++} ++ ++ ++CommandControlStubDefault::RemoteEventHandler::RemoteEventHandler(CommandControlStubDefault* defaultStub): ++ defaultStub_(defaultStub) { ++} ++ ++} // namespace am ++} // namespace genivi ++} // namespace org +diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.h +new file mode 100644 +index 0000000..a6d46f8 +--- /dev/null ++++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.h +@@ -0,0 +1,336 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * The interface towards the Controlling Instance (e.g HMI). It handles the ++ * communication towards the HMI and other system components who need to interact ++ * with the audiomanagement. ++There are two rules that have to be kept in mind ++ * when implementing against this interface: ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Command_Control_STUB_DEFAULT_H_ ++#define ORG_GENIVI_AM_Command_Control_STUB_DEFAULT_H_ ++ ++ ++#include <org/genivi/am/CommandControlStub.h> ++#include <sstream> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++/** ++ * Provides a default implementation for CommandControlStubRemoteEvent and ++ * CommandControlStub. Method callbacks have an empty implementation, ++ * remote set calls on attributes will always change the value of the attribute ++ * to the one received. ++ * ++ * Override this stub if you only want to provide a subset of the functionality ++ * that would be defined for this service, and/or if you do not need any non-default ++ * behaviour. ++ */ ++class CommandControlStubDefault : public virtual CommandControlStub { ++public: ++ CommandControlStubDefault(); ++ ++ CommandControlStubRemoteEvent* initStubAdapter(const std::shared_ptr<CommandControlStubAdapter>& stubAdapter); ++ ++ const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId); ++ ++ ++ /** ++ * connects a source to sink ++ (at)return E_OK on success, E_NOT_POSSIBLE on ++ * failure, E_ALREADY_EXISTS if the connection does already exists ++ */ ++ virtual void connect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID, am_Error_e& error); ++ virtual void connect(am_sourceID_t sourceID, am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID, am_Error_e& error); ++ ++ /** ++ * disconnects a mainConnection ++ (at)return E_OK on successes, E_NON_EXISTENT if ++ * the connection does not exist, E_NOT_POSSIBLE on error. ++ */ ++ virtual void disconnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_mainConnectionID_t mainConnectionID, am_Error_e& error); ++ virtual void disconnect(am_mainConnectionID_t mainConnectionID, am_Error_e& error); ++ ++ /** ++ * sets the volume for a sink ++ (at)return E_OK on success, E_UNKOWN on error, ++ * E_OUT_OF_RANGE in case the value is out of range ++ */ ++ virtual void setVolume(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_mainVolume_t volume, am_Error_e& error); ++ virtual void setVolume(am_sinkID_t sinkID, am_mainVolume_t volume, am_Error_e& error); ++ ++ /** ++ * This function is used to increment or decrement the current volume for a ++ * sink. ++ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the ++ * value is not in the given volume range. ++ */ ++ virtual void volumeStep(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, int16_t volStep, am_Error_e& error); ++ virtual void volumeStep(am_sinkID_t sinkID, int16_t volStep, am_Error_e& error); ++ ++ /** ++ * sets the mute state of a sink ++ (at)return E_OK on success, E_UNKNOWN on error. ++ * If the mute state is already the desired one, the Daemon will return E_OK. ++ */ ++ virtual void setSinkMuteState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MuteState_e muteState, am_Error_e& error); ++ virtual void setSinkMuteState(am_sinkID_t sinkID, am_MuteState_e muteState, am_Error_e& error); ++ ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ virtual void setMainSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MainSoundProperty_s soundProperty, am_Error_e& error); ++ virtual void setMainSinkSoundProperty(am_sinkID_t sinkID, am_MainSoundProperty_s soundProperty, am_Error_e& error); ++ ++ /** ++ * This method is used to set sound properties, e.g. Equalizer Values. Since the ++ * capabilities of the system can differ, the exact key value pairs can be ++ * extended in each product ++ (at)return E_OK on success, E_OUT_OF_RANGE if value ++ * exceeds range, E_UNKNOWN in case of an error ++ */ ++ virtual void setMainSourceSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_MainSoundProperty_s soundProperty, am_Error_e& error); ++ virtual void setMainSourceSoundProperty(am_sourceID_t sourceID, am_MainSoundProperty_s soundProperty, am_Error_e& error); ++ ++ /** ++ * is used to set a specific system property. ++ (at)return E_OK on success, ++ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error ++ */ ++ virtual void setSystemProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SystemProperty_s property, am_Error_e& error); ++ virtual void setSystemProperty(am_SystemProperty_s property, am_Error_e& error); ++ ++ /** ++ * returns the actual list of MainConnections ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void getListMainConnections(const std::shared_ptr<CommonAPI::ClientId> clientId, am_MainConnection_L& listConnections, am_Error_e& error); ++ virtual void getListMainConnections(am_MainConnection_L& listConnections, am_Error_e& error); ++ ++ /** ++ * returns the actual list of Sinks ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ virtual void getListMainSinks(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SinkType_L& listMainSinks, am_Error_e& error); ++ virtual void getListMainSinks(am_SinkType_L& listMainSinks, am_Error_e& error); ++ ++ /** ++ * returns the actual list of Sources ++ (at)return E_OK on success, E_DATABASE_ERROR ++ * on error ++ */ ++ virtual void getListMainSources(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SourceType_L& listMainSources, am_Error_e& error); ++ virtual void getListMainSources(am_SourceType_L& listMainSources, am_Error_e& error); ++ ++ /** ++ * This is used to retrieve all source sound properties related to a source. ++ * Returns a vector of the sound properties and values as pair ++ (at)return E_OK on ++ * success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListMainSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error); ++ virtual void getListMainSinkSoundProperties(am_sinkID_t sinkID, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error); ++ ++ /** ++ * This is used to retrieve all source sound properties related to a ++ * source. ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListMainSourceSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error); ++ virtual void getListMainSourceSoundProperties(am_sourceID_t sourceID, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error); ++ ++ /** ++ * This is used to retrieve SourceClass Information of all source classes ++ * ++ (at)return E_OK on success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListSourceClasses(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SourceClass_L& listSourceClasses, am_Error_e& error); ++ virtual void getListSourceClasses(am_SourceClass_L& listSourceClasses, am_Error_e& error); ++ ++ /** ++ * This is used to retrieve SinkClass Information of all sink classes ++ (at)return ++ * E_OK on success, E_DATABASE_ERROR on error ++ */ ++ virtual void getListSinkClasses(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SinkClass_L& listSinkClasses, am_Error_e& error); ++ virtual void getListSinkClasses(am_SinkClass_L& listSinkClasses, am_Error_e& error); ++ ++ /** ++ * Retrieves a complete list of all systemProperties. ++ (at)return E_OK on success, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void getListSystemProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SystemProperty_L& listSystemProperties, am_Error_e& error); ++ virtual void getListSystemProperties(am_SystemProperty_L& listSystemProperties, am_Error_e& error); ++ ++ /** ++ * returns the delay in ms that the audiopath for the given mainConnection ++ * has ++ (at)return E_OK on success, E_NOT_POSSIBLE if timing information is not ++ * yet retrieved, E_DATABASE_ERROR on read error on the database ++ */ ++ virtual void getTimingInformation(const std::shared_ptr<CommonAPI::ClientId> clientId, am_mainConnectionID_t mainConnectionID, am_timeSync_t& delay, am_Error_e& error); ++ virtual void getTimingInformation(am_mainConnectionID_t mainConnectionID, am_timeSync_t& delay, am_Error_e& error); ++ ++ /** ++ * Retrieves the list of MainNotifications for a sink. Does not return the ++ * possible ones. ++ */ ++ virtual void getListMainSinkNotificationConfigurations(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); ++ virtual void getListMainSinkNotificationConfigurations(am_sinkID_t sinkID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); ++ ++ /** ++ * Retrieves the list of MainNotifications for a source. Does not return the ++ * possible ones. ++ */ ++ virtual void getListMainSourceNotificationConfigurations(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); ++ virtual void getListMainSourceNotificationConfigurations(am_sourceID_t sourceID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); ++ ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error ++ */ ++ virtual void setMainSinkNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error); ++ virtual void setMainSinkNotificationConfiguration(am_sinkID_t sinkID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error); ++ ++ /** ++ * sets a MainNotificationConfiuration. This can be used to turn on an off ++ * notifications an to change the mode of the configuration. ++ (at)return E_OK on ++ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error ++ */ ++ virtual void setMainSourceNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error); ++ virtual void setMainSourceNotificationConfiguration(am_sourceID_t sourceID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error); ++ ++ ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ virtual void fireNewMainConnectionEvent(const am_MainConnectionType_s& mainConnection); ++ /** ++ * Callback that is called when the number of connections change ++ */ ++ virtual void fireRemovedMainConnectionEvent(const am_mainConnectionID_t& mainConnection); ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ virtual void fireNewSinkEvent(const am_SinkType_s& sink); ++ /** ++ * Callback that is called when the number of sinks change ++ */ ++ virtual void fireRemovedSinkEvent(const am_sinkID_t& sinkID); ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ virtual void fireNewSourceEvent(const am_SourceType_s& source); ++ /** ++ * Callback that is called when the number of sources change ++ */ ++ virtual void fireRemovedSourceEvent(const am_sourceID_t& source); ++ /** ++ * this callback is fired if the number of sink classes changed ++ */ ++ virtual void fireNumberOfSinkClassesChangedEvent(); ++ /** ++ * this callback is fired if the number of source classes changed ++ */ ++ virtual void fireNumberOfSourceClassesChangedEvent(); ++ /** ++ * This callback is called when the ConnectionState of a connection changed. ++ */ ++ virtual void fireMainConnectionStateChangedEvent(const am_mainConnectionID_t& connectionID, const am_ConnectionState_e& connectionState); ++ /** ++ * this callback indicates that a sinkSoundProperty has changed. ++ */ ++ virtual void fireMainSinkSoundPropertyChangedEvent(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty); ++ /** ++ * this callback indicates that a sourceSoundProperty has changed. ++ */ ++ virtual void fireMainSourceSoundPropertyChangedEvent(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty); ++ /** ++ * this callback is called when the availability of a sink has changed ++ */ ++ virtual void fireSinkAvailabilityChangedEvent(const am_sinkID_t& sinkID, const am_Availability_s& availability); ++ /** ++ * this callback is called when the availability of source has changed. ++ */ ++ virtual void fireSourceAvailabilityChangedEvent(const am_sourceID_t& sourceID, const am_Availability_s& availability); ++ /** ++ * this callback indicates a volume change on the indicated sink ++ */ ++ virtual void fireVolumeChangedEvent(const am_sinkID_t& sinkID, const am_mainVolume_t& volume); ++ /** ++ * this callback indicates a mute state change on a sink. ++ */ ++ virtual void fireSinkMuteStateChangedEvent(const am_sinkID_t& sinkID, const am_MuteState_e& muteState); ++ /** ++ * is fired if a systemProperty changed ++ */ ++ virtual void fireSystemPropertyChangedEvent(const am_SystemProperty_s& systemProperty); ++ /** ++ * This callback is fired if the timinginformation for a mainConnectionID changed ++ */ ++ virtual void fireTimingInformationChangedEvent(const am_mainConnectionID_t& mainConnectionID, const am_timeSync_t& time); ++ /** ++ * This callback is called when a sink is updated. ++ */ ++ virtual void fireSinkUpdatedEvent(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_MainSoundProperty_L& listMainSoundProperties); ++ /** ++ * This callback is called when a source is updated. ++ */ ++ virtual void fireSourceUpdatedEvent(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_MainSoundProperty_L& listMainSoundProperties); ++ /** ++ * This callback is called when a notificated value of a sink changes. ++ */ ++ virtual void fireSinkNotificationEvent(const am_sinkID_t& sinkID, const am_NotificationPayload_s& notification); ++ /** ++ * This callback is called when a notifcated value of a source changes. ++ */ ++ virtual void fireSourceNotificationEvent(const am_sourceID_t& sourceID, const am_NotificationPayload_s& notification); ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ virtual void fireMainSinkNotificationConfigurationChangedEvent(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration); ++ /** ++ * This callback is triggered when a mainNotificationConfiguration is changed. ++ */ ++ virtual void fireMainSourceNotificationConfigurationChangedEvent(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration); ++ ++ ++protected: ++ class RemoteEventHandler: public virtual CommandControlStubRemoteEvent { ++ public: ++ RemoteEventHandler(CommandControlStubDefault* defaultStub); ++ ++ ++ private: ++ CommandControlStubDefault* defaultStub_; ++ }; ++private: ++ CommandControlStubDefault::RemoteEventHandler remoteEventHandler_; ++ ++ ++ CommonAPI::Version interfaceVersion_; ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Command_Control_STUB_DEFAULT_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.cpp +new file mode 100644 +index 0000000..8092420 +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.cpp +@@ -0,0 +1,1043 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#include "am.h" ++ ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++am_Route_s::am_Route_s(const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_RoutingElement_L& routeValue): ++ sourceID(sourceIDValue), ++ sinkID(sinkIDValue), ++ route(routeValue) ++{ ++} ++ ++ ++bool operator==(const am_Route_s& lhs, const am_Route_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sourceID == rhs.sourceID && ++ lhs.sinkID == rhs.sinkID && ++ lhs.route == rhs.route ++ ; ++} ++ ++void am_Route_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sourceID; ++ inputStream >> sinkID; ++ inputStream >> route; ++} ++ ++void am_Route_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sourceID; ++ outputStream << sinkID; ++ outputStream << route; ++} ++ ++am_Availability_s::am_Availability_s(const am_Availability_e& availabilityValue, const am_CustomAvailabilityReason_t& availabilityReasonValue): ++ availability(availabilityValue), ++ availabilityReason(availabilityReasonValue) ++{ ++} ++ ++ ++bool operator==(const am_Availability_s& lhs, const am_Availability_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.availability == rhs.availability && ++ lhs.availabilityReason == rhs.availabilityReason ++ ; ++} ++ ++void am_Availability_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> availability; ++ inputStream >> availabilityReason; ++} ++ ++void am_Availability_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << availability; ++ outputStream << availabilityReason; ++} ++ ++am_ClassProperty_s::am_ClassProperty_s(const am_CustomClassProperty_t& classPropertyValue, const int16_t& valueValue): ++ classProperty(classPropertyValue), ++ value(valueValue) ++{ ++} ++ ++ ++bool operator==(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.classProperty == rhs.classProperty && ++ lhs.value == rhs.value ++ ; ++} ++ ++void am_ClassProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> classProperty; ++ inputStream >> value; ++} ++ ++void am_ClassProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << classProperty; ++ outputStream << value; ++} ++ ++am_Crossfader_s::am_Crossfader_s(const am_crossfaderID_t& crossfaderIDValue, const std::string& nameValue, const am_sinkID_t& sinkID_AValue, const am_sinkID_t& sinkID_BValue, const am_sourceID_t& sourceIDValue, const am_HotSink_e& hotSinkValue): ++ crossfaderID(crossfaderIDValue), ++ name(nameValue), ++ sinkID_A(sinkID_AValue), ++ sinkID_B(sinkID_BValue), ++ sourceID(sourceIDValue), ++ hotSink(hotSinkValue) ++{ ++} ++ ++ ++bool operator==(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.crossfaderID == rhs.crossfaderID && ++ lhs.name == rhs.name && ++ lhs.sinkID_A == rhs.sinkID_A && ++ lhs.sinkID_B == rhs.sinkID_B && ++ lhs.sourceID == rhs.sourceID && ++ lhs.hotSink == rhs.hotSink ++ ; ++} ++ ++void am_Crossfader_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> crossfaderID; ++ inputStream >> name; ++ inputStream >> sinkID_A; ++ inputStream >> sinkID_B; ++ inputStream >> sourceID; ++ inputStream >> hotSink; ++} ++ ++void am_Crossfader_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << crossfaderID; ++ outputStream << name; ++ outputStream << sinkID_A; ++ outputStream << sinkID_B; ++ outputStream << sourceID; ++ outputStream << hotSink; ++} ++ ++am_Gateway_s::am_Gateway_s(const am_gatewayID_t& gatewayIDValue, const std::string& nameValue, const am_sinkID_t& sinkIDValue, const am_sourceID_t& sourceIDValue, const am_domainID_t& domainSinkIDValue, const am_domainID_t& domainSourceIDValue, const am_domainID_t& controlDomainIDValue, const am_ConnectionFormat_L& listSourceFormatsValue, const am_ConnectionFormat_L& listSinkFormatsValue, const am_Convertion_L& convertionMatrixValue): ++ gatewayID(gatewayIDValue), ++ name(nameValue), ++ sinkID(sinkIDValue), ++ sourceID(sourceIDValue), ++ domainSinkID(domainSinkIDValue), ++ domainSourceID(domainSourceIDValue), ++ controlDomainID(controlDomainIDValue), ++ listSourceFormats(listSourceFormatsValue), ++ listSinkFormats(listSinkFormatsValue), ++ convertionMatrix(convertionMatrixValue) ++{ ++} ++ ++ ++bool operator==(const am_Gateway_s& lhs, const am_Gateway_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.gatewayID == rhs.gatewayID && ++ lhs.name == rhs.name && ++ lhs.sinkID == rhs.sinkID && ++ lhs.sourceID == rhs.sourceID && ++ lhs.domainSinkID == rhs.domainSinkID && ++ lhs.domainSourceID == rhs.domainSourceID && ++ lhs.controlDomainID == rhs.controlDomainID && ++ lhs.listSourceFormats == rhs.listSourceFormats && ++ lhs.listSinkFormats == rhs.listSinkFormats && ++ lhs.convertionMatrix == rhs.convertionMatrix ++ ; ++} ++ ++void am_Gateway_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> gatewayID; ++ inputStream >> name; ++ inputStream >> sinkID; ++ inputStream >> sourceID; ++ inputStream >> domainSinkID; ++ inputStream >> domainSourceID; ++ inputStream >> controlDomainID; ++ inputStream >> listSourceFormats; ++ inputStream >> listSinkFormats; ++ inputStream >> convertionMatrix; ++} ++ ++void am_Gateway_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << gatewayID; ++ outputStream << name; ++ outputStream << sinkID; ++ outputStream << sourceID; ++ outputStream << domainSinkID; ++ outputStream << domainSourceID; ++ outputStream << controlDomainID; ++ outputStream << listSourceFormats; ++ outputStream << listSinkFormats; ++ outputStream << convertionMatrix; ++} ++ ++am_Converter_s::am_Converter_s(const am_converterID_t& converterIDValue, const std::string& nameValue, const am_sinkID_t& sinkIDValue, const am_sourceID_t& sourceIDValue, const am_domainID_t& domainIDValue, const am_ConnectionFormat_L& listSourceFormatsValue, const am_ConnectionFormat_L& listSinkFormatsValue, const am_Convertion_L& convertionMatrixValue): ++ converterID(converterIDValue), ++ name(nameValue), ++ sinkID(sinkIDValue), ++ sourceID(sourceIDValue), ++ domainID(domainIDValue), ++ listSourceFormats(listSourceFormatsValue), ++ listSinkFormats(listSinkFormatsValue), ++ convertionMatrix(convertionMatrixValue) ++{ ++} ++ ++ ++bool operator==(const am_Converter_s& lhs, const am_Converter_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.converterID == rhs.converterID && ++ lhs.name == rhs.name && ++ lhs.sinkID == rhs.sinkID && ++ lhs.sourceID == rhs.sourceID && ++ lhs.domainID == rhs.domainID && ++ lhs.listSourceFormats == rhs.listSourceFormats && ++ lhs.listSinkFormats == rhs.listSinkFormats && ++ lhs.convertionMatrix == rhs.convertionMatrix ++ ; ++} ++ ++void am_Converter_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> converterID; ++ inputStream >> name; ++ inputStream >> sinkID; ++ inputStream >> sourceID; ++ inputStream >> domainID; ++ inputStream >> listSourceFormats; ++ inputStream >> listSinkFormats; ++ inputStream >> convertionMatrix; ++} ++ ++void am_Converter_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << converterID; ++ outputStream << name; ++ outputStream << sinkID; ++ outputStream << sourceID; ++ outputStream << domainID; ++ outputStream << listSourceFormats; ++ outputStream << listSinkFormats; ++ outputStream << convertionMatrix; ++} ++ ++am_RoutingElement_s::am_RoutingElement_s(const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_domainID_t& domainIDValue, const am_CustomConnectionFormat_t& connectionFormatValue): ++ sourceID(sourceIDValue), ++ sinkID(sinkIDValue), ++ domainID(domainIDValue), ++ connectionFormat(connectionFormatValue) ++{ ++} ++ ++ ++bool operator==(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sourceID == rhs.sourceID && ++ lhs.sinkID == rhs.sinkID && ++ lhs.domainID == rhs.domainID && ++ lhs.connectionFormat == rhs.connectionFormat ++ ; ++} ++ ++void am_RoutingElement_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sourceID; ++ inputStream >> sinkID; ++ inputStream >> domainID; ++ inputStream >> connectionFormat; ++} ++ ++void am_RoutingElement_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sourceID; ++ outputStream << sinkID; ++ outputStream << domainID; ++ outputStream << connectionFormat; ++} ++ ++am_SoundProperty_s::am_SoundProperty_s(const am_CustomSoundPropertyType_t& typeValue, const int16_t& valueValue): ++ type(typeValue), ++ value(valueValue) ++{ ++} ++ ++ ++bool operator==(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.value == rhs.value ++ ; ++} ++ ++void am_SoundProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> value; ++} ++ ++void am_SoundProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << value; ++} ++ ++am_SystemProperty_s::am_SystemProperty_s(const am_CustomSystemPropertyType_t& typeValue, const int16_t& valueValue): ++ type(typeValue), ++ value(valueValue) ++{ ++} ++ ++ ++bool operator==(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.value == rhs.value ++ ; ++} ++ ++void am_SystemProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> value; ++} ++ ++void am_SystemProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << value; ++} ++ ++am_SinkClass_s::am_SinkClass_s(const am_sinkClass_t& sinkClassIDValue, const std::string& nameValue, const am_ClassProperty_L& listClassPropertiesValue): ++ sinkClassID(sinkClassIDValue), ++ name(nameValue), ++ listClassProperties(listClassPropertiesValue) ++{ ++} ++ ++ ++bool operator==(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sinkClassID == rhs.sinkClassID && ++ lhs.name == rhs.name && ++ lhs.listClassProperties == rhs.listClassProperties ++ ; ++} ++ ++void am_SinkClass_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sinkClassID; ++ inputStream >> name; ++ inputStream >> listClassProperties; ++} ++ ++void am_SinkClass_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sinkClassID; ++ outputStream << name; ++ outputStream << listClassProperties; ++} ++ ++am_SourceClass_s::am_SourceClass_s(const am_sourceClass_t& sourceClassIDValue, const std::string& nameValue, const am_ClassProperty_L& listClassPropertiesValue): ++ sourceClassID(sourceClassIDValue), ++ name(nameValue), ++ listClassProperties(listClassPropertiesValue) ++{ ++} ++ ++ ++bool operator==(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sourceClassID == rhs.sourceClassID && ++ lhs.name == rhs.name && ++ lhs.listClassProperties == rhs.listClassProperties ++ ; ++} ++ ++void am_SourceClass_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sourceClassID; ++ inputStream >> name; ++ inputStream >> listClassProperties; ++} ++ ++void am_SourceClass_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sourceClassID; ++ outputStream << name; ++ outputStream << listClassProperties; ++} ++ ++am_SourceType_s::am_SourceType_s(const am_sourceID_t& sourceIDValue, const std::string& nameValue, const am_Availability_s& availabilityValue, const am_sourceClass_t& sourceClassIDValue): ++ sourceID(sourceIDValue), ++ name(nameValue), ++ availability(availabilityValue), ++ sourceClassID(sourceClassIDValue) ++{ ++} ++ ++ ++bool operator==(const am_SourceType_s& lhs, const am_SourceType_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sourceID == rhs.sourceID && ++ lhs.name == rhs.name && ++ lhs.availability == rhs.availability && ++ lhs.sourceClassID == rhs.sourceClassID ++ ; ++} ++ ++void am_SourceType_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sourceID; ++ inputStream >> name; ++ inputStream >> availability; ++ inputStream >> sourceClassID; ++} ++ ++void am_SourceType_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sourceID; ++ outputStream << name; ++ outputStream << availability; ++ outputStream << sourceClassID; ++} ++ ++am_SinkType_s::am_SinkType_s(const am_sinkID_t& sinkIDValue, const std::string& nameValue, const am_Availability_s& availabilityValue, const am_mainVolume_t& volumeValue, const am_MuteState_e& muteStateValue, const am_sinkClass_t& sinkClassIDValue): ++ sinkID(sinkIDValue), ++ name(nameValue), ++ availability(availabilityValue), ++ volume(volumeValue), ++ muteState(muteStateValue), ++ sinkClassID(sinkClassIDValue) ++{ ++} ++ ++ ++bool operator==(const am_SinkType_s& lhs, const am_SinkType_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sinkID == rhs.sinkID && ++ lhs.name == rhs.name && ++ lhs.availability == rhs.availability && ++ lhs.volume == rhs.volume && ++ lhs.muteState == rhs.muteState && ++ lhs.sinkClassID == rhs.sinkClassID ++ ; ++} ++ ++void am_SinkType_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sinkID; ++ inputStream >> name; ++ inputStream >> availability; ++ inputStream >> volume; ++ inputStream >> muteState; ++ inputStream >> sinkClassID; ++} ++ ++void am_SinkType_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sinkID; ++ outputStream << name; ++ outputStream << availability; ++ outputStream << volume; ++ outputStream << muteState; ++ outputStream << sinkClassID; ++} ++ ++am_Handle_s::am_Handle_s(const am_Handle_e& handleTypeValue, const uint16_t& handleValue): ++ handleType(handleTypeValue), ++ handle(handleValue) ++{ ++} ++ ++ ++bool operator==(const am_Handle_s& lhs, const am_Handle_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.handleType == rhs.handleType && ++ lhs.handle == rhs.handle ++ ; ++} ++ ++void am_Handle_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> handleType; ++ inputStream >> handle; ++} ++ ++void am_Handle_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << handleType; ++ outputStream << handle; ++} ++ ++am_MainSoundProperty_s::am_MainSoundProperty_s(const am_CustomMainSoundPropertyType_t& typeValue, const int16_t& valueValue): ++ type(typeValue), ++ value(valueValue) ++{ ++} ++ ++ ++bool operator==(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.value == rhs.value ++ ; ++} ++ ++void am_MainSoundProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> value; ++} ++ ++void am_MainSoundProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << value; ++} ++ ++am_MainConnectionType_s::am_MainConnectionType_s(const am_mainConnectionID_t& mainConnectionIDValue, const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_timeSync_t& delayValue, const am_ConnectionState_e& connectionStateValue): ++ mainConnectionID(mainConnectionIDValue), ++ sourceID(sourceIDValue), ++ sinkID(sinkIDValue), ++ delay(delayValue), ++ connectionState(connectionStateValue) ++{ ++} ++ ++ ++bool operator==(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.mainConnectionID == rhs.mainConnectionID && ++ lhs.sourceID == rhs.sourceID && ++ lhs.sinkID == rhs.sinkID && ++ lhs.delay == rhs.delay && ++ lhs.connectionState == rhs.connectionState ++ ; ++} ++ ++void am_MainConnectionType_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> mainConnectionID; ++ inputStream >> sourceID; ++ inputStream >> sinkID; ++ inputStream >> delay; ++ inputStream >> connectionState; ++} ++ ++void am_MainConnectionType_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << mainConnectionID; ++ outputStream << sourceID; ++ outputStream << sinkID; ++ outputStream << delay; ++ outputStream << connectionState; ++} ++ ++am_MainConnection_s::am_MainConnection_s(const am_mainConnectionID_t& mainConnectionIDValue, const am_ConnectionState_e& connectionStateValue, const am_sinkID_t& sinkIDValue, const am_sourceID_t& sourceIDValue, const am_timeSync_t& delayValue, const am_ConnectionID_L& listConnectionIDValue): ++ mainConnectionID(mainConnectionIDValue), ++ connectionState(connectionStateValue), ++ sinkID(sinkIDValue), ++ sourceID(sourceIDValue), ++ delay(delayValue), ++ listConnectionID(listConnectionIDValue) ++{ ++} ++ ++ ++bool operator==(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.mainConnectionID == rhs.mainConnectionID && ++ lhs.connectionState == rhs.connectionState && ++ lhs.sinkID == rhs.sinkID && ++ lhs.sourceID == rhs.sourceID && ++ lhs.delay == rhs.delay && ++ lhs.listConnectionID == rhs.listConnectionID ++ ; ++} ++ ++void am_MainConnection_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> mainConnectionID; ++ inputStream >> connectionState; ++ inputStream >> sinkID; ++ inputStream >> sourceID; ++ inputStream >> delay; ++ inputStream >> listConnectionID; ++} ++ ++void am_MainConnection_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << mainConnectionID; ++ outputStream << connectionState; ++ outputStream << sinkID; ++ outputStream << sourceID; ++ outputStream << delay; ++ outputStream << listConnectionID; ++} ++ ++am_NotificationPayload_s::am_NotificationPayload_s(const am_CustomNotificationType_t& typeValue, const int16_t& valueValue): ++ type(typeValue), ++ value(valueValue) ++{ ++} ++ ++ ++bool operator==(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.value == rhs.value ++ ; ++} ++ ++void am_NotificationPayload_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> value; ++} ++ ++void am_NotificationPayload_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << value; ++} ++ ++am_NotificationConfiguration_s::am_NotificationConfiguration_s(const am_CustomNotificationType_t& typeValue, const am_NotificationStatus_e& statusValue, const int16_t& parameterValue): ++ type(typeValue), ++ status(statusValue), ++ parameter(parameterValue) ++{ ++} ++ ++ ++bool operator==(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.status == rhs.status && ++ lhs.parameter == rhs.parameter ++ ; ++} ++ ++void am_NotificationConfiguration_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> status; ++ inputStream >> parameter; ++} ++ ++void am_NotificationConfiguration_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << status; ++ outputStream << parameter; ++} ++ ++am_Sink_s::am_Sink_s(const am_sinkID_t& sinkIDValue, const std::string& nameValue, const am_domainID_t& domainIDValue, const am_sinkClass_t& sinkClassIDValue, const am_volume_t& volumeValue, const bool& visibleValue, const am_Availability_s& availableValue, const am_MuteState_e& muteStateValue, const am_mainVolume_t& mainVolumeValue, const am_SoundProperty_L& listSoundPropertiesValue, const am_ConnectionFormat_L& listConnectionFormatsValue, const am_MainSoundProperty_L& listMainSoundPropertiesValue, const am_NotificationConfiguration_L& listMainNotificationConfigurationsValue, const am_NotificationConfiguration_L& listNotificationConfigurationsValue): ++ sinkID(sinkIDValue), ++ name(nameValue), ++ domainID(domainIDValue), ++ sinkClassID(sinkClassIDValue), ++ volume(volumeValue), ++ visible(visibleValue), ++ available(availableValue), ++ muteState(muteStateValue), ++ mainVolume(mainVolumeValue), ++ listSoundProperties(listSoundPropertiesValue), ++ listConnectionFormats(listConnectionFormatsValue), ++ listMainSoundProperties(listMainSoundPropertiesValue), ++ listMainNotificationConfigurations(listMainNotificationConfigurationsValue), ++ listNotificationConfigurations(listNotificationConfigurationsValue) ++{ ++} ++ ++ ++bool operator==(const am_Sink_s& lhs, const am_Sink_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sinkID == rhs.sinkID && ++ lhs.name == rhs.name && ++ lhs.domainID == rhs.domainID && ++ lhs.sinkClassID == rhs.sinkClassID && ++ lhs.volume == rhs.volume && ++ lhs.visible == rhs.visible && ++ lhs.available == rhs.available && ++ lhs.muteState == rhs.muteState && ++ lhs.mainVolume == rhs.mainVolume && ++ lhs.listSoundProperties == rhs.listSoundProperties && ++ lhs.listConnectionFormats == rhs.listConnectionFormats && ++ lhs.listMainSoundProperties == rhs.listMainSoundProperties && ++ lhs.listMainNotificationConfigurations == rhs.listMainNotificationConfigurations && ++ lhs.listNotificationConfigurations == rhs.listNotificationConfigurations ++ ; ++} ++ ++void am_Sink_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sinkID; ++ inputStream >> name; ++ inputStream >> domainID; ++ inputStream >> sinkClassID; ++ inputStream >> volume; ++ inputStream >> visible; ++ inputStream >> available; ++ inputStream >> muteState; ++ inputStream >> mainVolume; ++ inputStream >> listSoundProperties; ++ inputStream >> listConnectionFormats; ++ inputStream >> listMainSoundProperties; ++ inputStream >> listMainNotificationConfigurations; ++ inputStream >> listNotificationConfigurations; ++} ++ ++void am_Sink_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sinkID; ++ outputStream << name; ++ outputStream << domainID; ++ outputStream << sinkClassID; ++ outputStream << volume; ++ outputStream << visible; ++ outputStream << available; ++ outputStream << muteState; ++ outputStream << mainVolume; ++ outputStream << listSoundProperties; ++ outputStream << listConnectionFormats; ++ outputStream << listMainSoundProperties; ++ outputStream << listMainNotificationConfigurations; ++ outputStream << listNotificationConfigurations; ++} ++ ++am_Source_s::am_Source_s(const am_sourceID_t& sourceIDValue, const am_domainID_t& domainIDValue, const std::string& nameValue, const am_sourceClass_t& sourceClassIDValue, const am_SourceState_e& sourceStateValue, const am_volume_t& volumeValue, const bool& visibleValue, const am_Availability_s& availableValue, const am_InterruptState_e& interruptStateValue, const am_SoundProperty_L& listSoundPropertiesValue, const am_ConnectionFormat_L& listConnectionFormatsValue, const am_MainSoundProperty_L& listMainSoundPropertiesValue, const am_NotificationConfiguration_L& listMainNotificationConfigurationsValue, const am_NotificationConfiguration_L& listNotificationConfigurationsValue): ++ sourceID(sourceIDValue), ++ domainID(domainIDValue), ++ name(nameValue), ++ sourceClassID(sourceClassIDValue), ++ sourceState(sourceStateValue), ++ volume(volumeValue), ++ visible(visibleValue), ++ available(availableValue), ++ interruptState(interruptStateValue), ++ listSoundProperties(listSoundPropertiesValue), ++ listConnectionFormats(listConnectionFormatsValue), ++ listMainSoundProperties(listMainSoundPropertiesValue), ++ listMainNotificationConfigurations(listMainNotificationConfigurationsValue), ++ listNotificationConfigurations(listNotificationConfigurationsValue) ++{ ++} ++ ++ ++bool operator==(const am_Source_s& lhs, const am_Source_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.sourceID == rhs.sourceID && ++ lhs.domainID == rhs.domainID && ++ lhs.name == rhs.name && ++ lhs.sourceClassID == rhs.sourceClassID && ++ lhs.sourceState == rhs.sourceState && ++ lhs.volume == rhs.volume && ++ lhs.visible == rhs.visible && ++ lhs.available == rhs.available && ++ lhs.interruptState == rhs.interruptState && ++ lhs.listSoundProperties == rhs.listSoundProperties && ++ lhs.listConnectionFormats == rhs.listConnectionFormats && ++ lhs.listMainSoundProperties == rhs.listMainSoundProperties && ++ lhs.listMainNotificationConfigurations == rhs.listMainNotificationConfigurations && ++ lhs.listNotificationConfigurations == rhs.listNotificationConfigurations ++ ; ++} ++ ++void am_Source_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> sourceID; ++ inputStream >> domainID; ++ inputStream >> name; ++ inputStream >> sourceClassID; ++ inputStream >> sourceState; ++ inputStream >> volume; ++ inputStream >> visible; ++ inputStream >> available; ++ inputStream >> interruptState; ++ inputStream >> listSoundProperties; ++ inputStream >> listConnectionFormats; ++ inputStream >> listMainSoundProperties; ++ inputStream >> listMainNotificationConfigurations; ++ inputStream >> listNotificationConfigurations; ++} ++ ++void am_Source_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << sourceID; ++ outputStream << domainID; ++ outputStream << name; ++ outputStream << sourceClassID; ++ outputStream << sourceState; ++ outputStream << volume; ++ outputStream << visible; ++ outputStream << available; ++ outputStream << interruptState; ++ outputStream << listSoundProperties; ++ outputStream << listConnectionFormats; ++ outputStream << listMainSoundProperties; ++ outputStream << listMainNotificationConfigurations; ++ outputStream << listNotificationConfigurations; ++} ++ ++am_Domain_s::am_Domain_s(const am_domainID_t& domainIDValue, const std::string& nameValue, const std::string& busnameValue, const std::string& nodenameValue, const bool& earlyValue, const bool& completeValue, const am_DomainState_e& stateValue): ++ domainID(domainIDValue), ++ name(nameValue), ++ busname(busnameValue), ++ nodename(nodenameValue), ++ early(earlyValue), ++ complete(completeValue), ++ state(stateValue) ++{ ++} ++ ++ ++bool operator==(const am_Domain_s& lhs, const am_Domain_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.domainID == rhs.domainID && ++ lhs.name == rhs.name && ++ lhs.busname == rhs.busname && ++ lhs.nodename == rhs.nodename && ++ lhs.early == rhs.early && ++ lhs.complete == rhs.complete && ++ lhs.state == rhs.state ++ ; ++} ++ ++void am_Domain_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> domainID; ++ inputStream >> name; ++ inputStream >> busname; ++ inputStream >> nodename; ++ inputStream >> early; ++ inputStream >> complete; ++ inputStream >> state; ++} ++ ++void am_Domain_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << domainID; ++ outputStream << name; ++ outputStream << busname; ++ outputStream << nodename; ++ outputStream << early; ++ outputStream << complete; ++ outputStream << state; ++} ++ ++am_EarlyData_s::am_EarlyData_s(const am_EarlyDataType_e& typeValue, const am_DataType_u& sinksourceValue, const am_EarlyData_u& dataValue): ++ type(typeValue), ++ sinksource(sinksourceValue), ++ data(dataValue) ++{ ++} ++ ++ ++bool operator==(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.type == rhs.type && ++ lhs.sinksource == rhs.sinksource && ++ lhs.data == rhs.data ++ ; ++} ++ ++void am_EarlyData_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> type; ++ inputStream >> sinksource; ++ inputStream >> data; ++} ++ ++void am_EarlyData_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << type; ++ outputStream << sinksource; ++ outputStream << data; ++} ++ ++am_Connection_s::am_Connection_s(const am_connectionID_t& connectionIDValue, const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_timeSync_t& delayValue, const am_CustomConnectionFormat_t& connectionFormatValue): ++ connectionID(connectionIDValue), ++ sourceID(sourceIDValue), ++ sinkID(sinkIDValue), ++ delay(delayValue), ++ connectionFormat(connectionFormatValue) ++{ ++} ++ ++ ++bool operator==(const am_Connection_s& lhs, const am_Connection_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.connectionID == rhs.connectionID && ++ lhs.sourceID == rhs.sourceID && ++ lhs.sinkID == rhs.sinkID && ++ lhs.delay == rhs.delay && ++ lhs.connectionFormat == rhs.connectionFormat ++ ; ++} ++ ++void am_Connection_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> connectionID; ++ inputStream >> sourceID; ++ inputStream >> sinkID; ++ inputStream >> delay; ++ inputStream >> connectionFormat; ++} ++ ++void am_Connection_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << connectionID; ++ outputStream << sourceID; ++ outputStream << sinkID; ++ outputStream << delay; ++ outputStream << connectionFormat; ++} ++ ++am_Volumes_s::am_Volumes_s(const am_VolumeType_e& volumeTypeValue, const am_DataType_u& volumeIDValue, const am_volume_t& volumeValue, const am_CustomRampType_t& rampValue, const am_time_t& timeValue): ++ volumeType(volumeTypeValue), ++ volumeID(volumeIDValue), ++ volume(volumeValue), ++ ramp(rampValue), ++ time(timeValue) ++{ ++} ++ ++ ++bool operator==(const am_Volumes_s& lhs, const am_Volumes_s& rhs) { ++ if (&lhs == &rhs) ++ return true; ++ ++ return ++ lhs.volumeType == rhs.volumeType && ++ lhs.volumeID == rhs.volumeID && ++ lhs.volume == rhs.volume && ++ lhs.ramp == rhs.ramp && ++ lhs.time == rhs.time ++ ; ++} ++ ++void am_Volumes_s::readFromInputStream(CommonAPI::InputStream& inputStream) { ++ inputStream >> volumeType; ++ inputStream >> volumeID; ++ inputStream >> volume; ++ inputStream >> ramp; ++ inputStream >> time; ++} ++ ++void am_Volumes_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { ++ outputStream << volumeType; ++ outputStream << volumeID; ++ outputStream << volume; ++ outputStream << ramp; ++ outputStream << time; ++} ++ ++ ++ ++} // namespace am ++} // namespace genivi ++} // namespace org +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.h +new file mode 100644 +index 0000000..e75db5d +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.h +@@ -0,0 +1,2551 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * @author Christian Linke ++ */ ++#ifndef ORG_GENIVI_am_H_ ++#define ORG_GENIVI_am_H_ ++ ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/InputStream.h> ++#include <CommonAPI/OutputStream.h> ++#include <CommonAPI/SerializableStruct.h> ++#include <CommonAPI/SerializableVariant.h> ++#include <CommonAPI/types.h> ++#include <cstdint> ++#include <memory> ++#include <string> ++#include <vector> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++ ++namespace am { ++ /** ++ * a source ID ++ */ ++ /** ++ * a source ID ++ */ ++ typedef uint16_t am_sourceID_t; ++ /** ++ * a mainConnection ID ++ */ ++ /** ++ * a mainConnection ID ++ */ ++ typedef uint16_t am_mainConnectionID_t; ++ /** ++ * offset time that is introduced in milli seconds. ++ */ ++ /** ++ * offset time that is introduced in milli seconds. ++ */ ++ typedef int16_t am_timeSync_t; ++ /** ++ * a sink ID ++ */ ++ /** ++ * a sink ID ++ */ ++ typedef uint16_t am_sinkID_t; ++ /** ++ * represents the connection state ++ */ ++ enum class am_ConnectionState_e: int32_t { ++ CS_UNKNOWN = 0, ++ /** ++ * This means the connection is just building up ++ */ ++ CS_CONNECTING = 1, ++ /** ++ * the connection is ready to be used ++ */ ++ CS_CONNECTED = 2, ++ /** ++ * the connection is in the course to be knocked down ++ */ ++ CS_DISCONNECTING = 3, ++ /** ++ * only relevant for connectionStatechanged. Is send after the connection was ++ * removed ++ */ ++ CS_DISCONNECTED = 4, ++ /** ++ * this means the connection is still build up but unused at the moment ++ */ ++ CS_SUSPENDED = 5, ++ CS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_ConnectionState_eComparator; ++ /** ++ * this type holds all information of connections relevant to the HMI ++ */ ++ /** ++ * this type holds all information of connections relevant to the HMI ++ */ ++ struct am_MainConnectionType_s: CommonAPI::SerializableStruct { ++ /** ++ * the ID of the mainconnection ++ */ ++ am_mainConnectionID_t mainConnectionID; ++ /** ++ * the sourceID where the connection starts ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * the sinkID where the connection ends ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * the delay of the mainconnection ++ */ ++ am_timeSync_t delay; ++ /** ++ * the current connection state ++ */ ++ am_ConnectionState_e connectionState; ++ ++ am_MainConnectionType_s() = default; ++ am_MainConnectionType_s(const am_mainConnectionID_t& mainConnectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_timeSync_t& delay, const am_ConnectionState_e& connectionState); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ } ++ }; ++ typedef std::vector<am_MainConnectionType_s> am_MainConnection_L; ++ /** ++ * product specific identifier of property ++ */ ++ /** ++ * product specific identifier of property ++ */ ++ typedef uint16_t am_CustomClassProperty_t; ++ /** ++ * describes class properties ++ */ ++ /** ++ * describes class properties ++ */ ++ struct am_ClassProperty_s: CommonAPI::SerializableStruct { ++ /** ++ * the property as enum ++ */ ++ am_CustomClassProperty_t classProperty; ++ /** ++ * the value of the property ++ */ ++ int16_t value; ++ ++ am_ClassProperty_s() = default; ++ am_ClassProperty_s(const am_CustomClassProperty_t& classProperty, const int16_t& value); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ typedef std::vector<am_ClassProperty_s> am_ClassProperty_L; ++ typedef uint16_t am_sinkClass_t; ++ /** ++ * struct describing sinkclasses ++ */ ++ /** ++ * struct describing sinkclasses ++ */ ++ struct am_SinkClass_s: CommonAPI::SerializableStruct { ++ /** ++ * the ID of the sinkClass ++ */ ++ am_sinkClass_t sinkClassID; ++ /** ++ * the name of the sinkClass - must be unique in the system ++ */ ++ std::string name; ++ /** ++ * the list of the class properties. These are pairs of a project specific enum ++ * describing the type of the value and an integer holding the real value. ++ */ ++ am_ClassProperty_L listClassProperties; ++ ++ am_SinkClass_s() = default; ++ am_SinkClass_s(const am_sinkClass_t& sinkClassID, const std::string& name, const am_ClassProperty_L& listClassProperties); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ typedef std::vector<am_SinkClass_s> am_SinkClass_L; ++ /** ++ * This is the volume presented on the command interface. It is in the duty of the ++ * Controller to change the volumes given here into meaningful values on the ++ * routing interface. ++ The range of this type is customer specific. ++ */ ++ /** ++ * This is the volume presented on the command interface. It is in the duty of the ++ * Controller to change the volumes given here into meaningful values on the ++ * routing interface. ++ The range of this type is customer specific. ++ */ ++ typedef int16_t am_mainVolume_t; ++ /** ++ * This project specific value gives the information about reason for reason for ++ * Source/Sink change ++ */ ++ /** ++ * This project specific value gives the information about reason for reason for ++ * Source/Sink change ++ */ ++ typedef uint16_t am_CustomAvailabilityReason_t; ++ /** ++ * with the help of this enum, sinks and sources can report their availability ++ * state ++ */ ++ enum class am_Availability_e: int32_t { ++ /** ++ * default ++ */ ++ A_UNKNOWN = 0, ++ /** ++ * The source / sink is available ++ */ ++ A_AVAILABLE = 1, ++ /** ++ * the source / sink is not available ++ */ ++ A_UNAVAILABLE = 2, ++ A_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_Availability_eComparator; ++ enum class am_MuteState_e: int32_t { ++ /** ++ * default ++ */ ++ MS_UNKNOWN = 0, ++ /** ++ * the source / sink is muted ++ */ ++ MS_MUTED = 1, ++ /** ++ * the source / sink is unmuted ++ */ ++ MS_UNMUTED = 2, ++ MS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_MuteState_eComparator; ++ /** ++ * this describes the availability of a sink or a source together with the latest ++ * change ++ */ ++ /** ++ * this describes the availability of a sink or a source together with the latest ++ * change ++ */ ++ struct am_Availability_s: CommonAPI::SerializableStruct { ++ /** ++ * the current availability state ++ */ ++ am_Availability_e availability; ++ /** ++ * the reason for the last change. This can be used to trigger events that deal ++ * with state changes. ++ */ ++ am_CustomAvailabilityReason_t availabilityReason; ++ ++ am_Availability_s() = default; ++ am_Availability_s(const am_Availability_e& availability, const am_CustomAvailabilityReason_t& availabilityReason); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ /** ++ * this type holds all information of sinks relevant to the HMI ++ */ ++ /** ++ * this type holds all information of sinks relevant to the HMI ++ */ ++ struct am_SinkType_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the sink, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * The name of the sink. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * This attribute reflects the availability of the sink. There are several reasons ++ * why a sink could be not available for the moment: for example the shutdown of ++ * a sink because of overtemperature or over- & undervoltage. The ++ * availability consists of two pieces of information: ++ ++ Availablility: the ++ * status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN ++ ++ * AvailabilityReason: this informs about the last reason for a change in ++ * availability. The reasons itself are product specific. ++ */ ++ am_Availability_s availability; ++ /** ++ * This is the representation of the Volume for the commandInterface. It is used ++ * by the HMI to set the volume of a sink, the AudioManagerController has to ++ * transform this into real source and sink volumes. ++ */ ++ am_mainVolume_t volume; ++ am_MuteState_e muteState; ++ /** ++ * The sinkClassID references to a sinkClass. With the help of classification, ++ * rules can be setup to define the system behaviour. ++ */ ++ am_sinkClass_t sinkClassID; ++ ++ am_SinkType_s() = default; ++ am_SinkType_s(const am_sinkID_t& sinkID, const std::string& name, const am_Availability_s& availability, const am_mainVolume_t& volume, const am_MuteState_e& muteState, const am_sinkClass_t& sinkClassID); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ typedef std::vector<am_SinkType_s> am_SinkType_L; ++ typedef uint16_t am_sourceClass_t; ++ /** ++ * struct describing source classes ++ */ ++ /** ++ * struct describing source classes ++ */ ++ struct am_SourceClass_s: CommonAPI::SerializableStruct { ++ /** ++ * the source ID ++ */ ++ am_sourceClass_t sourceClassID; ++ /** ++ * the name of the sourceClass - must be unique in the system ++ */ ++ std::string name; ++ /** ++ * the list of the class properties. These are pairs of a project specific enum ++ * describing the type of the value and an integer holding the real value. ++ */ ++ am_ClassProperty_L listClassProperties; ++ ++ am_SourceClass_s() = default; ++ am_SourceClass_s(const am_sourceClass_t& sourceClassID, const std::string& name, const am_ClassProperty_L& listClassProperties); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ typedef std::vector<am_SourceClass_s> am_SourceClass_L; ++ /** ++ * this type holds all information of sources relevant to the HMI ++ */ ++ /** ++ * this type holds all information of sources relevant to the HMI ++ */ ++ struct am_SourceType_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the source, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * The name of the source. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * the availability of the source ++ */ ++ am_Availability_s availability; ++ /** ++ * the sourceClassID, indicates the class the source is in. This information can ++ * be used by the Controller to implement different behaviour for different ++ * classes. ++ */ ++ am_sourceClass_t sourceClassID; ++ ++ am_SourceType_s() = default; ++ am_SourceType_s(const am_sourceID_t& sourceID, const std::string& name, const am_Availability_s& availability, const am_sourceClass_t& sourceClassID); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ typedef std::vector<am_SourceType_s> am_SourceType_L; ++ /** ++ * describes the different system properties. Project specific ++ */ ++ /** ++ * describes the different system properties. Project specific ++ */ ++ typedef uint16_t am_CustomSystemPropertyType_t; ++ /** ++ * struct describing system properties ++ */ ++ /** ++ * struct describing system properties ++ */ ++ struct am_SystemProperty_s: CommonAPI::SerializableStruct { ++ /** ++ * the type that is set ++ */ ++ am_CustomSystemPropertyType_t type; ++ /** ++ * the value ++ */ ++ int16_t value; ++ ++ am_SystemProperty_s() = default; ++ am_SystemProperty_s(const am_CustomSystemPropertyType_t& type, const int16_t& value); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ typedef std::vector<am_SystemProperty_s> am_SystemProperty_L; ++ /** ++ * a connection ID ++ */ ++ /** ++ * a connection ID ++ */ ++ typedef uint16_t am_connectionID_t; ++ typedef std::vector<am_connectionID_t> am_ConnectionID_L; ++ /** ++ * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and ++ * maximum can be limited by actual project. ++ */ ++ /** ++ * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and ++ * maximum can be limited by actual project. ++ */ ++ typedef int16_t am_volume_t; ++ /** ++ * Project specific sound properties. ++ */ ++ /** ++ * Project specific sound properties. ++ */ ++ typedef uint16_t am_CustomSoundPropertyType_t; ++ /** ++ * This enum characterizes the data of the EarlyData_t ++ */ ++ enum class am_EarlyDataType_e: int32_t { ++ /** ++ * default ++ */ ++ ES_UNKNOWN = 0, ++ /** ++ * the source volume ++ */ ++ ED_SOURCE_VOLUME = 1, ++ /** ++ * the sink volume ++ */ ++ ED_SINK_VOLUME = 2, ++ /** ++ * a source property ++ */ ++ ED_SOURCE_PROPERTY = 3, ++ /** ++ * a sink property ++ */ ++ ED_SINK_PROPERTY = 4, ++ ED_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_EarlyDataType_eComparator; ++ /** ++ * struct describing the sound property ++ */ ++ /** ++ * struct describing the sound property ++ */ ++ struct am_SoundProperty_s: CommonAPI::SerializableStruct { ++ /** ++ * the type of the property - a project specific enum ++ */ ++ am_CustomSoundPropertyType_t type; ++ /** ++ * the actual value of the property ++ */ ++ int16_t value; ++ ++ am_SoundProperty_s() = default; ++ am_SoundProperty_s(const am_CustomSoundPropertyType_t& type, const int16_t& value); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ /** ++ * data type depends of am_EarlyDataType_e: ++ volume_t in case of ED_SOURCE_VOLUME, ++ * ED_SINK_VOLUME ++ soundProperty_t in case of ED_SOURCE_PROPERTY, ++ * ED_SINK_PROPERTY ++ */ ++ /** ++ * data type depends of am_EarlyDataType_e: ++ volume_t in case of ED_SOURCE_VOLUME, ++ * ED_SINK_VOLUME ++ soundProperty_t in case of ED_SOURCE_PROPERTY, ++ * ED_SINK_PROPERTY ++ */ ++ typedef CommonAPI::Variant<am_volume_t, am_SoundProperty_s> am_EarlyData_u; ++ /** ++ * data type depends of am_EarlyDataType_e: ++ sourceID in case of ED_SOURCE_VOLUME, ++ * ED_SOURCE_PROPERTY ++ sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY ++ */ ++ /** ++ * data type depends of am_EarlyDataType_e: ++ sourceID in case of ED_SOURCE_VOLUME, ++ * ED_SOURCE_PROPERTY ++ sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY ++ */ ++ typedef CommonAPI::Variant<am_sinkID_t, am_sourceID_t> am_DataType_u; ++ struct am_EarlyData_s: CommonAPI::SerializableStruct { ++ am_EarlyDataType_e type; ++ am_DataType_u sinksource; ++ am_EarlyData_u data; ++ ++ am_EarlyData_s() = default; ++ am_EarlyData_s(const am_EarlyDataType_e& type, const am_DataType_u& sinksource, const am_EarlyData_u& data); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeVariantType(); ++ typeOutputStream.writeVariantType(); ++ } ++ }; ++ typedef std::vector<am_EarlyData_s> am_EarlyData_L; ++ /** ++ * Here are all SoundProperties that can be set via the CommandInterface. Product ++ * specific ++ */ ++ /** ++ * Here are all SoundProperties that can be set via the CommandInterface. Product ++ * specific ++ */ ++ typedef uint16_t am_CustomMainSoundPropertyType_t; ++ /** ++ * struct describung mainsound property ++ */ ++ /** ++ * struct describung mainsound property ++ */ ++ struct am_MainSoundProperty_s: CommonAPI::SerializableStruct { ++ /** ++ * the type of the property ++ */ ++ am_CustomMainSoundPropertyType_t type; ++ /** ++ * the actual value ++ */ ++ int16_t value; ++ ++ am_MainSoundProperty_s() = default; ++ am_MainSoundProperty_s(const am_CustomMainSoundPropertyType_t& type, const int16_t& value); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ typedef std::vector<am_MainSoundProperty_s> am_MainSoundProperty_L; ++ /** ++ * gives the type of the Notification. ++ */ ++ /** ++ * gives the type of the Notification. ++ */ ++ typedef uint16_t am_CustomNotificationType_t; ++ enum class am_NotificationStatus_e: int32_t { ++ NS_UNKNOWN = 0, ++ /** ++ * No notification, the function is turned off ++ */ ++ NS_OFF = 1, ++ /** ++ * Periodic notifications are sent out. The period in ms is given by ++ * am_NotificationParameter ++ */ ++ NS_PERIODIC = 2, ++ /** ++ * The notification is sent out when the minimum given by am_NotificationParameter ++ * is reached. ++ */ ++ NS_MINIMUM = 3, ++ /** ++ * The notification is sent out when the maximum given by am_NotificationParameter ++ * is reached. ++ */ ++ NS_MAXIMUM = 4, ++ /** ++ * The notification is sent out when a change happened. The Resolution of the ++ * change is defined by am_NotificationParameter. ++ */ ++ NS_CHANGE_ = 5, ++ NS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_NotificationStatus_eComparator; ++ /** ++ * This struct holds information about the configuration for notifications ++ */ ++ /** ++ * This struct holds information about the configuration for notifications ++ */ ++ struct am_NotificationConfiguration_s: CommonAPI::SerializableStruct { ++ /** ++ * The notification type of the notification ++ */ ++ am_CustomNotificationType_t type; ++ /** ++ * The Notification status. This can be periodic, min/max value based or even off ++ * for example ++ */ ++ am_NotificationStatus_e status; ++ /** ++ * This gives additional information to the notification status. ++ Relation between ++ * notification status and the value: ++ NS_PERIODIC - the period in ms ++ NS_MINIMUM ++ * - the minimum value that triggers the notification ++ NS_MAXIMUM - the maximum ++ * value that triggers the notifcation ++ NS_CHANGE - the resolution of the change ++ * value ++ */ ++ int16_t parameter; ++ ++ am_NotificationConfiguration_s() = default; ++ am_NotificationConfiguration_s(const am_CustomNotificationType_t& type, const am_NotificationStatus_e& status, const int16_t& parameter); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ typedef std::vector<am_NotificationConfiguration_s> am_NotificationConfiguration_L; ++ /** ++ * a domain ID ++ */ ++ /** ++ * a domain ID ++ */ ++ typedef uint16_t am_domainID_t; ++ /** ++ * This project specific value classifies the format in which data is exchanged ++ * within a connection. ++ */ ++ /** ++ * This project specific value classifies the format in which data is exchanged ++ * within a connection. ++ */ ++ typedef uint16_t am_CustomConnectionFormat_t; ++ /** ++ * This represents one "hopp" in a route ++ */ ++ /** ++ * This represents one "hopp" in a route ++ */ ++ struct am_RoutingElement_s: CommonAPI::SerializableStruct { ++ /** ++ * the source ID ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * the sinkID ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * the domainID the routeElement is in ++ */ ++ am_domainID_t domainID; ++ /** ++ * the connectionformat that is used for the route ++ */ ++ am_CustomConnectionFormat_t connectionFormat; ++ ++ am_RoutingElement_s() = default; ++ am_RoutingElement_s(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_domainID_t& domainID, const am_CustomConnectionFormat_t& connectionFormat); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ typedef std::vector<am_RoutingElement_s> am_RoutingElement_L; ++ typedef std::vector<am_SoundProperty_s> am_SoundProperty_L; ++ /** ++ * time in ms! ++ */ ++ /** ++ * time in ms! ++ */ ++ typedef int16_t am_time_t; ++ /** ++ * For products, different ramp types can be defined here. ++ It is in the ++ * responsibility of the product to make sure that the routing plugins are aware ++ * of the ramp types used. ++ */ ++ /** ++ * For products, different ramp types can be defined here. ++ It is in the ++ * responsibility of the product to make sure that the routing plugins are aware ++ * of the ramp types used. ++ */ ++ typedef uint16_t am_CustomRampType_t; ++ /** ++ * This datatype determines if a sourceID or a sinkID is used in the union ++ * following ++ */ ++ enum class am_VolumeType_e: int32_t { ++ VT_UNKNOWN = 0, ++ /** ++ * the following type is a sink ++ */ ++ VT_SINK = 1, ++ /** ++ * the following type is a source ++ */ ++ VT_SOURCE = 2, ++ VT_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_VolumeType_eComparator; ++ /** ++ * This types describe a mixed description for source and sinks volumes. ++ */ ++ /** ++ * This types describe a mixed description for source and sinks volumes. ++ */ ++ struct am_Volumes_s: CommonAPI::SerializableStruct { ++ /** ++ * describes the type of the volume: source or sink. ++ */ ++ am_VolumeType_e volumeType; ++ /** ++ * either sourceID or sinkID ++ */ ++ am_DataType_u volumeID; ++ /** ++ * The volume ++ */ ++ am_volume_t volume; ++ /** ++ * the ramp that shall be driven ++ */ ++ am_CustomRampType_t ramp; ++ /** ++ * the time for the ramp ++ */ ++ am_time_t time; ++ ++ am_Volumes_s() = default; ++ am_Volumes_s(const am_VolumeType_e& volumeType, const am_DataType_u& volumeID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeVariantType(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ typedef std::vector<am_Volumes_s> am_Volumes_L; ++ typedef std::vector<am_CustomConnectionFormat_t> am_ConnectionFormat_L; ++ typedef bool am_bool_t; ++ typedef std::vector<am_bool_t> am_Convertion_L; ++ /** ++ * a gateway ID ++ */ ++ /** ++ * a gateway ID ++ */ ++ typedef uint16_t am_gatewayID_t; ++ /** ++ * a converter ID ++ */ ++ /** ++ * a converter ID ++ */ ++ typedef uint16_t am_converterID_t; ++ /** ++ * a crossfader ID ++ */ ++ /** ++ * a crossfader ID ++ */ ++ typedef uint16_t am_crossfaderID_t; ++ /** ++ * speed ++ */ ++ /** ++ * speed ++ */ ++ typedef uint16_t am_speed_t; ++ /** ++ * describes the active sink of a crossfader. ++ */ ++ enum class am_HotSink_e: int32_t { ++ /** ++ * default ++ */ ++ HS_UNKNOWN = 0, ++ /** ++ * sinkA is active ++ */ ++ HS_SINKA = 1, ++ /** ++ * sinkB is active ++ */ ++ HS_SINKB = 2, ++ /** ++ * the crossfader is in the transition state ++ */ ++ HS_INTERMEDIATE = 3, ++ HS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_HotSink_eComparator; ++ enum class am_DomainState_e: int32_t { ++ /** ++ * default ++ */ ++ DS_UNKNOWN = 0, ++ /** ++ * the domain is controlled by the daemon ++ */ ++ DS_CONTROLLED = 1, ++ /** ++ * the domain is independent starting up ++ */ ++ DS_INDEPENDENT_STARTUP = 1, ++ /** ++ * the domain is independent running down ++ */ ++ DS_INDEPENDENT_RUNDOWN = 2, ++ DS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_DomainState_eComparator; ++ /** ++ * the errors of the audiomanager. All possible errors are in here. This enum is ++ * used widely as return parameter. ++ */ ++ enum class am_Error_e: int32_t { ++ /** ++ * no error - positive reply ++ */ ++ E_OK = 0, ++ /** ++ * default ++ */ ++ E_UNKNOWN = 1, ++ /** ++ * value out of range ++ */ ++ E_OUT_OF_RANGE = 2, ++ /** ++ * not used ++ */ ++ E_NOT_USED = 3, ++ /** ++ * a database error occurred ++ */ ++ E_DATABASE_ERROR = 4, ++ /** ++ * the desired object already exists ++ */ ++ E_ALREADY_EXISTS = 5, ++ /** ++ * there is no change ++ */ ++ E_NO_CHANGE = 6, ++ /** ++ * the desired action is not possible ++ */ ++ E_NOT_POSSIBLE = 7, ++ /** ++ * the desired object is non existent ++ */ ++ E_NON_EXISTENT = 8, ++ /** ++ * the asynchronous action was aborted ++ */ ++ E_ABORTED = 9, ++ /** ++ * This error is returned in case a connect is issued with a connectionFormat that ++ * cannot be selected for the connection. This could be either due to the ++ * capabilities of a source or a sink or gateway compatibilities for example ++ */ ++ E_WRONG_FORMAT = 10, ++ E_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_Error_eComparator; ++ enum class am_InterruptState_e: int32_t { ++ /** ++ * default ++ */ ++ IS_UNKNOWN = 0, ++ /** ++ * the interrupt state is off - no interrupt ++ */ ++ IS_OFF = 1, ++ /** ++ * the interrupt state is interrupted - the interrupt is active ++ */ ++ IS_INTERRUPTED = 2, ++ IS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_InterruptState_eComparator; ++ /** ++ * This enumeration is used to define the type of the action that is correlated to ++ * a handle. ++ */ ++ enum class am_Handle_e: int32_t { ++ H_UNKNOWN = 0, ++ H_CONNECT = 1, ++ H_DISCONNECT = 2, ++ H_SETSOURCESTATE = 3, ++ H_SETSINKVOLUME = 4, ++ H_SETSOURCEVOLUME = 5, ++ H_SETSINKSOUNDPROPERTY = 6, ++ H_SETSOURCESOUNDPROPERTY = 7, ++ H_SETSINKSOUNDPROPERTIES = 8, ++ H_SETSOURCESOUNDPROPERTIES = 9, ++ H_CROSSFADE = 10, ++ H_SETVOLUMES = 11, ++ H_SETSINKNOTIFICATION = 12, ++ H_SETSOURCENOTIFICATION = 13, ++ H_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_Handle_eComparator; ++ /** ++ * The source state reflects the state of the source ++ */ ++ enum class am_SourceState_e: int32_t { ++ SS_UNKNNOWN = 0, ++ /** ++ * The source can be activly heared ++ */ ++ SS_ON = 1, ++ /** ++ * The source cannot be heared ++ */ ++ SS_OFF = 2, ++ /** ++ * The source is paused. Meaning it cannot be heared but should be prepared to ++ * play again soon. ++ */ ++ SS_PAUSED = 3, ++ SS_MAX ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_SourceState_eComparator; ++ /** ++ * This enum describes the ready state of the routing part ++ */ ++ enum class am_RoutingReady_e: int32_t { ++ RR_UNKNOWN = 0, ++ RR_READY = 1, ++ RR_RUNDOWN = 2 ++ }; ++ ++ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 ++ struct am_RoutingReady_eComparator; ++ /** ++ * a list of routing elements that lead from source to sink ++ */ ++ /** ++ * a list of routing elements that lead from source to sink ++ */ ++ struct am_Route_s: CommonAPI::SerializableStruct { ++ /** ++ * the sourceID where the route starts ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * the sinkID where the route ends ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * the actual route as list of routing elements ++ */ ++ am_RoutingElement_L route; ++ ++ am_Route_s() = default; ++ am_Route_s(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_RoutingElement_L& route); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * This struct describes the attribiutes of a crossfader. ++ */ ++ /** ++ * This struct describes the attribiutes of a crossfader. ++ */ ++ struct am_Crossfader_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the crossfader, it is unique in the system. There are 2 ways, ++ * ID can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManager daemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_crossfaderID_t crossfaderID; ++ /** ++ * The name of the crossfader. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * The sinkID of the SinkA. Sinks shall be registered before registering the ++ * crossfader. ++ */ ++ am_sinkID_t sinkID_A; ++ /** ++ * The sinkID of the SinkB. Sinks shall be registered before registering the ++ * crossfader. ++ */ ++ am_sinkID_t sinkID_B; ++ /** ++ * The sourceID of the crossfader source. The source shall be registered before ++ * the crossfader. ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * This enum can have 3 states: ++ ++ HS_SINKA sinkA is the current hot one, sinkB ++ * is not audible ++ HS_SINKB sinkB is the current hot one, sinkB is not ++ * audible ++ HS_INTERMEDIATE the fader is stuck in between a cross-fading ++ * action. This could be due to an abort or an error. Before using the ++ * crossfader, it must be set to either HS_SINKA or HS_SINKB. ++ */ ++ am_HotSink_e hotSink; ++ ++ am_Crossfader_s() = default; ++ am_Crossfader_s(const am_crossfaderID_t& crossfaderID, const std::string& name, const am_sinkID_t& sinkID_A, const am_sinkID_t& sinkID_B, const am_sourceID_t& sourceID, const am_HotSink_e& hotSink); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ } ++ }; ++ /** ++ * This struct describes the attributes of a gateway. ++ */ ++ /** ++ * This struct describes the attributes of a gateway. ++ */ ++ struct am_Gateway_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the gateway, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_gatewayID_t gatewayID; ++ /** ++ * The name of the gateway. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * The sinkID of the gateway sink-end. The sink is a full blown sink with ++ * connectionFormats, sinkClassIDs etc... It makes sense to register the sinks of ++ * a gateway as non-visible. Care needs to be taken that the connectionsFormats ++ * match with the ones in the conversionMatrix. If the sink is located in the ++ * controllingDomain, the ID needs to be retrieved by registering the sink before ++ * registering the gateway. In case the sink is in a different domain, the ID ++ * needs to be retrieved via peeking. ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * The sourceID of the gateway sink-end. The sink is a full blown source with ++ * connectionFormats, sinkClassIDs etc... It makes sense to register the sources ++ * of a gateway as non-visible. Care needs to be taken that the ++ * connectionsFormats match with the ones in the conversionMatrix. If the source ++ * is located in the controllingDomain, the ID needs to be retrieved by ++ * registering the source before registering the gateway. In case the source is ++ * in a different domain, the ID needs to be retrieved via peeking. ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * The ID of the sink. If the domain is the same like the controlling domain, the ++ * ID is known due to registration. If the domain is different, the ID needs to ++ * be retrieved via peeking. ++ */ ++ am_domainID_t domainSinkID; ++ /** ++ * The ID of the source. If the domain is the same like the controlling domain, ++ * the ID is known due to registration. If the domain is different, the ID needs ++ * to be retrieved via peeking. ++ */ ++ am_domainID_t domainSourceID; ++ /** ++ * This is the ID of the domain that registers the gateway. ++ */ ++ am_domainID_t controlDomainID; ++ /** ++ * This is the list of available formats on the source side of the gateway. It is ++ * not defined during the gateway registration but copied from the source ++ * registration. ++ */ ++ am_ConnectionFormat_L listSourceFormats; ++ /** ++ * This is the list of available formats on the sink side of the gateway. It is ++ * not defined during the gateway registration but copied from the sink ++ * registration. ++ */ ++ am_ConnectionFormat_L listSinkFormats; ++ /** ++ * This is matrix holding information about the conversion capability of the ++ * gateway, it's length is defined by the length(listSinkFormats) x ++ * length(listSourceFormats). ++ If a SinkFormat can be converted into a ++ * SourceFormat, the vector will hold a 1, if no conversion is possible, a ++ * 0. ++ The data is stored row orientated, where the rows are related to the ++ * sinksFormats and the columns to the sourceFormats. The first value will hold ++ * the conversion information from the first sourceFormat to the first sinkFormat ++ * for example and the seventh value the information about the 3rd sinkFormat to ++ * the 1st sourceFormat in case we would have 3 sourceFormats. ++ */ ++ am_Convertion_L convertionMatrix; ++ ++ am_Gateway_s() = default; ++ am_Gateway_s(const am_gatewayID_t& gatewayID, const std::string& name, const am_sinkID_t& sinkID, const am_sourceID_t& sourceID, const am_domainID_t& domainSinkID, const am_domainID_t& domainSourceID, const am_domainID_t& controlDomainID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * This struct describes the attributes of a gateway. ++ */ ++ /** ++ * This struct describes the attributes of a gateway. ++ */ ++ struct am_Converter_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the gateway, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_converterID_t converterID; ++ /** ++ * The name of the gateway. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * The sinkID of the gateway sink-end. The sink is a full blown sink with ++ * connectionFormats, sinkClassIDs etc... It makes sense to register the sinks of ++ * a gateway as non-visible. Care needs to be taken that the connectionsFormats ++ * match with the ones in the conversionMatrix. If the sink is located in the ++ * controllingDomain, the ID needs to be retrieved by registering the sink before ++ * registering the gateway. In case the sink is in a different domain, the ID ++ * needs to be retrieved via peeking. ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * The sourceID of the gateway sink-end. The sink is a full blown source with ++ * connectionFormats, sinkClassIDs etc... It makes sense to register the sources ++ * of a gateway as non-visible. Care needs to be taken that the ++ * connectionsFormats match with the ones in the conversionMatrix. If the source ++ * is located in the controllingDomain, the ID needs to be retrieved by ++ * registering the source before registering the gateway. In case the source is ++ * in a different domain, the ID needs to be retrieved via peeking. ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * The ID of the sink. If the domain is the same like the controlling domain, the ++ * ID is known due to registration. If the domain is different, the ID needs to ++ * be retrieved via peeking. ++ */ ++ am_domainID_t domainID; ++ /** ++ * This is the list of available formats on the source side of the gateway. It is ++ * not defined during the gateway registration but copied from the source ++ * registration. ++ */ ++ am_ConnectionFormat_L listSourceFormats; ++ /** ++ * This is the list of available formats on the sink side of the gateway. It is ++ * not defined during the gateway registration but copied from the sink ++ * registration. ++ */ ++ am_ConnectionFormat_L listSinkFormats; ++ /** ++ * This is matrix holding information about the conversion capability of the ++ * gateway, it's length is defined by the length(listSinkFormats) x ++ * length(listSourceFormats). ++ If a SinkFormat can be converted into a ++ * SourceFormat, the vector will hold a 1, if no conversion is possible, a ++ * 0. ++ The data is stored row orientated, where the rows are related to the ++ * sinksFormats and the columns to the sourceFormats. The first value will hold ++ * the conversion information from the first sourceFormat to the first sinkFormat ++ * for example and the seventh value the information about the 3rd sinkFormat to ++ * the 1st sourceFormat in case we would have 3 sourceFormats. ++ */ ++ am_Convertion_L convertionMatrix; ++ ++ am_Converter_s() = default; ++ am_Converter_s(const am_converterID_t& converterID, const std::string& name, const am_sinkID_t& sinkID, const am_sourceID_t& sourceID, const am_domainID_t& domainID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * a handle is used for asynchronous operations and is uniquely assigned for each ++ * of this operations ++ */ ++ /** ++ * a handle is used for asynchronous operations and is uniquely assigned for each ++ * of this operations ++ */ ++ struct am_Handle_s: CommonAPI::SerializableStruct { ++ /** ++ * the handletype ++ */ ++ am_Handle_e handleType; ++ /** ++ * the handle as value ++ */ ++ uint16_t handle; ++ ++ am_Handle_s() = default; ++ am_Handle_s(const am_Handle_e& handleType, const uint16_t& handle); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ /** ++ * struct that holds attribiutes of a mainconnection ++ */ ++ /** ++ * struct that holds attribiutes of a mainconnection ++ */ ++ struct am_MainConnection_s: CommonAPI::SerializableStruct { ++ /** ++ * the assigned ID ++ */ ++ am_mainConnectionID_t mainConnectionID; ++ /** ++ * the current connection state ++ */ ++ am_ConnectionState_e connectionState; ++ /** ++ * the sinkID ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * the sourceID ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * the delay of the connection ++ */ ++ am_timeSync_t delay; ++ /** ++ * the list of sub connection IDs the mainconnection consists of ++ */ ++ am_ConnectionID_L listConnectionID; ++ ++ am_MainConnection_s() = default; ++ am_MainConnection_s(const am_mainConnectionID_t& mainConnectionID, const am_ConnectionState_e& connectionState, const am_sinkID_t& sinkID, const am_sourceID_t& sourceID, const am_timeSync_t& delay, const am_ConnectionID_L& listConnectionID); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * This struct holds the payload of a notification. ++ */ ++ /** ++ * This struct holds the payload of a notification. ++ */ ++ struct am_NotificationPayload_s: CommonAPI::SerializableStruct { ++ /** ++ * This defines the notification type ++ */ ++ am_CustomNotificationType_t type; ++ /** ++ * This is finally the value of the notification. It's meaning depends on the ++ * notificationType ++ */ ++ int16_t value; ++ ++ am_NotificationPayload_s() = default; ++ am_NotificationPayload_s(const am_CustomNotificationType_t& type, const int16_t& value); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ } ++ }; ++ /** ++ * This struct describes the attribiutes of a sink ++ */ ++ /** ++ * This struct describes the attribiutes of a sink ++ */ ++ struct am_Sink_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the sink, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * The name of the sink. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * The domainID is the domain the sink belongs to. A sink can only be in one ++ * domain. ++ */ ++ am_domainID_t domainID; ++ /** ++ * The sinkClassID references to a sinkClass. With the help of classification, ++ * rules can be setup to define the system behaviour. ++ */ ++ am_sinkClass_t sinkClassID; ++ /** ++ * This is the volume of the sink. It is set by the AudioManagerController. ++ */ ++ am_volume_t volume; ++ /** ++ * This Boolean flag indicates whether a sink is visible to the commandInterface ++ * or not. If the User must have the possibility to choose the source in the HMI, ++ * it must be visible. But there are also good reasons for invisible sinks, for ++ * example if the sink is part of a crossfader or gateway. HMI relevant changes ++ * in visible sinks will be automatically reported by the daemon to the ++ * commandInterface. ++ */ ++ bool visible; ++ /** ++ * This attribute reflects the availability of the sink. There are several reasons ++ * why a sink could be not available for the moment: for example the shutdown of ++ * a sink because of overtemperature or over- & undervoltage. The ++ * availability consists of two pieces of information: ++ ++ Availablility: the ++ * status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN ++ ++ * AvailabilityReason: this informs about the last reason for a change in ++ * availability. The reasons itself are product specific. ++ */ ++ am_Availability_s available; ++ /** ++ * This attribute reflects the muteState of the sink. The information is not the ++ * "real" state of the sink, but the HMI representation for he commandInterface ++ * controlled by the AudioManagerController. ++ */ ++ am_MuteState_e muteState; ++ /** ++ * This is the representation of the Volume for the commandInterface. It is used ++ * by the HMI to set the volume of a sink, the AudioManagerController has to ++ * transform this into real source and sink volumes. ++ */ ++ am_mainVolume_t mainVolume; ++ /** ++ * This is the list of soundProperties, that the sink is capable of. The ++ * soundProperties itself are project specific. For sinks, a possible ++ * soundProperty could be for example settings. ++ */ ++ am_SoundProperty_L listSoundProperties; ++ /** ++ * This list holds information about the formats that the Source is capable of ++ * supporting when delivering audio. ++ */ ++ am_ConnectionFormat_L listConnectionFormats; ++ /** ++ * This is the list of the available mainSoundProperties. The principle is the ++ * same than with soundProperties, but they are only visible to the ++ * CommandInterface. ++ */ ++ am_MainSoundProperty_L listMainSoundProperties; ++ /** ++ * This is the list of the MainNotificationConfigurations. These notifications ++ * work on the level of command interface. ++ */ ++ am_NotificationConfiguration_L listMainNotificationConfigurations; ++ /** ++ * This is the list of the NotificationConfigurations. These notifications work on ++ * the level of RoutingPlugins. ++ */ ++ am_NotificationConfiguration_L listNotificationConfigurations; ++ ++ am_Sink_s() = default; ++ am_Sink_s(const am_sinkID_t& sinkID, const std::string& name, const am_domainID_t& domainID, const am_sinkClass_t& sinkClassID, const am_volume_t& volume, const bool& visible, const am_Availability_s& available, const am_MuteState_e& muteState, const am_mainVolume_t& mainVolume, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, const am_NotificationConfiguration_L& listMainNotificationConfigurations, const am_NotificationConfiguration_L& listNotificationConfigurations); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * This struct describes the attribiutes of a source ++ */ ++ /** ++ * This struct describes the attribiutes of a source ++ */ ++ struct am_Source_s: CommonAPI::SerializableStruct { ++ /** ++ * This is the ID of the source, it is unique in the system. There are 2 ways, ID ++ * can be created: either it is assigned during the registration process (in a ++ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it ++ * is a fixed (the project has to ensure the uniqueness of the ID). ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * The domainID is the domain the source belongs to. A source can only be in one ++ * domain. ++ */ ++ am_domainID_t domainID; ++ /** ++ * The name of the source. Must be unique in the whole system. ++ */ ++ std::string name; ++ /** ++ * the sourceClassID, indicates the class the source is in. This information can ++ * be used by the Controller to implement different behaviour for different ++ * classes. ++ */ ++ am_sourceClass_t sourceClassID; ++ /** ++ * The source state is an indication towards the source if it is actively heard or ++ * not. The source can use this information to implement features like automatic ++ * spin down of CD's in case the CD is not the active source or AF following of a ++ * tuner that is not actively heard. The source state is set by the ++ * AudioManagerController.There are 3 possible states: ++ ++ SS_ON: the source is ++ * active ++ SS_OFF: the source is off ++ SS_PAUSED: the source is paused and ++ * not active. ++ */ ++ am_SourceState_e sourceState; ++ /** ++ * This is the volume of the source. It is set by the AudioManagerController. It ++ * is used to adopt different audiolevels in a system and mixing of sources (e.g. ++ * navigation hints & music). ++ */ ++ am_volume_t volume; ++ /** ++ * This Boolean flag indicates whether a source is visible to the commandInterface ++ * or not. If the User must have the possibility to choose the source in the HMI, ++ * it must be visible. But there are also good reasons for invisible sources, for ++ * example if the source is part of a crossfader or gateway. HMI relevant changes ++ * in visible sources will be automatically reported by the daemon to the ++ * commandInterface. ++ */ ++ bool visible; ++ /** ++ * This attribute reflects the availability of the source. There are several ++ * reasons why a source could be not available for the moment. For example a CD ++ * player which has no CD entered in the slot can be unavailable, or a USB player ++ * with no or unreadable stick attached. Other scenarios involve the shutdown of ++ * a source because of overtemperature or over- & undervoltage. The ++ * availability consists of two informations: ++ ++ Availablility: the status ++ * itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN ++ ++ * AvailabilityReason: this informs about the last reason for a change in ++ * availability. The reasons itself are product specific. ++ */ ++ am_Availability_s available; ++ /** ++ * Some special sources can have special behaviors, the are so called "Low Level ++ * Interrupts". Here the current status is documented. The information can be ++ * used by the AudioManagerController to react to the changes by for example ++ * lowering the volume of the mainSources. The two states are ++ ++ IS_OFF: the ++ * interrupt is not active at the moment ++ IS_INTERRUPTED: the interrupt is ++ * playing at the moment. ++ */ ++ am_InterruptState_e interruptState; ++ /** ++ * This is the list of soundProperties, that the source is capable of. The ++ * soundProperties itself are project specific. For sources, a possible ++ * soundProperty could be navigation volume offset, for example. ++ */ ++ am_SoundProperty_L listSoundProperties; ++ /** ++ * This list holds information about the formats that the Source is capable of ++ * supporting when delivering audio. ++ */ ++ am_ConnectionFormat_L listConnectionFormats; ++ /** ++ * This is the list of the available mainSoundProperties. The principle is the ++ * same than with soundProperties, but they are only visible to the ++ * CommandInterface. ++ */ ++ am_MainSoundProperty_L listMainSoundProperties; ++ /** ++ * The list of MainNotificationConfigurations. These notifications work on the ++ * level of CommandInterface. ++ */ ++ am_NotificationConfiguration_L listMainNotificationConfigurations; ++ /** ++ * The list of MainNotificationConfigurations. These notifications work on the ++ * level of RoutingInterface. ++ */ ++ am_NotificationConfiguration_L listNotificationConfigurations; ++ ++ am_Source_s() = default; ++ am_Source_s(const am_sourceID_t& sourceID, const am_domainID_t& domainID, const std::string& name, const am_sourceClass_t& sourceClassID, const am_SourceState_e& sourceState, const am_volume_t& volume, const bool& visible, const am_Availability_s& available, const am_InterruptState_e& interruptState, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, const am_NotificationConfiguration_L& listMainNotificationConfigurations, const am_NotificationConfiguration_L& listNotificationConfigurations); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.writeInt32Type(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ typeOutputStream.beginWriteVectorType(); ++ typeOutputStream.beginWriteStructType(); ++ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); ++ typeOutputStream.endWriteStructType(); ++ typeOutputStream.endWriteVectorType(); ++ } ++ }; ++ /** ++ * This struct describes the attribiutes of a domain ++ */ ++ /** ++ * This struct describes the attribiutes of a domain ++ */ ++ struct am_Domain_s: CommonAPI::SerializableStruct { ++ /** ++ * the domain ID ++ */ ++ am_domainID_t domainID; ++ /** ++ * the name of the domain ++ */ ++ std::string name; ++ /** ++ * the busname. This is equal to a plugin name and is used to dispatch messages to ++ * the elements of a plugin ++ */ ++ std::string busname; ++ /** ++ * the name of the node ++ */ ++ std::string nodename; ++ /** ++ * indicated if the domain is independent at startup or not ++ */ ++ bool early; ++ /** ++ * indicates if the domain registration is complete or not ++ */ ++ bool complete; ++ /** ++ * the current domain state ++ */ ++ am_DomainState_e state; ++ ++ am_Domain_s() = default; ++ am_Domain_s(const am_domainID_t& domainID, const std::string& name, const std::string& busname, const std::string& nodename, const bool& early, const bool& complete, const am_DomainState_e& state); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeStringType(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.writeBoolType(); ++ typeOutputStream.writeInt32Type(); ++ } ++ }; ++ /** ++ * a connection ++ */ ++ /** ++ * a connection ++ */ ++ struct am_Connection_s: CommonAPI::SerializableStruct { ++ /** ++ * the assigned ID ++ */ ++ am_connectionID_t connectionID; ++ /** ++ * the source the audio flows from ++ */ ++ am_sourceID_t sourceID; ++ /** ++ * the sink the audio flows to ++ */ ++ am_sinkID_t sinkID; ++ /** ++ * the delay of the conneciton ++ */ ++ am_timeSync_t delay; ++ /** ++ * the used connectionformat ++ */ ++ am_CustomConnectionFormat_t connectionFormat; ++ ++ am_Connection_s() = default; ++ am_Connection_s(const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_timeSync_t& delay, const am_CustomConnectionFormat_t& connectionFormat); ++ ++ ++ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); ++ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; ++ ++ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ typeOutputStream.writeInt16Type(); ++ typeOutputStream.writeUInt16Type(); ++ } ++ }; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Availability_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Availability_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_Availability_eComparator { ++ inline bool operator()(const am_Availability_e& lhs, const am_Availability_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_HotSink_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_HotSink_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_HotSink_eComparator { ++ inline bool operator()(const am_HotSink_e& lhs, const am_HotSink_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_ConnectionState_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_ConnectionState_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_ConnectionState_eComparator { ++ inline bool operator()(const am_ConnectionState_e& lhs, const am_ConnectionState_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_DomainState_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_DomainState_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_DomainState_eComparator { ++ inline bool operator()(const am_DomainState_e& lhs, const am_DomainState_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_EarlyDataType_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_EarlyDataType_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_EarlyDataType_eComparator { ++ inline bool operator()(const am_EarlyDataType_e& lhs, const am_EarlyDataType_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Error_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Error_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_Error_eComparator { ++ inline bool operator()(const am_Error_e& lhs, const am_Error_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_MuteState_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_MuteState_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_MuteState_eComparator { ++ inline bool operator()(const am_MuteState_e& lhs, const am_MuteState_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_InterruptState_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_InterruptState_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_InterruptState_eComparator { ++ inline bool operator()(const am_InterruptState_e& lhs, const am_InterruptState_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_VolumeType_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_VolumeType_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_VolumeType_eComparator { ++ inline bool operator()(const am_VolumeType_e& lhs, const am_VolumeType_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_NotificationStatus_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_NotificationStatus_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_NotificationStatus_eComparator { ++ inline bool operator()(const am_NotificationStatus_e& lhs, const am_NotificationStatus_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Handle_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Handle_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_Handle_eComparator { ++ inline bool operator()(const am_Handle_e& lhs, const am_Handle_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_SourceState_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_SourceState_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_SourceState_eComparator { ++ inline bool operator()(const am_SourceState_e& lhs, const am_SourceState_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_RoutingReady_e& enumValue) { ++ return inputStream.readEnumValue<int32_t>(enumValue); ++} ++ ++inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_RoutingReady_e& enumValue) { ++ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); ++} ++ ++struct am_RoutingReady_eComparator { ++ inline bool operator()(const am_RoutingReady_e& lhs, const am_RoutingReady_e& rhs) const { ++ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); ++ } ++}; ++ ++bool operator==(const am_Route_s& lhs, const am_Route_s& rhs); ++inline bool operator!=(const am_Route_s& lhs, const am_Route_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Availability_s& lhs, const am_Availability_s& rhs); ++inline bool operator!=(const am_Availability_s& lhs, const am_Availability_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs); ++inline bool operator!=(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs); ++inline bool operator!=(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Gateway_s& lhs, const am_Gateway_s& rhs); ++inline bool operator!=(const am_Gateway_s& lhs, const am_Gateway_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Converter_s& lhs, const am_Converter_s& rhs); ++inline bool operator!=(const am_Converter_s& lhs, const am_Converter_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs); ++inline bool operator!=(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs); ++inline bool operator!=(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs); ++inline bool operator!=(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs); ++inline bool operator!=(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs); ++inline bool operator!=(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SourceType_s& lhs, const am_SourceType_s& rhs); ++inline bool operator!=(const am_SourceType_s& lhs, const am_SourceType_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_SinkType_s& lhs, const am_SinkType_s& rhs); ++inline bool operator!=(const am_SinkType_s& lhs, const am_SinkType_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Handle_s& lhs, const am_Handle_s& rhs); ++inline bool operator!=(const am_Handle_s& lhs, const am_Handle_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs); ++inline bool operator!=(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs); ++inline bool operator!=(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs); ++inline bool operator!=(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs); ++inline bool operator!=(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs); ++inline bool operator!=(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Sink_s& lhs, const am_Sink_s& rhs); ++inline bool operator!=(const am_Sink_s& lhs, const am_Sink_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Source_s& lhs, const am_Source_s& rhs); ++inline bool operator!=(const am_Source_s& lhs, const am_Source_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Domain_s& lhs, const am_Domain_s& rhs); ++inline bool operator!=(const am_Domain_s& lhs, const am_Domain_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs); ++inline bool operator!=(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Connection_s& lhs, const am_Connection_s& rhs); ++inline bool operator!=(const am_Connection_s& lhs, const am_Connection_s& rhs) { ++ return !(lhs == rhs); ++} ++bool operator==(const am_Volumes_s& lhs, const am_Volumes_s& rhs); ++inline bool operator!=(const am_Volumes_s& lhs, const am_Volumes_s& rhs) { ++ return !(lhs == rhs); ++} ++ ++ ++static inline const char* getTypeCollectionName() { ++ static const char* typeCollectionName = "org.genivi.am"; ++ return typeCollectionName; ++} ++ ++inline CommonAPI::Version getTypeCollectionVersion() { ++ return CommonAPI::Version(2, 0); ++} ++ ++} // namespace am ++ ++} // namespace genivi ++} // namespace org ++ ++namespace CommonAPI { ++ ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_Availability_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_Availability_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Availability_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_Availability_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Availability_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_HotSink_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_HotSink_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_HotSink_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_HotSink_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_HotSink_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_ConnectionState_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_ConnectionState_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_ConnectionState_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_ConnectionState_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_ConnectionState_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_DomainState_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_DomainState_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_DomainState_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_DomainState_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_DomainState_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_EarlyDataType_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_EarlyDataType_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_EarlyDataType_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_EarlyDataType_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_EarlyDataType_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_Error_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_Error_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Error_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_Error_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Error_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_MuteState_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_MuteState_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_MuteState_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_MuteState_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_MuteState_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_InterruptState_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_InterruptState_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_InterruptState_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_InterruptState_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_InterruptState_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_VolumeType_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_VolumeType_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_VolumeType_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_VolumeType_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_VolumeType_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_NotificationStatus_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_NotificationStatus_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_NotificationStatus_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_NotificationStatus_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_NotificationStatus_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_Handle_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_Handle_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Handle_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_Handle_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Handle_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_SourceState_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_SourceState_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_SourceState_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_SourceState_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_SourceState_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ template<> ++ struct BasicTypeWriter<org::genivi::am::am_RoutingReady_e> { ++ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { ++ typeStream.writeInt32EnumType(); ++ } ++ }; ++ ++ template<> ++ struct InputStreamVectorHelper<org::genivi::am::am_RoutingReady_e> { ++ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_RoutingReady_e>& vectorValue) { ++ inputStream.beginReadInt32EnumVector(); ++ } ++ }; ++ ++ template <> ++ struct OutputStreamVectorHelper<org::genivi::am::am_RoutingReady_e> { ++ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_RoutingReady_e>& vectorValue) { ++ outputStream.beginWriteInt32EnumVector(vectorValue.size()); ++ } ++ }; ++ ++} ++ ++ ++namespace std { ++ //Hash for am_Availability_e ++ template<> ++ struct hash<org::genivi::am::am_Availability_e> { ++ inline size_t operator()(const org::genivi::am::am_Availability_e& am_Availability_e) const { ++ return static_cast<int32_t>(am_Availability_e); ++ } ++ }; ++ //Hash for am_HotSink_e ++ template<> ++ struct hash<org::genivi::am::am_HotSink_e> { ++ inline size_t operator()(const org::genivi::am::am_HotSink_e& am_HotSink_e) const { ++ return static_cast<int32_t>(am_HotSink_e); ++ } ++ }; ++ //Hash for am_ConnectionState_e ++ template<> ++ struct hash<org::genivi::am::am_ConnectionState_e> { ++ inline size_t operator()(const org::genivi::am::am_ConnectionState_e& am_ConnectionState_e) const { ++ return static_cast<int32_t>(am_ConnectionState_e); ++ } ++ }; ++ //Hash for am_DomainState_e ++ template<> ++ struct hash<org::genivi::am::am_DomainState_e> { ++ inline size_t operator()(const org::genivi::am::am_DomainState_e& am_DomainState_e) const { ++ return static_cast<int32_t>(am_DomainState_e); ++ } ++ }; ++ //Hash for am_EarlyDataType_e ++ template<> ++ struct hash<org::genivi::am::am_EarlyDataType_e> { ++ inline size_t operator()(const org::genivi::am::am_EarlyDataType_e& am_EarlyDataType_e) const { ++ return static_cast<int32_t>(am_EarlyDataType_e); ++ } ++ }; ++ //Hash for am_Error_e ++ template<> ++ struct hash<org::genivi::am::am_Error_e> { ++ inline size_t operator()(const org::genivi::am::am_Error_e& am_Error_e) const { ++ return static_cast<int32_t>(am_Error_e); ++ } ++ }; ++ //Hash for am_MuteState_e ++ template<> ++ struct hash<org::genivi::am::am_MuteState_e> { ++ inline size_t operator()(const org::genivi::am::am_MuteState_e& am_MuteState_e) const { ++ return static_cast<int32_t>(am_MuteState_e); ++ } ++ }; ++ //Hash for am_InterruptState_e ++ template<> ++ struct hash<org::genivi::am::am_InterruptState_e> { ++ inline size_t operator()(const org::genivi::am::am_InterruptState_e& am_InterruptState_e) const { ++ return static_cast<int32_t>(am_InterruptState_e); ++ } ++ }; ++ //Hash for am_VolumeType_e ++ template<> ++ struct hash<org::genivi::am::am_VolumeType_e> { ++ inline size_t operator()(const org::genivi::am::am_VolumeType_e& am_VolumeType_e) const { ++ return static_cast<int32_t>(am_VolumeType_e); ++ } ++ }; ++ //Hash for am_NotificationStatus_e ++ template<> ++ struct hash<org::genivi::am::am_NotificationStatus_e> { ++ inline size_t operator()(const org::genivi::am::am_NotificationStatus_e& am_NotificationStatus_e) const { ++ return static_cast<int32_t>(am_NotificationStatus_e); ++ } ++ }; ++ //Hash for am_Handle_e ++ template<> ++ struct hash<org::genivi::am::am_Handle_e> { ++ inline size_t operator()(const org::genivi::am::am_Handle_e& am_Handle_e) const { ++ return static_cast<int32_t>(am_Handle_e); ++ } ++ }; ++ //Hash for am_SourceState_e ++ template<> ++ struct hash<org::genivi::am::am_SourceState_e> { ++ inline size_t operator()(const org::genivi::am::am_SourceState_e& am_SourceState_e) const { ++ return static_cast<int32_t>(am_SourceState_e); ++ } ++ }; ++ //Hash for am_RoutingReady_e ++ template<> ++ struct hash<org::genivi::am::am_RoutingReady_e> { ++ inline size_t operator()(const org::genivi::am::am_RoutingReady_e& am_RoutingReady_e) const { ++ return static_cast<int32_t>(am_RoutingReady_e); ++ } ++ }; ++} ++ ++#endif // ORG_GENIVI_am_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControl.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControl.h +new file mode 100644 +index 0000000..41ad727 +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControl.h +@@ -0,0 +1,63 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * This class implements everything from Audiomanager -> RoutingAdapter ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_H_ ++#define ORG_GENIVI_AM_Routing_Control_H_ ++ ++ ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/types.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++class RoutingControl { ++ public: ++ virtual ~RoutingControl() { } ++ ++ static inline const char* getInterfaceId(); ++ static inline CommonAPI::Version getInterfaceVersion(); ++}; ++ ++const char* RoutingControl::getInterfaceId() { ++ static const char* interfaceId = "org.genivi.am.RoutingControl"; ++ return interfaceId; ++} ++ ++CommonAPI::Version RoutingControl::getInterfaceVersion() { ++ return CommonAPI::Version(2, 0); ++} ++ ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++namespace CommonAPI { ++ ++} ++ ++ ++namespace std { ++ //hashes for types ++ ++ //hashes for error types ++} ++ ++#endif // ORG_GENIVI_AM_Routing_Control_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.cpp +new file mode 100644 +index 0000000..6ebe6b5 +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.cpp +@@ -0,0 +1,407 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * This class implements everything from Audiomanager -> RoutingAdapter ++ * @author Christian Mueller ++ */ ++#include "RoutingControlDBusProxy.h" ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++std::shared_ptr<CommonAPI::DBus::DBusProxy> createRoutingControlDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyConnection) { ++ return std::make_shared<RoutingControlDBusProxy>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection); ++} ++ ++INITIALIZER(registerRoutingControlDBusProxy) { ++ CommonAPI::DBus::DBusFactory::registerProxyFactoryMethod(RoutingControl::getInterfaceId(), ++ &createRoutingControlDBusProxy); ++} ++ ++RoutingControlDBusProxy::RoutingControlDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyconnection): ++ CommonAPI::DBus::DBusProxy(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyconnection) ++ { ++ } ++ ++ ++ ++/** ++ * aborts an asynchronous action. ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ */ ++void RoutingControlDBusProxy::asyncAbort(const am_Handle_s& handle, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncAbort", ++ "(iq)", ++ handle, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncAbortAsync(const am_Handle_s& handle, AsyncAbortAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncAbort", ++ "(iq)", ++ handle, ++ std::move(callback)); ++} ++/** ++ * connects a source to a sink ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ */ ++void RoutingControlDBusProxy::asyncConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_connectionID_t, am_sourceID_t, am_sinkID_t, am_CustomConnectionFormat_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncConnect", ++ "(iq)qqqq", ++ handle, connectionID, sourceID, sinkID, connectionFormat, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, AsyncConnectAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_connectionID_t, am_sourceID_t, am_sinkID_t, am_CustomConnectionFormat_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncConnect", ++ "(iq)qqqq", ++ handle, connectionID, sourceID, sinkID, connectionFormat, ++ std::move(callback)); ++} ++/** ++ * disconnect a connection with given connectionID ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ */ ++void RoutingControlDBusProxy::asyncDisconnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_connectionID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncDisconnect", ++ "(iq)q", ++ handle, connectionID, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncDisconnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, AsyncDisconnectAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_connectionID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncDisconnect", ++ "(iq)q", ++ handle, connectionID, ++ std::move(callback)); ++} ++/** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ */ ++void RoutingControlDBusProxy::asyncSetSinkVolume(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_volume_t, am_CustomRampType_t, am_time_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncSetSinkVolume", ++ "(iq)qnqn", ++ handle, sinkID, volume, ramp, time, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSinkVolumeAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, AsyncSetSinkVolumeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_volume_t, am_CustomRampType_t, am_time_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncSetSinkVolume", ++ "(iq)qnqn", ++ handle, sinkID, volume, ramp, time, ++ std::move(callback)); ++} ++/** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++(at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++triggers the acknowledge ackSourceVolumeChange ++ */ ++void RoutingControlDBusProxy::asyncSetSourceVolume(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_volume_t, am_CustomRampType_t, am_time_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncSetSourceVolume", ++ "(iq)qnqn", ++ handle, sourceID, volume, ramp, time, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSourceVolumeAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, AsyncSetSourceVolumeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_volume_t, am_CustomRampType_t, am_time_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncSetSourceVolume", ++ "(iq)qnqn", ++ handle, sourceID, volume, ramp, time, ++ std::move(callback)); ++} ++/** ++ * This function is used to set the source state of a particular ++ * source. ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++void RoutingControlDBusProxy::asyncSetSourceState(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_SourceState_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncSetSourceState", ++ "(iq)qi", ++ handle, sourceID, state, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSourceStateAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, AsyncSetSourceStateAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_SourceState_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncSetSourceState", ++ "(iq)qi", ++ handle, sourceID, state, ++ std::move(callback)); ++} ++/** ++ * this function sets the sinksoundproperty. ++(at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++void RoutingControlDBusProxy::asyncSetSinkSoundProperties(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_SoundProperty_L>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncSetSinkSoundProperties", ++ "(iq)qa(qn)", ++ handle, sinkID, listSoundProperties, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, AsyncSetSinkSoundPropertiesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_SoundProperty_L>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncSetSinkSoundProperties", ++ "(iq)qa(qn)", ++ handle, sinkID, listSoundProperties, ++ std::move(callback)); ++} ++/** ++ * this function sets the sinksoundproperty. ++(at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++void RoutingControlDBusProxy::asyncSetSinkSoundProperty(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_SoundProperty_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncSetSinkSoundProperty", ++ "(iq)q(qn)", ++ handle, sinkID, soundProperty, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, AsyncSetSinkSoundPropertyAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_SoundProperty_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncSetSinkSoundProperty", ++ "(iq)q(qn)", ++ handle, sinkID, soundProperty, ++ std::move(callback)); ++} ++/** ++ * this function sets the sourcesoundproperty. ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++void RoutingControlDBusProxy::asyncSetSourceSoundProperties(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_SoundProperty_L>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncSetSourceSoundProperties", ++ "(iq)qa(qn)", ++ handle, sourceID, listSoundProperties, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSourceSoundPropertiesAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_L& listSoundProperties, AsyncSetSourceSoundPropertiesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_SoundProperty_L>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncSetSourceSoundProperties", ++ "(iq)qa(qn)", ++ handle, sourceID, listSoundProperties, ++ std::move(callback)); ++} ++/** ++ * this function sets the sourcesoundproperty. ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++void RoutingControlDBusProxy::asyncSetSourceSoundProperty(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_SoundProperty_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncSetSourceSoundProperty", ++ "(iq)q(qn)", ++ handle, sourceID, soundProperty, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSourceSoundPropertyAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_s& soundProperty, AsyncSetSourceSoundPropertyAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_SoundProperty_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncSetSourceSoundProperty", ++ "(iq)q(qn)", ++ handle, sourceID, soundProperty, ++ std::move(callback)); ++} ++/** ++ * this function triggers crossfading. ++(at)return E_OK on success, E_UNKNOWN on ++ * error ++ */ ++void RoutingControlDBusProxy::asyncCrossFade(const am_Handle_s& handle, const am_crossfaderID_t& crossfaderID, const am_HotSink_e& hotSink, const am_CustomRampType_t& rampType, const am_time_t& time, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_crossfaderID_t, am_HotSink_e, am_CustomRampType_t, am_time_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncCrossFade", ++ "(iq)qiqn", ++ handle, crossfaderID, hotSink, rampType, time, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncCrossFadeAsync(const am_Handle_s& handle, const am_crossfaderID_t& crossfaderID, const am_HotSink_e& hotSink, const am_CustomRampType_t& rampType, const am_time_t& time, AsyncCrossFadeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_crossfaderID_t, am_HotSink_e, am_CustomRampType_t, am_time_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncCrossFade", ++ "(iq)qiqn", ++ handle, crossfaderID, hotSink, rampType, time, ++ std::move(callback)); ++} ++/** ++ * this function is used for early and late audio functions to set the domain ++ * state ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++void RoutingControlDBusProxy::setDomainState(const am_domainID_t& domainID, const am_DomainState_e& domainState, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_domainID_t, am_DomainState_e>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "setDomainState", ++ "qi", ++ domainID, domainState, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::setDomainStateAsync(const am_domainID_t& domainID, const am_DomainState_e& domainState, SetDomainStateAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_domainID_t, am_DomainState_e>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "setDomainState", ++ "qi", ++ domainID, domainState, ++ std::move(callback)); ++} ++void RoutingControlDBusProxy::asyncSetVolumes(const am_Handle_s& handle, const am_Volumes_L& volumes, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Volumes_L>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncSetVolumes", ++ "(iq)a(i(yv)nqn)", ++ handle, volumes, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetVolumesAsync(const am_Handle_s& handle, const am_Volumes_L& volumes, AsyncSetVolumesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Volumes_L>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncSetVolumes", ++ "(iq)a(i(yv)nqn)", ++ handle, volumes, ++ std::move(callback)); ++} ++void RoutingControlDBusProxy::asyncSetSinkNotificationConfiguration(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& notificationConfiguration, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_NotificationConfiguration_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncSetSinkNotificationConfiguration", ++ "(iq)q(qin)", ++ handle, sinkID, notificationConfiguration, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSinkNotificationConfigurationAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& notificationConfiguration, AsyncSetSinkNotificationConfigurationAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_NotificationConfiguration_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncSetSinkNotificationConfiguration", ++ "(iq)q(qin)", ++ handle, sinkID, notificationConfiguration, ++ std::move(callback)); ++} ++void RoutingControlDBusProxy::asyncSetSourceNotificationConfiguration(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& notificationConfiguration, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_NotificationConfiguration_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "asyncSetSourceNotificationConfiguration", ++ "(iq)q(qin)", ++ handle, sourceID, notificationConfiguration, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSourceNotificationConfigurationAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& notificationConfiguration, AsyncSetSourceNotificationConfigurationAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_NotificationConfiguration_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "asyncSetSourceNotificationConfiguration", ++ "(iq)q(qin)", ++ handle, sourceID, notificationConfiguration, ++ std::move(callback)); ++} ++ ++ ++ ++void RoutingControlDBusProxy::getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const { ++ ownVersionMajor = 2; ++ ownVersionMinor = 0; ++} ++ ++} // namespace am ++} // namespace genivi ++} // namespace org +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.h +new file mode 100644 +index 0000000..468f939 +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.h +@@ -0,0 +1,157 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * This class implements everything from Audiomanager -> RoutingAdapter ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_DBUS_PROXY_H_ ++#define ORG_GENIVI_AM_Routing_Control_DBUS_PROXY_H_ ++ ++#include <org/genivi/am/RoutingControlProxyBase.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/DBus/DBusFactory.h> ++#include <CommonAPI/DBus/DBusProxy.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++#include <string> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++class RoutingControlDBusProxy: virtual public RoutingControlProxyBase, virtual public CommonAPI::DBus::DBusProxy { ++ public: ++ RoutingControlDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyconnection); ++ ++ virtual ~RoutingControlDBusProxy() { } ++ ++ ++ ++ /** ++ * aborts an asynchronous action. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ */ ++ virtual void asyncAbort(const am_Handle_s& handle, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncAbortAsync(const am_Handle_s& handle, AsyncAbortAsyncCallback callback); ++ /** ++ * connects a source to a sink ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ */ ++ virtual void asyncConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, AsyncConnectAsyncCallback callback); ++ /** ++ * disconnect a connection with given connectionID ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ */ ++ virtual void asyncDisconnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncDisconnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, AsyncDisconnectAsyncCallback callback); ++ /** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ */ ++ virtual void asyncSetSinkVolume(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkVolumeAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, AsyncSetSinkVolumeAsyncCallback callback); ++ /** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++ triggers the acknowledge ackSourceVolumeChange ++ */ ++ virtual void asyncSetSourceVolume(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceVolumeAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, AsyncSetSourceVolumeAsyncCallback callback); ++ /** ++ * This function is used to set the source state of a particular ++ * source. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ virtual void asyncSetSourceState(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceStateAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, AsyncSetSourceStateAsyncCallback callback); ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSinkSoundProperties(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, AsyncSetSinkSoundPropertiesAsyncCallback callback); ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSinkSoundProperty(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, AsyncSetSinkSoundPropertyAsyncCallback callback); ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSourceSoundProperties(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceSoundPropertiesAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_L& listSoundProperties, AsyncSetSourceSoundPropertiesAsyncCallback callback); ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSourceSoundProperty(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceSoundPropertyAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_s& soundProperty, AsyncSetSourceSoundPropertyAsyncCallback callback); ++ /** ++ * this function triggers crossfading. ++ (at)return E_OK on success, E_UNKNOWN on ++ * error ++ */ ++ virtual void asyncCrossFade(const am_Handle_s& handle, const am_crossfaderID_t& crossfaderID, const am_HotSink_e& hotSink, const am_CustomRampType_t& rampType, const am_time_t& time, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncCrossFadeAsync(const am_Handle_s& handle, const am_crossfaderID_t& crossfaderID, const am_HotSink_e& hotSink, const am_CustomRampType_t& rampType, const am_time_t& time, AsyncCrossFadeAsyncCallback callback); ++ /** ++ * this function is used for early and late audio functions to set the domain ++ * state ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ virtual void setDomainState(const am_domainID_t& domainID, const am_DomainState_e& domainState, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> setDomainStateAsync(const am_domainID_t& domainID, const am_DomainState_e& domainState, SetDomainStateAsyncCallback callback); ++ virtual void asyncSetVolumes(const am_Handle_s& handle, const am_Volumes_L& volumes, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncSetVolumesAsync(const am_Handle_s& handle, const am_Volumes_L& volumes, AsyncSetVolumesAsyncCallback callback); ++ virtual void asyncSetSinkNotificationConfiguration(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& notificationConfiguration, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkNotificationConfigurationAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& notificationConfiguration, AsyncSetSinkNotificationConfigurationAsyncCallback callback); ++ virtual void asyncSetSourceNotificationConfiguration(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& notificationConfiguration, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceNotificationConfigurationAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& notificationConfiguration, AsyncSetSourceNotificationConfigurationAsyncCallback callback); ++ ++ ++ virtual void getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const; ++ ++ private: ++ ++ ++}; ++ ++ ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Routing_Control_DBUS_PROXY_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.cpp +new file mode 100644 +index 0000000..f08a30f +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.cpp +@@ -0,0 +1,477 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++#include "RoutingControlDBusStubAdapter.h" ++#include <org/genivi/am/RoutingControl.h> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++std::shared_ptr<CommonAPI::DBus::DBusStubAdapter> createRoutingControlDBusStubAdapter( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stubBase) { ++ return std::make_shared<RoutingControlDBusStubAdapter>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection, stubBase); ++} ++ ++INITIALIZER(registerRoutingControlDBusStubAdapter) { ++ CommonAPI::DBus::DBusFactory::registerAdapterFactoryMethod(RoutingControl::getInterfaceId(), ++ &createRoutingControlDBusStubAdapter); ++} ++ ++ ++ ++RoutingControlDBusStubAdapterInternal::~RoutingControlDBusStubAdapterInternal() { ++ deactivateManagedInstances(); ++ RoutingControlDBusStubAdapterHelper::deinit(); ++} ++ ++void RoutingControlDBusStubAdapterInternal::deactivateManagedInstances() { ++ ++} ++ ++const char* RoutingControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXmlData() const { ++ static const std::string introspectionData = ++ "<method name=\"getInterfaceVersion\">\n" ++ "<arg name=\"value\" type=\"uu\" direction=\"out\" />" ++ "</method>\n" ++ /** ++ * aborts an asynchronous action. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ */ ++ "<method name=\"asyncAbort\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * connects a source to a sink ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ */ ++ "<method name=\"asyncConnect\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"connectionID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"connectionFormat\" type=\"q\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * disconnect a connection with given connectionID ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ */ ++ "<method name=\"asyncDisconnect\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"connectionID\" type=\"q\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ */ ++ "<method name=\"asyncSetSinkVolume\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"volume\" type=\"n\" direction=\"in\" />\n" ++ "<arg name=\"ramp\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"time\" type=\"n\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++ triggers the acknowledge ackSourceVolumeChange ++ */ ++ "<method name=\"asyncSetSourceVolume\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"volume\" type=\"n\" direction=\"in\" />\n" ++ "<arg name=\"ramp\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"time\" type=\"n\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * This function is used to set the source state of a particular ++ * source. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ "<method name=\"asyncSetSourceState\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"state\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ "<method name=\"asyncSetSinkSoundProperties\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"listSoundProperties\" type=\"a(qn)\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ "<method name=\"asyncSetSinkSoundProperty\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"soundProperty\" type=\"(qn)\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ "<method name=\"asyncSetSourceSoundProperties\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"listSoundProperties\" type=\"a(qn)\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ "<method name=\"asyncSetSourceSoundProperty\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"soundProperty\" type=\"(qn)\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * this function triggers crossfading. ++ (at)return E_OK on success, E_UNKNOWN on ++ * error ++ */ ++ "<method name=\"asyncCrossFade\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"crossfaderID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"hotSink\" type=\"i\" direction=\"in\" />\n" ++ "<arg name=\"rampType\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"time\" type=\"n\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * this function is used for early and late audio functions to set the domain ++ * state ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ "<method name=\"setDomainState\">\n" ++ "<arg name=\"domainID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"domainState\" type=\"i\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ "<method name=\"asyncSetVolumes\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"volumes\" type=\"a(i(yv)nqn)\" direction=\"in\" />\n" ++ "</method>\n" ++ "<method name=\"asyncSetSinkNotificationConfiguration\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"notificationConfiguration\" type=\"(qin)\" direction=\"in\" />\n" ++ "</method>\n" ++ "<method name=\"asyncSetSourceNotificationConfiguration\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"notificationConfiguration\" type=\"(qin)\" direction=\"in\" />\n" ++ "</method>\n" ++ ++ ; ++ return introspectionData.c_str(); ++} ++ ++CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ RoutingControlStub, ++ CommonAPI::Version ++ > RoutingControlDBusStubAdapterInternal::getRoutingControlInterfaceVersionStubDispatcher(&RoutingControlStub::getInterfaceVersion, "uu"); ++ ++ ++ ++/** ++ * aborts an asynchronous action. ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncAbortStubDispatcher(&RoutingControlStub::asyncAbort, ""); ++/** ++ * connects a source to a sink ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_connectionID_t, am_sourceID_t, am_sinkID_t, am_CustomConnectionFormat_t>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncConnectStubDispatcher(&RoutingControlStub::asyncConnect, ""); ++/** ++ * disconnect a connection with given connectionID ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_connectionID_t>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncDisconnectStubDispatcher(&RoutingControlStub::asyncDisconnect, ""); ++/** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sinkID_t, am_volume_t, am_CustomRampType_t, am_time_t>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncSetSinkVolumeStubDispatcher(&RoutingControlStub::asyncSetSinkVolume, ""); ++/** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++(at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++triggers the acknowledge ackSourceVolumeChange ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_volume_t, am_CustomRampType_t, am_time_t>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncSetSourceVolumeStubDispatcher(&RoutingControlStub::asyncSetSourceVolume, ""); ++/** ++ * This function is used to set the source state of a particular ++ * source. ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_SourceState_e>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncSetSourceStateStubDispatcher(&RoutingControlStub::asyncSetSourceState, ""); ++/** ++ * this function sets the sinksoundproperty. ++(at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sinkID_t, am_SoundProperty_L>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncSetSinkSoundPropertiesStubDispatcher(&RoutingControlStub::asyncSetSinkSoundProperties, ""); ++/** ++ * this function sets the sinksoundproperty. ++(at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sinkID_t, am_SoundProperty_s>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncSetSinkSoundPropertyStubDispatcher(&RoutingControlStub::asyncSetSinkSoundProperty, ""); ++/** ++ * this function sets the sourcesoundproperty. ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_SoundProperty_L>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncSetSourceSoundPropertiesStubDispatcher(&RoutingControlStub::asyncSetSourceSoundProperties, ""); ++/** ++ * this function sets the sourcesoundproperty. ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_SoundProperty_s>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncSetSourceSoundPropertyStubDispatcher(&RoutingControlStub::asyncSetSourceSoundProperty, ""); ++/** ++ * this function triggers crossfading. ++(at)return E_OK on success, E_UNKNOWN on ++ * error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_crossfaderID_t, am_HotSink_e, am_CustomRampType_t, am_time_t>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncCrossFadeStubDispatcher(&RoutingControlStub::asyncCrossFade, ""); ++/** ++ * this function is used for early and late audio functions to set the domain ++ * state ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_domainID_t, am_DomainState_e>, ++ std::tuple<am_Error_e> ++ > RoutingControlDBusStubAdapterInternal::setDomainStateStubDispatcher(&RoutingControlStub::setDomainState, "i"); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_Volumes_L>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncSetVolumesStubDispatcher(&RoutingControlStub::asyncSetVolumes, ""); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sinkID_t, am_NotificationConfiguration_s>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncSetSinkNotificationConfigurationStubDispatcher(&RoutingControlStub::asyncSetSinkNotificationConfiguration, ""); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_NotificationConfiguration_s>, ++ std::tuple<> ++ > RoutingControlDBusStubAdapterInternal::asyncSetSourceNotificationConfigurationStubDispatcher(&RoutingControlStub::asyncSetSourceNotificationConfiguration, ""); ++ ++ ++ ++ ++ ++const RoutingControlDBusStubAdapterHelper::StubDispatcherTable& RoutingControlDBusStubAdapterInternal::getStubDispatcherTable() { ++ return stubDispatcherTable_; ++} ++ ++const CommonAPI::DBus::StubAttributeTable& RoutingControlDBusStubAdapterInternal::getStubAttributeTable() { ++ return stubAttributeTable_; ++} ++ ++RoutingControlDBusStubAdapterInternal::RoutingControlDBusStubAdapterInternal( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub): ++ CommonAPI::DBus::DBusStubAdapter( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ false), ++ RoutingControlDBusStubAdapterHelper( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ std::dynamic_pointer_cast<RoutingControlStub>(stub), ++ false), ++ stubDispatcherTable_({ ++ /** ++ * aborts an asynchronous action. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ */ ++ { { "asyncAbort", "(iq)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncAbortStubDispatcher }, ++ /** ++ * connects a source to a sink ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ */ ++ { { "asyncConnect", "(iq)qqqq" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncConnectStubDispatcher }, ++ /** ++ * disconnect a connection with given connectionID ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ */ ++ { { "asyncDisconnect", "(iq)q" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncDisconnectStubDispatcher }, ++ /** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ */ ++ { { "asyncSetSinkVolume", "(iq)qnqn" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSinkVolumeStubDispatcher }, ++ /** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++ triggers the acknowledge ackSourceVolumeChange ++ */ ++ { { "asyncSetSourceVolume", "(iq)qnqn" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSourceVolumeStubDispatcher }, ++ /** ++ * This function is used to set the source state of a particular ++ * source. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ { { "asyncSetSourceState", "(iq)qi" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSourceStateStubDispatcher }, ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ { { "asyncSetSinkSoundProperties", "(iq)qa(qn)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSinkSoundPropertiesStubDispatcher }, ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ { { "asyncSetSinkSoundProperty", "(iq)q(qn)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSinkSoundPropertyStubDispatcher }, ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ { { "asyncSetSourceSoundProperties", "(iq)qa(qn)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSourceSoundPropertiesStubDispatcher }, ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ { { "asyncSetSourceSoundProperty", "(iq)q(qn)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSourceSoundPropertyStubDispatcher }, ++ /** ++ * this function triggers crossfading. ++ (at)return E_OK on success, E_UNKNOWN on ++ * error ++ */ ++ { { "asyncCrossFade", "(iq)qiqn" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncCrossFadeStubDispatcher }, ++ /** ++ * this function is used for early and late audio functions to set the domain ++ * state ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ { { "setDomainState", "qi" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::setDomainStateStubDispatcher }, ++ { { "asyncSetVolumes", "(iq)a(i(yv)nqn)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetVolumesStubDispatcher }, ++ { { "asyncSetSinkNotificationConfiguration", "(iq)q(qin)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSinkNotificationConfigurationStubDispatcher }, ++ { { "asyncSetSourceNotificationConfiguration", "(iq)q(qin)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSourceNotificationConfigurationStubDispatcher } ++ }), ++ stubAttributeTable_() { ++ ++ stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::getRoutingControlInterfaceVersionStubDispatcher }); ++} ++ ++const bool RoutingControlDBusStubAdapterInternal::hasFreedesktopProperties() { ++ return false; ++} ++ ++} // namespace am ++} // namespace genivi ++} // namespace org +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.h +new file mode 100644 +index 0000000..9ee7957 +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.h +@@ -0,0 +1,250 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * This class implements everything from Audiomanager -> RoutingAdapter ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_DBUS_STUB_ADAPTER_H_ ++#define ORG_GENIVI_AM_Routing_Control_DBUS_STUB_ADAPTER_H_ ++ ++#include <org/genivi/am/RoutingControlStub.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/DBus/DBusStubAdapterHelper.h> ++#include <CommonAPI/DBus/DBusStubAdapter.h> ++#include <CommonAPI/DBus/DBusFactory.h> ++#include <CommonAPI/DBus/DBusServicePublisher.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++typedef CommonAPI::DBus::DBusStubAdapterHelper<RoutingControlStub> RoutingControlDBusStubAdapterHelper; ++ ++class RoutingControlDBusStubAdapterInternal: public virtual RoutingControlStubAdapter, public RoutingControlDBusStubAdapterHelper { ++ public: ++ RoutingControlDBusStubAdapterInternal( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub); ++ ++ ~RoutingControlDBusStubAdapterInternal(); ++ ++ virtual const bool hasFreedesktopProperties(); ++ ++ ++ ++ ++ const RoutingControlDBusStubAdapterHelper::StubDispatcherTable& getStubDispatcherTable(); ++ const CommonAPI::DBus::StubAttributeTable& getStubAttributeTable(); ++ ++ void deactivateManagedInstances(); ++ ++ ++static CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ RoutingControlStub, ++ CommonAPI::Version ++ > getRoutingControlInterfaceVersionStubDispatcher; ++ ++ ++ ++/** ++ * aborts an asynchronous action. ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s>, ++ std::tuple<> ++ > asyncAbortStubDispatcher; ++/** ++ * connects a source to a sink ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_connectionID_t, am_sourceID_t, am_sinkID_t, am_CustomConnectionFormat_t>, ++ std::tuple<> ++ > asyncConnectStubDispatcher; ++/** ++ * disconnect a connection with given connectionID ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_connectionID_t>, ++ std::tuple<> ++ > asyncDisconnectStubDispatcher; ++/** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sinkID_t, am_volume_t, am_CustomRampType_t, am_time_t>, ++ std::tuple<> ++ > asyncSetSinkVolumeStubDispatcher; ++/** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++(at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++triggers the acknowledge ackSourceVolumeChange ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_volume_t, am_CustomRampType_t, am_time_t>, ++ std::tuple<> ++ > asyncSetSourceVolumeStubDispatcher; ++/** ++ * This function is used to set the source state of a particular ++ * source. ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_SourceState_e>, ++ std::tuple<> ++ > asyncSetSourceStateStubDispatcher; ++/** ++ * this function sets the sinksoundproperty. ++(at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sinkID_t, am_SoundProperty_L>, ++ std::tuple<> ++ > asyncSetSinkSoundPropertiesStubDispatcher; ++/** ++ * this function sets the sinksoundproperty. ++(at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sinkID_t, am_SoundProperty_s>, ++ std::tuple<> ++ > asyncSetSinkSoundPropertyStubDispatcher; ++/** ++ * this function sets the sourcesoundproperty. ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_SoundProperty_L>, ++ std::tuple<> ++ > asyncSetSourceSoundPropertiesStubDispatcher; ++/** ++ * this function sets the sourcesoundproperty. ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_SoundProperty_s>, ++ std::tuple<> ++ > asyncSetSourceSoundPropertyStubDispatcher; ++/** ++ * this function triggers crossfading. ++(at)return E_OK on success, E_UNKNOWN on ++ * error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_crossfaderID_t, am_HotSink_e, am_CustomRampType_t, am_time_t>, ++ std::tuple<> ++ > asyncCrossFadeStubDispatcher; ++/** ++ * this function is used for early and late audio functions to set the domain ++ * state ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_domainID_t, am_DomainState_e>, ++ std::tuple<am_Error_e> ++ > setDomainStateStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_Volumes_L>, ++ std::tuple<> ++ > asyncSetVolumesStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sinkID_t, am_NotificationConfiguration_s>, ++ std::tuple<> ++ > asyncSetSinkNotificationConfigurationStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_NotificationConfiguration_s>, ++ std::tuple<> ++ > asyncSetSourceNotificationConfigurationStubDispatcher; ++ ++ ++ ++ ++ protected: ++ virtual const char* getMethodsDBusIntrospectionXmlData() const; ++ ++ private: ++ RoutingControlDBusStubAdapterHelper::StubDispatcherTable stubDispatcherTable_; ++ CommonAPI::DBus::StubAttributeTable stubAttributeTable_; ++}; ++ ++class RoutingControlDBusStubAdapter: public RoutingControlDBusStubAdapterInternal, public std::enable_shared_from_this<RoutingControlDBusStubAdapter> { ++public: ++ RoutingControlDBusStubAdapter( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub) : ++ CommonAPI::DBus::DBusStubAdapter( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ false), ++ RoutingControlDBusStubAdapterInternal( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ stub) { } ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Routing_Control_DBUS_STUB_ADAPTER_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserver.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserver.h +new file mode 100644 +index 0000000..7327326 +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserver.h +@@ -0,0 +1,63 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * Routing Receive sendInterface description. ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_Observer_H_ ++#define ORG_GENIVI_AM_Routing_Control_Observer_H_ ++ ++ ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/types.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++class RoutingControlObserver { ++ public: ++ virtual ~RoutingControlObserver() { } ++ ++ static inline const char* getInterfaceId(); ++ static inline CommonAPI::Version getInterfaceVersion(); ++}; ++ ++const char* RoutingControlObserver::getInterfaceId() { ++ static const char* interfaceId = "org.genivi.am.RoutingControlObserver"; ++ return interfaceId; ++} ++ ++CommonAPI::Version RoutingControlObserver::getInterfaceVersion() { ++ return CommonAPI::Version(2, 0); ++} ++ ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++namespace CommonAPI { ++ ++} ++ ++ ++namespace std { ++ //hashes for types ++ ++ //hashes for error types ++} ++ ++#endif // ORG_GENIVI_AM_Routing_Control_Observer_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.cpp +new file mode 100644 +index 0000000..36d9ee2 +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.cpp +@@ -0,0 +1,1135 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * Routing Receive sendInterface description. ++ * @author Christian Mueller ++ */ ++#include "RoutingControlObserverDBusProxy.h" ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++std::shared_ptr<CommonAPI::DBus::DBusProxy> createRoutingControlObserverDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyConnection) { ++ return std::make_shared<RoutingControlObserverDBusProxy>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection); ++} ++ ++INITIALIZER(registerRoutingControlObserverDBusProxy) { ++ CommonAPI::DBus::DBusFactory::registerProxyFactoryMethod(RoutingControlObserver::getInterfaceId(), ++ &createRoutingControlObserverDBusProxy); ++} ++ ++RoutingControlObserverDBusProxy::RoutingControlObserverDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyconnection): ++ CommonAPI::DBus::DBusProxy(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyconnection) ++,routingReady_(*this, "onRoutingReadyAttributeChanged", "i", "getRoutingReadyAttribute") ++ { ++ } ++ ++RoutingControlObserverDBusProxy::RoutingReadyAttribute& RoutingControlObserverDBusProxy::getRoutingReadyAttribute() { ++ return routingReady_; ++} ++ ++ ++/** ++ * acknowledges a asyncConnect ++ */ ++void RoutingControlObserverDBusProxy::ackConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_connectionID_t, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackConnect", ++ "(iq)qi", ++ handle, connectionID, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, AckConnectAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_connectionID_t, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackConnect", ++ "(iq)qi", ++ handle, connectionID, error, ++ std::move(callback)); ++} ++/** ++ * acknowledges a asyncDisconnect ++ */ ++void RoutingControlObserverDBusProxy::ackDisconnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_connectionID_t, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackDisconnect", ++ "(iq)qi", ++ handle, connectionID, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackDisconnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, AckDisconnectAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_connectionID_t, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackDisconnect", ++ "(iq)qi", ++ handle, connectionID, error, ++ std::move(callback)); ++} ++/** ++ * acknowledges a asyncsetSinkVolume ++ */ ++void RoutingControlObserverDBusProxy::ackSetSinkVolumeChange(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_volume_t, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSetSinkVolumeChange", ++ "(iq)ni", ++ handle, volume, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSetSinkVolumeChangeAsync(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, AckSetSinkVolumeChangeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_volume_t, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSetSinkVolumeChange", ++ "(iq)ni", ++ handle, volume, error, ++ std::move(callback)); ++} ++/** ++ * acknowledges a asyncsetSourceVolume ++ */ ++void RoutingControlObserverDBusProxy::ackSetSourceVolumeChange(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_volume_t, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSetSourceVolumeChange", ++ "(iq)ni", ++ handle, volume, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSetSourceVolumeChangeAsync(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, AckSetSourceVolumeChangeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_volume_t, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSetSourceVolumeChange", ++ "(iq)ni", ++ handle, volume, error, ++ std::move(callback)); ++} ++/** ++ * acknowlegde for asyncSetSourceState ++ */ ++void RoutingControlObserverDBusProxy::ackSetSourceState(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSetSourceState", ++ "(iq)i", ++ handle, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSetSourceStateAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceStateAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSetSourceState", ++ "(iq)i", ++ handle, error, ++ std::move(callback)); ++} ++/** ++ * acknowledges asyncSetSinkSoundProperties ++ */ ++void RoutingControlObserverDBusProxy::ackSetSinkSoundProperties(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSetSinkSoundProperties", ++ "(iq)i", ++ handle, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSinkSoundPropertiesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSetSinkSoundProperties", ++ "(iq)i", ++ handle, error, ++ std::move(callback)); ++} ++/** ++ * acknowledges asyncSetSinkSoundProperty ++ */ ++void RoutingControlObserverDBusProxy::ackSetSinkSoundProperty(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSetSinkSoundProperty", ++ "(iq)i", ++ handle, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSinkSoundPropertyAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSetSinkSoundProperty", ++ "(iq)i", ++ handle, error, ++ std::move(callback)); ++} ++/** ++ * acknowledges asyncSetSourceSoundProperties ++ */ ++void RoutingControlObserverDBusProxy::ackSetSourceSoundProperties(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSetSourceSoundProperties", ++ "(iq)i", ++ handle, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSetSourceSoundPropertiesAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceSoundPropertiesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSetSourceSoundProperties", ++ "(iq)i", ++ handle, error, ++ std::move(callback)); ++} ++/** ++ * acknowledges asyncSetSourceSoundProperty ++ */ ++void RoutingControlObserverDBusProxy::ackSetSourceSoundProperty(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSetSourceSoundProperty", ++ "(iq)i", ++ handle, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSetSourceSoundPropertyAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceSoundPropertyAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSetSourceSoundProperty", ++ "(iq)i", ++ handle, error, ++ std::move(callback)); ++} ++/** ++ * acknowledges asyncCrossFade ++ */ ++void RoutingControlObserverDBusProxy::ackCrossFading(const am_Handle_s& handle, const am_HotSink_e& hotSink, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_HotSink_e, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackCrossFading", ++ "(iq)ii", ++ handle, hotSink, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackCrossFadingAsync(const am_Handle_s& handle, const am_HotSink_e& hotSink, const am_Error_e& error, AckCrossFadingAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_HotSink_e, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackCrossFading", ++ "(iq)ii", ++ handle, hotSink, error, ++ std::move(callback)); ++} ++/** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++void RoutingControlObserverDBusProxy::ackSourceVolumeTick(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_volume_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSourceVolumeTick", ++ "(iq)qn", ++ handle, sourceID, volume, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSourceVolumeTickAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, AckSourceVolumeTickAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sourceID_t, am_volume_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSourceVolumeTick", ++ "(iq)qn", ++ handle, sourceID, volume, ++ std::move(callback)); ++} ++/** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++void RoutingControlObserverDBusProxy::ackSinkVolumeTick(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_volume_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSinkVolumeTick", ++ "(iq)qn", ++ handle, sinkID, volume, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSinkVolumeTickAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, AckSinkVolumeTickAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_volume_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSinkVolumeTick", ++ "(iq)qn", ++ handle, sinkID, volume, ++ std::move(callback)); ++} ++/** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++void RoutingControlObserverDBusProxy::peekDomain(const std::string& name, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_domainID_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "peekDomain", ++ "s", ++ name, ++ callStatus ++ , domainID, error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::peekDomainAsync(const std::string& name, PeekDomainAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_domainID_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "peekDomain", ++ "s", ++ name, ++ std::move(callback)); ++} ++/** ++ * registers a domain ++(at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++void RoutingControlObserverDBusProxy::registerDomain(const am_Domain_s& domainData, const std::string& returnBusname, const std::string& returnInterface, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Domain_s, std::string, std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_domainID_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "registerDomain", ++ "(qsssbbi)ss", ++ domainData, returnBusname, returnInterface, ++ callStatus ++ , domainID, error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::registerDomainAsync(const am_Domain_s& domainData, const std::string& returnBusname, const std::string& returnInterface, RegisterDomainAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Domain_s, std::string, std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_domainID_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "registerDomain", ++ "(qsssbbi)ss", ++ domainData, returnBusname, returnInterface, ++ std::move(callback)); ++} ++/** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++(at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ */ ++void RoutingControlObserverDBusProxy::deregisterDomain(const am_domainID_t& domainID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_domainID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "deregisterDomain", ++ "q", ++ domainID, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::deregisterDomainAsync(const am_domainID_t& domainID, DeregisterDomainAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_domainID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "deregisterDomain", ++ "q", ++ domainID, ++ std::move(callback)); ++} ++/** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++void RoutingControlObserverDBusProxy::registerGateway(const am_Gateway_s& gatewayData, CommonAPI::CallStatus& callStatus, am_gatewayID_t& gatewayID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Gateway_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_gatewayID_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "registerGateway", ++ "(qsqqqqqaqaqab)", ++ gatewayData, ++ callStatus ++ , gatewayID, error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::registerGatewayAsync(const am_Gateway_s& gatewayData, RegisterGatewayAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Gateway_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_gatewayID_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "registerGateway", ++ "(qsqqqqqaqaqab)", ++ gatewayData, ++ std::move(callback)); ++} ++/** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++void RoutingControlObserverDBusProxy::registerConverter(const am_Converter_s& converterData, CommonAPI::CallStatus& callStatus, am_converterID_t& converterID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Converter_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_converterID_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "registerConverter", ++ "(qsqqqaqaqab)", ++ converterData, ++ callStatus ++ , converterID, error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::registerConverterAsync(const am_Converter_s& converterData, RegisterConverterAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Converter_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_converterID_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "registerConverter", ++ "(qsqqqaqaqab)", ++ converterData, ++ std::move(callback)); ++} ++/** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++void RoutingControlObserverDBusProxy::deregisterGateway(const am_gatewayID_t& gatewayID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_gatewayID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "deregisterGateway", ++ "q", ++ gatewayID, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::deregisterGatewayAsync(const am_gatewayID_t& gatewayID, DeregisterGatewayAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_gatewayID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "deregisterGateway", ++ "q", ++ gatewayID, ++ std::move(callback)); ++} ++/** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ */ ++void RoutingControlObserverDBusProxy::deregisterConverter(const am_converterID_t& converterID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_converterID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "deregisterConverter", ++ "q", ++ converterID, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::deregisterConverterAsync(const am_converterID_t& converterID, DeregisterConverterAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_converterID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "deregisterConverter", ++ "q", ++ converterID, ++ std::move(callback)); ++} ++/** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++void RoutingControlObserverDBusProxy::peekSink(const std::string& name, CommonAPI::CallStatus& callStatus, am_sinkID_t& sinkID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "peekSink", ++ "s", ++ name, ++ callStatus ++ , sinkID, error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::peekSinkAsync(const std::string& name, PeekSinkAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "peekSink", ++ "s", ++ name, ++ std::move(callback)); ++} ++/** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++(at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++void RoutingControlObserverDBusProxy::registerSink(const am_Sink_s& sinkData, CommonAPI::CallStatus& callStatus, am_sinkID_t& sinkID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Sink_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "registerSink", ++ "(qsqqnb(iq)ina(qn)aqa(qn)a(qin)a(qin))", ++ sinkData, ++ callStatus ++ , sinkID, error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::registerSinkAsync(const am_Sink_s& sinkData, RegisterSinkAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Sink_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "registerSink", ++ "(qsqqnb(iq)ina(qn)aqa(qn)a(qin)a(qin))", ++ sinkData, ++ std::move(callback)); ++} ++/** ++ * deregisters a sink. ++(at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++void RoutingControlObserverDBusProxy::deregisterSink(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "deregisterSink", ++ "q", ++ sinkID, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::deregisterSinkAsync(const am_sinkID_t& sinkID, DeregisterSinkAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "deregisterSink", ++ "q", ++ sinkID, ++ std::move(callback)); ++} ++/** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++void RoutingControlObserverDBusProxy::peekSource(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "peekSource", ++ "s", ++ name, ++ callStatus ++ , sourceID, error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::peekSourceAsync(const std::string& name, PeekSourceAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "peekSource", ++ "s", ++ name, ++ std::move(callback)); ++} ++/** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++(at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ */ ++void RoutingControlObserverDBusProxy::registerSource(const am_Source_s& sourceData, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Source_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "registerSource", ++ "(qqsqinb(iq)ia(qn)aqa(qn)a(qin)a(qin))", ++ sourceData, ++ callStatus ++ , sourceID, error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::registerSourceAsync(const am_Source_s& sourceData, RegisterSourceAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Source_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "registerSource", ++ "(qqsqinb(iq)ia(qn)aqa(qn)a(qin)a(qin))", ++ sourceData, ++ std::move(callback)); ++} ++/** ++ * deregisters a source ++(at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++void RoutingControlObserverDBusProxy::deregisterSource(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "deregisterSource", ++ "q", ++ sourceID, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::deregisterSourceAsync(const am_sourceID_t& sourceID, DeregisterSourceAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "deregisterSource", ++ "q", ++ sourceID, ++ std::move(callback)); ++} ++/** ++ * this function registers a crossfader. ++(at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++void RoutingControlObserverDBusProxy::registerCrossfader(const am_Crossfader_s& crossfaderData, CommonAPI::CallStatus& callStatus, am_crossfaderID_t& crossfaderID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Crossfader_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_crossfaderID_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "registerCrossfader", ++ "(qsqqqi)", ++ crossfaderData, ++ callStatus ++ , crossfaderID, error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::registerCrossfaderAsync(const am_Crossfader_s& crossfaderData, RegisterCrossfaderAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Crossfader_s>, ++ CommonAPI::DBus::DBusSerializableArguments<am_crossfaderID_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "registerCrossfader", ++ "(qsqqqi)", ++ crossfaderData, ++ std::move(callback)); ++} ++/** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++void RoutingControlObserverDBusProxy::deregisterCrossfader(const am_crossfaderID_t& crossfaderID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_crossfaderID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "deregisterCrossfader", ++ "q", ++ crossfaderID, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::deregisterCrossfaderAsync(const am_crossfaderID_t& crossfaderID, DeregisterCrossfaderAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_crossfaderID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "deregisterCrossfader", ++ "q", ++ crossfaderID, ++ std::move(callback)); ++} ++/** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++(at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++void RoutingControlObserverDBusProxy::peekSourceClassID(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceClass_t& sourceClassID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sourceClass_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "peekSourceClassID", ++ "s", ++ name, ++ callStatus ++ , sourceClassID, error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::peekSourceClassIDAsync(const std::string& name, PeekSourceClassIDAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sourceClass_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "peekSourceClassID", ++ "s", ++ name, ++ std::move(callback)); ++} ++/** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++(at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++void RoutingControlObserverDBusProxy::peekSinkClassID(const std::string& name, CommonAPI::CallStatus& callStatus, am_sinkClass_t& sinkClassID, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sinkClass_t, am_Error_e> >::callMethodWithReply( ++ *this, ++ "peekSinkClassID", ++ "s", ++ name, ++ callStatus ++ , sinkClassID, error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::peekSinkClassIDAsync(const std::string& name, PeekSinkClassIDAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<am_sinkClass_t, am_Error_e> >::callMethodAsync( ++ *this, ++ "peekSinkClassID", ++ "s", ++ name, ++ std::move(callback)); ++} ++/** ++ * is called when a low level interrupt changes it status. ++ */ ++void RoutingControlObserverDBusProxy::hookInterruptStatusChange(const am_sourceID_t& sourceID, const am_InterruptState_e& interruptState, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_InterruptState_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "hookInterruptStatusChange", ++ "qi", ++ sourceID, interruptState, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::hookInterruptStatusChangeAsync(const am_sourceID_t& sourceID, const am_InterruptState_e& interruptState, HookInterruptStatusChangeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_InterruptState_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "hookInterruptStatusChange", ++ "qi", ++ sourceID, interruptState, ++ std::move(callback)); ++} ++/** ++ * This hook is called when all elements from a domain are registered. ++Is used by ++ * the Controller to know when all expected domains are finally registered ++ */ ++void RoutingControlObserverDBusProxy::hookDomainRegistrationComplete(const am_domainID_t& domainID, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_domainID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "hookDomainRegistrationComplete", ++ "q", ++ domainID, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::hookDomainRegistrationCompleteAsync(const am_domainID_t& domainID, HookDomainRegistrationCompleteAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_domainID_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "hookDomainRegistrationComplete", ++ "q", ++ domainID, ++ std::move(callback)); ++} ++/** ++ * is called when a sink changes its availability ++ */ ++void RoutingControlObserverDBusProxy::hookSinkAvailablityStatusChange(const am_sinkID_t& sinkID, const am_Availability_s& availability, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_Availability_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "hookSinkAvailablityStatusChange", ++ "q(iq)", ++ sinkID, availability, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::hookSinkAvailablityStatusChangeAsync(const am_sinkID_t& sinkID, const am_Availability_s& availability, HookSinkAvailablityStatusChangeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_Availability_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "hookSinkAvailablityStatusChange", ++ "q(iq)", ++ sinkID, availability, ++ std::move(callback)); ++} ++/** ++ * is called when a source changes its availability ++ */ ++void RoutingControlObserverDBusProxy::hookSourceAvailablityStatusChange(const am_sourceID_t& sourceID, const am_Availability_s& availability, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_Availability_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "hookSourceAvailablityStatusChange", ++ "q(iq)", ++ sourceID, availability, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::hookSourceAvailablityStatusChangeAsync(const am_sourceID_t& sourceID, const am_Availability_s& availability, HookSourceAvailablityStatusChangeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_Availability_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "hookSourceAvailablityStatusChange", ++ "q(iq)", ++ sourceID, availability, ++ std::move(callback)); ++} ++/** ++ * is called when a domain changes its status. This used for early domains only ++ */ ++void RoutingControlObserverDBusProxy::hookDomainStateChange(const am_domainID_t& domainID, const am_DomainState_e& domainState, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_domainID_t, am_DomainState_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "hookDomainStateChange", ++ "qi", ++ domainID, domainState, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::hookDomainStateChangeAsync(const am_domainID_t& domainID, const am_DomainState_e& domainState, HookDomainStateChangeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_domainID_t, am_DomainState_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "hookDomainStateChange", ++ "qi", ++ domainID, domainState, ++ std::move(callback)); ++} ++/** ++ * is called when the timinginformation (delay) changed for a connection. ++ */ ++void RoutingControlObserverDBusProxy::hookTimingInformationChanged(const am_connectionID_t& connectionID, const am_timeSync_t& delay, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_connectionID_t, am_timeSync_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "hookTimingInformationChanged", ++ "qn", ++ connectionID, delay, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::hookTimingInformationChangedAsync(const am_connectionID_t& connectionID, const am_timeSync_t& delay, HookTimingInformationChangedAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_connectionID_t, am_timeSync_t>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "hookTimingInformationChanged", ++ "qn", ++ connectionID, delay, ++ std::move(callback)); ++} ++/** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++void RoutingControlObserverDBusProxy::sendChangedData(const am_EarlyData_L& earlyData, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_EarlyData_L>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "sendChangedData", ++ "a(i(yv)(yv))", ++ earlyData, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::sendChangedDataAsync(const am_EarlyData_L& earlyData, SendChangedDataAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_EarlyData_L>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "sendChangedData", ++ "a(i(yv)(yv))", ++ earlyData, ++ std::move(callback)); ++} ++/** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ */ ++void RoutingControlObserverDBusProxy::updateGateway(const am_gatewayID_t& gatewayID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_gatewayID_t, am_ConnectionFormat_L, am_ConnectionFormat_L, am_Convertion_L>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "updateGateway", ++ "qaqaqab", ++ gatewayID, listSourceFormats, listSinkFormats, convertionMatrix, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::updateGatewayAsync(const am_gatewayID_t& gatewayID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, UpdateGatewayAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_gatewayID_t, am_ConnectionFormat_L, am_ConnectionFormat_L, am_Convertion_L>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "updateGateway", ++ "qaqaqab", ++ gatewayID, listSourceFormats, listSinkFormats, convertionMatrix, ++ std::move(callback)); ++} ++/** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ */ ++void RoutingControlObserverDBusProxy::updateConverter(const am_converterID_t& converterID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_converterID_t, am_ConnectionFormat_L, am_ConnectionFormat_L, am_Convertion_L>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "updateConverter", ++ "qaqaqab", ++ converterID, listSourceFormats, listSinkFormats, convertionMatrix, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::updateConverterAsync(const am_converterID_t& converterID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, UpdateConverterAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_converterID_t, am_ConnectionFormat_L, am_ConnectionFormat_L, am_Convertion_L>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "updateConverter", ++ "qaqaqab", ++ converterID, listSourceFormats, listSinkFormats, convertionMatrix, ++ std::move(callback)); ++} ++/** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ */ ++void RoutingControlObserverDBusProxy::updateSink(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_sinkClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "updateSink", ++ "qqa(qn)aqa(qn)", ++ sinkID, sinkClassID, listSoundProperties, listConnectionFormats, listMainSoundProperties, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::updateSinkAsync(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, UpdateSinkAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_sinkClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "updateSink", ++ "qqa(qn)aqa(qn)", ++ sinkID, sinkClassID, listSoundProperties, listConnectionFormats, listMainSoundProperties, ++ std::move(callback)); ++} ++/** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++sourceClassID, ++listSoundProperties, ++listConnectionFormats, ++ * ++listMainSoundProperties ++ */ ++void RoutingControlObserverDBusProxy::updateSource(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_sourceClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( ++ *this, ++ "updateSource", ++ "qqa(qn)aqa(qn)", ++ sourceID, sourceClassID, listSoundProperties, listConnectionFormats, listMainSoundProperties, ++ callStatus ++ , error); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::updateSourceAsync(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, UpdateSourceAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_sourceClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, ++ CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( ++ *this, ++ "updateSource", ++ "qqa(qn)aqa(qn)", ++ sourceID, sourceClassID, listSoundProperties, listConnectionFormats, listMainSoundProperties, ++ std::move(callback)); ++} ++/** ++ * acknowledges a asyncSetSinkVolumes ++ */ ++void RoutingControlObserverDBusProxy::ackSetVolumes(const am_Handle_s& handle, const am_Volumes_L& listvolumes, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Volumes_L, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSetVolumes", ++ "(iq)a(i(yv)nqn)i", ++ handle, listvolumes, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSetVolumesAsync(const am_Handle_s& handle, const am_Volumes_L& listvolumes, const am_Error_e& error, AckSetVolumesAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Volumes_L, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSetVolumes", ++ "(iq)a(i(yv)nqn)i", ++ handle, listvolumes, error, ++ std::move(callback)); ++} ++/** ++ * The acknowledge of the SinkNotificationConfiguration ++ */ ++void RoutingControlObserverDBusProxy::ackSinkNotificationConfiguration(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSinkNotificationConfiguration", ++ "(iq)i", ++ handle, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSinkNotificationConfigurationAsync(const am_Handle_s& handle, const am_Error_e& error, AckSinkNotificationConfigurationAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSinkNotificationConfiguration", ++ "(iq)i", ++ handle, error, ++ std::move(callback)); ++} ++/** ++ * The acknowledge of the SourceNotificationConfiguration ++ */ ++void RoutingControlObserverDBusProxy::ackSourceNotificationConfiguration(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "ackSourceNotificationConfiguration", ++ "(iq)i", ++ handle, error, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSourceNotificationConfigurationAsync(const am_Handle_s& handle, const am_Error_e& error, AckSourceNotificationConfigurationAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_Error_e>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "ackSourceNotificationConfiguration", ++ "(iq)i", ++ handle, error, ++ std::move(callback)); ++} ++/** ++ * is called whenever a notified value needs to be send ++ */ ++void RoutingControlObserverDBusProxy::hookSinkNotificationDataChange(const am_sinkID_t& sinkID, const am_NotificationPayload_s& payload, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_NotificationPayload_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "hookSinkNotificationDataChange", ++ "q(qn)", ++ sinkID, payload, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::hookSinkNotificationDataChangeAsync(const am_sinkID_t& sinkID, const am_NotificationPayload_s& payload, HookSinkNotificationDataChangeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, am_NotificationPayload_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "hookSinkNotificationDataChange", ++ "q(qn)", ++ sinkID, payload, ++ std::move(callback)); ++} ++/** ++ * is called whenever a notified value needs to be send ++ */ ++void RoutingControlObserverDBusProxy::hookSourceNotificationDataChange(const am_sourceID_t& sourceID, const am_NotificationPayload_s& payload, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_NotificationPayload_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "hookSourceNotificationDataChange", ++ "q(qn)", ++ sourceID, payload, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::hookSourceNotificationDataChangeAsync(const am_sourceID_t& sourceID, const am_NotificationPayload_s& payload, HookSourceNotificationDataChangeAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sourceID_t, am_NotificationPayload_s>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "hookSourceNotificationDataChange", ++ "q(qn)", ++ sourceID, payload, ++ std::move(callback)); ++} ++void RoutingControlObserverDBusProxy::confirmRoutingRundown(const std::string& domainName, CommonAPI::CallStatus& callStatus) { ++ CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodWithReply( ++ *this, ++ "confirmRoutingRundown", ++ "s", ++ domainName, ++ callStatus ++ ); ++} ++std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::confirmRoutingRundownAsync(const std::string& domainName, ConfirmRoutingRundownAsyncCallback callback) { ++ return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, ++ CommonAPI::DBus::DBusSerializableArguments<> >::callMethodAsync( ++ *this, ++ "confirmRoutingRundown", ++ "s", ++ domainName, ++ std::move(callback)); ++} ++ ++ ++ ++void RoutingControlObserverDBusProxy::getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const { ++ ownVersionMajor = 2; ++ ownVersionMinor = 0; ++} ++ ++} // namespace am ++} // namespace genivi ++} // namespace org +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.h +new file mode 100644 +index 0000000..c72d2cd +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.h +@@ -0,0 +1,357 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * Routing Receive sendInterface description. ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_Observer_DBUS_PROXY_H_ ++#define ORG_GENIVI_AM_Routing_Control_Observer_DBUS_PROXY_H_ ++ ++#include <org/genivi/am/RoutingControlObserverProxyBase.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/DBus/DBusFactory.h> ++#include <CommonAPI/DBus/DBusProxy.h> ++#include <CommonAPI/DBus/DBusAttribute.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++#include <string> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++class RoutingControlObserverDBusProxy: virtual public RoutingControlObserverProxyBase, virtual public CommonAPI::DBus::DBusProxy { ++ public: ++ RoutingControlObserverDBusProxy( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyconnection); ++ ++ virtual ~RoutingControlObserverDBusProxy() { } ++ ++ virtual RoutingReadyAttribute& getRoutingReadyAttribute(); ++ ++ ++ /** ++ * acknowledges a asyncConnect ++ */ ++ virtual void ackConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, AckConnectAsyncCallback callback); ++ /** ++ * acknowledges a asyncDisconnect ++ */ ++ virtual void ackDisconnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackDisconnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, AckDisconnectAsyncCallback callback); ++ /** ++ * acknowledges a asyncsetSinkVolume ++ */ ++ virtual void ackSetSinkVolumeChange(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSetSinkVolumeChangeAsync(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, AckSetSinkVolumeChangeAsyncCallback callback); ++ /** ++ * acknowledges a asyncsetSourceVolume ++ */ ++ virtual void ackSetSourceVolumeChange(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceVolumeChangeAsync(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, AckSetSourceVolumeChangeAsyncCallback callback); ++ /** ++ * acknowlegde for asyncSetSourceState ++ */ ++ virtual void ackSetSourceState(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceStateAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceStateAsyncCallback callback); ++ /** ++ * acknowledges asyncSetSinkSoundProperties ++ */ ++ virtual void ackSetSinkSoundProperties(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSinkSoundPropertiesAsyncCallback callback); ++ /** ++ * acknowledges asyncSetSinkSoundProperty ++ */ ++ virtual void ackSetSinkSoundProperty(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSinkSoundPropertyAsyncCallback callback); ++ /** ++ * acknowledges asyncSetSourceSoundProperties ++ */ ++ virtual void ackSetSourceSoundProperties(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceSoundPropertiesAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceSoundPropertiesAsyncCallback callback); ++ /** ++ * acknowledges asyncSetSourceSoundProperty ++ */ ++ virtual void ackSetSourceSoundProperty(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceSoundPropertyAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceSoundPropertyAsyncCallback callback); ++ /** ++ * acknowledges asyncCrossFade ++ */ ++ virtual void ackCrossFading(const am_Handle_s& handle, const am_HotSink_e& hotSink, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackCrossFadingAsync(const am_Handle_s& handle, const am_HotSink_e& hotSink, const am_Error_e& error, AckCrossFadingAsyncCallback callback); ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ virtual void ackSourceVolumeTick(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSourceVolumeTickAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, AckSourceVolumeTickAsyncCallback callback); ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ virtual void ackSinkVolumeTick(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSinkVolumeTickAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, AckSinkVolumeTickAsyncCallback callback); ++ /** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ virtual void peekDomain(const std::string& name, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> peekDomainAsync(const std::string& name, PeekDomainAsyncCallback callback); ++ /** ++ * registers a domain ++ (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ virtual void registerDomain(const am_Domain_s& domainData, const std::string& returnBusname, const std::string& returnInterface, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> registerDomainAsync(const am_Domain_s& domainData, const std::string& returnBusname, const std::string& returnInterface, RegisterDomainAsyncCallback callback); ++ /** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ */ ++ virtual void deregisterDomain(const am_domainID_t& domainID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> deregisterDomainAsync(const am_domainID_t& domainID, DeregisterDomainAsyncCallback callback); ++ /** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ virtual void registerGateway(const am_Gateway_s& gatewayData, CommonAPI::CallStatus& callStatus, am_gatewayID_t& gatewayID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> registerGatewayAsync(const am_Gateway_s& gatewayData, RegisterGatewayAsyncCallback callback); ++ /** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ virtual void registerConverter(const am_Converter_s& converterData, CommonAPI::CallStatus& callStatus, am_converterID_t& converterID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> registerConverterAsync(const am_Converter_s& converterData, RegisterConverterAsyncCallback callback); ++ /** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ virtual void deregisterGateway(const am_gatewayID_t& gatewayID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> deregisterGatewayAsync(const am_gatewayID_t& gatewayID, DeregisterGatewayAsyncCallback callback); ++ /** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ */ ++ virtual void deregisterConverter(const am_converterID_t& converterID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> deregisterConverterAsync(const am_converterID_t& converterID, DeregisterConverterAsyncCallback callback); ++ /** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ virtual void peekSink(const std::string& name, CommonAPI::CallStatus& callStatus, am_sinkID_t& sinkID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> peekSinkAsync(const std::string& name, PeekSinkAsyncCallback callback); ++ /** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ virtual void registerSink(const am_Sink_s& sinkData, CommonAPI::CallStatus& callStatus, am_sinkID_t& sinkID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> registerSinkAsync(const am_Sink_s& sinkData, RegisterSinkAsyncCallback callback); ++ /** ++ * deregisters a sink. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ virtual void deregisterSink(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> deregisterSinkAsync(const am_sinkID_t& sinkID, DeregisterSinkAsyncCallback callback); ++ /** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ virtual void peekSource(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> peekSourceAsync(const std::string& name, PeekSourceAsyncCallback callback); ++ /** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ */ ++ virtual void registerSource(const am_Source_s& sourceData, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> registerSourceAsync(const am_Source_s& sourceData, RegisterSourceAsyncCallback callback); ++ /** ++ * deregisters a source ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ virtual void deregisterSource(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> deregisterSourceAsync(const am_sourceID_t& sourceID, DeregisterSourceAsyncCallback callback); ++ /** ++ * this function registers a crossfader. ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ virtual void registerCrossfader(const am_Crossfader_s& crossfaderData, CommonAPI::CallStatus& callStatus, am_crossfaderID_t& crossfaderID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> registerCrossfaderAsync(const am_Crossfader_s& crossfaderData, RegisterCrossfaderAsyncCallback callback); ++ /** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ virtual void deregisterCrossfader(const am_crossfaderID_t& crossfaderID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> deregisterCrossfaderAsync(const am_crossfaderID_t& crossfaderID, DeregisterCrossfaderAsyncCallback callback); ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void peekSourceClassID(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceClass_t& sourceClassID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> peekSourceClassIDAsync(const std::string& name, PeekSourceClassIDAsyncCallback callback); ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void peekSinkClassID(const std::string& name, CommonAPI::CallStatus& callStatus, am_sinkClass_t& sinkClassID, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> peekSinkClassIDAsync(const std::string& name, PeekSinkClassIDAsyncCallback callback); ++ /** ++ * is called when a low level interrupt changes it status. ++ */ ++ virtual void hookInterruptStatusChange(const am_sourceID_t& sourceID, const am_InterruptState_e& interruptState, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> hookInterruptStatusChangeAsync(const am_sourceID_t& sourceID, const am_InterruptState_e& interruptState, HookInterruptStatusChangeAsyncCallback callback); ++ /** ++ * This hook is called when all elements from a domain are registered. ++ Is used by ++ * the Controller to know when all expected domains are finally registered ++ */ ++ virtual void hookDomainRegistrationComplete(const am_domainID_t& domainID, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> hookDomainRegistrationCompleteAsync(const am_domainID_t& domainID, HookDomainRegistrationCompleteAsyncCallback callback); ++ /** ++ * is called when a sink changes its availability ++ */ ++ virtual void hookSinkAvailablityStatusChange(const am_sinkID_t& sinkID, const am_Availability_s& availability, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> hookSinkAvailablityStatusChangeAsync(const am_sinkID_t& sinkID, const am_Availability_s& availability, HookSinkAvailablityStatusChangeAsyncCallback callback); ++ /** ++ * is called when a source changes its availability ++ */ ++ virtual void hookSourceAvailablityStatusChange(const am_sourceID_t& sourceID, const am_Availability_s& availability, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> hookSourceAvailablityStatusChangeAsync(const am_sourceID_t& sourceID, const am_Availability_s& availability, HookSourceAvailablityStatusChangeAsyncCallback callback); ++ /** ++ * is called when a domain changes its status. This used for early domains only ++ */ ++ virtual void hookDomainStateChange(const am_domainID_t& domainID, const am_DomainState_e& domainState, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> hookDomainStateChangeAsync(const am_domainID_t& domainID, const am_DomainState_e& domainState, HookDomainStateChangeAsyncCallback callback); ++ /** ++ * is called when the timinginformation (delay) changed for a connection. ++ */ ++ virtual void hookTimingInformationChanged(const am_connectionID_t& connectionID, const am_timeSync_t& delay, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> hookTimingInformationChangedAsync(const am_connectionID_t& connectionID, const am_timeSync_t& delay, HookTimingInformationChangedAsyncCallback callback); ++ /** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ virtual void sendChangedData(const am_EarlyData_L& earlyData, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> sendChangedDataAsync(const am_EarlyData_L& earlyData, SendChangedDataAsyncCallback callback); ++ /** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ */ ++ virtual void updateGateway(const am_gatewayID_t& gatewayID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> updateGatewayAsync(const am_gatewayID_t& gatewayID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, UpdateGatewayAsyncCallback callback); ++ /** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ */ ++ virtual void updateConverter(const am_converterID_t& converterID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> updateConverterAsync(const am_converterID_t& converterID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, UpdateConverterAsyncCallback callback); ++ /** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ */ ++ virtual void updateSink(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> updateSinkAsync(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, UpdateSinkAsyncCallback callback); ++ /** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++ Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++ sourceClassID, ++ listSoundProperties, ++ listConnectionFormats, ++ * ++ listMainSoundProperties ++ */ ++ virtual void updateSource(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ virtual std::future<CommonAPI::CallStatus> updateSourceAsync(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, UpdateSourceAsyncCallback callback); ++ /** ++ * acknowledges a asyncSetSinkVolumes ++ */ ++ virtual void ackSetVolumes(const am_Handle_s& handle, const am_Volumes_L& listvolumes, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSetVolumesAsync(const am_Handle_s& handle, const am_Volumes_L& listvolumes, const am_Error_e& error, AckSetVolumesAsyncCallback callback); ++ /** ++ * The acknowledge of the SinkNotificationConfiguration ++ */ ++ virtual void ackSinkNotificationConfiguration(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSinkNotificationConfigurationAsync(const am_Handle_s& handle, const am_Error_e& error, AckSinkNotificationConfigurationAsyncCallback callback); ++ /** ++ * The acknowledge of the SourceNotificationConfiguration ++ */ ++ virtual void ackSourceNotificationConfiguration(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> ackSourceNotificationConfigurationAsync(const am_Handle_s& handle, const am_Error_e& error, AckSourceNotificationConfigurationAsyncCallback callback); ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ virtual void hookSinkNotificationDataChange(const am_sinkID_t& sinkID, const am_NotificationPayload_s& payload, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> hookSinkNotificationDataChangeAsync(const am_sinkID_t& sinkID, const am_NotificationPayload_s& payload, HookSinkNotificationDataChangeAsyncCallback callback); ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ virtual void hookSourceNotificationDataChange(const am_sourceID_t& sourceID, const am_NotificationPayload_s& payload, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> hookSourceNotificationDataChangeAsync(const am_sourceID_t& sourceID, const am_NotificationPayload_s& payload, HookSourceNotificationDataChangeAsyncCallback callback); ++ virtual void confirmRoutingRundown(const std::string& domainName, CommonAPI::CallStatus& callStatus); ++ virtual std::future<CommonAPI::CallStatus> confirmRoutingRundownAsync(const std::string& domainName, ConfirmRoutingRundownAsyncCallback callback); ++ ++ ++ virtual void getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const; ++ ++ private: ++ CommonAPI::DBus::DBusObservableAttribute<CommonAPI::DBus::DBusReadonlyAttribute<RoutingReadyAttribute>> routingReady_; ++ ++ ++}; ++ ++ ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Routing_Control_Observer_DBUS_PROXY_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.cpp +new file mode 100644 +index 0000000..b9475df +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.cpp +@@ -0,0 +1,1244 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++#include "RoutingControlObserverDBusStubAdapter.h" ++#include <org/genivi/am/RoutingControlObserver.h> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++std::shared_ptr<CommonAPI::DBus::DBusStubAdapter> createRoutingControlObserverDBusStubAdapter( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& interfaceName, ++ const std::string& busName, ++ const std::string& objectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusProxyConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stubBase) { ++ return std::make_shared<RoutingControlObserverDBusStubAdapter>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection, stubBase); ++} ++ ++INITIALIZER(registerRoutingControlObserverDBusStubAdapter) { ++ CommonAPI::DBus::DBusFactory::registerAdapterFactoryMethod(RoutingControlObserver::getInterfaceId(), ++ &createRoutingControlObserverDBusStubAdapter); ++} ++ ++ ++ ++RoutingControlObserverDBusStubAdapterInternal::~RoutingControlObserverDBusStubAdapterInternal() { ++ deactivateManagedInstances(); ++ RoutingControlObserverDBusStubAdapterHelper::deinit(); ++} ++ ++void RoutingControlObserverDBusStubAdapterInternal::deactivateManagedInstances() { ++ ++} ++ ++const char* RoutingControlObserverDBusStubAdapterInternal::getMethodsDBusIntrospectionXmlData() const { ++ static const std::string introspectionData = ++ "<method name=\"getInterfaceVersion\">\n" ++ "<arg name=\"value\" type=\"uu\" direction=\"out\" />" ++ "</method>\n" ++ "<method name=\"getRoutingReadyAttribute\">\n" ++ "<arg name=\"value\" type=\"i\" direction=\"out\" />" ++ "</method>\n" ++ "<signal name=\"onRoutingReadyAttributeChanged\">\n" ++ "<arg name=\"changedValue\" type=\"i\" />\n" ++ "</signal>\n" ++ /** ++ * acknowledges a asyncConnect ++ */ ++ "<method name=\"ackConnect\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"connectionID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * acknowledges a asyncDisconnect ++ */ ++ "<method name=\"ackDisconnect\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"connectionID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * acknowledges a asyncsetSinkVolume ++ */ ++ "<method name=\"ackSetSinkVolumeChange\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"volume\" type=\"n\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * acknowledges a asyncsetSourceVolume ++ */ ++ "<method name=\"ackSetSourceVolumeChange\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"volume\" type=\"n\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * acknowlegde for asyncSetSourceState ++ */ ++ "<method name=\"ackSetSourceState\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * acknowledges asyncSetSinkSoundProperties ++ */ ++ "<method name=\"ackSetSinkSoundProperties\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * acknowledges asyncSetSinkSoundProperty ++ */ ++ "<method name=\"ackSetSinkSoundProperty\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * acknowledges asyncSetSourceSoundProperties ++ */ ++ "<method name=\"ackSetSourceSoundProperties\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * acknowledges asyncSetSourceSoundProperty ++ */ ++ "<method name=\"ackSetSourceSoundProperty\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * acknowledges asyncCrossFade ++ */ ++ "<method name=\"ackCrossFading\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"hotSink\" type=\"i\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ "<method name=\"ackSourceVolumeTick\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"volume\" type=\"n\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ "<method name=\"ackSinkVolumeTick\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"volume\" type=\"n\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ "<method name=\"peekDomain\">\n" ++ "<arg name=\"name\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"domainID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * registers a domain ++ (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ "<method name=\"registerDomain\">\n" ++ "<arg name=\"domainData\" type=\"(qsssbbi)\" direction=\"in\" />\n" ++ "<arg name=\"returnBusname\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"returnInterface\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"domainID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ */ ++ "<method name=\"deregisterDomain\">\n" ++ "<arg name=\"domainID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ "<method name=\"registerGateway\">\n" ++ "<arg name=\"gatewayData\" type=\"(qsqqqqqaqaqab)\" direction=\"in\" />\n" ++ "<arg name=\"gatewayID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ "<method name=\"registerConverter\">\n" ++ "<arg name=\"converterData\" type=\"(qsqqqaqaqab)\" direction=\"in\" />\n" ++ "<arg name=\"converterID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ "<method name=\"deregisterGateway\">\n" ++ "<arg name=\"gatewayID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ */ ++ "<method name=\"deregisterConverter\">\n" ++ "<arg name=\"converterID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ "<method name=\"peekSink\">\n" ++ "<arg name=\"name\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ "<method name=\"registerSink\">\n" ++ "<arg name=\"sinkData\" type=\"(qsqqnb(iq)ina(qn)aqa(qn)a(qin)a(qin))\" direction=\"in\" />\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * deregisters a sink. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ "<method name=\"deregisterSink\">\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ "<method name=\"peekSource\">\n" ++ "<arg name=\"name\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ */ ++ "<method name=\"registerSource\">\n" ++ "<arg name=\"sourceData\" type=\"(qqsqinb(iq)ia(qn)aqa(qn)a(qin)a(qin))\" direction=\"in\" />\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * deregisters a source ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ "<method name=\"deregisterSource\">\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * this function registers a crossfader. ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ "<method name=\"registerCrossfader\">\n" ++ "<arg name=\"crossfaderData\" type=\"(qsqqqi)\" direction=\"in\" />\n" ++ "<arg name=\"crossfaderID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ "<method name=\"deregisterCrossfader\">\n" ++ "<arg name=\"crossfaderID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ "<method name=\"peekSourceClassID\">\n" ++ "<arg name=\"name\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"sourceClassID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ "<method name=\"peekSinkClassID\">\n" ++ "<arg name=\"name\" type=\"s\" direction=\"in\" />\n" ++ "<arg name=\"sinkClassID\" type=\"q\" direction=\"out\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * is called when a low level interrupt changes it status. ++ */ ++ "<method name=\"hookInterruptStatusChange\">\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"interruptState\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * This hook is called when all elements from a domain are registered. ++ Is used by ++ * the Controller to know when all expected domains are finally registered ++ */ ++ "<method name=\"hookDomainRegistrationComplete\">\n" ++ "<arg name=\"domainID\" type=\"q\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * is called when a sink changes its availability ++ */ ++ "<method name=\"hookSinkAvailablityStatusChange\">\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"availability\" type=\"(iq)\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * is called when a source changes its availability ++ */ ++ "<method name=\"hookSourceAvailablityStatusChange\">\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"availability\" type=\"(iq)\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * is called when a domain changes its status. This used for early domains only ++ */ ++ "<method name=\"hookDomainStateChange\">\n" ++ "<arg name=\"domainID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"domainState\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * is called when the timinginformation (delay) changed for a connection. ++ */ ++ "<method name=\"hookTimingInformationChanged\">\n" ++ "<arg name=\"connectionID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"delay\" type=\"n\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ "<method name=\"sendChangedData\">\n" ++ "<arg name=\"earlyData\" type=\"a(i(yv)(yv))\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ */ ++ "<method name=\"updateGateway\">\n" ++ "<arg name=\"gatewayID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"listSourceFormats\" type=\"aq\" direction=\"in\" />\n" ++ "<arg name=\"listSinkFormats\" type=\"aq\" direction=\"in\" />\n" ++ "<arg name=\"convertionMatrix\" type=\"ab\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ */ ++ "<method name=\"updateConverter\">\n" ++ "<arg name=\"converterID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"listSourceFormats\" type=\"aq\" direction=\"in\" />\n" ++ "<arg name=\"listSinkFormats\" type=\"aq\" direction=\"in\" />\n" ++ "<arg name=\"convertionMatrix\" type=\"ab\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ */ ++ "<method name=\"updateSink\">\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"sinkClassID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"listSoundProperties\" type=\"a(qn)\" direction=\"in\" />\n" ++ "<arg name=\"listConnectionFormats\" type=\"aq\" direction=\"in\" />\n" ++ "<arg name=\"listMainSoundProperties\" type=\"a(qn)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++ Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++ sourceClassID, ++ listSoundProperties, ++ listConnectionFormats, ++ * ++ listMainSoundProperties ++ */ ++ "<method name=\"updateSource\">\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"sourceClassID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"listSoundProperties\" type=\"a(qn)\" direction=\"in\" />\n" ++ "<arg name=\"listConnectionFormats\" type=\"aq\" direction=\"in\" />\n" ++ "<arg name=\"listMainSoundProperties\" type=\"a(qn)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" ++ "</method>\n" ++ /** ++ * acknowledges a asyncSetSinkVolumes ++ */ ++ "<method name=\"ackSetVolumes\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"listvolumes\" type=\"a(i(yv)nqn)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * The acknowledge of the SinkNotificationConfiguration ++ */ ++ "<method name=\"ackSinkNotificationConfiguration\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * The acknowledge of the SourceNotificationConfiguration ++ */ ++ "<method name=\"ackSourceNotificationConfiguration\">\n" ++ "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" ++ "<arg name=\"error\" type=\"i\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ "<method name=\"hookSinkNotificationDataChange\">\n" ++ "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"payload\" type=\"(qn)\" direction=\"in\" />\n" ++ "</method>\n" ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ "<method name=\"hookSourceNotificationDataChange\">\n" ++ "<arg name=\"sourceID\" type=\"q\" direction=\"in\" />\n" ++ "<arg name=\"payload\" type=\"(qn)\" direction=\"in\" />\n" ++ "</method>\n" ++ "<method name=\"confirmRoutingRundown\">\n" ++ "<arg name=\"domainName\" type=\"s\" direction=\"in\" />\n" ++ "</method>\n" ++ ++ ; ++ return introspectionData.c_str(); ++} ++ ++CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ RoutingControlObserverStub, ++ CommonAPI::Version ++ > RoutingControlObserverDBusStubAdapterInternal::getRoutingControlObserverInterfaceVersionStubDispatcher(&RoutingControlObserverStub::getInterfaceVersion, "uu"); ++ ++/** ++ * This attribute signals to the clients the current routing state. ++A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ RoutingControlObserverStub, ++ am_RoutingReady_e ++ > RoutingControlObserverDBusStubAdapterInternal::getRoutingReadyAttributeStubDispatcher(&RoutingControlObserverStub::getRoutingReadyAttribute, "i"); ++ ++ ++/** ++ * acknowledges a asyncConnect ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_connectionID_t, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackConnectStubDispatcher(&RoutingControlObserverStub::ackConnect, ""); ++/** ++ * acknowledges a asyncDisconnect ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_connectionID_t, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackDisconnectStubDispatcher(&RoutingControlObserverStub::ackDisconnect, ""); ++/** ++ * acknowledges a asyncsetSinkVolume ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_volume_t, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSetSinkVolumeChangeStubDispatcher(&RoutingControlObserverStub::ackSetSinkVolumeChange, ""); ++/** ++ * acknowledges a asyncsetSourceVolume ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_volume_t, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSetSourceVolumeChangeStubDispatcher(&RoutingControlObserverStub::ackSetSourceVolumeChange, ""); ++/** ++ * acknowlegde for asyncSetSourceState ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSetSourceStateStubDispatcher(&RoutingControlObserverStub::ackSetSourceState, ""); ++/** ++ * acknowledges asyncSetSinkSoundProperties ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSetSinkSoundPropertiesStubDispatcher(&RoutingControlObserverStub::ackSetSinkSoundProperties, ""); ++/** ++ * acknowledges asyncSetSinkSoundProperty ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSetSinkSoundPropertyStubDispatcher(&RoutingControlObserverStub::ackSetSinkSoundProperty, ""); ++/** ++ * acknowledges asyncSetSourceSoundProperties ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSetSourceSoundPropertiesStubDispatcher(&RoutingControlObserverStub::ackSetSourceSoundProperties, ""); ++/** ++ * acknowledges asyncSetSourceSoundProperty ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSetSourceSoundPropertyStubDispatcher(&RoutingControlObserverStub::ackSetSourceSoundProperty, ""); ++/** ++ * acknowledges asyncCrossFade ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_HotSink_e, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackCrossFadingStubDispatcher(&RoutingControlObserverStub::ackCrossFading, ""); ++/** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_volume_t>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSourceVolumeTickStubDispatcher(&RoutingControlObserverStub::ackSourceVolumeTick, ""); ++/** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_sinkID_t, am_volume_t>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSinkVolumeTickStubDispatcher(&RoutingControlObserverStub::ackSinkVolumeTick, ""); ++/** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<am_domainID_t, am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::peekDomainStubDispatcher(&RoutingControlObserverStub::peekDomain, "qi"); ++/** ++ * registers a domain ++(at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Domain_s, std::string, std::string>, ++ std::tuple<am_domainID_t, am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::registerDomainStubDispatcher(&RoutingControlObserverStub::registerDomain, "qi"); ++/** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++(at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_domainID_t>, ++ std::tuple<am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::deregisterDomainStubDispatcher(&RoutingControlObserverStub::deregisterDomain, "i"); ++/** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Gateway_s>, ++ std::tuple<am_gatewayID_t, am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::registerGatewayStubDispatcher(&RoutingControlObserverStub::registerGateway, "qi"); ++/** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Converter_s>, ++ std::tuple<am_converterID_t, am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::registerConverterStubDispatcher(&RoutingControlObserverStub::registerConverter, "qi"); ++/** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_gatewayID_t>, ++ std::tuple<am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::deregisterGatewayStubDispatcher(&RoutingControlObserverStub::deregisterGateway, "i"); ++/** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_converterID_t>, ++ std::tuple<am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::deregisterConverterStubDispatcher(&RoutingControlObserverStub::deregisterConverter, "i"); ++/** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<am_sinkID_t, am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::peekSinkStubDispatcher(&RoutingControlObserverStub::peekSink, "qi"); ++/** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++(at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Sink_s>, ++ std::tuple<am_sinkID_t, am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::registerSinkStubDispatcher(&RoutingControlObserverStub::registerSink, "qi"); ++/** ++ * deregisters a sink. ++(at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sinkID_t>, ++ std::tuple<am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::deregisterSinkStubDispatcher(&RoutingControlObserverStub::deregisterSink, "i"); ++/** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<am_sourceID_t, am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::peekSourceStubDispatcher(&RoutingControlObserverStub::peekSource, "qi"); ++/** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++(at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Source_s>, ++ std::tuple<am_sourceID_t, am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::registerSourceStubDispatcher(&RoutingControlObserverStub::registerSource, "qi"); ++/** ++ * deregisters a source ++(at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sourceID_t>, ++ std::tuple<am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::deregisterSourceStubDispatcher(&RoutingControlObserverStub::deregisterSource, "i"); ++/** ++ * this function registers a crossfader. ++(at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Crossfader_s>, ++ std::tuple<am_crossfaderID_t, am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::registerCrossfaderStubDispatcher(&RoutingControlObserverStub::registerCrossfader, "qi"); ++/** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_crossfaderID_t>, ++ std::tuple<am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::deregisterCrossfaderStubDispatcher(&RoutingControlObserverStub::deregisterCrossfader, "i"); ++/** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++(at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<am_sourceClass_t, am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::peekSourceClassIDStubDispatcher(&RoutingControlObserverStub::peekSourceClassID, "qi"); ++/** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++(at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<am_sinkClass_t, am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::peekSinkClassIDStubDispatcher(&RoutingControlObserverStub::peekSinkClassID, "qi"); ++/** ++ * is called when a low level interrupt changes it status. ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sourceID_t, am_InterruptState_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::hookInterruptStatusChangeStubDispatcher(&RoutingControlObserverStub::hookInterruptStatusChange, ""); ++/** ++ * This hook is called when all elements from a domain are registered. ++Is used by ++ * the Controller to know when all expected domains are finally registered ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_domainID_t>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::hookDomainRegistrationCompleteStubDispatcher(&RoutingControlObserverStub::hookDomainRegistrationComplete, ""); ++/** ++ * is called when a sink changes its availability ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sinkID_t, am_Availability_s>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::hookSinkAvailablityStatusChangeStubDispatcher(&RoutingControlObserverStub::hookSinkAvailablityStatusChange, ""); ++/** ++ * is called when a source changes its availability ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sourceID_t, am_Availability_s>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::hookSourceAvailablityStatusChangeStubDispatcher(&RoutingControlObserverStub::hookSourceAvailablityStatusChange, ""); ++/** ++ * is called when a domain changes its status. This used for early domains only ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_domainID_t, am_DomainState_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::hookDomainStateChangeStubDispatcher(&RoutingControlObserverStub::hookDomainStateChange, ""); ++/** ++ * is called when the timinginformation (delay) changed for a connection. ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_connectionID_t, am_timeSync_t>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::hookTimingInformationChangedStubDispatcher(&RoutingControlObserverStub::hookTimingInformationChanged, ""); ++/** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_EarlyData_L>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::sendChangedDataStubDispatcher(&RoutingControlObserverStub::sendChangedData, ""); ++/** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_gatewayID_t, am_ConnectionFormat_L, am_ConnectionFormat_L, am_Convertion_L>, ++ std::tuple<am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::updateGatewayStubDispatcher(&RoutingControlObserverStub::updateGateway, "i"); ++/** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_converterID_t, am_ConnectionFormat_L, am_ConnectionFormat_L, am_Convertion_L>, ++ std::tuple<am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::updateConverterStubDispatcher(&RoutingControlObserverStub::updateConverter, "i"); ++/** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sinkID_t, am_sinkClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, ++ std::tuple<am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::updateSinkStubDispatcher(&RoutingControlObserverStub::updateSink, "i"); ++/** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++sourceClassID, ++listSoundProperties, ++listConnectionFormats, ++ * ++listMainSoundProperties ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sourceID_t, am_sourceClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, ++ std::tuple<am_Error_e> ++ > RoutingControlObserverDBusStubAdapterInternal::updateSourceStubDispatcher(&RoutingControlObserverStub::updateSource, "i"); ++/** ++ * acknowledges a asyncSetSinkVolumes ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Volumes_L, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSetVolumesStubDispatcher(&RoutingControlObserverStub::ackSetVolumes, ""); ++/** ++ * The acknowledge of the SinkNotificationConfiguration ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSinkNotificationConfigurationStubDispatcher(&RoutingControlObserverStub::ackSinkNotificationConfiguration, ""); ++/** ++ * The acknowledge of the SourceNotificationConfiguration ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::ackSourceNotificationConfigurationStubDispatcher(&RoutingControlObserverStub::ackSourceNotificationConfiguration, ""); ++/** ++ * is called whenever a notified value needs to be send ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sinkID_t, am_NotificationPayload_s>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::hookSinkNotificationDataChangeStubDispatcher(&RoutingControlObserverStub::hookSinkNotificationDataChange, ""); ++/** ++ * is called whenever a notified value needs to be send ++ */ ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sourceID_t, am_NotificationPayload_s>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::hookSourceNotificationDataChangeStubDispatcher(&RoutingControlObserverStub::hookSourceNotificationDataChange, ""); ++CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<> ++ > RoutingControlObserverDBusStubAdapterInternal::confirmRoutingRundownStubDispatcher(&RoutingControlObserverStub::confirmRoutingRundown, ""); ++ ++ ++/** ++ * This attribute signals to the clients the current routing state. ++A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++void RoutingControlObserverDBusStubAdapterInternal::fireRoutingReadyAttributeChanged(const am_RoutingReady_e& value) { ++ CommonAPI::DBus::DBusStubSignalHelper<CommonAPI::DBus::DBusSerializableArguments<am_RoutingReady_e>> ++ ::sendSignal( ++ *this, ++ "onRoutingReadyAttributeChanged", ++ "i", ++ value ++ ); ++} ++ ++ ++ ++const RoutingControlObserverDBusStubAdapterHelper::StubDispatcherTable& RoutingControlObserverDBusStubAdapterInternal::getStubDispatcherTable() { ++ return stubDispatcherTable_; ++} ++ ++const CommonAPI::DBus::StubAttributeTable& RoutingControlObserverDBusStubAdapterInternal::getStubAttributeTable() { ++ return stubAttributeTable_; ++} ++ ++RoutingControlObserverDBusStubAdapterInternal::RoutingControlObserverDBusStubAdapterInternal( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub): ++ CommonAPI::DBus::DBusStubAdapter( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ false), ++ RoutingControlObserverDBusStubAdapterHelper( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ std::dynamic_pointer_cast<RoutingControlObserverStub>(stub), ++ false), ++ stubDispatcherTable_({ ++ /** ++ * This attribute signals to the clients the current routing state. ++ A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++ { { "getRoutingReadyAttribute", "" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::getRoutingReadyAttributeStubDispatcher } ++ , ++ /** ++ * acknowledges a asyncConnect ++ */ ++ { { "ackConnect", "(iq)qi" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackConnectStubDispatcher }, ++ /** ++ * acknowledges a asyncDisconnect ++ */ ++ { { "ackDisconnect", "(iq)qi" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackDisconnectStubDispatcher }, ++ /** ++ * acknowledges a asyncsetSinkVolume ++ */ ++ { { "ackSetSinkVolumeChange", "(iq)ni" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSinkVolumeChangeStubDispatcher }, ++ /** ++ * acknowledges a asyncsetSourceVolume ++ */ ++ { { "ackSetSourceVolumeChange", "(iq)ni" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSourceVolumeChangeStubDispatcher }, ++ /** ++ * acknowlegde for asyncSetSourceState ++ */ ++ { { "ackSetSourceState", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSourceStateStubDispatcher }, ++ /** ++ * acknowledges asyncSetSinkSoundProperties ++ */ ++ { { "ackSetSinkSoundProperties", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSinkSoundPropertiesStubDispatcher }, ++ /** ++ * acknowledges asyncSetSinkSoundProperty ++ */ ++ { { "ackSetSinkSoundProperty", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSinkSoundPropertyStubDispatcher }, ++ /** ++ * acknowledges asyncSetSourceSoundProperties ++ */ ++ { { "ackSetSourceSoundProperties", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSourceSoundPropertiesStubDispatcher }, ++ /** ++ * acknowledges asyncSetSourceSoundProperty ++ */ ++ { { "ackSetSourceSoundProperty", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSourceSoundPropertyStubDispatcher }, ++ /** ++ * acknowledges asyncCrossFade ++ */ ++ { { "ackCrossFading", "(iq)ii" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackCrossFadingStubDispatcher }, ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ { { "ackSourceVolumeTick", "(iq)qn" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSourceVolumeTickStubDispatcher }, ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ { { "ackSinkVolumeTick", "(iq)qn" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSinkVolumeTickStubDispatcher }, ++ /** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ { { "peekDomain", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::peekDomainStubDispatcher }, ++ /** ++ * registers a domain ++ (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ { { "registerDomain", "(qsssbbi)ss" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::registerDomainStubDispatcher }, ++ /** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ */ ++ { { "deregisterDomain", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::deregisterDomainStubDispatcher }, ++ /** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ { { "registerGateway", "(qsqqqqqaqaqab)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::registerGatewayStubDispatcher }, ++ /** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ { { "registerConverter", "(qsqqqaqaqab)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::registerConverterStubDispatcher }, ++ /** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ { { "deregisterGateway", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::deregisterGatewayStubDispatcher }, ++ /** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ */ ++ { { "deregisterConverter", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::deregisterConverterStubDispatcher }, ++ /** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ { { "peekSink", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::peekSinkStubDispatcher }, ++ /** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ { { "registerSink", "(qsqqnb(iq)ina(qn)aqa(qn)a(qin)a(qin))" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::registerSinkStubDispatcher }, ++ /** ++ * deregisters a sink. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ { { "deregisterSink", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::deregisterSinkStubDispatcher }, ++ /** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ { { "peekSource", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::peekSourceStubDispatcher }, ++ /** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ */ ++ { { "registerSource", "(qqsqinb(iq)ia(qn)aqa(qn)a(qin)a(qin))" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::registerSourceStubDispatcher }, ++ /** ++ * deregisters a source ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ { { "deregisterSource", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::deregisterSourceStubDispatcher }, ++ /** ++ * this function registers a crossfader. ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ { { "registerCrossfader", "(qsqqqi)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::registerCrossfaderStubDispatcher }, ++ /** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ { { "deregisterCrossfader", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::deregisterCrossfaderStubDispatcher }, ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ { { "peekSourceClassID", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::peekSourceClassIDStubDispatcher }, ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ { { "peekSinkClassID", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::peekSinkClassIDStubDispatcher }, ++ /** ++ * is called when a low level interrupt changes it status. ++ */ ++ { { "hookInterruptStatusChange", "qi" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookInterruptStatusChangeStubDispatcher }, ++ /** ++ * This hook is called when all elements from a domain are registered. ++ Is used by ++ * the Controller to know when all expected domains are finally registered ++ */ ++ { { "hookDomainRegistrationComplete", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookDomainRegistrationCompleteStubDispatcher }, ++ /** ++ * is called when a sink changes its availability ++ */ ++ { { "hookSinkAvailablityStatusChange", "q(iq)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookSinkAvailablityStatusChangeStubDispatcher }, ++ /** ++ * is called when a source changes its availability ++ */ ++ { { "hookSourceAvailablityStatusChange", "q(iq)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookSourceAvailablityStatusChangeStubDispatcher }, ++ /** ++ * is called when a domain changes its status. This used for early domains only ++ */ ++ { { "hookDomainStateChange", "qi" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookDomainStateChangeStubDispatcher }, ++ /** ++ * is called when the timinginformation (delay) changed for a connection. ++ */ ++ { { "hookTimingInformationChanged", "qn" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookTimingInformationChangedStubDispatcher }, ++ /** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ { { "sendChangedData", "a(i(yv)(yv))" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::sendChangedDataStubDispatcher }, ++ /** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ */ ++ { { "updateGateway", "qaqaqab" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::updateGatewayStubDispatcher }, ++ /** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ */ ++ { { "updateConverter", "qaqaqab" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::updateConverterStubDispatcher }, ++ /** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ */ ++ { { "updateSink", "qqa(qn)aqa(qn)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::updateSinkStubDispatcher }, ++ /** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++ Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++ sourceClassID, ++ listSoundProperties, ++ listConnectionFormats, ++ * ++ listMainSoundProperties ++ */ ++ { { "updateSource", "qqa(qn)aqa(qn)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::updateSourceStubDispatcher }, ++ /** ++ * acknowledges a asyncSetSinkVolumes ++ */ ++ { { "ackSetVolumes", "(iq)a(i(yv)nqn)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetVolumesStubDispatcher }, ++ /** ++ * The acknowledge of the SinkNotificationConfiguration ++ */ ++ { { "ackSinkNotificationConfiguration", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSinkNotificationConfigurationStubDispatcher }, ++ /** ++ * The acknowledge of the SourceNotificationConfiguration ++ */ ++ { { "ackSourceNotificationConfiguration", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSourceNotificationConfigurationStubDispatcher }, ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ { { "hookSinkNotificationDataChange", "q(qn)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookSinkNotificationDataChangeStubDispatcher }, ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ { { "hookSourceNotificationDataChange", "q(qn)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookSourceNotificationDataChangeStubDispatcher }, ++ { { "confirmRoutingRundown", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::confirmRoutingRundownStubDispatcher } ++ }), ++ stubAttributeTable_() { ++ ++ stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::getRoutingControlObserverInterfaceVersionStubDispatcher }); ++} ++ ++const bool RoutingControlObserverDBusStubAdapterInternal::hasFreedesktopProperties() { ++ return false; ++} ++ ++} // namespace am ++} // namespace genivi ++} // namespace org +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.h +new file mode 100644 +index 0000000..874ee6c +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.h +@@ -0,0 +1,557 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * Routing Receive sendInterface description. ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_Observer_DBUS_STUB_ADAPTER_H_ ++#define ORG_GENIVI_AM_Routing_Control_Observer_DBUS_STUB_ADAPTER_H_ ++ ++#include <org/genivi/am/RoutingControlObserverStub.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/DBus/DBusStubAdapterHelper.h> ++#include <CommonAPI/DBus/DBusStubAdapter.h> ++#include <CommonAPI/DBus/DBusFactory.h> ++#include <CommonAPI/DBus/DBusServicePublisher.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++typedef CommonAPI::DBus::DBusStubAdapterHelper<RoutingControlObserverStub> RoutingControlObserverDBusStubAdapterHelper; ++ ++class RoutingControlObserverDBusStubAdapterInternal: public virtual RoutingControlObserverStubAdapter, public RoutingControlObserverDBusStubAdapterHelper { ++ public: ++ RoutingControlObserverDBusStubAdapterInternal( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub); ++ ++ ~RoutingControlObserverDBusStubAdapterInternal(); ++ ++ virtual const bool hasFreedesktopProperties(); ++ ++ /** ++ * This attribute signals to the clients the current routing state. ++ A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++ void fireRoutingReadyAttributeChanged(const am_RoutingReady_e& value); ++ ++ ++ ++ const RoutingControlObserverDBusStubAdapterHelper::StubDispatcherTable& getStubDispatcherTable(); ++ const CommonAPI::DBus::StubAttributeTable& getStubAttributeTable(); ++ ++ void deactivateManagedInstances(); ++ ++ ++static CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ RoutingControlObserverStub, ++ CommonAPI::Version ++ > getRoutingControlObserverInterfaceVersionStubDispatcher; ++ ++/** ++ * This attribute signals to the clients the current routing state. ++A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++static CommonAPI::DBus::DBusGetAttributeStubDispatcher< ++ RoutingControlObserverStub, ++ am_RoutingReady_e ++ > getRoutingReadyAttributeStubDispatcher; ++ ++ ++/** ++ * acknowledges a asyncConnect ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_connectionID_t, am_Error_e>, ++ std::tuple<> ++ > ackConnectStubDispatcher; ++/** ++ * acknowledges a asyncDisconnect ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_connectionID_t, am_Error_e>, ++ std::tuple<> ++ > ackDisconnectStubDispatcher; ++/** ++ * acknowledges a asyncsetSinkVolume ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_volume_t, am_Error_e>, ++ std::tuple<> ++ > ackSetSinkVolumeChangeStubDispatcher; ++/** ++ * acknowledges a asyncsetSourceVolume ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_volume_t, am_Error_e>, ++ std::tuple<> ++ > ackSetSourceVolumeChangeStubDispatcher; ++/** ++ * acknowlegde for asyncSetSourceState ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > ackSetSourceStateStubDispatcher; ++/** ++ * acknowledges asyncSetSinkSoundProperties ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > ackSetSinkSoundPropertiesStubDispatcher; ++/** ++ * acknowledges asyncSetSinkSoundProperty ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > ackSetSinkSoundPropertyStubDispatcher; ++/** ++ * acknowledges asyncSetSourceSoundProperties ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > ackSetSourceSoundPropertiesStubDispatcher; ++/** ++ * acknowledges asyncSetSourceSoundProperty ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > ackSetSourceSoundPropertyStubDispatcher; ++/** ++ * acknowledges asyncCrossFade ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_HotSink_e, am_Error_e>, ++ std::tuple<> ++ > ackCrossFadingStubDispatcher; ++/** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_sourceID_t, am_volume_t>, ++ std::tuple<> ++ > ackSourceVolumeTickStubDispatcher; ++/** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_sinkID_t, am_volume_t>, ++ std::tuple<> ++ > ackSinkVolumeTickStubDispatcher; ++/** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<am_domainID_t, am_Error_e> ++ > peekDomainStubDispatcher; ++/** ++ * registers a domain ++(at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Domain_s, std::string, std::string>, ++ std::tuple<am_domainID_t, am_Error_e> ++ > registerDomainStubDispatcher; ++/** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++(at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_domainID_t>, ++ std::tuple<am_Error_e> ++ > deregisterDomainStubDispatcher; ++/** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Gateway_s>, ++ std::tuple<am_gatewayID_t, am_Error_e> ++ > registerGatewayStubDispatcher; ++/** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Converter_s>, ++ std::tuple<am_converterID_t, am_Error_e> ++ > registerConverterStubDispatcher; ++/** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_gatewayID_t>, ++ std::tuple<am_Error_e> ++ > deregisterGatewayStubDispatcher; ++/** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_converterID_t>, ++ std::tuple<am_Error_e> ++ > deregisterConverterStubDispatcher; ++/** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<am_sinkID_t, am_Error_e> ++ > peekSinkStubDispatcher; ++/** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++(at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Sink_s>, ++ std::tuple<am_sinkID_t, am_Error_e> ++ > registerSinkStubDispatcher; ++/** ++ * deregisters a sink. ++(at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sinkID_t>, ++ std::tuple<am_Error_e> ++ > deregisterSinkStubDispatcher; ++/** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<am_sourceID_t, am_Error_e> ++ > peekSourceStubDispatcher; ++/** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++(at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Source_s>, ++ std::tuple<am_sourceID_t, am_Error_e> ++ > registerSourceStubDispatcher; ++/** ++ * deregisters a source ++(at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sourceID_t>, ++ std::tuple<am_Error_e> ++ > deregisterSourceStubDispatcher; ++/** ++ * this function registers a crossfader. ++(at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Crossfader_s>, ++ std::tuple<am_crossfaderID_t, am_Error_e> ++ > registerCrossfaderStubDispatcher; ++/** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_crossfaderID_t>, ++ std::tuple<am_Error_e> ++ > deregisterCrossfaderStubDispatcher; ++/** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++(at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<am_sourceClass_t, am_Error_e> ++ > peekSourceClassIDStubDispatcher; ++/** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++(at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<am_sinkClass_t, am_Error_e> ++ > peekSinkClassIDStubDispatcher; ++/** ++ * is called when a low level interrupt changes it status. ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sourceID_t, am_InterruptState_e>, ++ std::tuple<> ++ > hookInterruptStatusChangeStubDispatcher; ++/** ++ * This hook is called when all elements from a domain are registered. ++Is used by ++ * the Controller to know when all expected domains are finally registered ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_domainID_t>, ++ std::tuple<> ++ > hookDomainRegistrationCompleteStubDispatcher; ++/** ++ * is called when a sink changes its availability ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sinkID_t, am_Availability_s>, ++ std::tuple<> ++ > hookSinkAvailablityStatusChangeStubDispatcher; ++/** ++ * is called when a source changes its availability ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sourceID_t, am_Availability_s>, ++ std::tuple<> ++ > hookSourceAvailablityStatusChangeStubDispatcher; ++/** ++ * is called when a domain changes its status. This used for early domains only ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_domainID_t, am_DomainState_e>, ++ std::tuple<> ++ > hookDomainStateChangeStubDispatcher; ++/** ++ * is called when the timinginformation (delay) changed for a connection. ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_connectionID_t, am_timeSync_t>, ++ std::tuple<> ++ > hookTimingInformationChangedStubDispatcher; ++/** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_EarlyData_L>, ++ std::tuple<> ++ > sendChangedDataStubDispatcher; ++/** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_gatewayID_t, am_ConnectionFormat_L, am_ConnectionFormat_L, am_Convertion_L>, ++ std::tuple<am_Error_e> ++ > updateGatewayStubDispatcher; ++/** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_converterID_t, am_ConnectionFormat_L, am_ConnectionFormat_L, am_Convertion_L>, ++ std::tuple<am_Error_e> ++ > updateConverterStubDispatcher; ++/** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sinkID_t, am_sinkClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, ++ std::tuple<am_Error_e> ++ > updateSinkStubDispatcher; ++/** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++sourceClassID, ++listSoundProperties, ++listConnectionFormats, ++ * ++listMainSoundProperties ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sourceID_t, am_sourceClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, ++ std::tuple<am_Error_e> ++ > updateSourceStubDispatcher; ++/** ++ * acknowledges a asyncSetSinkVolumes ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Volumes_L, am_Error_e>, ++ std::tuple<> ++ > ackSetVolumesStubDispatcher; ++/** ++ * The acknowledge of the SinkNotificationConfiguration ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > ackSinkNotificationConfigurationStubDispatcher; ++/** ++ * The acknowledge of the SourceNotificationConfiguration ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_Handle_s, am_Error_e>, ++ std::tuple<> ++ > ackSourceNotificationConfigurationStubDispatcher; ++/** ++ * is called whenever a notified value needs to be send ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sinkID_t, am_NotificationPayload_s>, ++ std::tuple<> ++ > hookSinkNotificationDataChangeStubDispatcher; ++/** ++ * is called whenever a notified value needs to be send ++ */ ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<am_sourceID_t, am_NotificationPayload_s>, ++ std::tuple<> ++ > hookSourceNotificationDataChangeStubDispatcher; ++static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< ++ RoutingControlObserverStub, ++ std::tuple<std::string>, ++ std::tuple<> ++ > confirmRoutingRundownStubDispatcher; ++ ++ ++ ++ ++ protected: ++ virtual const char* getMethodsDBusIntrospectionXmlData() const; ++ ++ private: ++ RoutingControlObserverDBusStubAdapterHelper::StubDispatcherTable stubDispatcherTable_; ++ CommonAPI::DBus::StubAttributeTable stubAttributeTable_; ++}; ++ ++class RoutingControlObserverDBusStubAdapter: public RoutingControlObserverDBusStubAdapterInternal, public std::enable_shared_from_this<RoutingControlObserverDBusStubAdapter> { ++public: ++ RoutingControlObserverDBusStubAdapter( ++ const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, ++ const std::string& commonApiAddress, ++ const std::string& dbusInterfaceName, ++ const std::string& dbusBusName, ++ const std::string& dbusObjectPath, ++ const std::shared_ptr<CommonAPI::DBus::DBusProxyConnection>& dbusConnection, ++ const std::shared_ptr<CommonAPI::StubBase>& stub) : ++ CommonAPI::DBus::DBusStubAdapter( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ false), ++ RoutingControlObserverDBusStubAdapterInternal( ++ factory, ++ commonApiAddress, ++ dbusInterfaceName, ++ dbusBusName, ++ dbusObjectPath, ++ dbusConnection, ++ stub) { } ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Routing_Control_Observer_DBUS_STUB_ADAPTER_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxy.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxy.h +new file mode 100644 +index 0000000..813c9cc +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxy.h +@@ -0,0 +1,1921 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * Routing Receive sendInterface description. ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_Observer_PROXY_H_ ++#define ORG_GENIVI_AM_Routing_Control_Observer_PROXY_H_ ++ ++#include "RoutingControlObserverProxyBase.h" ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/AttributeExtension.h> ++#include <CommonAPI/Factory.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++template <typename ... _AttributeExtensions> ++class RoutingControlObserverProxy: virtual public RoutingControlObserver, virtual public RoutingControlObserverProxyBase ++, public _AttributeExtensions... { ++public: ++ RoutingControlObserverProxy(std::shared_ptr<CommonAPI::Proxy> delegate); ++ ~RoutingControlObserverProxy(); ++ ++ typedef RoutingControlObserver InterfaceType; ++ ++ ++ /** ++ * This attribute signals to the clients the current routing state. ++ A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++ /** ++ * Returns the wrapper class that provides access to the attribute RoutingReady. ++ */ ++ virtual RoutingReadyAttribute& getRoutingReadyAttribute() { ++ return delegate_->getRoutingReadyAttribute(); ++ } ++ ++ ++ /** ++ * acknowledges a asyncConnect ++ * ++ * Calls ackConnect with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackConnect with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, AckConnectAsyncCallback callback); ++ /** ++ * acknowledges a asyncDisconnect ++ * ++ * Calls ackDisconnect with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackDisconnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackDisconnect with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackDisconnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, AckDisconnectAsyncCallback callback); ++ /** ++ * acknowledges a asyncsetSinkVolume ++ * ++ * Calls ackSetSinkVolumeChange with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSetSinkVolumeChange(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSetSinkVolumeChange with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSetSinkVolumeChangeAsync(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, AckSetSinkVolumeChangeAsyncCallback callback); ++ /** ++ * acknowledges a asyncsetSourceVolume ++ * ++ * Calls ackSetSourceVolumeChange with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSetSourceVolumeChange(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSetSourceVolumeChange with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceVolumeChangeAsync(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, AckSetSourceVolumeChangeAsyncCallback callback); ++ /** ++ * acknowlegde for asyncSetSourceState ++ * ++ * Calls ackSetSourceState with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSetSourceState(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSetSourceState with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceStateAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceStateAsyncCallback callback); ++ /** ++ * acknowledges asyncSetSinkSoundProperties ++ * ++ * Calls ackSetSinkSoundProperties with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSetSinkSoundProperties(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSetSinkSoundProperties with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSinkSoundPropertiesAsyncCallback callback); ++ /** ++ * acknowledges asyncSetSinkSoundProperty ++ * ++ * Calls ackSetSinkSoundProperty with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSetSinkSoundProperty(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSetSinkSoundProperty with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSinkSoundPropertyAsyncCallback callback); ++ /** ++ * acknowledges asyncSetSourceSoundProperties ++ * ++ * Calls ackSetSourceSoundProperties with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSetSourceSoundProperties(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSetSourceSoundProperties with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceSoundPropertiesAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceSoundPropertiesAsyncCallback callback); ++ /** ++ * acknowledges asyncSetSourceSoundProperty ++ * ++ * Calls ackSetSourceSoundProperty with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSetSourceSoundProperty(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSetSourceSoundProperty with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceSoundPropertyAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceSoundPropertyAsyncCallback callback); ++ /** ++ * acknowledges asyncCrossFade ++ * ++ * Calls ackCrossFading with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackCrossFading(const am_Handle_s& handle, const am_HotSink_e& hotSink, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackCrossFading with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackCrossFadingAsync(const am_Handle_s& handle, const am_HotSink_e& hotSink, const am_Error_e& error, AckCrossFadingAsyncCallback callback); ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ * ++ * Calls ackSourceVolumeTick with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSourceVolumeTick(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSourceVolumeTick with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSourceVolumeTickAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, AckSourceVolumeTickAsyncCallback callback); ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ * ++ * Calls ackSinkVolumeTick with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSinkVolumeTick(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSinkVolumeTick with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSinkVolumeTickAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, AckSinkVolumeTickAsyncCallback callback); ++ /** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ * ++ * Calls peekDomain with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void peekDomain(const std::string& name, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error); ++ /** ++ * Calls peekDomain with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> peekDomainAsync(const std::string& name, PeekDomainAsyncCallback callback); ++ /** ++ * registers a domain ++ (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ * ++ * Calls registerDomain with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void registerDomain(const am_Domain_s& domainData, const std::string& returnBusname, const std::string& returnInterface, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error); ++ /** ++ * Calls registerDomain with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> registerDomainAsync(const am_Domain_s& domainData, const std::string& returnBusname, const std::string& returnInterface, RegisterDomainAsyncCallback callback); ++ /** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ * ++ * Calls deregisterDomain with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void deregisterDomain(const am_domainID_t& domainID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls deregisterDomain with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> deregisterDomainAsync(const am_domainID_t& domainID, DeregisterDomainAsyncCallback callback); ++ /** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ * ++ * Calls registerGateway with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void registerGateway(const am_Gateway_s& gatewayData, CommonAPI::CallStatus& callStatus, am_gatewayID_t& gatewayID, am_Error_e& error); ++ /** ++ * Calls registerGateway with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> registerGatewayAsync(const am_Gateway_s& gatewayData, RegisterGatewayAsyncCallback callback); ++ /** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ * ++ * Calls registerConverter with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void registerConverter(const am_Converter_s& converterData, CommonAPI::CallStatus& callStatus, am_converterID_t& converterID, am_Error_e& error); ++ /** ++ * Calls registerConverter with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> registerConverterAsync(const am_Converter_s& converterData, RegisterConverterAsyncCallback callback); ++ /** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ * ++ * Calls deregisterGateway with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void deregisterGateway(const am_gatewayID_t& gatewayID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls deregisterGateway with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> deregisterGatewayAsync(const am_gatewayID_t& gatewayID, DeregisterGatewayAsyncCallback callback); ++ /** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ * ++ * Calls deregisterConverter with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void deregisterConverter(const am_converterID_t& converterID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls deregisterConverter with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> deregisterConverterAsync(const am_converterID_t& converterID, DeregisterConverterAsyncCallback callback); ++ /** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ * ++ * Calls peekSink with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void peekSink(const std::string& name, CommonAPI::CallStatus& callStatus, am_sinkID_t& sinkID, am_Error_e& error); ++ /** ++ * Calls peekSink with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> peekSinkAsync(const std::string& name, PeekSinkAsyncCallback callback); ++ /** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ * ++ * Calls registerSink with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void registerSink(const am_Sink_s& sinkData, CommonAPI::CallStatus& callStatus, am_sinkID_t& sinkID, am_Error_e& error); ++ /** ++ * Calls registerSink with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> registerSinkAsync(const am_Sink_s& sinkData, RegisterSinkAsyncCallback callback); ++ /** ++ * deregisters a sink. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ * ++ * Calls deregisterSink with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void deregisterSink(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls deregisterSink with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> deregisterSinkAsync(const am_sinkID_t& sinkID, DeregisterSinkAsyncCallback callback); ++ /** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ * ++ * Calls peekSource with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void peekSource(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error); ++ /** ++ * Calls peekSource with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> peekSourceAsync(const std::string& name, PeekSourceAsyncCallback callback); ++ /** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ * ++ * Calls registerSource with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void registerSource(const am_Source_s& sourceData, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error); ++ /** ++ * Calls registerSource with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> registerSourceAsync(const am_Source_s& sourceData, RegisterSourceAsyncCallback callback); ++ /** ++ * deregisters a source ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ * ++ * Calls deregisterSource with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void deregisterSource(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls deregisterSource with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> deregisterSourceAsync(const am_sourceID_t& sourceID, DeregisterSourceAsyncCallback callback); ++ /** ++ * this function registers a crossfader. ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ * ++ * Calls registerCrossfader with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void registerCrossfader(const am_Crossfader_s& crossfaderData, CommonAPI::CallStatus& callStatus, am_crossfaderID_t& crossfaderID, am_Error_e& error); ++ /** ++ * Calls registerCrossfader with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> registerCrossfaderAsync(const am_Crossfader_s& crossfaderData, RegisterCrossfaderAsyncCallback callback); ++ /** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ * ++ * Calls deregisterCrossfader with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void deregisterCrossfader(const am_crossfaderID_t& crossfaderID, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls deregisterCrossfader with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> deregisterCrossfaderAsync(const am_crossfaderID_t& crossfaderID, DeregisterCrossfaderAsyncCallback callback); ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ * ++ * Calls peekSourceClassID with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void peekSourceClassID(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceClass_t& sourceClassID, am_Error_e& error); ++ /** ++ * Calls peekSourceClassID with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> peekSourceClassIDAsync(const std::string& name, PeekSourceClassIDAsyncCallback callback); ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ * ++ * Calls peekSinkClassID with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void peekSinkClassID(const std::string& name, CommonAPI::CallStatus& callStatus, am_sinkClass_t& sinkClassID, am_Error_e& error); ++ /** ++ * Calls peekSinkClassID with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> peekSinkClassIDAsync(const std::string& name, PeekSinkClassIDAsyncCallback callback); ++ /** ++ * is called when a low level interrupt changes it status. ++ * ++ * Calls hookInterruptStatusChange with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void hookInterruptStatusChange(const am_sourceID_t& sourceID, const am_InterruptState_e& interruptState, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls hookInterruptStatusChange with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> hookInterruptStatusChangeAsync(const am_sourceID_t& sourceID, const am_InterruptState_e& interruptState, HookInterruptStatusChangeAsyncCallback callback); ++ /** ++ * This hook is called when all elements from a domain are registered. ++ Is used by ++ * the Controller to know when all expected domains are finally registered ++ * ++ * Calls hookDomainRegistrationComplete with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void hookDomainRegistrationComplete(const am_domainID_t& domainID, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls hookDomainRegistrationComplete with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> hookDomainRegistrationCompleteAsync(const am_domainID_t& domainID, HookDomainRegistrationCompleteAsyncCallback callback); ++ /** ++ * is called when a sink changes its availability ++ * ++ * Calls hookSinkAvailablityStatusChange with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void hookSinkAvailablityStatusChange(const am_sinkID_t& sinkID, const am_Availability_s& availability, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls hookSinkAvailablityStatusChange with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> hookSinkAvailablityStatusChangeAsync(const am_sinkID_t& sinkID, const am_Availability_s& availability, HookSinkAvailablityStatusChangeAsyncCallback callback); ++ /** ++ * is called when a source changes its availability ++ * ++ * Calls hookSourceAvailablityStatusChange with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void hookSourceAvailablityStatusChange(const am_sourceID_t& sourceID, const am_Availability_s& availability, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls hookSourceAvailablityStatusChange with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> hookSourceAvailablityStatusChangeAsync(const am_sourceID_t& sourceID, const am_Availability_s& availability, HookSourceAvailablityStatusChangeAsyncCallback callback); ++ /** ++ * is called when a domain changes its status. This used for early domains only ++ * ++ * Calls hookDomainStateChange with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void hookDomainStateChange(const am_domainID_t& domainID, const am_DomainState_e& domainState, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls hookDomainStateChange with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> hookDomainStateChangeAsync(const am_domainID_t& domainID, const am_DomainState_e& domainState, HookDomainStateChangeAsyncCallback callback); ++ /** ++ * is called when the timinginformation (delay) changed for a connection. ++ * ++ * Calls hookTimingInformationChanged with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void hookTimingInformationChanged(const am_connectionID_t& connectionID, const am_timeSync_t& delay, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls hookTimingInformationChanged with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> hookTimingInformationChangedAsync(const am_connectionID_t& connectionID, const am_timeSync_t& delay, HookTimingInformationChangedAsyncCallback callback); ++ /** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++ (at)return E_OK on success, E_UNKNOWN on error ++ * ++ * Calls sendChangedData with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void sendChangedData(const am_EarlyData_L& earlyData, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls sendChangedData with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> sendChangedDataAsync(const am_EarlyData_L& earlyData, SendChangedDataAsyncCallback callback); ++ /** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ * ++ * Calls updateGateway with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void updateGateway(const am_gatewayID_t& gatewayID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls updateGateway with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> updateGatewayAsync(const am_gatewayID_t& gatewayID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, UpdateGatewayAsyncCallback callback); ++ /** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ * ++ * Calls updateConverter with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void updateConverter(const am_converterID_t& converterID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls updateConverter with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> updateConverterAsync(const am_converterID_t& converterID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, UpdateConverterAsyncCallback callback); ++ /** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ * ++ * Calls updateSink with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void updateSink(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls updateSink with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> updateSinkAsync(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, UpdateSinkAsyncCallback callback); ++ /** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++ Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++ sourceClassID, ++ listSoundProperties, ++ listConnectionFormats, ++ * ++ listMainSoundProperties ++ * ++ * Calls updateSource with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void updateSource(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls updateSource with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> updateSourceAsync(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, UpdateSourceAsyncCallback callback); ++ /** ++ * acknowledges a asyncSetSinkVolumes ++ * ++ * Calls ackSetVolumes with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSetVolumes(const am_Handle_s& handle, const am_Volumes_L& listvolumes, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSetVolumes with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSetVolumesAsync(const am_Handle_s& handle, const am_Volumes_L& listvolumes, const am_Error_e& error, AckSetVolumesAsyncCallback callback); ++ /** ++ * The acknowledge of the SinkNotificationConfiguration ++ * ++ * Calls ackSinkNotificationConfiguration with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSinkNotificationConfiguration(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSinkNotificationConfiguration with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSinkNotificationConfigurationAsync(const am_Handle_s& handle, const am_Error_e& error, AckSinkNotificationConfigurationAsyncCallback callback); ++ /** ++ * The acknowledge of the SourceNotificationConfiguration ++ * ++ * Calls ackSourceNotificationConfiguration with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void ackSourceNotificationConfiguration(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls ackSourceNotificationConfiguration with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> ackSourceNotificationConfigurationAsync(const am_Handle_s& handle, const am_Error_e& error, AckSourceNotificationConfigurationAsyncCallback callback); ++ /** ++ * is called whenever a notified value needs to be send ++ * ++ * Calls hookSinkNotificationDataChange with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void hookSinkNotificationDataChange(const am_sinkID_t& sinkID, const am_NotificationPayload_s& payload, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls hookSinkNotificationDataChange with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> hookSinkNotificationDataChangeAsync(const am_sinkID_t& sinkID, const am_NotificationPayload_s& payload, HookSinkNotificationDataChangeAsyncCallback callback); ++ /** ++ * is called whenever a notified value needs to be send ++ * ++ * Calls hookSourceNotificationDataChange with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void hookSourceNotificationDataChange(const am_sourceID_t& sourceID, const am_NotificationPayload_s& payload, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls hookSourceNotificationDataChange with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> hookSourceNotificationDataChangeAsync(const am_sourceID_t& sourceID, const am_NotificationPayload_s& payload, HookSourceNotificationDataChangeAsyncCallback callback); ++ /** ++ * Calls confirmRoutingRundown with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void confirmRoutingRundown(const std::string& domainName, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls confirmRoutingRundown with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> confirmRoutingRundownAsync(const std::string& domainName, ConfirmRoutingRundownAsyncCallback callback); ++ ++ ++ /** ++ * Returns the CommonAPI address of the remote partner this proxy communicates with. ++ */ ++ virtual std::string getAddress() const; ++ ++ /** ++ * Returns the domain of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getDomain() const; ++ ++ /** ++ * Returns the service ID of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getServiceId() const; ++ ++ /** ++ * Returns the instance ID of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getInstanceId() const; ++ ++ /** ++ * Returns true if the remote partner for this proxy is currently known to be available. ++ */ ++ virtual bool isAvailable() const; ++ ++ /** ++ * Returns true if the remote partner for this proxy is available. ++ */ ++ virtual bool isAvailableBlocking() const; ++ ++ /** ++ * Returns the wrapper class that is used to (de-)register for notifications about ++ * the availability of the remote partner of this proxy. ++ */ ++ virtual CommonAPI::ProxyStatusEvent& getProxyStatusEvent(); ++ ++ /** ++ * Returns the wrapper class that is used to access version information of the remote ++ * partner of this proxy. ++ */ ++ virtual CommonAPI::InterfaceVersionAttribute& getInterfaceVersionAttribute(); ++ ++ private: ++ std::shared_ptr<RoutingControlObserverProxyBase> delegate_; ++}; ++ ++#ifdef WIN32 ++ typedef RoutingControlObserverProxy<CommonAPI::WINDummyAttributeExtension<CommonAPI::WINDummyAttribute>> RoutingControlObserverProxyDefault; ++#else ++ typedef RoutingControlObserverProxy<> RoutingControlObserverProxyDefault; ++#endif ++ ++namespace RoutingControlObserverExtensions { ++ /** ++ * This attribute signals to the clients the current routing state. ++ A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++ template <template <typename > class _ExtensionType> ++ class RoutingReadyAttributeExtension { ++ public: ++ typedef _ExtensionType<RoutingControlObserverProxyBase::RoutingReadyAttribute> extension_type; ++ ++ static_assert(std::is_base_of<typename CommonAPI::AttributeExtension<RoutingControlObserverProxyBase::RoutingReadyAttribute>, extension_type>::value, ++ "Not CommonAPI Attribute Extension!"); ++ #ifdef WIN32 ++ RoutingReadyAttributeExtension() {} ++ #endif ++ ++ RoutingReadyAttributeExtension(RoutingControlObserverProxyBase& proxy): attributeExtension_(proxy.getRoutingReadyAttribute()) { ++ } ++ ++ inline extension_type& getRoutingReadyAttributeExtension() { ++ return attributeExtension_; ++ } ++ ++ private: ++ extension_type attributeExtension_; ++ }; ++ ++} // namespace RoutingControlObserverExtensions ++ ++// ++// RoutingControlObserverProxy Implementation ++// ++template <typename ... _AttributeExtensions> ++RoutingControlObserverProxy<_AttributeExtensions...>::RoutingControlObserverProxy(std::shared_ptr<CommonAPI::Proxy> delegate): ++ _AttributeExtensions(*(std::dynamic_pointer_cast<RoutingControlObserverProxyBase>(delegate)))..., ++ delegate_(std::dynamic_pointer_cast<RoutingControlObserverProxyBase>(delegate)) { ++} ++ ++template <typename ... _AttributeExtensions> ++RoutingControlObserverProxy<_AttributeExtensions...>::~RoutingControlObserverProxy() { ++} ++ ++/** ++ * acknowledges a asyncConnect ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackConnect(handle, connectionID, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, AckConnectAsyncCallback callback) { ++ return delegate_->ackConnectAsync(handle, connectionID, error, callback); ++} ++/** ++ * acknowledges a asyncDisconnect ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackDisconnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackDisconnect(handle, connectionID, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackDisconnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, AckDisconnectAsyncCallback callback) { ++ return delegate_->ackDisconnectAsync(handle, connectionID, error, callback); ++} ++/** ++ * acknowledges a asyncsetSinkVolume ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSinkVolumeChange(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSetSinkVolumeChange(handle, volume, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSinkVolumeChangeAsync(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, AckSetSinkVolumeChangeAsyncCallback callback) { ++ return delegate_->ackSetSinkVolumeChangeAsync(handle, volume, error, callback); ++} ++/** ++ * acknowledges a asyncsetSourceVolume ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSourceVolumeChange(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSetSourceVolumeChange(handle, volume, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSourceVolumeChangeAsync(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, AckSetSourceVolumeChangeAsyncCallback callback) { ++ return delegate_->ackSetSourceVolumeChangeAsync(handle, volume, error, callback); ++} ++/** ++ * acknowlegde for asyncSetSourceState ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSourceState(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSetSourceState(handle, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSourceStateAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceStateAsyncCallback callback) { ++ return delegate_->ackSetSourceStateAsync(handle, error, callback); ++} ++/** ++ * acknowledges asyncSetSinkSoundProperties ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSinkSoundProperties(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSetSinkSoundProperties(handle, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSinkSoundPropertiesAsyncCallback callback) { ++ return delegate_->ackSetSinkSoundPropertiesAsync(handle, error, callback); ++} ++/** ++ * acknowledges asyncSetSinkSoundProperty ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSinkSoundProperty(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSetSinkSoundProperty(handle, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSinkSoundPropertyAsyncCallback callback) { ++ return delegate_->ackSetSinkSoundPropertyAsync(handle, error, callback); ++} ++/** ++ * acknowledges asyncSetSourceSoundProperties ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSourceSoundProperties(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSetSourceSoundProperties(handle, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSourceSoundPropertiesAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceSoundPropertiesAsyncCallback callback) { ++ return delegate_->ackSetSourceSoundPropertiesAsync(handle, error, callback); ++} ++/** ++ * acknowledges asyncSetSourceSoundProperty ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSourceSoundProperty(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSetSourceSoundProperty(handle, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSetSourceSoundPropertyAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceSoundPropertyAsyncCallback callback) { ++ return delegate_->ackSetSourceSoundPropertyAsync(handle, error, callback); ++} ++/** ++ * acknowledges asyncCrossFade ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackCrossFading(const am_Handle_s& handle, const am_HotSink_e& hotSink, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackCrossFading(handle, hotSink, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackCrossFadingAsync(const am_Handle_s& handle, const am_HotSink_e& hotSink, const am_Error_e& error, AckCrossFadingAsyncCallback callback) { ++ return delegate_->ackCrossFadingAsync(handle, hotSink, error, callback); ++} ++/** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSourceVolumeTick(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSourceVolumeTick(handle, sourceID, volume, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSourceVolumeTickAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, AckSourceVolumeTickAsyncCallback callback) { ++ return delegate_->ackSourceVolumeTickAsync(handle, sourceID, volume, callback); ++} ++/** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSinkVolumeTick(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSinkVolumeTick(handle, sinkID, volume, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSinkVolumeTickAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, AckSinkVolumeTickAsyncCallback callback) { ++ return delegate_->ackSinkVolumeTickAsync(handle, sinkID, volume, callback); ++} ++/** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::peekDomain(const std::string& name, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error) { ++ delegate_->peekDomain(name, callStatus, domainID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::peekDomainAsync(const std::string& name, PeekDomainAsyncCallback callback) { ++ return delegate_->peekDomainAsync(name, callback); ++} ++/** ++ * registers a domain ++(at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::registerDomain(const am_Domain_s& domainData, const std::string& returnBusname, const std::string& returnInterface, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error) { ++ delegate_->registerDomain(domainData, returnBusname, returnInterface, callStatus, domainID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::registerDomainAsync(const am_Domain_s& domainData, const std::string& returnBusname, const std::string& returnInterface, RegisterDomainAsyncCallback callback) { ++ return delegate_->registerDomainAsync(domainData, returnBusname, returnInterface, callback); ++} ++/** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++(at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::deregisterDomain(const am_domainID_t& domainID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->deregisterDomain(domainID, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::deregisterDomainAsync(const am_domainID_t& domainID, DeregisterDomainAsyncCallback callback) { ++ return delegate_->deregisterDomainAsync(domainID, callback); ++} ++/** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::registerGateway(const am_Gateway_s& gatewayData, CommonAPI::CallStatus& callStatus, am_gatewayID_t& gatewayID, am_Error_e& error) { ++ delegate_->registerGateway(gatewayData, callStatus, gatewayID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::registerGatewayAsync(const am_Gateway_s& gatewayData, RegisterGatewayAsyncCallback callback) { ++ return delegate_->registerGatewayAsync(gatewayData, callback); ++} ++/** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::registerConverter(const am_Converter_s& converterData, CommonAPI::CallStatus& callStatus, am_converterID_t& converterID, am_Error_e& error) { ++ delegate_->registerConverter(converterData, callStatus, converterID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::registerConverterAsync(const am_Converter_s& converterData, RegisterConverterAsyncCallback callback) { ++ return delegate_->registerConverterAsync(converterData, callback); ++} ++/** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::deregisterGateway(const am_gatewayID_t& gatewayID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->deregisterGateway(gatewayID, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::deregisterGatewayAsync(const am_gatewayID_t& gatewayID, DeregisterGatewayAsyncCallback callback) { ++ return delegate_->deregisterGatewayAsync(gatewayID, callback); ++} ++/** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::deregisterConverter(const am_converterID_t& converterID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->deregisterConverter(converterID, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::deregisterConverterAsync(const am_converterID_t& converterID, DeregisterConverterAsyncCallback callback) { ++ return delegate_->deregisterConverterAsync(converterID, callback); ++} ++/** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::peekSink(const std::string& name, CommonAPI::CallStatus& callStatus, am_sinkID_t& sinkID, am_Error_e& error) { ++ delegate_->peekSink(name, callStatus, sinkID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::peekSinkAsync(const std::string& name, PeekSinkAsyncCallback callback) { ++ return delegate_->peekSinkAsync(name, callback); ++} ++/** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++(at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::registerSink(const am_Sink_s& sinkData, CommonAPI::CallStatus& callStatus, am_sinkID_t& sinkID, am_Error_e& error) { ++ delegate_->registerSink(sinkData, callStatus, sinkID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::registerSinkAsync(const am_Sink_s& sinkData, RegisterSinkAsyncCallback callback) { ++ return delegate_->registerSinkAsync(sinkData, callback); ++} ++/** ++ * deregisters a sink. ++(at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::deregisterSink(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->deregisterSink(sinkID, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::deregisterSinkAsync(const am_sinkID_t& sinkID, DeregisterSinkAsyncCallback callback) { ++ return delegate_->deregisterSinkAsync(sinkID, callback); ++} ++/** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::peekSource(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error) { ++ delegate_->peekSource(name, callStatus, sourceID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::peekSourceAsync(const std::string& name, PeekSourceAsyncCallback callback) { ++ return delegate_->peekSourceAsync(name, callback); ++} ++/** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++(at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::registerSource(const am_Source_s& sourceData, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error) { ++ delegate_->registerSource(sourceData, callStatus, sourceID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::registerSourceAsync(const am_Source_s& sourceData, RegisterSourceAsyncCallback callback) { ++ return delegate_->registerSourceAsync(sourceData, callback); ++} ++/** ++ * deregisters a source ++(at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::deregisterSource(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->deregisterSource(sourceID, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::deregisterSourceAsync(const am_sourceID_t& sourceID, DeregisterSourceAsyncCallback callback) { ++ return delegate_->deregisterSourceAsync(sourceID, callback); ++} ++/** ++ * this function registers a crossfader. ++(at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::registerCrossfader(const am_Crossfader_s& crossfaderData, CommonAPI::CallStatus& callStatus, am_crossfaderID_t& crossfaderID, am_Error_e& error) { ++ delegate_->registerCrossfader(crossfaderData, callStatus, crossfaderID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::registerCrossfaderAsync(const am_Crossfader_s& crossfaderData, RegisterCrossfaderAsyncCallback callback) { ++ return delegate_->registerCrossfaderAsync(crossfaderData, callback); ++} ++/** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::deregisterCrossfader(const am_crossfaderID_t& crossfaderID, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->deregisterCrossfader(crossfaderID, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::deregisterCrossfaderAsync(const am_crossfaderID_t& crossfaderID, DeregisterCrossfaderAsyncCallback callback) { ++ return delegate_->deregisterCrossfaderAsync(crossfaderID, callback); ++} ++/** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++(at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::peekSourceClassID(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceClass_t& sourceClassID, am_Error_e& error) { ++ delegate_->peekSourceClassID(name, callStatus, sourceClassID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::peekSourceClassIDAsync(const std::string& name, PeekSourceClassIDAsyncCallback callback) { ++ return delegate_->peekSourceClassIDAsync(name, callback); ++} ++/** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++(at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::peekSinkClassID(const std::string& name, CommonAPI::CallStatus& callStatus, am_sinkClass_t& sinkClassID, am_Error_e& error) { ++ delegate_->peekSinkClassID(name, callStatus, sinkClassID, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::peekSinkClassIDAsync(const std::string& name, PeekSinkClassIDAsyncCallback callback) { ++ return delegate_->peekSinkClassIDAsync(name, callback); ++} ++/** ++ * is called when a low level interrupt changes it status. ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::hookInterruptStatusChange(const am_sourceID_t& sourceID, const am_InterruptState_e& interruptState, CommonAPI::CallStatus& callStatus) { ++ delegate_->hookInterruptStatusChange(sourceID, interruptState, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::hookInterruptStatusChangeAsync(const am_sourceID_t& sourceID, const am_InterruptState_e& interruptState, HookInterruptStatusChangeAsyncCallback callback) { ++ return delegate_->hookInterruptStatusChangeAsync(sourceID, interruptState, callback); ++} ++/** ++ * This hook is called when all elements from a domain are registered. ++Is used by ++ * the Controller to know when all expected domains are finally registered ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::hookDomainRegistrationComplete(const am_domainID_t& domainID, CommonAPI::CallStatus& callStatus) { ++ delegate_->hookDomainRegistrationComplete(domainID, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::hookDomainRegistrationCompleteAsync(const am_domainID_t& domainID, HookDomainRegistrationCompleteAsyncCallback callback) { ++ return delegate_->hookDomainRegistrationCompleteAsync(domainID, callback); ++} ++/** ++ * is called when a sink changes its availability ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::hookSinkAvailablityStatusChange(const am_sinkID_t& sinkID, const am_Availability_s& availability, CommonAPI::CallStatus& callStatus) { ++ delegate_->hookSinkAvailablityStatusChange(sinkID, availability, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::hookSinkAvailablityStatusChangeAsync(const am_sinkID_t& sinkID, const am_Availability_s& availability, HookSinkAvailablityStatusChangeAsyncCallback callback) { ++ return delegate_->hookSinkAvailablityStatusChangeAsync(sinkID, availability, callback); ++} ++/** ++ * is called when a source changes its availability ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::hookSourceAvailablityStatusChange(const am_sourceID_t& sourceID, const am_Availability_s& availability, CommonAPI::CallStatus& callStatus) { ++ delegate_->hookSourceAvailablityStatusChange(sourceID, availability, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::hookSourceAvailablityStatusChangeAsync(const am_sourceID_t& sourceID, const am_Availability_s& availability, HookSourceAvailablityStatusChangeAsyncCallback callback) { ++ return delegate_->hookSourceAvailablityStatusChangeAsync(sourceID, availability, callback); ++} ++/** ++ * is called when a domain changes its status. This used for early domains only ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::hookDomainStateChange(const am_domainID_t& domainID, const am_DomainState_e& domainState, CommonAPI::CallStatus& callStatus) { ++ delegate_->hookDomainStateChange(domainID, domainState, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::hookDomainStateChangeAsync(const am_domainID_t& domainID, const am_DomainState_e& domainState, HookDomainStateChangeAsyncCallback callback) { ++ return delegate_->hookDomainStateChangeAsync(domainID, domainState, callback); ++} ++/** ++ * is called when the timinginformation (delay) changed for a connection. ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::hookTimingInformationChanged(const am_connectionID_t& connectionID, const am_timeSync_t& delay, CommonAPI::CallStatus& callStatus) { ++ delegate_->hookTimingInformationChanged(connectionID, delay, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::hookTimingInformationChangedAsync(const am_connectionID_t& connectionID, const am_timeSync_t& delay, HookTimingInformationChangedAsyncCallback callback) { ++ return delegate_->hookTimingInformationChangedAsync(connectionID, delay, callback); ++} ++/** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::sendChangedData(const am_EarlyData_L& earlyData, CommonAPI::CallStatus& callStatus) { ++ delegate_->sendChangedData(earlyData, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::sendChangedDataAsync(const am_EarlyData_L& earlyData, SendChangedDataAsyncCallback callback) { ++ return delegate_->sendChangedDataAsync(earlyData, callback); ++} ++/** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::updateGateway(const am_gatewayID_t& gatewayID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->updateGateway(gatewayID, listSourceFormats, listSinkFormats, convertionMatrix, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::updateGatewayAsync(const am_gatewayID_t& gatewayID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, UpdateGatewayAsyncCallback callback) { ++ return delegate_->updateGatewayAsync(gatewayID, listSourceFormats, listSinkFormats, convertionMatrix, callback); ++} ++/** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::updateConverter(const am_converterID_t& converterID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->updateConverter(converterID, listSourceFormats, listSinkFormats, convertionMatrix, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::updateConverterAsync(const am_converterID_t& converterID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, UpdateConverterAsyncCallback callback) { ++ return delegate_->updateConverterAsync(converterID, listSourceFormats, listSinkFormats, convertionMatrix, callback); ++} ++/** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::updateSink(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->updateSink(sinkID, sinkClassID, listSoundProperties, listConnectionFormats, listMainSoundProperties, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::updateSinkAsync(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, UpdateSinkAsyncCallback callback) { ++ return delegate_->updateSinkAsync(sinkID, sinkClassID, listSoundProperties, listConnectionFormats, listMainSoundProperties, callback); ++} ++/** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++sourceClassID, ++listSoundProperties, ++listConnectionFormats, ++ * ++listMainSoundProperties ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::updateSource(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->updateSource(sourceID, sourceClassID, listSoundProperties, listConnectionFormats, listMainSoundProperties, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::updateSourceAsync(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, UpdateSourceAsyncCallback callback) { ++ return delegate_->updateSourceAsync(sourceID, sourceClassID, listSoundProperties, listConnectionFormats, listMainSoundProperties, callback); ++} ++/** ++ * acknowledges a asyncSetSinkVolumes ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSetVolumes(const am_Handle_s& handle, const am_Volumes_L& listvolumes, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSetVolumes(handle, listvolumes, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSetVolumesAsync(const am_Handle_s& handle, const am_Volumes_L& listvolumes, const am_Error_e& error, AckSetVolumesAsyncCallback callback) { ++ return delegate_->ackSetVolumesAsync(handle, listvolumes, error, callback); ++} ++/** ++ * The acknowledge of the SinkNotificationConfiguration ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSinkNotificationConfiguration(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSinkNotificationConfiguration(handle, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSinkNotificationConfigurationAsync(const am_Handle_s& handle, const am_Error_e& error, AckSinkNotificationConfigurationAsyncCallback callback) { ++ return delegate_->ackSinkNotificationConfigurationAsync(handle, error, callback); ++} ++/** ++ * The acknowledge of the SourceNotificationConfiguration ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::ackSourceNotificationConfiguration(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) { ++ delegate_->ackSourceNotificationConfiguration(handle, error, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::ackSourceNotificationConfigurationAsync(const am_Handle_s& handle, const am_Error_e& error, AckSourceNotificationConfigurationAsyncCallback callback) { ++ return delegate_->ackSourceNotificationConfigurationAsync(handle, error, callback); ++} ++/** ++ * is called whenever a notified value needs to be send ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::hookSinkNotificationDataChange(const am_sinkID_t& sinkID, const am_NotificationPayload_s& payload, CommonAPI::CallStatus& callStatus) { ++ delegate_->hookSinkNotificationDataChange(sinkID, payload, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::hookSinkNotificationDataChangeAsync(const am_sinkID_t& sinkID, const am_NotificationPayload_s& payload, HookSinkNotificationDataChangeAsyncCallback callback) { ++ return delegate_->hookSinkNotificationDataChangeAsync(sinkID, payload, callback); ++} ++/** ++ * is called whenever a notified value needs to be send ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::hookSourceNotificationDataChange(const am_sourceID_t& sourceID, const am_NotificationPayload_s& payload, CommonAPI::CallStatus& callStatus) { ++ delegate_->hookSourceNotificationDataChange(sourceID, payload, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::hookSourceNotificationDataChangeAsync(const am_sourceID_t& sourceID, const am_NotificationPayload_s& payload, HookSourceNotificationDataChangeAsyncCallback callback) { ++ return delegate_->hookSourceNotificationDataChangeAsync(sourceID, payload, callback); ++} ++template <typename ... _AttributeExtensions> ++void RoutingControlObserverProxy<_AttributeExtensions...>::confirmRoutingRundown(const std::string& domainName, CommonAPI::CallStatus& callStatus) { ++ delegate_->confirmRoutingRundown(domainName, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensions...>::confirmRoutingRundownAsync(const std::string& domainName, ConfirmRoutingRundownAsyncCallback callback) { ++ return delegate_->confirmRoutingRundownAsync(domainName, callback); ++} ++ ++template <typename ... _AttributeExtensions> ++std::string RoutingControlObserverProxy<_AttributeExtensions...>::getAddress() const { ++ return delegate_->getAddress(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& RoutingControlObserverProxy<_AttributeExtensions...>::getDomain() const { ++ return delegate_->getDomain(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& RoutingControlObserverProxy<_AttributeExtensions...>::getServiceId() const { ++ return delegate_->getServiceId(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& RoutingControlObserverProxy<_AttributeExtensions...>::getInstanceId() const { ++ return delegate_->getInstanceId(); ++} ++ ++template <typename ... _AttributeExtensions> ++bool RoutingControlObserverProxy<_AttributeExtensions...>::isAvailable() const { ++ return delegate_->isAvailable(); ++} ++ ++template <typename ... _AttributeExtensions> ++bool RoutingControlObserverProxy<_AttributeExtensions...>::isAvailableBlocking() const { ++ return delegate_->isAvailableBlocking(); ++} ++ ++template <typename ... _AttributeExtensions> ++CommonAPI::ProxyStatusEvent& RoutingControlObserverProxy<_AttributeExtensions...>::getProxyStatusEvent() { ++ return delegate_->getProxyStatusEvent(); ++} ++ ++template <typename ... _AttributeExtensions> ++CommonAPI::InterfaceVersionAttribute& RoutingControlObserverProxy<_AttributeExtensions...>::getInterfaceVersionAttribute() { ++ return delegate_->getInterfaceVersionAttribute(); ++} ++ ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++namespace CommonAPI { ++template<template<typename > class _AttributeExtension> ++struct DefaultAttributeProxyFactoryHelper<org::genivi::am::RoutingControlObserverProxy, ++ _AttributeExtension> { ++ typedef typename org::genivi::am::RoutingControlObserverProxy< ++ org::genivi::am::RoutingControlObserverExtensions::RoutingReadyAttributeExtension<_AttributeExtension> ++ > class_t; ++}; ++} ++ ++#endif // ORG_GENIVI_AM_Routing_Control_Observer_PROXY_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxyBase.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxyBase.h +new file mode 100644 +index 0000000..a1ba9d4 +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxyBase.h +@@ -0,0 +1,401 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * Routing Receive sendInterface description. ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_Observer_PROXY_BASE_H_ ++#define ORG_GENIVI_AM_Routing_Control_Observer_PROXY_BASE_H_ ++ ++#include "RoutingControlObserver.h" ++ ++ ++#include <org/genivi/am.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/InputStream.h> ++#include <CommonAPI/OutputStream.h> ++#include <CommonAPI/SerializableStruct.h> ++#include <cstdint> ++#include <string> ++#include <vector> ++ ++#include <CommonAPI/Attribute.h> ++#include <CommonAPI/Proxy.h> ++#include <functional> ++#include <future> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++class RoutingControlObserverProxyBase: virtual public CommonAPI::Proxy { ++ public: ++ typedef CommonAPI::ObservableReadonlyAttribute<am_RoutingReady_e> RoutingReadyAttribute; ++ ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckConnectAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckDisconnectAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSetSinkVolumeChangeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSetSourceVolumeChangeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSetSourceStateAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSetSinkSoundPropertiesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSetSinkSoundPropertyAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSetSourceSoundPropertiesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSetSourceSoundPropertyAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckCrossFadingAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSourceVolumeTickAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSinkVolumeTickAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_domainID_t&, const am_Error_e&)> PeekDomainAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_domainID_t&, const am_Error_e&)> RegisterDomainAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> DeregisterDomainAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_gatewayID_t&, const am_Error_e&)> RegisterGatewayAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_converterID_t&, const am_Error_e&)> RegisterConverterAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> DeregisterGatewayAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> DeregisterConverterAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_sinkID_t&, const am_Error_e&)> PeekSinkAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_sinkID_t&, const am_Error_e&)> RegisterSinkAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> DeregisterSinkAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_sourceID_t&, const am_Error_e&)> PeekSourceAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_sourceID_t&, const am_Error_e&)> RegisterSourceAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> DeregisterSourceAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_crossfaderID_t&, const am_Error_e&)> RegisterCrossfaderAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> DeregisterCrossfaderAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_sourceClass_t&, const am_Error_e&)> PeekSourceClassIDAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_sinkClass_t&, const am_Error_e&)> PeekSinkClassIDAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> HookInterruptStatusChangeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> HookDomainRegistrationCompleteAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> HookSinkAvailablityStatusChangeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> HookSourceAvailablityStatusChangeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> HookDomainStateChangeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> HookTimingInformationChangedAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> SendChangedDataAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> UpdateGatewayAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> UpdateConverterAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> UpdateSinkAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> UpdateSourceAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSetVolumesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSinkNotificationConfigurationAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AckSourceNotificationConfigurationAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> HookSinkNotificationDataChangeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> HookSourceNotificationDataChangeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> ConfirmRoutingRundownAsyncCallback; ++ ++ /** ++ * This attribute signals to the clients the current routing state. ++ A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++ virtual RoutingReadyAttribute& getRoutingReadyAttribute() = 0; ++ ++ ++ /** ++ * acknowledges a asyncConnect ++ */ ++ virtual void ackConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, AckConnectAsyncCallback callback) = 0; ++ /** ++ * acknowledges a asyncDisconnect ++ */ ++ virtual void ackDisconnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackDisconnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_Error_e& error, AckDisconnectAsyncCallback callback) = 0; ++ /** ++ * acknowledges a asyncsetSinkVolume ++ */ ++ virtual void ackSetSinkVolumeChange(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSetSinkVolumeChangeAsync(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, AckSetSinkVolumeChangeAsyncCallback callback) = 0; ++ /** ++ * acknowledges a asyncsetSourceVolume ++ */ ++ virtual void ackSetSourceVolumeChange(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceVolumeChangeAsync(const am_Handle_s& handle, const am_volume_t& volume, const am_Error_e& error, AckSetSourceVolumeChangeAsyncCallback callback) = 0; ++ /** ++ * acknowlegde for asyncSetSourceState ++ */ ++ virtual void ackSetSourceState(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceStateAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceStateAsyncCallback callback) = 0; ++ /** ++ * acknowledges asyncSetSinkSoundProperties ++ */ ++ virtual void ackSetSinkSoundProperties(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSinkSoundPropertiesAsyncCallback callback) = 0; ++ /** ++ * acknowledges asyncSetSinkSoundProperty ++ */ ++ virtual void ackSetSinkSoundProperty(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSinkSoundPropertyAsyncCallback callback) = 0; ++ /** ++ * acknowledges asyncSetSourceSoundProperties ++ */ ++ virtual void ackSetSourceSoundProperties(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceSoundPropertiesAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceSoundPropertiesAsyncCallback callback) = 0; ++ /** ++ * acknowledges asyncSetSourceSoundProperty ++ */ ++ virtual void ackSetSourceSoundProperty(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSetSourceSoundPropertyAsync(const am_Handle_s& handle, const am_Error_e& error, AckSetSourceSoundPropertyAsyncCallback callback) = 0; ++ /** ++ * acknowledges asyncCrossFade ++ */ ++ virtual void ackCrossFading(const am_Handle_s& handle, const am_HotSink_e& hotSink, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackCrossFadingAsync(const am_Handle_s& handle, const am_HotSink_e& hotSink, const am_Error_e& error, AckCrossFadingAsyncCallback callback) = 0; ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ virtual void ackSourceVolumeTick(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSourceVolumeTickAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, AckSourceVolumeTickAsyncCallback callback) = 0; ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ virtual void ackSinkVolumeTick(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSinkVolumeTickAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, AckSinkVolumeTickAsyncCallback callback) = 0; ++ /** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ virtual void peekDomain(const std::string& name, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> peekDomainAsync(const std::string& name, PeekDomainAsyncCallback callback) = 0; ++ /** ++ * registers a domain ++ (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ virtual void registerDomain(const am_Domain_s& domainData, const std::string& returnBusname, const std::string& returnInterface, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> registerDomainAsync(const am_Domain_s& domainData, const std::string& returnBusname, const std::string& returnInterface, RegisterDomainAsyncCallback callback) = 0; ++ /** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ */ ++ virtual void deregisterDomain(const am_domainID_t& domainID, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> deregisterDomainAsync(const am_domainID_t& domainID, DeregisterDomainAsyncCallback callback) = 0; ++ /** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ virtual void registerGateway(const am_Gateway_s& gatewayData, CommonAPI::CallStatus& callStatus, am_gatewayID_t& gatewayID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> registerGatewayAsync(const am_Gateway_s& gatewayData, RegisterGatewayAsyncCallback callback) = 0; ++ /** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ virtual void registerConverter(const am_Converter_s& converterData, CommonAPI::CallStatus& callStatus, am_converterID_t& converterID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> registerConverterAsync(const am_Converter_s& converterData, RegisterConverterAsyncCallback callback) = 0; ++ /** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ virtual void deregisterGateway(const am_gatewayID_t& gatewayID, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> deregisterGatewayAsync(const am_gatewayID_t& gatewayID, DeregisterGatewayAsyncCallback callback) = 0; ++ /** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ */ ++ virtual void deregisterConverter(const am_converterID_t& converterID, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> deregisterConverterAsync(const am_converterID_t& converterID, DeregisterConverterAsyncCallback callback) = 0; ++ /** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ virtual void peekSink(const std::string& name, CommonAPI::CallStatus& callStatus, am_sinkID_t& sinkID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> peekSinkAsync(const std::string& name, PeekSinkAsyncCallback callback) = 0; ++ /** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ virtual void registerSink(const am_Sink_s& sinkData, CommonAPI::CallStatus& callStatus, am_sinkID_t& sinkID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> registerSinkAsync(const am_Sink_s& sinkData, RegisterSinkAsyncCallback callback) = 0; ++ /** ++ * deregisters a sink. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ virtual void deregisterSink(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> deregisterSinkAsync(const am_sinkID_t& sinkID, DeregisterSinkAsyncCallback callback) = 0; ++ /** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ virtual void peekSource(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> peekSourceAsync(const std::string& name, PeekSourceAsyncCallback callback) = 0; ++ /** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ */ ++ virtual void registerSource(const am_Source_s& sourceData, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> registerSourceAsync(const am_Source_s& sourceData, RegisterSourceAsyncCallback callback) = 0; ++ /** ++ * deregisters a source ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ virtual void deregisterSource(const am_sourceID_t& sourceID, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> deregisterSourceAsync(const am_sourceID_t& sourceID, DeregisterSourceAsyncCallback callback) = 0; ++ /** ++ * this function registers a crossfader. ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ virtual void registerCrossfader(const am_Crossfader_s& crossfaderData, CommonAPI::CallStatus& callStatus, am_crossfaderID_t& crossfaderID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> registerCrossfaderAsync(const am_Crossfader_s& crossfaderData, RegisterCrossfaderAsyncCallback callback) = 0; ++ /** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ virtual void deregisterCrossfader(const am_crossfaderID_t& crossfaderID, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> deregisterCrossfaderAsync(const am_crossfaderID_t& crossfaderID, DeregisterCrossfaderAsyncCallback callback) = 0; ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void peekSourceClassID(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceClass_t& sourceClassID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> peekSourceClassIDAsync(const std::string& name, PeekSourceClassIDAsyncCallback callback) = 0; ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void peekSinkClassID(const std::string& name, CommonAPI::CallStatus& callStatus, am_sinkClass_t& sinkClassID, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> peekSinkClassIDAsync(const std::string& name, PeekSinkClassIDAsyncCallback callback) = 0; ++ /** ++ * is called when a low level interrupt changes it status. ++ */ ++ virtual void hookInterruptStatusChange(const am_sourceID_t& sourceID, const am_InterruptState_e& interruptState, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> hookInterruptStatusChangeAsync(const am_sourceID_t& sourceID, const am_InterruptState_e& interruptState, HookInterruptStatusChangeAsyncCallback callback) = 0; ++ /** ++ * This hook is called when all elements from a domain are registered. ++ Is used by ++ * the Controller to know when all expected domains are finally registered ++ */ ++ virtual void hookDomainRegistrationComplete(const am_domainID_t& domainID, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> hookDomainRegistrationCompleteAsync(const am_domainID_t& domainID, HookDomainRegistrationCompleteAsyncCallback callback) = 0; ++ /** ++ * is called when a sink changes its availability ++ */ ++ virtual void hookSinkAvailablityStatusChange(const am_sinkID_t& sinkID, const am_Availability_s& availability, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> hookSinkAvailablityStatusChangeAsync(const am_sinkID_t& sinkID, const am_Availability_s& availability, HookSinkAvailablityStatusChangeAsyncCallback callback) = 0; ++ /** ++ * is called when a source changes its availability ++ */ ++ virtual void hookSourceAvailablityStatusChange(const am_sourceID_t& sourceID, const am_Availability_s& availability, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> hookSourceAvailablityStatusChangeAsync(const am_sourceID_t& sourceID, const am_Availability_s& availability, HookSourceAvailablityStatusChangeAsyncCallback callback) = 0; ++ /** ++ * is called when a domain changes its status. This used for early domains only ++ */ ++ virtual void hookDomainStateChange(const am_domainID_t& domainID, const am_DomainState_e& domainState, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> hookDomainStateChangeAsync(const am_domainID_t& domainID, const am_DomainState_e& domainState, HookDomainStateChangeAsyncCallback callback) = 0; ++ /** ++ * is called when the timinginformation (delay) changed for a connection. ++ */ ++ virtual void hookTimingInformationChanged(const am_connectionID_t& connectionID, const am_timeSync_t& delay, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> hookTimingInformationChangedAsync(const am_connectionID_t& connectionID, const am_timeSync_t& delay, HookTimingInformationChangedAsyncCallback callback) = 0; ++ /** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ virtual void sendChangedData(const am_EarlyData_L& earlyData, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> sendChangedDataAsync(const am_EarlyData_L& earlyData, SendChangedDataAsyncCallback callback) = 0; ++ /** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ */ ++ virtual void updateGateway(const am_gatewayID_t& gatewayID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> updateGatewayAsync(const am_gatewayID_t& gatewayID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, UpdateGatewayAsyncCallback callback) = 0; ++ /** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ */ ++ virtual void updateConverter(const am_converterID_t& converterID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> updateConverterAsync(const am_converterID_t& converterID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix, UpdateConverterAsyncCallback callback) = 0; ++ /** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ */ ++ virtual void updateSink(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> updateSinkAsync(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, UpdateSinkAsyncCallback callback) = 0; ++ /** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++ Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++ sourceClassID, ++ listSoundProperties, ++ listConnectionFormats, ++ * ++ listMainSoundProperties ++ */ ++ virtual void updateSource(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> updateSourceAsync(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, UpdateSourceAsyncCallback callback) = 0; ++ /** ++ * acknowledges a asyncSetSinkVolumes ++ */ ++ virtual void ackSetVolumes(const am_Handle_s& handle, const am_Volumes_L& listvolumes, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSetVolumesAsync(const am_Handle_s& handle, const am_Volumes_L& listvolumes, const am_Error_e& error, AckSetVolumesAsyncCallback callback) = 0; ++ /** ++ * The acknowledge of the SinkNotificationConfiguration ++ */ ++ virtual void ackSinkNotificationConfiguration(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSinkNotificationConfigurationAsync(const am_Handle_s& handle, const am_Error_e& error, AckSinkNotificationConfigurationAsyncCallback callback) = 0; ++ /** ++ * The acknowledge of the SourceNotificationConfiguration ++ */ ++ virtual void ackSourceNotificationConfiguration(const am_Handle_s& handle, const am_Error_e& error, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> ackSourceNotificationConfigurationAsync(const am_Handle_s& handle, const am_Error_e& error, AckSourceNotificationConfigurationAsyncCallback callback) = 0; ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ virtual void hookSinkNotificationDataChange(const am_sinkID_t& sinkID, const am_NotificationPayload_s& payload, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> hookSinkNotificationDataChangeAsync(const am_sinkID_t& sinkID, const am_NotificationPayload_s& payload, HookSinkNotificationDataChangeAsyncCallback callback) = 0; ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ virtual void hookSourceNotificationDataChange(const am_sourceID_t& sourceID, const am_NotificationPayload_s& payload, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> hookSourceNotificationDataChangeAsync(const am_sourceID_t& sourceID, const am_NotificationPayload_s& payload, HookSourceNotificationDataChangeAsyncCallback callback) = 0; ++ virtual void confirmRoutingRundown(const std::string& domainName, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> confirmRoutingRundownAsync(const std::string& domainName, ConfirmRoutingRundownAsyncCallback callback) = 0; ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Routing_Control_Observer_PROXY_BASE_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStub.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStub.h +new file mode 100644 +index 0000000..0f2f3ee +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStub.h +@@ -0,0 +1,407 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * Routing Receive sendInterface description. ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_Observer_STUB_H_ ++#define ORG_GENIVI_AM_Routing_Control_Observer_STUB_H_ ++ ++ ++ ++#include <org/genivi/am.h> ++ ++#include "RoutingControlObserver.h" ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/InputStream.h> ++#include <CommonAPI/OutputStream.h> ++#include <CommonAPI/SerializableStruct.h> ++#include <cstdint> ++#include <string> ++#include <vector> ++ ++#include <CommonAPI/Stub.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++/** ++ * Receives messages from remote and handles all dispatching of deserialized calls ++ * to a stub for the service RoutingControlObserver. Also provides means to send broadcasts ++ * and attribute-changed-notifications of observable attributes as defined by this service. ++ * An application developer should not need to bother with this class. ++ */ ++class RoutingControlObserverStubAdapter: virtual public CommonAPI::StubAdapter, public RoutingControlObserver { ++ public: ++ ///Notifies all remote listeners about a change of value of the attribute RoutingReady. ++ virtual void fireRoutingReadyAttributeChanged(const am_RoutingReady_e& RoutingReady) = 0; ++ ++ ++ ++ virtual void deactivateManagedInstances() = 0; ++protected: ++ /** ++ * Defines properties for storing the ClientIds of clients / proxies that have ++ * subscribed to the selective broadcasts ++ */ ++}; ++ ++ ++/** ++ * Defines the necessary callbacks to handle remote set events related to the attributes ++ * defined in the IDL description for RoutingControlObserver. ++ * For each attribute two callbacks are defined: ++ * - a verification callback that allows to verify the requested value and to prevent setting ++ * e.g. an invalid value ("onRemoteSet<AttributeName>"). ++ * - an action callback to do local work after the attribute value has been changed ++ * ("onRemote<AttributeName>Changed"). ++ * ++ * This class and the one below are the ones an application developer needs to have ++ * a look at if he wants to implement a service. ++ */ ++class RoutingControlObserverStubRemoteEvent { ++ public: ++ virtual ~RoutingControlObserverStubRemoteEvent() { } ++ ++ ++}; ++ ++ ++/** ++ * Defines the interface that must be implemented by any class that should provide ++ * the service RoutingControlObserver to remote clients. ++ * This class and the one above are the ones an application developer needs to have ++ * a look at if he wants to implement a service. ++ */ ++class RoutingControlObserverStub: public virtual CommonAPI::Stub<RoutingControlObserverStubAdapter, RoutingControlObserverStubRemoteEvent> { ++public: ++ virtual ~RoutingControlObserverStub() { } ++ virtual const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) = 0; ++ ++ /** ++ * This attribute signals to the clients the current routing state. ++ A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++ /// Provides getter access to the attribute RoutingReady ++ virtual const am_RoutingReady_e& getRoutingReadyAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId) = 0; ++ ++ /** ++ * acknowledges a asyncConnect ++ */ ++ /// This is the method that will be called on remote calls on the method ackConnect. ++ virtual void ackConnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error) = 0; ++ /** ++ * acknowledges a asyncDisconnect ++ */ ++ /// This is the method that will be called on remote calls on the method ackDisconnect. ++ virtual void ackDisconnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error) = 0; ++ /** ++ * acknowledges a asyncsetSinkVolume ++ */ ++ /// This is the method that will be called on remote calls on the method ackSetSinkVolumeChange. ++ virtual void ackSetSinkVolumeChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_volume_t volume, am_Error_e error) = 0; ++ /** ++ * acknowledges a asyncsetSourceVolume ++ */ ++ /// This is the method that will be called on remote calls on the method ackSetSourceVolumeChange. ++ virtual void ackSetSourceVolumeChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_volume_t volume, am_Error_e error) = 0; ++ /** ++ * acknowlegde for asyncSetSourceState ++ */ ++ /// This is the method that will be called on remote calls on the method ackSetSourceState. ++ virtual void ackSetSourceState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) = 0; ++ /** ++ * acknowledges asyncSetSinkSoundProperties ++ */ ++ /// This is the method that will be called on remote calls on the method ackSetSinkSoundProperties. ++ virtual void ackSetSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) = 0; ++ /** ++ * acknowledges asyncSetSinkSoundProperty ++ */ ++ /// This is the method that will be called on remote calls on the method ackSetSinkSoundProperty. ++ virtual void ackSetSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) = 0; ++ /** ++ * acknowledges asyncSetSourceSoundProperties ++ */ ++ /// This is the method that will be called on remote calls on the method ackSetSourceSoundProperties. ++ virtual void ackSetSourceSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) = 0; ++ /** ++ * acknowledges asyncSetSourceSoundProperty ++ */ ++ /// This is the method that will be called on remote calls on the method ackSetSourceSoundProperty. ++ virtual void ackSetSourceSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) = 0; ++ /** ++ * acknowledges asyncCrossFade ++ */ ++ /// This is the method that will be called on remote calls on the method ackCrossFading. ++ virtual void ackCrossFading(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_HotSink_e hotSink, am_Error_e error) = 0; ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ /// This is the method that will be called on remote calls on the method ackSourceVolumeTick. ++ virtual void ackSourceVolumeTick(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume) = 0; ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ /// This is the method that will be called on remote calls on the method ackSinkVolumeTick. ++ virtual void ackSinkVolumeTick(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume) = 0; ++ /** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method peekDomain. ++ virtual void peekDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_domainID_t& domainID, am_Error_e& error) = 0; ++ /** ++ * registers a domain ++ (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method registerDomain. ++ virtual void registerDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Domain_s domainData, std::string returnBusname, std::string returnInterface, am_domainID_t& domainID, am_Error_e& error) = 0; ++ /** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method deregisterDomain. ++ virtual void deregisterDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID, am_Error_e& error) = 0; ++ /** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method registerGateway. ++ virtual void registerGateway(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Gateway_s gatewayData, am_gatewayID_t& gatewayID, am_Error_e& error) = 0; ++ /** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method registerConverter. ++ virtual void registerConverter(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Converter_s converterData, am_converterID_t& converterID, am_Error_e& error) = 0; ++ /** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ /// This is the method that will be called on remote calls on the method deregisterGateway. ++ virtual void deregisterGateway(const std::shared_ptr<CommonAPI::ClientId> clientId, am_gatewayID_t gatewayID, am_Error_e& error) = 0; ++ /** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ */ ++ /// This is the method that will be called on remote calls on the method deregisterConverter. ++ virtual void deregisterConverter(const std::shared_ptr<CommonAPI::ClientId> clientId, am_converterID_t converterID, am_Error_e& error) = 0; ++ /** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method peekSink. ++ virtual void peekSink(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sinkID_t& sinkID, am_Error_e& error) = 0; ++ /** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method registerSink. ++ virtual void registerSink(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Sink_s sinkData, am_sinkID_t& sinkID, am_Error_e& error) = 0; ++ /** ++ * deregisters a sink. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method deregisterSink. ++ virtual void deregisterSink(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_Error_e& error) = 0; ++ /** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method peekSource. ++ virtual void peekSource(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sourceID_t& sourceID, am_Error_e& error) = 0; ++ /** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ */ ++ /// This is the method that will be called on remote calls on the method registerSource. ++ virtual void registerSource(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Source_s sourceData, am_sourceID_t& sourceID, am_Error_e& error) = 0; ++ /** ++ * deregisters a source ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method deregisterSource. ++ virtual void deregisterSource(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_Error_e& error) = 0; ++ /** ++ * this function registers a crossfader. ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method registerCrossfader. ++ virtual void registerCrossfader(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Crossfader_s crossfaderData, am_crossfaderID_t& crossfaderID, am_Error_e& error) = 0; ++ /** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ /// This is the method that will be called on remote calls on the method deregisterCrossfader. ++ virtual void deregisterCrossfader(const std::shared_ptr<CommonAPI::ClientId> clientId, am_crossfaderID_t crossfaderID, am_Error_e& error) = 0; ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ /// This is the method that will be called on remote calls on the method peekSourceClassID. ++ virtual void peekSourceClassID(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sourceClass_t& sourceClassID, am_Error_e& error) = 0; ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ /// This is the method that will be called on remote calls on the method peekSinkClassID. ++ virtual void peekSinkClassID(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sinkClass_t& sinkClassID, am_Error_e& error) = 0; ++ /** ++ * is called when a low level interrupt changes it status. ++ */ ++ /// This is the method that will be called on remote calls on the method hookInterruptStatusChange. ++ virtual void hookInterruptStatusChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_InterruptState_e interruptState) = 0; ++ /** ++ * This hook is called when all elements from a domain are registered. ++ Is used by ++ * the Controller to know when all expected domains are finally registered ++ */ ++ /// This is the method that will be called on remote calls on the method hookDomainRegistrationComplete. ++ virtual void hookDomainRegistrationComplete(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID) = 0; ++ /** ++ * is called when a sink changes its availability ++ */ ++ /// This is the method that will be called on remote calls on the method hookSinkAvailablityStatusChange. ++ virtual void hookSinkAvailablityStatusChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_Availability_s availability) = 0; ++ /** ++ * is called when a source changes its availability ++ */ ++ /// This is the method that will be called on remote calls on the method hookSourceAvailablityStatusChange. ++ virtual void hookSourceAvailablityStatusChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_Availability_s availability) = 0; ++ /** ++ * is called when a domain changes its status. This used for early domains only ++ */ ++ /// This is the method that will be called on remote calls on the method hookDomainStateChange. ++ virtual void hookDomainStateChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID, am_DomainState_e domainState) = 0; ++ /** ++ * is called when the timinginformation (delay) changed for a connection. ++ */ ++ /// This is the method that will be called on remote calls on the method hookTimingInformationChanged. ++ virtual void hookTimingInformationChanged(const std::shared_ptr<CommonAPI::ClientId> clientId, am_connectionID_t connectionID, am_timeSync_t delay) = 0; ++ /** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method sendChangedData. ++ virtual void sendChangedData(const std::shared_ptr<CommonAPI::ClientId> clientId, am_EarlyData_L earlyData) = 0; ++ /** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ */ ++ /// This is the method that will be called on remote calls on the method updateGateway. ++ virtual void updateGateway(const std::shared_ptr<CommonAPI::ClientId> clientId, am_gatewayID_t gatewayID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error) = 0; ++ /** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ */ ++ /// This is the method that will be called on remote calls on the method updateConverter. ++ virtual void updateConverter(const std::shared_ptr<CommonAPI::ClientId> clientId, am_converterID_t converterID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error) = 0; ++ /** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ */ ++ /// This is the method that will be called on remote calls on the method updateSink. ++ virtual void updateSink(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_sinkClass_t sinkClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error) = 0; ++ /** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++ Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++ sourceClassID, ++ listSoundProperties, ++ listConnectionFormats, ++ * ++ listMainSoundProperties ++ */ ++ /// This is the method that will be called on remote calls on the method updateSource. ++ virtual void updateSource(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_sourceClass_t sourceClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error) = 0; ++ /** ++ * acknowledges a asyncSetSinkVolumes ++ */ ++ /// This is the method that will be called on remote calls on the method ackSetVolumes. ++ virtual void ackSetVolumes(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Volumes_L listvolumes, am_Error_e error) = 0; ++ /** ++ * The acknowledge of the SinkNotificationConfiguration ++ */ ++ /// This is the method that will be called on remote calls on the method ackSinkNotificationConfiguration. ++ virtual void ackSinkNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) = 0; ++ /** ++ * The acknowledge of the SourceNotificationConfiguration ++ */ ++ /// This is the method that will be called on remote calls on the method ackSourceNotificationConfiguration. ++ virtual void ackSourceNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) = 0; ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ /// This is the method that will be called on remote calls on the method hookSinkNotificationDataChange. ++ virtual void hookSinkNotificationDataChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_NotificationPayload_s payload) = 0; ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ /// This is the method that will be called on remote calls on the method hookSourceNotificationDataChange. ++ virtual void hookSourceNotificationDataChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_NotificationPayload_s payload) = 0; ++ /// This is the method that will be called on remote calls on the method confirmRoutingRundown. ++ virtual void confirmRoutingRundown(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string domainName) = 0; ++ ++ using CommonAPI::Stub<RoutingControlObserverStubAdapter, RoutingControlObserverStubRemoteEvent>::initStubAdapter; ++ typedef CommonAPI::Stub<RoutingControlObserverStubAdapter, RoutingControlObserverStubRemoteEvent>::StubAdapterType StubAdapterType; ++ typedef CommonAPI::Stub<RoutingControlObserverStubAdapter, RoutingControlObserverStubRemoteEvent>::RemoteEventHandlerType RemoteEventHandlerType; ++ typedef RoutingControlObserverStubRemoteEvent RemoteEventType; ++ typedef RoutingControlObserver StubInterface; ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Routing_Control_Observer_STUB_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.cpp +new file mode 100644 +index 0000000..250809f +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.cpp +@@ -0,0 +1,636 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++#include <org/genivi/am/RoutingControlObserverStubDefault.h> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++RoutingControlObserverStubDefault::RoutingControlObserverStubDefault(): ++ remoteEventHandler_(this), ++ interfaceVersion_(RoutingControlObserver::getInterfaceVersion()) { ++} ++ ++const CommonAPI::Version& RoutingControlObserverStubDefault::getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) { ++ return interfaceVersion_; ++} ++ ++RoutingControlObserverStubRemoteEvent* RoutingControlObserverStubDefault::initStubAdapter(const std::shared_ptr<RoutingControlObserverStubAdapter>& stubAdapter) { ++ CommonAPI::Stub<RoutingControlObserverStubAdapter, RoutingControlObserverStubRemoteEvent>::stubAdapter_ = stubAdapter; ++ return &remoteEventHandler_; ++} ++ ++const am_RoutingReady_e& RoutingControlObserverStubDefault::getRoutingReadyAttribute() { ++ return routingReadyAttributeValue_; ++} ++ ++const am_RoutingReady_e& RoutingControlObserverStubDefault::getRoutingReadyAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId) { ++ return getRoutingReadyAttribute(); ++} ++ ++void RoutingControlObserverStubDefault::setRoutingReadyAttribute(am_RoutingReady_e value) { ++ const bool valueChanged = trySetRoutingReadyAttribute(std::move(value)); ++ if (valueChanged && stubAdapter_ != NULL) { ++ stubAdapter_->fireRoutingReadyAttributeChanged(routingReadyAttributeValue_); ++ } ++} ++ ++bool RoutingControlObserverStubDefault::trySetRoutingReadyAttribute(am_RoutingReady_e value) { ++ if (!validateRoutingReadyAttributeRequestedValue(value)) ++ return false; ++ ++ const bool valueChanged = (routingReadyAttributeValue_ != value); ++ routingReadyAttributeValue_ = std::move(value); ++ return valueChanged; ++} ++ ++bool RoutingControlObserverStubDefault::validateRoutingReadyAttributeRequestedValue(const am_RoutingReady_e& value) { ++ return true; ++} ++ ++ ++ ++/** ++ * acknowledges a asyncConnect ++ */ ++void RoutingControlObserverStubDefault::ackConnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error) { ++ // Call old style methods in default ++ ackConnect(handle, connectionID, error); ++} ++void RoutingControlObserverStubDefault::ackConnect(am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * acknowledges a asyncDisconnect ++ */ ++void RoutingControlObserverStubDefault::ackDisconnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error) { ++ // Call old style methods in default ++ ackDisconnect(handle, connectionID, error); ++} ++void RoutingControlObserverStubDefault::ackDisconnect(am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * acknowledges a asyncsetSinkVolume ++ */ ++void RoutingControlObserverStubDefault::ackSetSinkVolumeChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_volume_t volume, am_Error_e error) { ++ // Call old style methods in default ++ ackSetSinkVolumeChange(handle, volume, error); ++} ++void RoutingControlObserverStubDefault::ackSetSinkVolumeChange(am_Handle_s handle, am_volume_t volume, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * acknowledges a asyncsetSourceVolume ++ */ ++void RoutingControlObserverStubDefault::ackSetSourceVolumeChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_volume_t volume, am_Error_e error) { ++ // Call old style methods in default ++ ackSetSourceVolumeChange(handle, volume, error); ++} ++void RoutingControlObserverStubDefault::ackSetSourceVolumeChange(am_Handle_s handle, am_volume_t volume, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * acknowlegde for asyncSetSourceState ++ */ ++void RoutingControlObserverStubDefault::ackSetSourceState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) { ++ // Call old style methods in default ++ ackSetSourceState(handle, error); ++} ++void RoutingControlObserverStubDefault::ackSetSourceState(am_Handle_s handle, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * acknowledges asyncSetSinkSoundProperties ++ */ ++void RoutingControlObserverStubDefault::ackSetSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) { ++ // Call old style methods in default ++ ackSetSinkSoundProperties(handle, error); ++} ++void RoutingControlObserverStubDefault::ackSetSinkSoundProperties(am_Handle_s handle, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * acknowledges asyncSetSinkSoundProperty ++ */ ++void RoutingControlObserverStubDefault::ackSetSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) { ++ // Call old style methods in default ++ ackSetSinkSoundProperty(handle, error); ++} ++void RoutingControlObserverStubDefault::ackSetSinkSoundProperty(am_Handle_s handle, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * acknowledges asyncSetSourceSoundProperties ++ */ ++void RoutingControlObserverStubDefault::ackSetSourceSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) { ++ // Call old style methods in default ++ ackSetSourceSoundProperties(handle, error); ++} ++void RoutingControlObserverStubDefault::ackSetSourceSoundProperties(am_Handle_s handle, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * acknowledges asyncSetSourceSoundProperty ++ */ ++void RoutingControlObserverStubDefault::ackSetSourceSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) { ++ // Call old style methods in default ++ ackSetSourceSoundProperty(handle, error); ++} ++void RoutingControlObserverStubDefault::ackSetSourceSoundProperty(am_Handle_s handle, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * acknowledges asyncCrossFade ++ */ ++void RoutingControlObserverStubDefault::ackCrossFading(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_HotSink_e hotSink, am_Error_e error) { ++ // Call old style methods in default ++ ackCrossFading(handle, hotSink, error); ++} ++void RoutingControlObserverStubDefault::ackCrossFading(am_Handle_s handle, am_HotSink_e hotSink, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++void RoutingControlObserverStubDefault::ackSourceVolumeTick(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume) { ++ // Call old style methods in default ++ ackSourceVolumeTick(handle, sourceID, volume); ++} ++void RoutingControlObserverStubDefault::ackSourceVolumeTick(am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume) { ++ // No operation in default ++} ++ ++/** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++void RoutingControlObserverStubDefault::ackSinkVolumeTick(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume) { ++ // Call old style methods in default ++ ackSinkVolumeTick(handle, sinkID, volume); ++} ++void RoutingControlObserverStubDefault::ackSinkVolumeTick(am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume) { ++ // No operation in default ++} ++ ++/** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++void RoutingControlObserverStubDefault::peekDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_domainID_t& domainID, am_Error_e& error) { ++ // Call old style methods in default ++ peekDomain(name, domainID, error); ++} ++void RoutingControlObserverStubDefault::peekDomain(std::string name, am_domainID_t& domainID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * registers a domain ++(at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++void RoutingControlObserverStubDefault::registerDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Domain_s domainData, std::string returnBusname, std::string returnInterface, am_domainID_t& domainID, am_Error_e& error) { ++ // Call old style methods in default ++ registerDomain(domainData, returnBusname, returnInterface, domainID, error); ++} ++void RoutingControlObserverStubDefault::registerDomain(am_Domain_s domainData, std::string returnBusname, std::string returnInterface, am_domainID_t& domainID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++(at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ */ ++void RoutingControlObserverStubDefault::deregisterDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID, am_Error_e& error) { ++ // Call old style methods in default ++ deregisterDomain(domainID, error); ++} ++void RoutingControlObserverStubDefault::deregisterDomain(am_domainID_t domainID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++void RoutingControlObserverStubDefault::registerGateway(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Gateway_s gatewayData, am_gatewayID_t& gatewayID, am_Error_e& error) { ++ // Call old style methods in default ++ registerGateway(gatewayData, gatewayID, error); ++} ++void RoutingControlObserverStubDefault::registerGateway(am_Gateway_s gatewayData, am_gatewayID_t& gatewayID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++void RoutingControlObserverStubDefault::registerConverter(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Converter_s converterData, am_converterID_t& converterID, am_Error_e& error) { ++ // Call old style methods in default ++ registerConverter(converterData, converterID, error); ++} ++void RoutingControlObserverStubDefault::registerConverter(am_Converter_s converterData, am_converterID_t& converterID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++void RoutingControlObserverStubDefault::deregisterGateway(const std::shared_ptr<CommonAPI::ClientId> clientId, am_gatewayID_t gatewayID, am_Error_e& error) { ++ // Call old style methods in default ++ deregisterGateway(gatewayID, error); ++} ++void RoutingControlObserverStubDefault::deregisterGateway(am_gatewayID_t gatewayID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ */ ++void RoutingControlObserverStubDefault::deregisterConverter(const std::shared_ptr<CommonAPI::ClientId> clientId, am_converterID_t converterID, am_Error_e& error) { ++ // Call old style methods in default ++ deregisterConverter(converterID, error); ++} ++void RoutingControlObserverStubDefault::deregisterConverter(am_converterID_t converterID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++void RoutingControlObserverStubDefault::peekSink(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sinkID_t& sinkID, am_Error_e& error) { ++ // Call old style methods in default ++ peekSink(name, sinkID, error); ++} ++void RoutingControlObserverStubDefault::peekSink(std::string name, am_sinkID_t& sinkID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++(at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++void RoutingControlObserverStubDefault::registerSink(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Sink_s sinkData, am_sinkID_t& sinkID, am_Error_e& error) { ++ // Call old style methods in default ++ registerSink(sinkData, sinkID, error); ++} ++void RoutingControlObserverStubDefault::registerSink(am_Sink_s sinkData, am_sinkID_t& sinkID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * deregisters a sink. ++(at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++void RoutingControlObserverStubDefault::deregisterSink(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_Error_e& error) { ++ // Call old style methods in default ++ deregisterSink(sinkID, error); ++} ++void RoutingControlObserverStubDefault::deregisterSink(am_sinkID_t sinkID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++(at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++void RoutingControlObserverStubDefault::peekSource(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sourceID_t& sourceID, am_Error_e& error) { ++ // Call old style methods in default ++ peekSource(name, sourceID, error); ++} ++void RoutingControlObserverStubDefault::peekSource(std::string name, am_sourceID_t& sourceID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++(at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ */ ++void RoutingControlObserverStubDefault::registerSource(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Source_s sourceData, am_sourceID_t& sourceID, am_Error_e& error) { ++ // Call old style methods in default ++ registerSource(sourceData, sourceID, error); ++} ++void RoutingControlObserverStubDefault::registerSource(am_Source_s sourceData, am_sourceID_t& sourceID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * deregisters a source ++(at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++void RoutingControlObserverStubDefault::deregisterSource(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_Error_e& error) { ++ // Call old style methods in default ++ deregisterSource(sourceID, error); ++} ++void RoutingControlObserverStubDefault::deregisterSource(am_sourceID_t sourceID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * this function registers a crossfader. ++(at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++void RoutingControlObserverStubDefault::registerCrossfader(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Crossfader_s crossfaderData, am_crossfaderID_t& crossfaderID, am_Error_e& error) { ++ // Call old style methods in default ++ registerCrossfader(crossfaderData, crossfaderID, error); ++} ++void RoutingControlObserverStubDefault::registerCrossfader(am_Crossfader_s crossfaderData, am_crossfaderID_t& crossfaderID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++void RoutingControlObserverStubDefault::deregisterCrossfader(const std::shared_ptr<CommonAPI::ClientId> clientId, am_crossfaderID_t crossfaderID, am_Error_e& error) { ++ // Call old style methods in default ++ deregisterCrossfader(crossfaderID, error); ++} ++void RoutingControlObserverStubDefault::deregisterCrossfader(am_crossfaderID_t crossfaderID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++(at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++void RoutingControlObserverStubDefault::peekSourceClassID(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sourceClass_t& sourceClassID, am_Error_e& error) { ++ // Call old style methods in default ++ peekSourceClassID(name, sourceClassID, error); ++} ++void RoutingControlObserverStubDefault::peekSourceClassID(std::string name, am_sourceClass_t& sourceClassID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++(at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++void RoutingControlObserverStubDefault::peekSinkClassID(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sinkClass_t& sinkClassID, am_Error_e& error) { ++ // Call old style methods in default ++ peekSinkClassID(name, sinkClassID, error); ++} ++void RoutingControlObserverStubDefault::peekSinkClassID(std::string name, am_sinkClass_t& sinkClassID, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * is called when a low level interrupt changes it status. ++ */ ++void RoutingControlObserverStubDefault::hookInterruptStatusChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_InterruptState_e interruptState) { ++ // Call old style methods in default ++ hookInterruptStatusChange(sourceID, interruptState); ++} ++void RoutingControlObserverStubDefault::hookInterruptStatusChange(am_sourceID_t sourceID, am_InterruptState_e interruptState) { ++ // No operation in default ++} ++ ++/** ++ * This hook is called when all elements from a domain are registered. ++Is used by ++ * the Controller to know when all expected domains are finally registered ++ */ ++void RoutingControlObserverStubDefault::hookDomainRegistrationComplete(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID) { ++ // Call old style methods in default ++ hookDomainRegistrationComplete(domainID); ++} ++void RoutingControlObserverStubDefault::hookDomainRegistrationComplete(am_domainID_t domainID) { ++ // No operation in default ++} ++ ++/** ++ * is called when a sink changes its availability ++ */ ++void RoutingControlObserverStubDefault::hookSinkAvailablityStatusChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_Availability_s availability) { ++ // Call old style methods in default ++ hookSinkAvailablityStatusChange(sinkID, availability); ++} ++void RoutingControlObserverStubDefault::hookSinkAvailablityStatusChange(am_sinkID_t sinkID, am_Availability_s availability) { ++ // No operation in default ++} ++ ++/** ++ * is called when a source changes its availability ++ */ ++void RoutingControlObserverStubDefault::hookSourceAvailablityStatusChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_Availability_s availability) { ++ // Call old style methods in default ++ hookSourceAvailablityStatusChange(sourceID, availability); ++} ++void RoutingControlObserverStubDefault::hookSourceAvailablityStatusChange(am_sourceID_t sourceID, am_Availability_s availability) { ++ // No operation in default ++} ++ ++/** ++ * is called when a domain changes its status. This used for early domains only ++ */ ++void RoutingControlObserverStubDefault::hookDomainStateChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID, am_DomainState_e domainState) { ++ // Call old style methods in default ++ hookDomainStateChange(domainID, domainState); ++} ++void RoutingControlObserverStubDefault::hookDomainStateChange(am_domainID_t domainID, am_DomainState_e domainState) { ++ // No operation in default ++} ++ ++/** ++ * is called when the timinginformation (delay) changed for a connection. ++ */ ++void RoutingControlObserverStubDefault::hookTimingInformationChanged(const std::shared_ptr<CommonAPI::ClientId> clientId, am_connectionID_t connectionID, am_timeSync_t delay) { ++ // Call old style methods in default ++ hookTimingInformationChanged(connectionID, delay); ++} ++void RoutingControlObserverStubDefault::hookTimingInformationChanged(am_connectionID_t connectionID, am_timeSync_t delay) { ++ // No operation in default ++} ++ ++/** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++void RoutingControlObserverStubDefault::sendChangedData(const std::shared_ptr<CommonAPI::ClientId> clientId, am_EarlyData_L earlyData) { ++ // Call old style methods in default ++ sendChangedData(earlyData); ++} ++void RoutingControlObserverStubDefault::sendChangedData(am_EarlyData_L earlyData) { ++ // No operation in default ++} ++ ++/** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ */ ++void RoutingControlObserverStubDefault::updateGateway(const std::shared_ptr<CommonAPI::ClientId> clientId, am_gatewayID_t gatewayID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error) { ++ // Call old style methods in default ++ updateGateway(gatewayID, listSourceFormats, listSinkFormats, convertionMatrix, error); ++} ++void RoutingControlObserverStubDefault::updateGateway(am_gatewayID_t gatewayID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ */ ++void RoutingControlObserverStubDefault::updateConverter(const std::shared_ptr<CommonAPI::ClientId> clientId, am_converterID_t converterID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error) { ++ // Call old style methods in default ++ updateConverter(converterID, listSourceFormats, listSinkFormats, convertionMatrix, error); ++} ++void RoutingControlObserverStubDefault::updateConverter(am_converterID_t converterID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ */ ++void RoutingControlObserverStubDefault::updateSink(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_sinkClass_t sinkClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error) { ++ // Call old style methods in default ++ updateSink(sinkID, sinkClassID, listSoundProperties, listConnectionFormats, listMainSoundProperties, error); ++} ++void RoutingControlObserverStubDefault::updateSink(am_sinkID_t sinkID, am_sinkClass_t sinkClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++sourceClassID, ++listSoundProperties, ++listConnectionFormats, ++ * ++listMainSoundProperties ++ */ ++void RoutingControlObserverStubDefault::updateSource(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_sourceClass_t sourceClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error) { ++ // Call old style methods in default ++ updateSource(sourceID, sourceClassID, listSoundProperties, listConnectionFormats, listMainSoundProperties, error); ++} ++void RoutingControlObserverStubDefault::updateSource(am_sourceID_t sourceID, am_sourceClass_t sourceClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error) { ++ // No operation in default ++} ++ ++/** ++ * acknowledges a asyncSetSinkVolumes ++ */ ++void RoutingControlObserverStubDefault::ackSetVolumes(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Volumes_L listvolumes, am_Error_e error) { ++ // Call old style methods in default ++ ackSetVolumes(handle, listvolumes, error); ++} ++void RoutingControlObserverStubDefault::ackSetVolumes(am_Handle_s handle, am_Volumes_L listvolumes, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * The acknowledge of the SinkNotificationConfiguration ++ */ ++void RoutingControlObserverStubDefault::ackSinkNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) { ++ // Call old style methods in default ++ ackSinkNotificationConfiguration(handle, error); ++} ++void RoutingControlObserverStubDefault::ackSinkNotificationConfiguration(am_Handle_s handle, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * The acknowledge of the SourceNotificationConfiguration ++ */ ++void RoutingControlObserverStubDefault::ackSourceNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error) { ++ // Call old style methods in default ++ ackSourceNotificationConfiguration(handle, error); ++} ++void RoutingControlObserverStubDefault::ackSourceNotificationConfiguration(am_Handle_s handle, am_Error_e error) { ++ // No operation in default ++} ++ ++/** ++ * is called whenever a notified value needs to be send ++ */ ++void RoutingControlObserverStubDefault::hookSinkNotificationDataChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_NotificationPayload_s payload) { ++ // Call old style methods in default ++ hookSinkNotificationDataChange(sinkID, payload); ++} ++void RoutingControlObserverStubDefault::hookSinkNotificationDataChange(am_sinkID_t sinkID, am_NotificationPayload_s payload) { ++ // No operation in default ++} ++ ++/** ++ * is called whenever a notified value needs to be send ++ */ ++void RoutingControlObserverStubDefault::hookSourceNotificationDataChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_NotificationPayload_s payload) { ++ // Call old style methods in default ++ hookSourceNotificationDataChange(sourceID, payload); ++} ++void RoutingControlObserverStubDefault::hookSourceNotificationDataChange(am_sourceID_t sourceID, am_NotificationPayload_s payload) { ++ // No operation in default ++} ++ ++void RoutingControlObserverStubDefault::confirmRoutingRundown(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string domainName) { ++ // Call old style methods in default ++ confirmRoutingRundown(domainName); ++} ++void RoutingControlObserverStubDefault::confirmRoutingRundown(std::string domainName) { ++ // No operation in default ++} ++ ++ ++ ++ ++RoutingControlObserverStubDefault::RemoteEventHandler::RemoteEventHandler(RoutingControlObserverStubDefault* defaultStub): ++ defaultStub_(defaultStub) { ++} ++ ++} // namespace am ++} // namespace genivi ++} // namespace org +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.h +new file mode 100644 +index 0000000..df6f15b +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.h +@@ -0,0 +1,429 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * Routing Receive sendInterface description. ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_Observer_STUB_DEFAULT_H_ ++#define ORG_GENIVI_AM_Routing_Control_Observer_STUB_DEFAULT_H_ ++ ++ ++#include <org/genivi/am/RoutingControlObserverStub.h> ++#include <sstream> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++/** ++ * Provides a default implementation for RoutingControlObserverStubRemoteEvent and ++ * RoutingControlObserverStub. Method callbacks have an empty implementation, ++ * remote set calls on attributes will always change the value of the attribute ++ * to the one received. ++ * ++ * Override this stub if you only want to provide a subset of the functionality ++ * that would be defined for this service, and/or if you do not need any non-default ++ * behaviour. ++ */ ++class RoutingControlObserverStubDefault : public virtual RoutingControlObserverStub { ++public: ++ RoutingControlObserverStubDefault(); ++ ++ RoutingControlObserverStubRemoteEvent* initStubAdapter(const std::shared_ptr<RoutingControlObserverStubAdapter>& stubAdapter); ++ ++ const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId); ++ ++ virtual const am_RoutingReady_e& getRoutingReadyAttribute(); ++ virtual const am_RoutingReady_e& getRoutingReadyAttribute(const std::shared_ptr<CommonAPI::ClientId> clientId); ++ virtual void setRoutingReadyAttribute(am_RoutingReady_e value); ++ ++ /** ++ * acknowledges a asyncConnect ++ */ ++ virtual void ackConnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error); ++ virtual void ackConnect(am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error); ++ ++ /** ++ * acknowledges a asyncDisconnect ++ */ ++ virtual void ackDisconnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error); ++ virtual void ackDisconnect(am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error); ++ ++ /** ++ * acknowledges a asyncsetSinkVolume ++ */ ++ virtual void ackSetSinkVolumeChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_volume_t volume, am_Error_e error); ++ virtual void ackSetSinkVolumeChange(am_Handle_s handle, am_volume_t volume, am_Error_e error); ++ ++ /** ++ * acknowledges a asyncsetSourceVolume ++ */ ++ virtual void ackSetSourceVolumeChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_volume_t volume, am_Error_e error); ++ virtual void ackSetSourceVolumeChange(am_Handle_s handle, am_volume_t volume, am_Error_e error); ++ ++ /** ++ * acknowlegde for asyncSetSourceState ++ */ ++ virtual void ackSetSourceState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error); ++ virtual void ackSetSourceState(am_Handle_s handle, am_Error_e error); ++ ++ /** ++ * acknowledges asyncSetSinkSoundProperties ++ */ ++ virtual void ackSetSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error); ++ virtual void ackSetSinkSoundProperties(am_Handle_s handle, am_Error_e error); ++ ++ /** ++ * acknowledges asyncSetSinkSoundProperty ++ */ ++ virtual void ackSetSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error); ++ virtual void ackSetSinkSoundProperty(am_Handle_s handle, am_Error_e error); ++ ++ /** ++ * acknowledges asyncSetSourceSoundProperties ++ */ ++ virtual void ackSetSourceSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error); ++ virtual void ackSetSourceSoundProperties(am_Handle_s handle, am_Error_e error); ++ ++ /** ++ * acknowledges asyncSetSourceSoundProperty ++ */ ++ virtual void ackSetSourceSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error); ++ virtual void ackSetSourceSoundProperty(am_Handle_s handle, am_Error_e error); ++ ++ /** ++ * acknowledges asyncCrossFade ++ */ ++ virtual void ackCrossFading(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_HotSink_e hotSink, am_Error_e error); ++ virtual void ackCrossFading(am_Handle_s handle, am_HotSink_e hotSink, am_Error_e error); ++ ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ virtual void ackSourceVolumeTick(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume); ++ virtual void ackSourceVolumeTick(am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume); ++ ++ /** ++ * acknowledges a volume tick. This can be used to display volumechanges during ++ * ramps ++ */ ++ virtual void ackSinkVolumeTick(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume); ++ virtual void ackSinkVolumeTick(am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume); ++ ++ /** ++ * This function returns the ID to the given domainName. If already a domain is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the domain. The other parameters of the domain ++ * will be overwritten when the domain is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ virtual void peekDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_domainID_t& domainID, am_Error_e& error); ++ virtual void peekDomain(std::string name, am_domainID_t& domainID, am_Error_e& error); ++ ++ /** ++ * registers a domain ++ (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ virtual void registerDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Domain_s domainData, std::string returnBusname, std::string returnInterface, am_domainID_t& domainID, am_Error_e& error); ++ virtual void registerDomain(am_Domain_s domainData, std::string returnBusname, std::string returnInterface, am_domainID_t& domainID, am_Error_e& error); ++ ++ /** ++ * deregisters a domain. All sources, sinks, gateways and crossfaders from that ++ * domain will be removed as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if ++ * not found E_UNKOWN on error ++ */ ++ virtual void deregisterDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID, am_Error_e& error); ++ virtual void deregisterDomain(am_domainID_t domainID, am_Error_e& error); ++ ++ /** ++ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ virtual void registerGateway(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Gateway_s gatewayData, am_gatewayID_t& gatewayID, am_Error_e& error); ++ virtual void registerGateway(am_Gateway_s gatewayData, am_gatewayID_t& gatewayID, am_Error_e& error); ++ ++ /** ++ * registers a converter. (at)return E_OK on succes, E_ALREADY_EXISTENT if already ++ * registered E_UNKOWN on error ++ */ ++ virtual void registerConverter(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Converter_s converterData, am_converterID_t& converterID, am_Error_e& error); ++ virtual void registerConverter(am_Converter_s converterData, am_converterID_t& converterID, am_Error_e& error); ++ ++ /** ++ * deregisters a gateway. Also removes all sinks and sources of the controlling ++ * domain. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ virtual void deregisterGateway(const std::shared_ptr<CommonAPI::ClientId> clientId, am_gatewayID_t gatewayID, am_Error_e& error); ++ virtual void deregisterGateway(am_gatewayID_t gatewayID, am_Error_e& error); ++ ++ /** ++ * deregisters a converter. Also removes all sinks and sources of the controlling ++ * domain. ++ */ ++ virtual void deregisterConverter(const std::shared_ptr<CommonAPI::ClientId> clientId, am_converterID_t converterID, am_Error_e& error); ++ virtual void deregisterConverter(am_converterID_t converterID, am_Error_e& error); ++ ++ /** ++ * This function returns the ID to the given sinkName. If already a sink is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the sink. The other parameters of the sink will ++ * be overwritten when the sink is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ virtual void peekSink(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sinkID_t& sinkID, am_Error_e& error); ++ virtual void peekSink(std::string name, am_sinkID_t& sinkID, am_Error_e& error); ++ ++ /** ++ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats ++ * is copied to the gatewayInformation ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ virtual void registerSink(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Sink_s sinkData, am_sinkID_t& sinkID, am_Error_e& error); ++ virtual void registerSink(am_Sink_s sinkData, am_sinkID_t& sinkID, am_Error_e& error); ++ ++ /** ++ * deregisters a sink. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ virtual void deregisterSink(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_Error_e& error); ++ virtual void deregisterSink(am_sinkID_t sinkID, am_Error_e& error); ++ ++ /** ++ * This function returns the ID to the given sourceName. If already a source is ++ * registered with this name, it will return the corresponding ID, if not it will ++ * reserve an ID but not register the source. The other parameters of the source ++ * will be overwritten when the source is registered. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error ++ */ ++ virtual void peekSource(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sourceID_t& sourceID, am_Error_e& error); ++ virtual void peekSource(std::string name, am_sourceID_t& sourceID, am_Error_e& error); ++ ++ /** ++ * registers a source. If the source is part of a gateway, the ++ * listconnectionFormats is copied to the gatewayInformation ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID ++ * already exists ++ */ ++ virtual void registerSource(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Source_s sourceData, am_sourceID_t& sourceID, am_Error_e& error); ++ virtual void registerSource(am_Source_s sourceData, am_sourceID_t& sourceID, am_Error_e& error); ++ ++ /** ++ * deregisters a source ++ (at)return E_OK on succes, E_NON_EXISTENT if not found ++ * E_UNKOWN on error ++ */ ++ virtual void deregisterSource(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_Error_e& error); ++ virtual void deregisterSource(am_sourceID_t sourceID, am_Error_e& error); ++ ++ /** ++ * this function registers a crossfader. ++ (at)return E_OK on succes, ++ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error ++ */ ++ virtual void registerCrossfader(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Crossfader_s crossfaderData, am_crossfaderID_t& crossfaderID, am_Error_e& error); ++ virtual void registerCrossfader(am_Crossfader_s crossfaderData, am_crossfaderID_t& crossfaderID, am_Error_e& error); ++ ++ /** ++ * this function deregisters a crossfader. removes all sources and sinks assiated ++ * as well. ++ (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on ++ * error ++ */ ++ virtual void deregisterCrossfader(const std::shared_ptr<CommonAPI::ClientId> clientId, am_crossfaderID_t crossfaderID, am_Error_e& error); ++ virtual void deregisterCrossfader(am_crossfaderID_t crossfaderID, am_Error_e& error); ++ ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void peekSourceClassID(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sourceClass_t& sourceClassID, am_Error_e& error); ++ virtual void peekSourceClassID(std::string name, am_sourceClass_t& sourceClassID, am_Error_e& error); ++ ++ /** ++ * this function peeks a sourceclassID. It is used by the RoutingPlugins to ++ * determine the SinkClassIDs of a sinkClass. ++ (at)return E_OK on succes, ++ * E_DATABASE_ERROR on error ++ */ ++ virtual void peekSinkClassID(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sinkClass_t& sinkClassID, am_Error_e& error); ++ virtual void peekSinkClassID(std::string name, am_sinkClass_t& sinkClassID, am_Error_e& error); ++ ++ /** ++ * is called when a low level interrupt changes it status. ++ */ ++ virtual void hookInterruptStatusChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_InterruptState_e interruptState); ++ virtual void hookInterruptStatusChange(am_sourceID_t sourceID, am_InterruptState_e interruptState); ++ ++ /** ++ * This hook is called when all elements from a domain are registered. ++ Is used by ++ * the Controller to know when all expected domains are finally registered ++ */ ++ virtual void hookDomainRegistrationComplete(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID); ++ virtual void hookDomainRegistrationComplete(am_domainID_t domainID); ++ ++ /** ++ * is called when a sink changes its availability ++ */ ++ virtual void hookSinkAvailablityStatusChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_Availability_s availability); ++ virtual void hookSinkAvailablityStatusChange(am_sinkID_t sinkID, am_Availability_s availability); ++ ++ /** ++ * is called when a source changes its availability ++ */ ++ virtual void hookSourceAvailablityStatusChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_Availability_s availability); ++ virtual void hookSourceAvailablityStatusChange(am_sourceID_t sourceID, am_Availability_s availability); ++ ++ /** ++ * is called when a domain changes its status. This used for early domains only ++ */ ++ virtual void hookDomainStateChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID, am_DomainState_e domainState); ++ virtual void hookDomainStateChange(am_domainID_t domainID, am_DomainState_e domainState); ++ ++ /** ++ * is called when the timinginformation (delay) changed for a connection. ++ */ ++ virtual void hookTimingInformationChanged(const std::shared_ptr<CommonAPI::ClientId> clientId, am_connectionID_t connectionID, am_timeSync_t delay); ++ virtual void hookTimingInformationChanged(am_connectionID_t connectionID, am_timeSync_t delay); ++ ++ /** ++ * this function is used to send out all data that has been changed in an early ++ * state. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ virtual void sendChangedData(const std::shared_ptr<CommonAPI::ClientId> clientId, am_EarlyData_L earlyData); ++ virtual void sendChangedData(am_EarlyData_L earlyData); ++ ++ /** ++ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the ++ * gatewayID is not valid. ++ */ ++ virtual void updateGateway(const std::shared_ptr<CommonAPI::ClientId> clientId, am_gatewayID_t gatewayID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error); ++ virtual void updateGateway(am_gatewayID_t gatewayID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error); ++ ++ /** ++ * updates data of an converter. (at)return E_OK on success, E_NON_EXISTENT if the ++ * converterID is not valid. ++ */ ++ virtual void updateConverter(const std::shared_ptr<CommonAPI::ClientId> clientId, am_converterID_t converterID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error); ++ virtual void updateConverter(am_converterID_t converterID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error); ++ ++ /** ++ * updates data of an sink. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sinkID is not valid. ++ */ ++ virtual void updateSink(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_sinkClass_t sinkClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error); ++ virtual void updateSink(am_sinkID_t sinkID, am_sinkClass_t sinkClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error); ++ ++ /** ++ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the ++ * sourceID in the struct is not valid. ++ Please note that only the following data ++ * out of am_Source_s have effect when they are ++ * changed: ++ sourceClassID, ++ listSoundProperties, ++ listConnectionFormats, ++ * ++ listMainSoundProperties ++ */ ++ virtual void updateSource(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_sourceClass_t sourceClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error); ++ virtual void updateSource(am_sourceID_t sourceID, am_sourceClass_t sourceClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error); ++ ++ /** ++ * acknowledges a asyncSetSinkVolumes ++ */ ++ virtual void ackSetVolumes(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Volumes_L listvolumes, am_Error_e error); ++ virtual void ackSetVolumes(am_Handle_s handle, am_Volumes_L listvolumes, am_Error_e error); ++ ++ /** ++ * The acknowledge of the SinkNotificationConfiguration ++ */ ++ virtual void ackSinkNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error); ++ virtual void ackSinkNotificationConfiguration(am_Handle_s handle, am_Error_e error); ++ ++ /** ++ * The acknowledge of the SourceNotificationConfiguration ++ */ ++ virtual void ackSourceNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Error_e error); ++ virtual void ackSourceNotificationConfiguration(am_Handle_s handle, am_Error_e error); ++ ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ virtual void hookSinkNotificationDataChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_NotificationPayload_s payload); ++ virtual void hookSinkNotificationDataChange(am_sinkID_t sinkID, am_NotificationPayload_s payload); ++ ++ /** ++ * is called whenever a notified value needs to be send ++ */ ++ virtual void hookSourceNotificationDataChange(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sourceID_t sourceID, am_NotificationPayload_s payload); ++ virtual void hookSourceNotificationDataChange(am_sourceID_t sourceID, am_NotificationPayload_s payload); ++ ++ virtual void confirmRoutingRundown(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string domainName); ++ virtual void confirmRoutingRundown(std::string domainName); ++ ++ ++ ++ ++protected: ++ /** ++ * This attribute signals to the clients the current routing state. ++ A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++ virtual bool trySetRoutingReadyAttribute(am_RoutingReady_e value); ++ virtual bool validateRoutingReadyAttributeRequestedValue(const am_RoutingReady_e& value); ++ class RemoteEventHandler: public virtual RoutingControlObserverStubRemoteEvent { ++ public: ++ RemoteEventHandler(RoutingControlObserverStubDefault* defaultStub); ++ ++ /** ++ * This attribute signals to the clients the current routing state. ++ A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++ ++ ++ private: ++ RoutingControlObserverStubDefault* defaultStub_; ++ }; ++private: ++ RoutingControlObserverStubDefault::RemoteEventHandler remoteEventHandler_; ++ ++ /** ++ * This attribute signals to the clients the current routing state. ++ A client ++ * should notify himself to this attribute in order to know the current state and ++ * act accordingly. ++ */ ++ am_RoutingReady_e routingReadyAttributeValue_; ++ ++ CommonAPI::Version interfaceVersion_; ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Routing_Control_Observer_STUB_DEFAULT_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxy.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxy.h +new file mode 100644 +index 0000000..76f5a8e +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxy.h +@@ -0,0 +1,712 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * This class implements everything from Audiomanager -> RoutingAdapter ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_PROXY_H_ ++#define ORG_GENIVI_AM_Routing_Control_PROXY_H_ ++ ++#include "RoutingControlProxyBase.h" ++ ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++template <typename ... _AttributeExtensions> ++class RoutingControlProxy: virtual public RoutingControl, virtual public RoutingControlProxyBase ++, public _AttributeExtensions... { ++public: ++ RoutingControlProxy(std::shared_ptr<CommonAPI::Proxy> delegate); ++ ~RoutingControlProxy(); ++ ++ typedef RoutingControl InterfaceType; ++ ++ ++ ++ ++ /** ++ * aborts an asynchronous action. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ * ++ * Calls asyncAbort with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncAbort(const am_Handle_s& handle, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncAbort with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncAbortAsync(const am_Handle_s& handle, AsyncAbortAsyncCallback callback); ++ /** ++ * connects a source to a sink ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ * ++ * Calls asyncConnect with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncConnect with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, AsyncConnectAsyncCallback callback); ++ /** ++ * disconnect a connection with given connectionID ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ * ++ * Calls asyncDisconnect with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncDisconnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncDisconnect with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncDisconnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, AsyncDisconnectAsyncCallback callback); ++ /** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ * ++ * Calls asyncSetSinkVolume with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncSetSinkVolume(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncSetSinkVolume with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkVolumeAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, AsyncSetSinkVolumeAsyncCallback callback); ++ /** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++ triggers the acknowledge ackSourceVolumeChange ++ * ++ * Calls asyncSetSourceVolume with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncSetSourceVolume(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncSetSourceVolume with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceVolumeAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, AsyncSetSourceVolumeAsyncCallback callback); ++ /** ++ * This function is used to set the source state of a particular ++ * source. ++ (at)return E_OK on success, E_UNKNOWN on error ++ * ++ * Calls asyncSetSourceState with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncSetSourceState(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncSetSourceState with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceStateAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, AsyncSetSourceStateAsyncCallback callback); ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ * ++ * Calls asyncSetSinkSoundProperties with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncSetSinkSoundProperties(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncSetSinkSoundProperties with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, AsyncSetSinkSoundPropertiesAsyncCallback callback); ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ * ++ * Calls asyncSetSinkSoundProperty with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncSetSinkSoundProperty(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncSetSinkSoundProperty with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, AsyncSetSinkSoundPropertyAsyncCallback callback); ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ * ++ * Calls asyncSetSourceSoundProperties with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncSetSourceSoundProperties(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncSetSourceSoundProperties with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceSoundPropertiesAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_L& listSoundProperties, AsyncSetSourceSoundPropertiesAsyncCallback callback); ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ * ++ * Calls asyncSetSourceSoundProperty with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncSetSourceSoundProperty(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncSetSourceSoundProperty with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceSoundPropertyAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_s& soundProperty, AsyncSetSourceSoundPropertyAsyncCallback callback); ++ /** ++ * this function triggers crossfading. ++ (at)return E_OK on success, E_UNKNOWN on ++ * error ++ * ++ * Calls asyncCrossFade with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncCrossFade(const am_Handle_s& handle, const am_crossfaderID_t& crossfaderID, const am_HotSink_e& hotSink, const am_CustomRampType_t& rampType, const am_time_t& time, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncCrossFade with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncCrossFadeAsync(const am_Handle_s& handle, const am_crossfaderID_t& crossfaderID, const am_HotSink_e& hotSink, const am_CustomRampType_t& rampType, const am_time_t& time, AsyncCrossFadeAsyncCallback callback); ++ /** ++ * this function is used for early and late audio functions to set the domain ++ * state ++ (at)return E_OK on success, E_UNKNOWN on error ++ * ++ * Calls setDomainState with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * All non-const parameters will be filled with the returned values. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void setDomainState(const am_domainID_t& domainID, const am_DomainState_e& domainState, CommonAPI::CallStatus& callStatus, am_Error_e& error); ++ /** ++ * Calls setDomainState with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> setDomainStateAsync(const am_domainID_t& domainID, const am_DomainState_e& domainState, SetDomainStateAsyncCallback callback); ++ /** ++ * Calls asyncSetVolumes with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncSetVolumes(const am_Handle_s& handle, const am_Volumes_L& volumes, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncSetVolumes with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncSetVolumesAsync(const am_Handle_s& handle, const am_Volumes_L& volumes, AsyncSetVolumesAsyncCallback callback); ++ /** ++ * Calls asyncSetSinkNotificationConfiguration with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncSetSinkNotificationConfiguration(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& notificationConfiguration, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncSetSinkNotificationConfiguration with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkNotificationConfigurationAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& notificationConfiguration, AsyncSetSinkNotificationConfigurationAsyncCallback callback); ++ /** ++ * Calls asyncSetSourceNotificationConfiguration with synchronous semantics. ++ * ++ * All const parameters are input parameters to this method. ++ * The CallStatus will be filled when the method returns and indicate either ++ * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus ++ * will be set. ++ */ ++ virtual void asyncSetSourceNotificationConfiguration(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& notificationConfiguration, CommonAPI::CallStatus& callStatus); ++ /** ++ * Calls asyncSetSourceNotificationConfiguration with asynchronous semantics. ++ * ++ * The provided callback will be called when the reply to this call arrives or ++ * an error occurs during the call. The CallStatus will indicate either "SUCCESS" ++ * or which type of error has occurred. In case of any error, ONLY the CallStatus ++ * will have a defined value. ++ * The std::future returned by this method will be fulfilled at arrival of the reply. ++ * It will provide the same value for CallStatus as will be handed to the callback. ++ */ ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceNotificationConfigurationAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& notificationConfiguration, AsyncSetSourceNotificationConfigurationAsyncCallback callback); ++ ++ ++ /** ++ * Returns the CommonAPI address of the remote partner this proxy communicates with. ++ */ ++ virtual std::string getAddress() const; ++ ++ /** ++ * Returns the domain of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getDomain() const; ++ ++ /** ++ * Returns the service ID of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getServiceId() const; ++ ++ /** ++ * Returns the instance ID of the remote partner this proxy communicates with. ++ */ ++ virtual const std::string& getInstanceId() const; ++ ++ /** ++ * Returns true if the remote partner for this proxy is currently known to be available. ++ */ ++ virtual bool isAvailable() const; ++ ++ /** ++ * Returns true if the remote partner for this proxy is available. ++ */ ++ virtual bool isAvailableBlocking() const; ++ ++ /** ++ * Returns the wrapper class that is used to (de-)register for notifications about ++ * the availability of the remote partner of this proxy. ++ */ ++ virtual CommonAPI::ProxyStatusEvent& getProxyStatusEvent(); ++ ++ /** ++ * Returns the wrapper class that is used to access version information of the remote ++ * partner of this proxy. ++ */ ++ virtual CommonAPI::InterfaceVersionAttribute& getInterfaceVersionAttribute(); ++ ++ private: ++ std::shared_ptr<RoutingControlProxyBase> delegate_; ++}; ++ ++#ifdef WIN32 ++ typedef RoutingControlProxy<CommonAPI::WINDummyAttributeExtension<CommonAPI::WINDummyAttribute>> RoutingControlProxyDefault; ++#else ++ typedef RoutingControlProxy<> RoutingControlProxyDefault; ++#endif ++ ++ ++// ++// RoutingControlProxy Implementation ++// ++template <typename ... _AttributeExtensions> ++RoutingControlProxy<_AttributeExtensions...>::RoutingControlProxy(std::shared_ptr<CommonAPI::Proxy> delegate): ++ _AttributeExtensions(*(std::dynamic_pointer_cast<RoutingControlProxyBase>(delegate)))..., ++ delegate_(std::dynamic_pointer_cast<RoutingControlProxyBase>(delegate)) { ++} ++ ++template <typename ... _AttributeExtensions> ++RoutingControlProxy<_AttributeExtensions...>::~RoutingControlProxy() { ++} ++ ++/** ++ * aborts an asynchronous action. ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncAbort(const am_Handle_s& handle, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncAbort(handle, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncAbortAsync(const am_Handle_s& handle, AsyncAbortAsyncCallback callback) { ++ return delegate_->asyncAbortAsync(handle, callback); ++} ++/** ++ * connects a source to a sink ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncConnect(handle, connectionID, sourceID, sinkID, connectionFormat, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, AsyncConnectAsyncCallback callback) { ++ return delegate_->asyncConnectAsync(handle, connectionID, sourceID, sinkID, connectionFormat, callback); ++} ++/** ++ * disconnect a connection with given connectionID ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncDisconnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncDisconnect(handle, connectionID, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncDisconnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, AsyncDisconnectAsyncCallback callback) { ++ return delegate_->asyncDisconnectAsync(handle, connectionID, callback); ++} ++/** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncSetSinkVolume(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncSetSinkVolume(handle, sinkID, volume, ramp, time, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncSetSinkVolumeAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, AsyncSetSinkVolumeAsyncCallback callback) { ++ return delegate_->asyncSetSinkVolumeAsync(handle, sinkID, volume, ramp, time, callback); ++} ++/** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++(at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++triggers the acknowledge ackSourceVolumeChange ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncSetSourceVolume(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncSetSourceVolume(handle, sourceID, volume, ramp, time, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncSetSourceVolumeAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, AsyncSetSourceVolumeAsyncCallback callback) { ++ return delegate_->asyncSetSourceVolumeAsync(handle, sourceID, volume, ramp, time, callback); ++} ++/** ++ * This function is used to set the source state of a particular ++ * source. ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncSetSourceState(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncSetSourceState(handle, sourceID, state, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncSetSourceStateAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, AsyncSetSourceStateAsyncCallback callback) { ++ return delegate_->asyncSetSourceStateAsync(handle, sourceID, state, callback); ++} ++/** ++ * this function sets the sinksoundproperty. ++(at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncSetSinkSoundProperties(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncSetSinkSoundProperties(handle, sinkID, listSoundProperties, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, AsyncSetSinkSoundPropertiesAsyncCallback callback) { ++ return delegate_->asyncSetSinkSoundPropertiesAsync(handle, sinkID, listSoundProperties, callback); ++} ++/** ++ * this function sets the sinksoundproperty. ++(at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncSetSinkSoundProperty(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncSetSinkSoundProperty(handle, sinkID, soundProperty, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, AsyncSetSinkSoundPropertyAsyncCallback callback) { ++ return delegate_->asyncSetSinkSoundPropertyAsync(handle, sinkID, soundProperty, callback); ++} ++/** ++ * this function sets the sourcesoundproperty. ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncSetSourceSoundProperties(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncSetSourceSoundProperties(handle, sourceID, listSoundProperties, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncSetSourceSoundPropertiesAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_L& listSoundProperties, AsyncSetSourceSoundPropertiesAsyncCallback callback) { ++ return delegate_->asyncSetSourceSoundPropertiesAsync(handle, sourceID, listSoundProperties, callback); ++} ++/** ++ * this function sets the sourcesoundproperty. ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncSetSourceSoundProperty(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncSetSourceSoundProperty(handle, sourceID, soundProperty, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncSetSourceSoundPropertyAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_s& soundProperty, AsyncSetSourceSoundPropertyAsyncCallback callback) { ++ return delegate_->asyncSetSourceSoundPropertyAsync(handle, sourceID, soundProperty, callback); ++} ++/** ++ * this function triggers crossfading. ++(at)return E_OK on success, E_UNKNOWN on ++ * error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncCrossFade(const am_Handle_s& handle, const am_crossfaderID_t& crossfaderID, const am_HotSink_e& hotSink, const am_CustomRampType_t& rampType, const am_time_t& time, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncCrossFade(handle, crossfaderID, hotSink, rampType, time, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncCrossFadeAsync(const am_Handle_s& handle, const am_crossfaderID_t& crossfaderID, const am_HotSink_e& hotSink, const am_CustomRampType_t& rampType, const am_time_t& time, AsyncCrossFadeAsyncCallback callback) { ++ return delegate_->asyncCrossFadeAsync(handle, crossfaderID, hotSink, rampType, time, callback); ++} ++/** ++ * this function is used for early and late audio functions to set the domain ++ * state ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::setDomainState(const am_domainID_t& domainID, const am_DomainState_e& domainState, CommonAPI::CallStatus& callStatus, am_Error_e& error) { ++ delegate_->setDomainState(domainID, domainState, callStatus, error); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::setDomainStateAsync(const am_domainID_t& domainID, const am_DomainState_e& domainState, SetDomainStateAsyncCallback callback) { ++ return delegate_->setDomainStateAsync(domainID, domainState, callback); ++} ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncSetVolumes(const am_Handle_s& handle, const am_Volumes_L& volumes, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncSetVolumes(handle, volumes, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncSetVolumesAsync(const am_Handle_s& handle, const am_Volumes_L& volumes, AsyncSetVolumesAsyncCallback callback) { ++ return delegate_->asyncSetVolumesAsync(handle, volumes, callback); ++} ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncSetSinkNotificationConfiguration(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& notificationConfiguration, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncSetSinkNotificationConfiguration(handle, sinkID, notificationConfiguration, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncSetSinkNotificationConfigurationAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& notificationConfiguration, AsyncSetSinkNotificationConfigurationAsyncCallback callback) { ++ return delegate_->asyncSetSinkNotificationConfigurationAsync(handle, sinkID, notificationConfiguration, callback); ++} ++template <typename ... _AttributeExtensions> ++void RoutingControlProxy<_AttributeExtensions...>::asyncSetSourceNotificationConfiguration(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& notificationConfiguration, CommonAPI::CallStatus& callStatus) { ++ delegate_->asyncSetSourceNotificationConfiguration(handle, sourceID, notificationConfiguration, callStatus); ++} ++ ++template <typename ... _AttributeExtensions> ++std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>::asyncSetSourceNotificationConfigurationAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& notificationConfiguration, AsyncSetSourceNotificationConfigurationAsyncCallback callback) { ++ return delegate_->asyncSetSourceNotificationConfigurationAsync(handle, sourceID, notificationConfiguration, callback); ++} ++ ++template <typename ... _AttributeExtensions> ++std::string RoutingControlProxy<_AttributeExtensions...>::getAddress() const { ++ return delegate_->getAddress(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& RoutingControlProxy<_AttributeExtensions...>::getDomain() const { ++ return delegate_->getDomain(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& RoutingControlProxy<_AttributeExtensions...>::getServiceId() const { ++ return delegate_->getServiceId(); ++} ++ ++template <typename ... _AttributeExtensions> ++const std::string& RoutingControlProxy<_AttributeExtensions...>::getInstanceId() const { ++ return delegate_->getInstanceId(); ++} ++ ++template <typename ... _AttributeExtensions> ++bool RoutingControlProxy<_AttributeExtensions...>::isAvailable() const { ++ return delegate_->isAvailable(); ++} ++ ++template <typename ... _AttributeExtensions> ++bool RoutingControlProxy<_AttributeExtensions...>::isAvailableBlocking() const { ++ return delegate_->isAvailableBlocking(); ++} ++ ++template <typename ... _AttributeExtensions> ++CommonAPI::ProxyStatusEvent& RoutingControlProxy<_AttributeExtensions...>::getProxyStatusEvent() { ++ return delegate_->getProxyStatusEvent(); ++} ++ ++template <typename ... _AttributeExtensions> ++CommonAPI::InterfaceVersionAttribute& RoutingControlProxy<_AttributeExtensions...>::getInterfaceVersionAttribute() { ++ return delegate_->getInterfaceVersionAttribute(); ++} ++ ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++ ++#endif // ORG_GENIVI_AM_Routing_Control_PROXY_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxyBase.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxyBase.h +new file mode 100644 +index 0000000..dd14bde +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxyBase.h +@@ -0,0 +1,163 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * This class implements everything from Audiomanager -> RoutingAdapter ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_PROXY_BASE_H_ ++#define ORG_GENIVI_AM_Routing_Control_PROXY_BASE_H_ ++ ++#include "RoutingControl.h" ++ ++ ++#include <org/genivi/am.h> ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/InputStream.h> ++#include <CommonAPI/OutputStream.h> ++#include <CommonAPI/SerializableStruct.h> ++#include <cstdint> ++#include <vector> ++ ++#include <CommonAPI/Proxy.h> ++#include <functional> ++#include <future> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++class RoutingControlProxyBase: virtual public CommonAPI::Proxy { ++ public: ++ ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncAbortAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncConnectAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncDisconnectAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncSetSinkVolumeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncSetSourceVolumeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncSetSourceStateAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncSetSinkSoundPropertiesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncSetSinkSoundPropertyAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncSetSourceSoundPropertiesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncSetSourceSoundPropertyAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncCrossFadeAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&, const am_Error_e&)> SetDomainStateAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncSetVolumesAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncSetSinkNotificationConfigurationAsyncCallback; ++ typedef std::function<void(const CommonAPI::CallStatus&)> AsyncSetSourceNotificationConfigurationAsyncCallback; ++ ++ ++ ++ /** ++ * aborts an asynchronous action. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ */ ++ virtual void asyncAbort(const am_Handle_s& handle, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncAbortAsync(const am_Handle_s& handle, AsyncAbortAsyncCallback callback) = 0; ++ /** ++ * connects a source to a sink ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ */ ++ virtual void asyncConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, AsyncConnectAsyncCallback callback) = 0; ++ /** ++ * disconnect a connection with given connectionID ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ */ ++ virtual void asyncDisconnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncDisconnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, AsyncDisconnectAsyncCallback callback) = 0; ++ /** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ */ ++ virtual void asyncSetSinkVolume(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkVolumeAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, AsyncSetSinkVolumeAsyncCallback callback) = 0; ++ /** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++ triggers the acknowledge ackSourceVolumeChange ++ */ ++ virtual void asyncSetSourceVolume(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceVolumeAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time, AsyncSetSourceVolumeAsyncCallback callback) = 0; ++ /** ++ * This function is used to set the source state of a particular ++ * source. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ virtual void asyncSetSourceState(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceStateAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, AsyncSetSourceStateAsyncCallback callback) = 0; ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSinkSoundProperties(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, AsyncSetSinkSoundPropertiesAsyncCallback callback) = 0; ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSinkSoundProperty(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, AsyncSetSinkSoundPropertyAsyncCallback callback) = 0; ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSourceSoundProperties(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceSoundPropertiesAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_L& listSoundProperties, AsyncSetSourceSoundPropertiesAsyncCallback callback) = 0; ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSourceSoundProperty(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceSoundPropertyAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SoundProperty_s& soundProperty, AsyncSetSourceSoundPropertyAsyncCallback callback) = 0; ++ /** ++ * this function triggers crossfading. ++ (at)return E_OK on success, E_UNKNOWN on ++ * error ++ */ ++ virtual void asyncCrossFade(const am_Handle_s& handle, const am_crossfaderID_t& crossfaderID, const am_HotSink_e& hotSink, const am_CustomRampType_t& rampType, const am_time_t& time, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncCrossFadeAsync(const am_Handle_s& handle, const am_crossfaderID_t& crossfaderID, const am_HotSink_e& hotSink, const am_CustomRampType_t& rampType, const am_time_t& time, AsyncCrossFadeAsyncCallback callback) = 0; ++ /** ++ * this function is used for early and late audio functions to set the domain ++ * state ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ virtual void setDomainState(const am_domainID_t& domainID, const am_DomainState_e& domainState, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; ++ virtual std::future<CommonAPI::CallStatus> setDomainStateAsync(const am_domainID_t& domainID, const am_DomainState_e& domainState, SetDomainStateAsyncCallback callback) = 0; ++ virtual void asyncSetVolumes(const am_Handle_s& handle, const am_Volumes_L& volumes, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncSetVolumesAsync(const am_Handle_s& handle, const am_Volumes_L& volumes, AsyncSetVolumesAsyncCallback callback) = 0; ++ virtual void asyncSetSinkNotificationConfiguration(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& notificationConfiguration, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncSetSinkNotificationConfigurationAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& notificationConfiguration, AsyncSetSinkNotificationConfigurationAsyncCallback callback) = 0; ++ virtual void asyncSetSourceNotificationConfiguration(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& notificationConfiguration, CommonAPI::CallStatus& callStatus) = 0; ++ virtual std::future<CommonAPI::CallStatus> asyncSetSourceNotificationConfigurationAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& notificationConfiguration, AsyncSetSourceNotificationConfigurationAsyncCallback callback) = 0; ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Routing_Control_PROXY_BASE_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStub.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStub.h +new file mode 100644 +index 0000000..069fa88 +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStub.h +@@ -0,0 +1,198 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * This class implements everything from Audiomanager -> RoutingAdapter ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_STUB_H_ ++#define ORG_GENIVI_AM_Routing_Control_STUB_H_ ++ ++ ++ ++#include <org/genivi/am.h> ++ ++#include "RoutingControl.h" ++ ++#if !defined (COMMONAPI_INTERNAL_COMPILATION) ++#define COMMONAPI_INTERNAL_COMPILATION ++#endif ++ ++#include <CommonAPI/InputStream.h> ++#include <CommonAPI/OutputStream.h> ++#include <CommonAPI/SerializableStruct.h> ++#include <cstdint> ++#include <vector> ++ ++#include <CommonAPI/Stub.h> ++ ++#undef COMMONAPI_INTERNAL_COMPILATION ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++/** ++ * Receives messages from remote and handles all dispatching of deserialized calls ++ * to a stub for the service RoutingControl. Also provides means to send broadcasts ++ * and attribute-changed-notifications of observable attributes as defined by this service. ++ * An application developer should not need to bother with this class. ++ */ ++class RoutingControlStubAdapter: virtual public CommonAPI::StubAdapter, public RoutingControl { ++ public: ++ ++ ++ ++ virtual void deactivateManagedInstances() = 0; ++protected: ++ /** ++ * Defines properties for storing the ClientIds of clients / proxies that have ++ * subscribed to the selective broadcasts ++ */ ++}; ++ ++ ++/** ++ * Defines the necessary callbacks to handle remote set events related to the attributes ++ * defined in the IDL description for RoutingControl. ++ * For each attribute two callbacks are defined: ++ * - a verification callback that allows to verify the requested value and to prevent setting ++ * e.g. an invalid value ("onRemoteSet<AttributeName>"). ++ * - an action callback to do local work after the attribute value has been changed ++ * ("onRemote<AttributeName>Changed"). ++ * ++ * This class and the one below are the ones an application developer needs to have ++ * a look at if he wants to implement a service. ++ */ ++class RoutingControlStubRemoteEvent { ++ public: ++ virtual ~RoutingControlStubRemoteEvent() { } ++ ++}; ++ ++ ++/** ++ * Defines the interface that must be implemented by any class that should provide ++ * the service RoutingControl to remote clients. ++ * This class and the one above are the ones an application developer needs to have ++ * a look at if he wants to implement a service. ++ */ ++class RoutingControlStub: public virtual CommonAPI::Stub<RoutingControlStubAdapter, RoutingControlStubRemoteEvent> { ++public: ++ virtual ~RoutingControlStub() { } ++ virtual const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) = 0; ++ ++ ++ /** ++ * aborts an asynchronous action. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ */ ++ /// This is the method that will be called on remote calls on the method asyncAbort. ++ virtual void asyncAbort(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle) = 0; ++ /** ++ * connects a source to a sink ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ */ ++ /// This is the method that will be called on remote calls on the method asyncConnect. ++ virtual void asyncConnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_sourceID_t sourceID, am_sinkID_t sinkID, am_CustomConnectionFormat_t connectionFormat) = 0; ++ /** ++ * disconnect a connection with given connectionID ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ */ ++ /// This is the method that will be called on remote calls on the method asyncDisconnect. ++ virtual void asyncDisconnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID) = 0; ++ /** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ */ ++ /// This is the method that will be called on remote calls on the method asyncSetSinkVolume. ++ virtual void asyncSetSinkVolume(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume, am_CustomRampType_t ramp, am_time_t time) = 0; ++ /** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++ triggers the acknowledge ackSourceVolumeChange ++ */ ++ /// This is the method that will be called on remote calls on the method asyncSetSourceVolume. ++ virtual void asyncSetSourceVolume(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume, am_CustomRampType_t ramp, am_time_t time) = 0; ++ /** ++ * This function is used to set the source state of a particular ++ * source. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method asyncSetSourceState. ++ virtual void asyncSetSourceState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_SourceState_e state) = 0; ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ /// This is the method that will be called on remote calls on the method asyncSetSinkSoundProperties. ++ virtual void asyncSetSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_L listSoundProperties) = 0; ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ /// This is the method that will be called on remote calls on the method asyncSetSinkSoundProperty. ++ virtual void asyncSetSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_s soundProperty) = 0; ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ /// This is the method that will be called on remote calls on the method asyncSetSourceSoundProperties. ++ virtual void asyncSetSourceSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_SoundProperty_L listSoundProperties) = 0; ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ /// This is the method that will be called on remote calls on the method asyncSetSourceSoundProperty. ++ virtual void asyncSetSourceSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_SoundProperty_s soundProperty) = 0; ++ /** ++ * this function triggers crossfading. ++ (at)return E_OK on success, E_UNKNOWN on ++ * error ++ */ ++ /// This is the method that will be called on remote calls on the method asyncCrossFade. ++ virtual void asyncCrossFade(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_crossfaderID_t crossfaderID, am_HotSink_e hotSink, am_CustomRampType_t rampType, am_time_t time) = 0; ++ /** ++ * this function is used for early and late audio functions to set the domain ++ * state ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ /// This is the method that will be called on remote calls on the method setDomainState. ++ virtual void setDomainState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID, am_DomainState_e domainState, am_Error_e& error) = 0; ++ /// This is the method that will be called on remote calls on the method asyncSetVolumes. ++ virtual void asyncSetVolumes(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Volumes_L volumes) = 0; ++ /// This is the method that will be called on remote calls on the method asyncSetSinkNotificationConfiguration. ++ virtual void asyncSetSinkNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_NotificationConfiguration_s notificationConfiguration) = 0; ++ /// This is the method that will be called on remote calls on the method asyncSetSourceNotificationConfiguration. ++ virtual void asyncSetSourceNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_NotificationConfiguration_s notificationConfiguration) = 0; ++ ++ using CommonAPI::Stub<RoutingControlStubAdapter, RoutingControlStubRemoteEvent>::initStubAdapter; ++ typedef CommonAPI::Stub<RoutingControlStubAdapter, RoutingControlStubRemoteEvent>::StubAdapterType StubAdapterType; ++ typedef CommonAPI::Stub<RoutingControlStubAdapter, RoutingControlStubRemoteEvent>::RemoteEventHandlerType RemoteEventHandlerType; ++ typedef RoutingControlStubRemoteEvent RemoteEventType; ++ typedef RoutingControl StubInterface; ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Routing_Control_STUB_H_ +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.cpp +new file mode 100644 +index 0000000..64423a9 +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.cpp +@@ -0,0 +1,224 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++#include <org/genivi/am/RoutingControlStubDefault.h> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++RoutingControlStubDefault::RoutingControlStubDefault(): ++ remoteEventHandler_(this), ++ interfaceVersion_(RoutingControl::getInterfaceVersion()) { ++} ++ ++const CommonAPI::Version& RoutingControlStubDefault::getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) { ++ return interfaceVersion_; ++} ++ ++RoutingControlStubRemoteEvent* RoutingControlStubDefault::initStubAdapter(const std::shared_ptr<RoutingControlStubAdapter>& stubAdapter) { ++ CommonAPI::Stub<RoutingControlStubAdapter, RoutingControlStubRemoteEvent>::stubAdapter_ = stubAdapter; ++ return &remoteEventHandler_; ++} ++ ++ ++/** ++ * aborts an asynchronous action. ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ */ ++void RoutingControlStubDefault::asyncAbort(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle) { ++ // Call old style methods in default ++ asyncAbort(handle); ++} ++void RoutingControlStubDefault::asyncAbort(am_Handle_s handle) { ++ // No operation in default ++} ++ ++/** ++ * connects a source to a sink ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ */ ++void RoutingControlStubDefault::asyncConnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_sourceID_t sourceID, am_sinkID_t sinkID, am_CustomConnectionFormat_t connectionFormat) { ++ // Call old style methods in default ++ asyncConnect(handle, connectionID, sourceID, sinkID, connectionFormat); ++} ++void RoutingControlStubDefault::asyncConnect(am_Handle_s handle, am_connectionID_t connectionID, am_sourceID_t sourceID, am_sinkID_t sinkID, am_CustomConnectionFormat_t connectionFormat) { ++ // No operation in default ++} ++ ++/** ++ * disconnect a connection with given connectionID ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ */ ++void RoutingControlStubDefault::asyncDisconnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID) { ++ // Call old style methods in default ++ asyncDisconnect(handle, connectionID); ++} ++void RoutingControlStubDefault::asyncDisconnect(am_Handle_s handle, am_connectionID_t connectionID) { ++ // No operation in default ++} ++ ++/** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++(at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ */ ++void RoutingControlStubDefault::asyncSetSinkVolume(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume, am_CustomRampType_t ramp, am_time_t time) { ++ // Call old style methods in default ++ asyncSetSinkVolume(handle, sinkID, volume, ramp, time); ++} ++void RoutingControlStubDefault::asyncSetSinkVolume(am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume, am_CustomRampType_t ramp, am_time_t time) { ++ // No operation in default ++} ++ ++/** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++(at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++triggers the acknowledge ackSourceVolumeChange ++ */ ++void RoutingControlStubDefault::asyncSetSourceVolume(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume, am_CustomRampType_t ramp, am_time_t time) { ++ // Call old style methods in default ++ asyncSetSourceVolume(handle, sourceID, volume, ramp, time); ++} ++void RoutingControlStubDefault::asyncSetSourceVolume(am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume, am_CustomRampType_t ramp, am_time_t time) { ++ // No operation in default ++} ++ ++/** ++ * This function is used to set the source state of a particular ++ * source. ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++void RoutingControlStubDefault::asyncSetSourceState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_SourceState_e state) { ++ // Call old style methods in default ++ asyncSetSourceState(handle, sourceID, state); ++} ++void RoutingControlStubDefault::asyncSetSourceState(am_Handle_s handle, am_sourceID_t sourceID, am_SourceState_e state) { ++ // No operation in default ++} ++ ++/** ++ * this function sets the sinksoundproperty. ++(at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++void RoutingControlStubDefault::asyncSetSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_L listSoundProperties) { ++ // Call old style methods in default ++ asyncSetSinkSoundProperties(handle, sinkID, listSoundProperties); ++} ++void RoutingControlStubDefault::asyncSetSinkSoundProperties(am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_L listSoundProperties) { ++ // No operation in default ++} ++ ++/** ++ * this function sets the sinksoundproperty. ++(at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++void RoutingControlStubDefault::asyncSetSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_s soundProperty) { ++ // Call old style methods in default ++ asyncSetSinkSoundProperty(handle, sinkID, soundProperty); ++} ++void RoutingControlStubDefault::asyncSetSinkSoundProperty(am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_s soundProperty) { ++ // No operation in default ++} ++ ++/** ++ * this function sets the sourcesoundproperty. ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++void RoutingControlStubDefault::asyncSetSourceSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_SoundProperty_L listSoundProperties) { ++ // Call old style methods in default ++ asyncSetSourceSoundProperties(handle, sourceID, listSoundProperties); ++} ++void RoutingControlStubDefault::asyncSetSourceSoundProperties(am_Handle_s handle, am_sourceID_t sourceID, am_SoundProperty_L listSoundProperties) { ++ // No operation in default ++} ++ ++/** ++ * this function sets the sourcesoundproperty. ++(at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++void RoutingControlStubDefault::asyncSetSourceSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_SoundProperty_s soundProperty) { ++ // Call old style methods in default ++ asyncSetSourceSoundProperty(handle, sourceID, soundProperty); ++} ++void RoutingControlStubDefault::asyncSetSourceSoundProperty(am_Handle_s handle, am_sourceID_t sourceID, am_SoundProperty_s soundProperty) { ++ // No operation in default ++} ++ ++/** ++ * this function triggers crossfading. ++(at)return E_OK on success, E_UNKNOWN on ++ * error ++ */ ++void RoutingControlStubDefault::asyncCrossFade(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_crossfaderID_t crossfaderID, am_HotSink_e hotSink, am_CustomRampType_t rampType, am_time_t time) { ++ // Call old style methods in default ++ asyncCrossFade(handle, crossfaderID, hotSink, rampType, time); ++} ++void RoutingControlStubDefault::asyncCrossFade(am_Handle_s handle, am_crossfaderID_t crossfaderID, am_HotSink_e hotSink, am_CustomRampType_t rampType, am_time_t time) { ++ // No operation in default ++} ++ ++/** ++ * this function is used for early and late audio functions to set the domain ++ * state ++(at)return E_OK on success, E_UNKNOWN on error ++ */ ++void RoutingControlStubDefault::setDomainState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID, am_DomainState_e domainState, am_Error_e& error) { ++ // Call old style methods in default ++ setDomainState(domainID, domainState, error); ++} ++void RoutingControlStubDefault::setDomainState(am_domainID_t domainID, am_DomainState_e domainState, am_Error_e& error) { ++ // No operation in default ++} ++ ++void RoutingControlStubDefault::asyncSetVolumes(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Volumes_L volumes) { ++ // Call old style methods in default ++ asyncSetVolumes(handle, volumes); ++} ++void RoutingControlStubDefault::asyncSetVolumes(am_Handle_s handle, am_Volumes_L volumes) { ++ // No operation in default ++} ++ ++void RoutingControlStubDefault::asyncSetSinkNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_NotificationConfiguration_s notificationConfiguration) { ++ // Call old style methods in default ++ asyncSetSinkNotificationConfiguration(handle, sinkID, notificationConfiguration); ++} ++void RoutingControlStubDefault::asyncSetSinkNotificationConfiguration(am_Handle_s handle, am_sinkID_t sinkID, am_NotificationConfiguration_s notificationConfiguration) { ++ // No operation in default ++} ++ ++void RoutingControlStubDefault::asyncSetSourceNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_NotificationConfiguration_s notificationConfiguration) { ++ // Call old style methods in default ++ asyncSetSourceNotificationConfiguration(handle, sourceID, notificationConfiguration); ++} ++void RoutingControlStubDefault::asyncSetSourceNotificationConfiguration(am_Handle_s handle, am_sourceID_t sourceID, am_NotificationConfiguration_s notificationConfiguration) { ++ // No operation in default ++} ++ ++ ++ ++ ++RoutingControlStubDefault::RemoteEventHandler::RemoteEventHandler(RoutingControlStubDefault* defaultStub): ++ defaultStub_(defaultStub) { ++} ++ ++} // namespace am ++} // namespace genivi ++} // namespace org +diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.h +new file mode 100644 +index 0000000..f92a46f +--- /dev/null ++++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.h +@@ -0,0 +1,176 @@ ++/* ++* This file was generated by the CommonAPI Generators. ++* Used org.genivi.commonapi.core 2.1.6.v20150127. ++* Used org.franca.core 0.8.10.201309262002. ++* ++* ++*/ ++/** ++ * This class implements everything from Audiomanager -> RoutingAdapter ++ * @author Christian Mueller ++ */ ++#ifndef ORG_GENIVI_AM_Routing_Control_STUB_DEFAULT_H_ ++#define ORG_GENIVI_AM_Routing_Control_STUB_DEFAULT_H_ ++ ++ ++#include <org/genivi/am/RoutingControlStub.h> ++#include <sstream> ++ ++namespace org { ++namespace genivi { ++namespace am { ++ ++/** ++ * Provides a default implementation for RoutingControlStubRemoteEvent and ++ * RoutingControlStub. Method callbacks have an empty implementation, ++ * remote set calls on attributes will always change the value of the attribute ++ * to the one received. ++ * ++ * Override this stub if you only want to provide a subset of the functionality ++ * that would be defined for this service, and/or if you do not need any non-default ++ * behaviour. ++ */ ++class RoutingControlStubDefault : public virtual RoutingControlStub { ++public: ++ RoutingControlStubDefault(); ++ ++ RoutingControlStubRemoteEvent* initStubAdapter(const std::shared_ptr<RoutingControlStubAdapter>& stubAdapter); ++ ++ const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId); ++ ++ ++ /** ++ * aborts an asynchronous action. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_NON_EXISTENT if handle was not found ++ */ ++ virtual void asyncAbort(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle); ++ virtual void asyncAbort(am_Handle_s handle); ++ ++ /** ++ * connects a source to a sink ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match ++ */ ++ virtual void asyncConnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_sourceID_t sourceID, am_sinkID_t sinkID, am_CustomConnectionFormat_t connectionFormat); ++ virtual void asyncConnect(am_Handle_s handle, am_connectionID_t connectionID, am_sourceID_t sourceID, am_sinkID_t sinkID, am_CustomConnectionFormat_t connectionFormat); ++ ++ /** ++ * disconnect a connection with given connectionID ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found ++ */ ++ virtual void asyncDisconnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID); ++ virtual void asyncDisconnect(am_Handle_s handle, am_connectionID_t connectionID); ++ ++ /** ++ * this method is used to set the volume of a sink. This function is used to drive ++ * ramps, to mute or unmute or directly set the value. The difference is made ++ * through the ramptype. ++ (at)return E_OK on success, E_UNKNOWN on error, ++ * E_OUT_OF_RANGE if new volume is out of range ++ */ ++ virtual void asyncSetSinkVolume(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume, am_CustomRampType_t ramp, am_time_t time); ++ virtual void asyncSetSinkVolume(am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume, am_CustomRampType_t ramp, am_time_t time); ++ ++ /** ++ * sets the volume of a source. This method is used to set the volume of a sink. ++ * This function is used to drive ramps, to mute or unmute or directly set the ++ * value. The difference is made through the ramptype. ++ (at)return E_OK on ++ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of ++ * range. ++ triggers the acknowledge ackSourceVolumeChange ++ */ ++ virtual void asyncSetSourceVolume(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume, am_CustomRampType_t ramp, am_time_t time); ++ virtual void asyncSetSourceVolume(am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume, am_CustomRampType_t ramp, am_time_t time); ++ ++ /** ++ * This function is used to set the source state of a particular ++ * source. ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ virtual void asyncSetSourceState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_SourceState_e state); ++ virtual void asyncSetSourceState(am_Handle_s handle, am_sourceID_t sourceID, am_SourceState_e state); ++ ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_L listSoundProperties); ++ virtual void asyncSetSinkSoundProperties(am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_L listSoundProperties); ++ ++ /** ++ * this function sets the sinksoundproperty. ++ (at)return E_OK on success, E_UNKNOWN ++ * on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_s soundProperty); ++ virtual void asyncSetSinkSoundProperty(am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_s soundProperty); ++ ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSourceSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_SoundProperty_L listSoundProperties); ++ virtual void asyncSetSourceSoundProperties(am_Handle_s handle, am_sourceID_t sourceID, am_SoundProperty_L listSoundProperties); ++ ++ /** ++ * this function sets the sourcesoundproperty. ++ (at)return E_OK on success, ++ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range ++ */ ++ virtual void asyncSetSourceSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_SoundProperty_s soundProperty); ++ virtual void asyncSetSourceSoundProperty(am_Handle_s handle, am_sourceID_t sourceID, am_SoundProperty_s soundProperty); ++ ++ /** ++ * this function triggers crossfading. ++ (at)return E_OK on success, E_UNKNOWN on ++ * error ++ */ ++ virtual void asyncCrossFade(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_crossfaderID_t crossfaderID, am_HotSink_e hotSink, am_CustomRampType_t rampType, am_time_t time); ++ virtual void asyncCrossFade(am_Handle_s handle, am_crossfaderID_t crossfaderID, am_HotSink_e hotSink, am_CustomRampType_t rampType, am_time_t time); ++ ++ /** ++ * this function is used for early and late audio functions to set the domain ++ * state ++ (at)return E_OK on success, E_UNKNOWN on error ++ */ ++ virtual void setDomainState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_domainID_t domainID, am_DomainState_e domainState, am_Error_e& error); ++ virtual void setDomainState(am_domainID_t domainID, am_DomainState_e domainState, am_Error_e& error); ++ ++ virtual void asyncSetVolumes(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_Volumes_L volumes); ++ virtual void asyncSetVolumes(am_Handle_s handle, am_Volumes_L volumes); ++ ++ virtual void asyncSetSinkNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_NotificationConfiguration_s notificationConfiguration); ++ virtual void asyncSetSinkNotificationConfiguration(am_Handle_s handle, am_sinkID_t sinkID, am_NotificationConfiguration_s notificationConfiguration); ++ ++ virtual void asyncSetSourceNotificationConfiguration(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_NotificationConfiguration_s notificationConfiguration); ++ virtual void asyncSetSourceNotificationConfiguration(am_Handle_s handle, am_sourceID_t sourceID, am_NotificationConfiguration_s notificationConfiguration); ++ ++ ++ ++ ++protected: ++ class RemoteEventHandler: public virtual RoutingControlStubRemoteEvent { ++ public: ++ RemoteEventHandler(RoutingControlStubDefault* defaultStub); ++ ++ ++ private: ++ RoutingControlStubDefault* defaultStub_; ++ }; ++private: ++ RoutingControlStubDefault::RemoteEventHandler remoteEventHandler_; ++ ++ ++ CommonAPI::Version interfaceVersion_; ++}; ++ ++} // namespace am ++} // namespace genivi ++} // namespace org ++ ++#endif // ORG_GENIVI_AM_Routing_Control_STUB_DEFAULT_H_ +-- +2.1.0 + diff --git a/meta-ivi/recipes-multimedia/audiomanager/audiomanager/0001-src-gen-update-to-CommonAPI-version-2.1.6.patch b/meta-ivi/recipes-multimedia/audiomanager/audiomanager/0001-src-gen-update-to-CommonAPI-version-2.1.6.patch deleted file mode 100644 index 026da0a..0000000 --- a/meta-ivi/recipes-multimedia/audiomanager/audiomanager/0001-src-gen-update-to-CommonAPI-version-2.1.6.patch +++ /dev/null @@ -1,9227 +0,0 @@ -From 68a1a370ac11a9fe6f8ca78a68cd09b114c287f7 Mon Sep 17 00:00:00 2001 -From: Holger Behrens <holger.behrens@windriver.com> -Date: Fri, 15 Aug 2014 12:59:08 +0200 -Subject: [AudioManager][PATCH] src-gen: update to CommonAPI version 2.1.6 - -Signed-off-by: Holger Behrens <holger.behrens@windriver.com> ---- - .../src-gen/org/genivi/NodeStateManager/Consumer.h | 8 +- - .../genivi/NodeStateManager/ConsumerDBusProxy.cpp | 10 +- - .../genivi/NodeStateManager/ConsumerDBusProxy.h | 8 +- - .../NodeStateManager/ConsumerDBusStubAdapter.cpp | 122 +- - .../NodeStateManager/ConsumerDBusStubAdapter.h | 100 +- - .../org/genivi/NodeStateManager/ConsumerProxy.h | 30 +- - .../genivi/NodeStateManager/ConsumerProxyBase.h | 8 +- - .../org/genivi/NodeStateManager/ConsumerStub.h | 12 +- - .../NodeStateManager/ConsumerStubDefault.cpp | 8 +- - .../genivi/NodeStateManager/ConsumerStubDefault.h | 15 +- - .../genivi/NodeStateManager/LifeCycleConsumer.h | 8 +- - .../LifeCycleConsumerDBusProxy.cpp | 10 +- - .../NodeStateManager/LifeCycleConsumerDBusProxy.h | 8 +- - .../LifeCycleConsumerDBusStubAdapter.cpp | 36 +- - .../LifeCycleConsumerDBusStubAdapter.h | 34 +- - .../NodeStateManager/LifeCycleConsumerProxy.h | 18 +- - .../NodeStateManager/LifeCycleConsumerProxyBase.h | 8 +- - .../NodeStateManager/LifeCycleConsumerStub.h | 12 +- - .../LifeCycleConsumerStubDefault.cpp | 8 +- - .../LifeCycleConsumerStubDefault.h | 15 +- - AudioManagerDaemon/src-gen/org/genivi/am.cpp | 991 ++++++++ - AudioManagerDaemon/src-gen/org/genivi/am.h | 2445 ++++++++++++++++++++ - .../src-gen/org/genivi/am.cpp | 8 +- - PluginCommandInterfaceCAPI/src-gen/org/genivi/am.h | 53 +- - .../src-gen/org/genivi/am/CommandControl.h | 10 +- - .../org/genivi/am/CommandControlDBusProxy.cpp | 34 +- - .../org/genivi/am/CommandControlDBusProxy.h | 24 +- - .../genivi/am/CommandControlDBusStubAdapter.cpp | 194 +- - .../org/genivi/am/CommandControlDBusStubAdapter.h | 246 +- - .../src-gen/org/genivi/am/CommandControlProxy.h | 54 +- - .../org/genivi/am/CommandControlProxyBase.h | 24 +- - .../src-gen/org/genivi/am/CommandControlStub.h | 26 +- - .../org/genivi/am/CommandControlStubDefault.cpp | 26 +- - .../org/genivi/am/CommandControlStubDefault.h | 31 +- - .../src-gen/org/genivi/am.cpp | 8 +- - PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.h | 40 +- - .../src-gen/org/genivi/am/RoutingControl.h | 10 +- - .../org/genivi/am/RoutingControlDBusProxy.cpp | 22 +- - .../org/genivi/am/RoutingControlDBusProxy.h | 18 +- - .../genivi/am/RoutingControlDBusStubAdapter.cpp | 150 +- - .../org/genivi/am/RoutingControlDBusStubAdapter.h | 170 +- - .../src-gen/org/genivi/am/RoutingControlObserver.h | 10 +- - .../genivi/am/RoutingControlObserverDBusProxy.cpp | 26 +- - .../genivi/am/RoutingControlObserverDBusProxy.h | 20 +- - .../am/RoutingControlObserverDBusStubAdapter.cpp | 329 +-- - .../am/RoutingControlObserverDBusStubAdapter.h | 443 +++- - .../org/genivi/am/RoutingControlObserverProxy.h | 45 +- - .../genivi/am/RoutingControlObserverProxyBase.h | 20 +- - .../org/genivi/am/RoutingControlObserverStub.h | 24 +- - .../am/RoutingControlObserverStubDefault.cpp | 22 +- - .../genivi/am/RoutingControlObserverStubDefault.h | 27 +- - .../src-gen/org/genivi/am/RoutingControlProxy.h | 38 +- - .../org/genivi/am/RoutingControlProxyBase.h | 18 +- - .../src-gen/org/genivi/am/RoutingControlStub.h | 22 +- - .../org/genivi/am/RoutingControlStubDefault.cpp | 18 +- - .../org/genivi/am/RoutingControlStubDefault.h | 25 +- - 56 files changed, 5246 insertions(+), 903 deletions(-) - create mode 100644 AudioManagerDaemon/src-gen/org/genivi/am.cpp - create mode 100644 AudioManagerDaemon/src-gen/org/genivi/am.h - -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/Consumer.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/Consumer.h -index 916c744..331e957 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/Consumer.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/Consumer.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.cpp -index 6971e07..3c50296 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.cpp -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -26,7 +24,7 @@ std::shared_ptr<CommonAPI::DBus::DBusProxy> createConsumerDBusProxy( - return std::make_shared<ConsumerDBusProxy>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection); - } - --__attribute__((constructor)) void registerConsumerDBusProxy(void) { -+INITIALIZER(registerConsumerDBusProxy) { - CommonAPI::DBus::DBusFactory::registerProxyFactoryMethod(Consumer::getInterfaceId(), - &createConsumerDBusProxy); - } -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.h -index 2e08248..7ed0a79 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusProxy.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.cpp -index 7c00c67..78f5c3c 100755 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.cpp -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - #include "ConsumerDBusStubAdapter.h" - #include <org/genivi/NodeStateManager/Consumer.h> -@@ -25,7 +23,7 @@ std::shared_ptr<CommonAPI::DBus::DBusStubAdapter> createConsumerDBusStubAdapter( - return std::make_shared<ConsumerDBusStubAdapter>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection, stubBase); - } - --__attribute__((constructor)) void registerConsumerDBusStubAdapter(void) { -+INITIALIZER(registerConsumerDBusStubAdapter) { - CommonAPI::DBus::DBusFactory::registerAdapterFactoryMethod(Consumer::getInterfaceId(), - &createConsumerDBusStubAdapter); - } -@@ -38,6 +36,7 @@ ConsumerDBusStubAdapterInternal::~ConsumerDBusStubAdapterInternal() { - } - - void ConsumerDBusStubAdapterInternal::deactivateManagedInstances() { -+ - } - - const char* ConsumerDBusStubAdapterInternal::getMethodsDBusIntrospectionXmlData() const { -@@ -131,87 +130,85 @@ const char* ConsumerDBusStubAdapterInternal::getMethodsDBusIntrospectionXmlData( - return introspectionData.c_str(); - } - --static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+CommonAPI::DBus::DBusGetAttributeStubDispatcher< - ConsumerStub, - CommonAPI::Version -- > getConsumerInterfaceVersionStubDispatcher(&ConsumerStub::getInterfaceVersion, "uu"); -+ > ConsumerDBusStubAdapterInternal::getConsumerInterfaceVersionStubDispatcher(&ConsumerStub::getInterfaceVersion, "uu"); - --static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+CommonAPI::DBus::DBusGetAttributeStubDispatcher< - ConsumerStub, - int32_t -- > getBootModeAttributeStubDispatcher(&ConsumerStub::getBootModeAttribute, "i"); -- --static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::getBootModeAttributeStubDispatcher(&ConsumerStub::getBootModeAttribute, "i"); -+CommonAPI::DBus::DBusGetAttributeStubDispatcher< - ConsumerStub, - int32_t -- > getRestartReasonAttributeStubDispatcher(&ConsumerStub::getRestartReasonAttribute, "i"); -- --static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::getRestartReasonAttributeStubDispatcher(&ConsumerStub::getRestartReasonAttribute, "i"); -+CommonAPI::DBus::DBusGetAttributeStubDispatcher< - ConsumerStub, - int32_t -- > getShutdownReasonAttributeStubDispatcher(&ConsumerStub::getShutdownReasonAttribute, "i"); -- --static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::getShutdownReasonAttributeStubDispatcher(&ConsumerStub::getShutdownReasonAttribute, "i"); -+CommonAPI::DBus::DBusGetAttributeStubDispatcher< - ConsumerStub, - int32_t -- > getWakeUpReasonAttributeStubDispatcher(&ConsumerStub::getWakeUpReasonAttribute, "i"); -+ > ConsumerDBusStubAdapterInternal::getWakeUpReasonAttributeStubDispatcher(&ConsumerStub::getWakeUpReasonAttribute, "i"); - - --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - ConsumerStub, - std::tuple<>, - std::tuple<uint32_t> -- > getAppHealthCountStubDispatcher(&ConsumerStub::GetAppHealthCount, "u"); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::getAppHealthCountStubDispatcher(&ConsumerStub::GetAppHealthCount, "u"); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - ConsumerStub, - std::tuple<uint32_t, int32_t>, - std::tuple<int32_t> -- > lifecycleRequestCompleteStubDispatcher(&ConsumerStub::LifecycleRequestComplete, "i"); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::lifecycleRequestCompleteStubDispatcher(&ConsumerStub::LifecycleRequestComplete, "i"); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - ConsumerStub, - std::tuple<>, - std::tuple<uint32_t> -- > getInterfaceVersionStubDispatcher(&ConsumerStub::GetInterfaceVersion, "u"); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::getInterfaceVersionStubDispatcher(&ConsumerStub::GetInterfaceVersion, "u"); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - ConsumerStub, - std::tuple<>, - std::tuple<int32_t, int32_t> -- > getApplicationModeStubDispatcher(&ConsumerStub::GetApplicationMode, "ii"); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::getApplicationModeStubDispatcher(&ConsumerStub::GetApplicationMode, "ii"); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - ConsumerStub, - std::tuple<std::string, std::string, int32_t>, - std::tuple<int32_t> -- > unRegisterSessionStubDispatcher(&ConsumerStub::UnRegisterSession, "i"); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::unRegisterSessionStubDispatcher(&ConsumerStub::UnRegisterSession, "i"); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - ConsumerStub, - std::tuple<std::string, std::string, int32_t, int32_t>, - std::tuple<int32_t> -- > registerSessionStubDispatcher(&ConsumerStub::RegisterSession, "i"); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::registerSessionStubDispatcher(&ConsumerStub::RegisterSession, "i"); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - ConsumerStub, - std::tuple<std::string, std::string, uint32_t>, - std::tuple<int32_t> -- > unRegisterShutdownClientStubDispatcher(&ConsumerStub::UnRegisterShutdownClient, "i"); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::unRegisterShutdownClientStubDispatcher(&ConsumerStub::UnRegisterShutdownClient, "i"); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - ConsumerStub, - std::tuple<std::string, std::string, uint32_t, uint32_t>, - std::tuple<int32_t> -- > registerShutdownClientStubDispatcher(&ConsumerStub::RegisterShutdownClient, "i"); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::registerShutdownClientStubDispatcher(&ConsumerStub::RegisterShutdownClient, "i"); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - ConsumerStub, - std::tuple<>, - std::tuple<int32_t, int32_t> -- > getNodeStateStubDispatcher(&ConsumerStub::GetNodeState, "ii"); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::getNodeStateStubDispatcher(&ConsumerStub::GetNodeState, "ii"); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - ConsumerStub, - std::tuple<std::string, int32_t>, - std::tuple<int32_t, int32_t> -- > getSessionStateStubDispatcher(&ConsumerStub::GetSessionState, "ii"); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > ConsumerDBusStubAdapterInternal::getSessionStateStubDispatcher(&ConsumerStub::GetSessionState, "ii"); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - ConsumerStub, - std::tuple<std::string, std::string, int32_t, int32_t>, - std::tuple<int32_t> -- > setSessionStateStubDispatcher(&ConsumerStub::SetSessionState, "i"); -+ > ConsumerDBusStubAdapterInternal::setSessionStateStubDispatcher(&ConsumerStub::SetSessionState, "i"); -+ - - - void ConsumerDBusStubAdapterInternal::fireNodeApplicationModeEvent(const int32_t& ApplicationModeId) { -@@ -242,10 +239,14 @@ void ConsumerDBusStubAdapterInternal::fireNodeStateEvent(const int32_t& NodeStat - ); - } - -+ - const ConsumerDBusStubAdapterHelper::StubDispatcherTable& ConsumerDBusStubAdapterInternal::getStubDispatcherTable() { - return stubDispatcherTable_; - } - -+const CommonAPI::DBus::StubAttributeTable& ConsumerDBusStubAdapterInternal::getStubAttributeTable() { -+ return stubAttributeTable_; -+} - - ConsumerDBusStubAdapterInternal::ConsumerDBusStubAdapterInternal( - const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, -@@ -273,25 +274,30 @@ ConsumerDBusStubAdapterInternal::ConsumerDBusStubAdapterInternal( - std::dynamic_pointer_cast<ConsumerStub>(stub), - false), - stubDispatcherTable_({ -- { { "getBootModeAttribute", "" }, &org::genivi::NodeStateManager::getBootModeAttributeStubDispatcher }, -- { { "getRestartReasonAttribute", "" }, &org::genivi::NodeStateManager::getRestartReasonAttributeStubDispatcher }, -- { { "getShutdownReasonAttribute", "" }, &org::genivi::NodeStateManager::getShutdownReasonAttributeStubDispatcher }, -- { { "getWakeUpReasonAttribute", "" }, &org::genivi::NodeStateManager::getWakeUpReasonAttributeStubDispatcher } -+ { { "getBootModeAttribute", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getBootModeAttributeStubDispatcher }, -+ { { "getRestartReasonAttribute", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getRestartReasonAttributeStubDispatcher }, -+ { { "getShutdownReasonAttribute", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getShutdownReasonAttributeStubDispatcher }, -+ { { "getWakeUpReasonAttribute", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getWakeUpReasonAttributeStubDispatcher } - , -- { { "GetAppHealthCount", "" }, &org::genivi::NodeStateManager::getAppHealthCountStubDispatcher }, -- { { "LifecycleRequestComplete", "ui" }, &org::genivi::NodeStateManager::lifecycleRequestCompleteStubDispatcher }, -- { { "GetInterfaceVersion", "" }, &org::genivi::NodeStateManager::getInterfaceVersionStubDispatcher }, -- { { "GetApplicationMode", "" }, &org::genivi::NodeStateManager::getApplicationModeStubDispatcher }, -- { { "UnRegisterSession", "ssi" }, &org::genivi::NodeStateManager::unRegisterSessionStubDispatcher }, -- { { "RegisterSession", "ssii" }, &org::genivi::NodeStateManager::registerSessionStubDispatcher }, -- { { "UnRegisterShutdownClient", "ssu" }, &org::genivi::NodeStateManager::unRegisterShutdownClientStubDispatcher }, -- { { "RegisterShutdownClient", "ssuu" }, &org::genivi::NodeStateManager::registerShutdownClientStubDispatcher }, -- { { "GetNodeState", "" }, &org::genivi::NodeStateManager::getNodeStateStubDispatcher }, -- { { "GetSessionState", "si" }, &org::genivi::NodeStateManager::getSessionStateStubDispatcher }, -- { { "SetSessionState", "ssii" }, &org::genivi::NodeStateManager::setSessionStateStubDispatcher } -- }) { -+ { { "GetAppHealthCount", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getAppHealthCountStubDispatcher }, -+ { { "LifecycleRequestComplete", "ui" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::lifecycleRequestCompleteStubDispatcher }, -+ { { "GetInterfaceVersion", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getInterfaceVersionStubDispatcher }, -+ { { "GetApplicationMode", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getApplicationModeStubDispatcher }, -+ { { "UnRegisterSession", "ssi" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::unRegisterSessionStubDispatcher }, -+ { { "RegisterSession", "ssii" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::registerSessionStubDispatcher }, -+ { { "UnRegisterShutdownClient", "ssu" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::unRegisterShutdownClientStubDispatcher }, -+ { { "RegisterShutdownClient", "ssuu" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::registerShutdownClientStubDispatcher }, -+ { { "GetNodeState", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getNodeStateStubDispatcher }, -+ { { "GetSessionState", "si" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getSessionStateStubDispatcher }, -+ { { "SetSessionState", "ssii" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::setSessionStateStubDispatcher } -+ }), -+ stubAttributeTable_() { -+ -+ stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::NodeStateManager::ConsumerDBusStubAdapterInternal::getConsumerInterfaceVersionStubDispatcher }); -+} - -- stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::NodeStateManager::getConsumerInterfaceVersionStubDispatcher }); -+const bool ConsumerDBusStubAdapterInternal::hasFreedesktopProperties() { -+ return false; - } - - } // namespace NodeStateManager -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.h -index d8335d7..9f154fe 100755 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerDBusStubAdapter.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -32,7 +30,7 @@ namespace NodeStateManager { - - typedef CommonAPI::DBus::DBusStubAdapterHelper<ConsumerStub> ConsumerDBusStubAdapterHelper; - --class ConsumerDBusStubAdapterInternal: public ConsumerStubAdapter, public ConsumerDBusStubAdapterHelper { -+class ConsumerDBusStubAdapterInternal: public virtual ConsumerStubAdapter, public ConsumerDBusStubAdapterHelper { - public: - ConsumerDBusStubAdapterInternal( - const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, -@@ -45,6 +43,8 @@ class ConsumerDBusStubAdapterInternal: public ConsumerStubAdapter, public Consum - - ~ConsumerDBusStubAdapterInternal(); - -+ virtual const bool hasFreedesktopProperties(); -+ - - void fireNodeApplicationModeEvent(const int32_t& ApplicationModeId); - void fireSessionStateChangedEvent(const std::string& SessionStateName, const int32_t& SeatID, const int32_t& SessionState); -@@ -52,15 +52,99 @@ class ConsumerDBusStubAdapterInternal: public ConsumerStubAdapter, public Consum - - - const ConsumerDBusStubAdapterHelper::StubDispatcherTable& getStubDispatcherTable(); -+ const CommonAPI::DBus::StubAttributeTable& getStubAttributeTable(); - - void deactivateManagedInstances(); - - -+static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ ConsumerStub, -+ CommonAPI::Version -+ > getConsumerInterfaceVersionStubDispatcher; -+ -+static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ ConsumerStub, -+ int32_t -+ > getBootModeAttributeStubDispatcher; -+static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ ConsumerStub, -+ int32_t -+ > getRestartReasonAttributeStubDispatcher; -+static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ ConsumerStub, -+ int32_t -+ > getShutdownReasonAttributeStubDispatcher; -+static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ ConsumerStub, -+ int32_t -+ > getWakeUpReasonAttributeStubDispatcher; -+ -+ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ ConsumerStub, -+ std::tuple<>, -+ std::tuple<uint32_t> -+ > getAppHealthCountStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ ConsumerStub, -+ std::tuple<uint32_t, int32_t>, -+ std::tuple<int32_t> -+ > lifecycleRequestCompleteStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ ConsumerStub, -+ std::tuple<>, -+ std::tuple<uint32_t> -+ > getInterfaceVersionStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ ConsumerStub, -+ std::tuple<>, -+ std::tuple<int32_t, int32_t> -+ > getApplicationModeStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ ConsumerStub, -+ std::tuple<std::string, std::string, int32_t>, -+ std::tuple<int32_t> -+ > unRegisterSessionStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ ConsumerStub, -+ std::tuple<std::string, std::string, int32_t, int32_t>, -+ std::tuple<int32_t> -+ > registerSessionStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ ConsumerStub, -+ std::tuple<std::string, std::string, uint32_t>, -+ std::tuple<int32_t> -+ > unRegisterShutdownClientStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ ConsumerStub, -+ std::tuple<std::string, std::string, uint32_t, uint32_t>, -+ std::tuple<int32_t> -+ > registerShutdownClientStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ ConsumerStub, -+ std::tuple<>, -+ std::tuple<int32_t, int32_t> -+ > getNodeStateStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ ConsumerStub, -+ std::tuple<std::string, int32_t>, -+ std::tuple<int32_t, int32_t> -+ > getSessionStateStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ ConsumerStub, -+ std::tuple<std::string, std::string, int32_t, int32_t>, -+ std::tuple<int32_t> -+ > setSessionStateStubDispatcher; -+ -+ -+ -+ - protected: - virtual const char* getMethodsDBusIntrospectionXmlData() const; -- -- private: -+ -+ private: - ConsumerDBusStubAdapterHelper::StubDispatcherTable stubDispatcherTable_; -+ CommonAPI::DBus::StubAttributeTable stubAttributeTable_; - }; - - class ConsumerDBusStubAdapter: public ConsumerDBusStubAdapterInternal, public std::enable_shared_from_this<ConsumerDBusStubAdapter> { -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxy.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxy.h -index bd473f1..7fff5d7 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxy.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxy.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -358,6 +356,12 @@ public: - std::shared_ptr<ConsumerProxyBase> delegate_; - }; - -+#ifdef WIN32 -+ typedef ConsumerProxy<CommonAPI::WINDummyAttributeExtension<CommonAPI::WINDummyAttribute>> ConsumerProxyDefault; -+#else -+ typedef ConsumerProxy<> ConsumerProxyDefault; -+#endif -+ - namespace ConsumerExtensions { - template <template <typename > class _ExtensionType> - class BootModeAttributeExtension { -@@ -366,6 +370,9 @@ namespace ConsumerExtensions { - - static_assert(std::is_base_of<typename CommonAPI::AttributeExtension<ConsumerProxyBase::BootModeAttribute>, extension_type>::value, - "Not CommonAPI Attribute Extension!"); -+ #ifdef WIN32 -+ BootModeAttributeExtension() {} -+ #endif - - BootModeAttributeExtension(ConsumerProxyBase& proxy): attributeExtension_(proxy.getBootModeAttribute()) { - } -@@ -385,6 +392,9 @@ namespace ConsumerExtensions { - - static_assert(std::is_base_of<typename CommonAPI::AttributeExtension<ConsumerProxyBase::RestartReasonAttribute>, extension_type>::value, - "Not CommonAPI Attribute Extension!"); -+ #ifdef WIN32 -+ RestartReasonAttributeExtension() {} -+ #endif - - RestartReasonAttributeExtension(ConsumerProxyBase& proxy): attributeExtension_(proxy.getRestartReasonAttribute()) { - } -@@ -404,6 +414,9 @@ namespace ConsumerExtensions { - - static_assert(std::is_base_of<typename CommonAPI::AttributeExtension<ConsumerProxyBase::ShutdownReasonAttribute>, extension_type>::value, - "Not CommonAPI Attribute Extension!"); -+ #ifdef WIN32 -+ ShutdownReasonAttributeExtension() {} -+ #endif - - ShutdownReasonAttributeExtension(ConsumerProxyBase& proxy): attributeExtension_(proxy.getShutdownReasonAttribute()) { - } -@@ -423,6 +436,9 @@ namespace ConsumerExtensions { - - static_assert(std::is_base_of<typename CommonAPI::AttributeExtension<ConsumerProxyBase::WakeUpReasonAttribute>, extension_type>::value, - "Not CommonAPI Attribute Extension!"); -+ #ifdef WIN32 -+ WakeUpReasonAttributeExtension() {} -+ #endif - - WakeUpReasonAttributeExtension(ConsumerProxyBase& proxy): attributeExtension_(proxy.getWakeUpReasonAttribute()) { - } -@@ -442,8 +458,8 @@ namespace ConsumerExtensions { - // - template <typename ... _AttributeExtensions> - ConsumerProxy<_AttributeExtensions...>::ConsumerProxy(std::shared_ptr<CommonAPI::Proxy> delegate): -- delegate_(std::dynamic_pointer_cast<ConsumerProxyBase>(delegate)), -- _AttributeExtensions(*(std::dynamic_pointer_cast<ConsumerProxyBase>(delegate)))... { -+ _AttributeExtensions(*(std::dynamic_pointer_cast<ConsumerProxyBase>(delegate)))..., -+ delegate_(std::dynamic_pointer_cast<ConsumerProxyBase>(delegate)) { - } - - template <typename ... _AttributeExtensions> -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxyBase.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxyBase.h -index a5d9ed8..b1ed2c7 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxyBase.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerProxyBase.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStub.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStub.h -index c56949a..cec15a4 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStub.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStub.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -97,7 +95,7 @@ class ConsumerStubRemoteEvent { - * This class and the one above are the ones an application developer needs to have - * a look at if he wants to implement a service. - */ --class ConsumerStub : public virtual CommonAPI::Stub<ConsumerStubAdapter, ConsumerStubRemoteEvent> { -+class ConsumerStub: public virtual CommonAPI::Stub<ConsumerStubAdapter, ConsumerStubRemoteEvent> { - public: - virtual ~ConsumerStub() { } - virtual const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) = 0; -@@ -143,6 +141,8 @@ public: - using CommonAPI::Stub<ConsumerStubAdapter, ConsumerStubRemoteEvent>::initStubAdapter; - typedef CommonAPI::Stub<ConsumerStubAdapter, ConsumerStubRemoteEvent>::StubAdapterType StubAdapterType; - typedef CommonAPI::Stub<ConsumerStubAdapter, ConsumerStubRemoteEvent>::RemoteEventHandlerType RemoteEventHandlerType; -+ typedef ConsumerStubRemoteEvent RemoteEventType; -+ typedef Consumer StubInterface; - }; - - } // namespace NodeStateManager -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.cpp -index 1e34da5..ae9df6d 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.cpp -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - #include <org/genivi/NodeStateManager/ConsumerStubDefault.h> - -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.h -index 80dc926..a202e01 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/ConsumerStubDefault.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -100,8 +98,7 @@ protected: - virtual bool validateShutdownReasonAttributeRequestedValue(const int32_t& value); - virtual bool trySetWakeUpReasonAttribute(int32_t value); - virtual bool validateWakeUpReasonAttributeRequestedValue(const int32_t& value); --private: -- class RemoteEventHandler: public ConsumerStubRemoteEvent { -+ class RemoteEventHandler: public virtual ConsumerStubRemoteEvent { - public: - RemoteEventHandler(ConsumerStubDefault* defaultStub); - -@@ -113,8 +110,8 @@ private: - private: - ConsumerStubDefault* defaultStub_; - }; -- -- RemoteEventHandler remoteEventHandler_; -+private: -+ ConsumerStubDefault::RemoteEventHandler remoteEventHandler_; - - int32_t bootModeAttributeValue_; - int32_t restartReasonAttributeValue_; -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumer.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumer.h -index 56cbf4c..4324f5a 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumer.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumer.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.cpp -index ab06c26..9342ce1 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.cpp -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -26,7 +24,7 @@ std::shared_ptr<CommonAPI::DBus::DBusProxy> createLifeCycleConsumerDBusProxy( - return std::make_shared<LifeCycleConsumerDBusProxy>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection); - } - --__attribute__((constructor)) void registerLifeCycleConsumerDBusProxy(void) { -+INITIALIZER(registerLifeCycleConsumerDBusProxy) { - CommonAPI::DBus::DBusFactory::registerProxyFactoryMethod(LifeCycleConsumer::getInterfaceId(), - &createLifeCycleConsumerDBusProxy); - } -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.h -index d69d805..99142ee 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusProxy.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.cpp -index 96ac35b..c35cb3d 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.cpp -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - #include "LifeCycleConsumerDBusStubAdapter.h" - #include <org/genivi/NodeStateManager/LifeCycleConsumer.h> -@@ -25,7 +23,7 @@ std::shared_ptr<CommonAPI::DBus::DBusStubAdapter> createLifeCycleConsumerDBusStu - return std::make_shared<LifeCycleConsumerDBusStubAdapter>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection, stubBase); - } - --__attribute__((constructor)) void registerLifeCycleConsumerDBusStubAdapter(void) { -+INITIALIZER(registerLifeCycleConsumerDBusStubAdapter) { - CommonAPI::DBus::DBusFactory::registerAdapterFactoryMethod(LifeCycleConsumer::getInterfaceId(), - &createLifeCycleConsumerDBusStubAdapter); - } -@@ -38,6 +36,7 @@ LifeCycleConsumerDBusStubAdapterInternal::~LifeCycleConsumerDBusStubAdapterInter - } - - void LifeCycleConsumerDBusStubAdapterInternal::deactivateManagedInstances() { -+ - } - - const char* LifeCycleConsumerDBusStubAdapterInternal::getMethodsDBusIntrospectionXmlData() const { -@@ -55,17 +54,20 @@ const char* LifeCycleConsumerDBusStubAdapterInternal::getMethodsDBusIntrospectio - return introspectionData.c_str(); - } - --static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+CommonAPI::DBus::DBusGetAttributeStubDispatcher< - LifeCycleConsumerStub, - CommonAPI::Version -- > getLifeCycleConsumerInterfaceVersionStubDispatcher(&LifeCycleConsumerStub::getInterfaceVersion, "uu"); -+ > LifeCycleConsumerDBusStubAdapterInternal::getLifeCycleConsumerInterfaceVersionStubDispatcher(&LifeCycleConsumerStub::getInterfaceVersion, "uu"); -+ - - --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - LifeCycleConsumerStub, - std::tuple<uint32_t, uint32_t>, - std::tuple<int32_t> -- > lifecycleRequestStubDispatcher(&LifeCycleConsumerStub::LifecycleRequest, "i"); -+ > LifeCycleConsumerDBusStubAdapterInternal::lifecycleRequestStubDispatcher(&LifeCycleConsumerStub::LifecycleRequest, "i"); -+ -+ - - - -@@ -73,6 +75,9 @@ const LifeCycleConsumerDBusStubAdapterHelper::StubDispatcherTable& LifeCycleCons - return stubDispatcherTable_; - } - -+const CommonAPI::DBus::StubAttributeTable& LifeCycleConsumerDBusStubAdapterInternal::getStubAttributeTable() { -+ return stubAttributeTable_; -+} - - LifeCycleConsumerDBusStubAdapterInternal::LifeCycleConsumerDBusStubAdapterInternal( - const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, -@@ -100,10 +105,15 @@ LifeCycleConsumerDBusStubAdapterInternal::LifeCycleConsumerDBusStubAdapterIntern - std::dynamic_pointer_cast<LifeCycleConsumerStub>(stub), - false), - stubDispatcherTable_({ -- { { "LifecycleRequest", "uu" }, &org::genivi::NodeStateManager::lifecycleRequestStubDispatcher } -- }) { -+ { { "LifecycleRequest", "uu" }, &org::genivi::NodeStateManager::LifeCycleConsumerDBusStubAdapterInternal::lifecycleRequestStubDispatcher } -+ }), -+ stubAttributeTable_() { -+ -+ stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::NodeStateManager::LifeCycleConsumerDBusStubAdapterInternal::getLifeCycleConsumerInterfaceVersionStubDispatcher }); -+} - -- stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::NodeStateManager::getLifeCycleConsumerInterfaceVersionStubDispatcher }); -+const bool LifeCycleConsumerDBusStubAdapterInternal::hasFreedesktopProperties() { -+ return false; - } - - } // namespace NodeStateManager -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.h -index c03f0c3..f07c508 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerDBusStubAdapter.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -32,7 +30,7 @@ namespace NodeStateManager { - - typedef CommonAPI::DBus::DBusStubAdapterHelper<LifeCycleConsumerStub> LifeCycleConsumerDBusStubAdapterHelper; - --class LifeCycleConsumerDBusStubAdapterInternal: public LifeCycleConsumerStubAdapter, public LifeCycleConsumerDBusStubAdapterHelper { -+class LifeCycleConsumerDBusStubAdapterInternal: public virtual LifeCycleConsumerStubAdapter, public LifeCycleConsumerDBusStubAdapterHelper { - public: - LifeCycleConsumerDBusStubAdapterInternal( - const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, -@@ -45,19 +43,39 @@ class LifeCycleConsumerDBusStubAdapterInternal: public LifeCycleConsumerStubAdap - - ~LifeCycleConsumerDBusStubAdapterInternal(); - -+ virtual const bool hasFreedesktopProperties(); -+ - - - - const LifeCycleConsumerDBusStubAdapterHelper::StubDispatcherTable& getStubDispatcherTable(); -+ const CommonAPI::DBus::StubAttributeTable& getStubAttributeTable(); - - void deactivateManagedInstances(); - - -+static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ LifeCycleConsumerStub, -+ CommonAPI::Version -+ > getLifeCycleConsumerInterfaceVersionStubDispatcher; -+ -+ -+ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ LifeCycleConsumerStub, -+ std::tuple<uint32_t, uint32_t>, -+ std::tuple<int32_t> -+ > lifecycleRequestStubDispatcher; -+ -+ -+ -+ - protected: - virtual const char* getMethodsDBusIntrospectionXmlData() const; -- -- private: -+ -+ private: - LifeCycleConsumerDBusStubAdapterHelper::StubDispatcherTable stubDispatcherTable_; -+ CommonAPI::DBus::StubAttributeTable stubAttributeTable_; - }; - - class LifeCycleConsumerDBusStubAdapter: public LifeCycleConsumerDBusStubAdapterInternal, public std::enable_shared_from_this<LifeCycleConsumerDBusStubAdapter> { -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxy.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxy.h -index 374ef1e..36da1a7 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxy.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxy.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -108,14 +106,20 @@ public: - std::shared_ptr<LifeCycleConsumerProxyBase> delegate_; - }; - -+#ifdef WIN32 -+ typedef LifeCycleConsumerProxy<CommonAPI::WINDummyAttributeExtension<CommonAPI::WINDummyAttribute>> LifeCycleConsumerProxyDefault; -+#else -+ typedef LifeCycleConsumerProxy<> LifeCycleConsumerProxyDefault; -+#endif -+ - - // - // LifeCycleConsumerProxy Implementation - // - template <typename ... _AttributeExtensions> - LifeCycleConsumerProxy<_AttributeExtensions...>::LifeCycleConsumerProxy(std::shared_ptr<CommonAPI::Proxy> delegate): -- delegate_(std::dynamic_pointer_cast<LifeCycleConsumerProxyBase>(delegate)), -- _AttributeExtensions(*(std::dynamic_pointer_cast<LifeCycleConsumerProxyBase>(delegate)))... { -+ _AttributeExtensions(*(std::dynamic_pointer_cast<LifeCycleConsumerProxyBase>(delegate)))..., -+ delegate_(std::dynamic_pointer_cast<LifeCycleConsumerProxyBase>(delegate)) { - } - - template <typename ... _AttributeExtensions> -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxyBase.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxyBase.h -index ad8ee6a..c9d727d 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxyBase.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerProxyBase.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStub.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStub.h -index 58f5bb0..20116b6 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStub.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStub.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -77,7 +75,7 @@ class LifeCycleConsumerStubRemoteEvent { - * This class and the one above are the ones an application developer needs to have - * a look at if he wants to implement a service. - */ --class LifeCycleConsumerStub : public virtual CommonAPI::Stub<LifeCycleConsumerStubAdapter, LifeCycleConsumerStubRemoteEvent> { -+class LifeCycleConsumerStub: public virtual CommonAPI::Stub<LifeCycleConsumerStubAdapter, LifeCycleConsumerStubRemoteEvent> { - public: - virtual ~LifeCycleConsumerStub() { } - virtual const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) = 0; -@@ -89,6 +87,8 @@ public: - using CommonAPI::Stub<LifeCycleConsumerStubAdapter, LifeCycleConsumerStubRemoteEvent>::initStubAdapter; - typedef CommonAPI::Stub<LifeCycleConsumerStubAdapter, LifeCycleConsumerStubRemoteEvent>::StubAdapterType StubAdapterType; - typedef CommonAPI::Stub<LifeCycleConsumerStubAdapter, LifeCycleConsumerStubRemoteEvent>::RemoteEventHandlerType RemoteEventHandlerType; -+ typedef LifeCycleConsumerStubRemoteEvent RemoteEventType; -+ typedef LifeCycleConsumer StubInterface; - }; - - } // namespace NodeStateManager -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.cpp b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.cpp -index 03801fa..f91ebc4 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.cpp -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - #include <org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.h> - -diff --git a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.h b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.h -index fe35b9f..8b2e805 100644 ---- a/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.h -+++ b/AudioManagerDaemon/src-gen/org/genivi/NodeStateManager/LifeCycleConsumerStubDefault.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -47,8 +45,7 @@ public: - - - protected: --private: -- class RemoteEventHandler: public LifeCycleConsumerStubRemoteEvent { -+ class RemoteEventHandler: public virtual LifeCycleConsumerStubRemoteEvent { - public: - RemoteEventHandler(LifeCycleConsumerStubDefault* defaultStub); - -@@ -56,8 +53,8 @@ private: - private: - LifeCycleConsumerStubDefault* defaultStub_; - }; -- -- RemoteEventHandler remoteEventHandler_; -+private: -+ LifeCycleConsumerStubDefault::RemoteEventHandler remoteEventHandler_; - - - CommonAPI::Version interfaceVersion_; -diff --git a/AudioManagerDaemon/src-gen/org/genivi/am.cpp b/AudioManagerDaemon/src-gen/org/genivi/am.cpp -new file mode 100644 -index 0000000..152c8b6 ---- /dev/null -+++ b/AudioManagerDaemon/src-gen/org/genivi/am.cpp -@@ -0,0 +1,991 @@ -+/* -+* This file was generated by the CommonAPI Generators. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. -+* -+* -+*/ -+/** -+ * @author Christian Linke -+ */ -+#include "am.h" -+ -+ -+namespace org { -+namespace genivi { -+namespace am { -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+am_Route_s::am_Route_s(const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_RoutingElement_L& routeValue): -+ sourceID(sourceIDValue), -+ sinkID(sinkIDValue), -+ route(routeValue) -+{ -+} -+ -+ -+bool operator==(const am_Route_s& lhs, const am_Route_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.sourceID == rhs.sourceID && -+ lhs.sinkID == rhs.sinkID && -+ lhs.route == rhs.route -+ ; -+} -+ -+void am_Route_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> sourceID; -+ inputStream >> sinkID; -+ inputStream >> route; -+} -+ -+void am_Route_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << sourceID; -+ outputStream << sinkID; -+ outputStream << route; -+} -+ -+am_Availability_s::am_Availability_s(const am_Availability_e& availabilityValue, const am_CustomAvailabilityReason_t& availabilityReasonValue): -+ availability(availabilityValue), -+ availabilityReason(availabilityReasonValue) -+{ -+} -+ -+ -+bool operator==(const am_Availability_s& lhs, const am_Availability_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.availability == rhs.availability && -+ lhs.availabilityReason == rhs.availabilityReason -+ ; -+} -+ -+void am_Availability_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> availability; -+ inputStream >> availabilityReason; -+} -+ -+void am_Availability_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << availability; -+ outputStream << availabilityReason; -+} -+ -+am_ClassProperty_s::am_ClassProperty_s(const am_CustomClassProperty_t& classPropertyValue, const int16_t& valueValue): -+ classProperty(classPropertyValue), -+ value(valueValue) -+{ -+} -+ -+ -+bool operator==(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.classProperty == rhs.classProperty && -+ lhs.value == rhs.value -+ ; -+} -+ -+void am_ClassProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> classProperty; -+ inputStream >> value; -+} -+ -+void am_ClassProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << classProperty; -+ outputStream << value; -+} -+ -+am_Crossfader_s::am_Crossfader_s(const am_crossfaderID_t& crossfaderIDValue, const std::string& nameValue, const am_sinkID_t& sinkID_AValue, const am_sinkID_t& sinkID_BValue, const am_sourceID_t& sourceIDValue, const am_HotSink_e& hotSinkValue): -+ crossfaderID(crossfaderIDValue), -+ name(nameValue), -+ sinkID_A(sinkID_AValue), -+ sinkID_B(sinkID_BValue), -+ sourceID(sourceIDValue), -+ hotSink(hotSinkValue) -+{ -+} -+ -+ -+bool operator==(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.crossfaderID == rhs.crossfaderID && -+ lhs.name == rhs.name && -+ lhs.sinkID_A == rhs.sinkID_A && -+ lhs.sinkID_B == rhs.sinkID_B && -+ lhs.sourceID == rhs.sourceID && -+ lhs.hotSink == rhs.hotSink -+ ; -+} -+ -+void am_Crossfader_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> crossfaderID; -+ inputStream >> name; -+ inputStream >> sinkID_A; -+ inputStream >> sinkID_B; -+ inputStream >> sourceID; -+ inputStream >> hotSink; -+} -+ -+void am_Crossfader_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << crossfaderID; -+ outputStream << name; -+ outputStream << sinkID_A; -+ outputStream << sinkID_B; -+ outputStream << sourceID; -+ outputStream << hotSink; -+} -+ -+am_Gateway_s::am_Gateway_s(const am_gatewayID_t& gatewayIDValue, const std::string& nameValue, const am_sinkID_t& sinkIDValue, const am_sourceID_t& sourceIDValue, const am_domainID_t& domainSinkIDValue, const am_domainID_t& domainSourceIDValue, const am_domainID_t& controlDomainIDValue, const am_ConnectionFormat_L& listSourceFormatsValue, const am_ConnectionFormat_L& listSinkFormatsValue, const am_Convertion_L& convertionMatrixValue): -+ gatewayID(gatewayIDValue), -+ name(nameValue), -+ sinkID(sinkIDValue), -+ sourceID(sourceIDValue), -+ domainSinkID(domainSinkIDValue), -+ domainSourceID(domainSourceIDValue), -+ controlDomainID(controlDomainIDValue), -+ listSourceFormats(listSourceFormatsValue), -+ listSinkFormats(listSinkFormatsValue), -+ convertionMatrix(convertionMatrixValue) -+{ -+} -+ -+ -+bool operator==(const am_Gateway_s& lhs, const am_Gateway_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.gatewayID == rhs.gatewayID && -+ lhs.name == rhs.name && -+ lhs.sinkID == rhs.sinkID && -+ lhs.sourceID == rhs.sourceID && -+ lhs.domainSinkID == rhs.domainSinkID && -+ lhs.domainSourceID == rhs.domainSourceID && -+ lhs.controlDomainID == rhs.controlDomainID && -+ lhs.listSourceFormats == rhs.listSourceFormats && -+ lhs.listSinkFormats == rhs.listSinkFormats && -+ lhs.convertionMatrix == rhs.convertionMatrix -+ ; -+} -+ -+void am_Gateway_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> gatewayID; -+ inputStream >> name; -+ inputStream >> sinkID; -+ inputStream >> sourceID; -+ inputStream >> domainSinkID; -+ inputStream >> domainSourceID; -+ inputStream >> controlDomainID; -+ inputStream >> listSourceFormats; -+ inputStream >> listSinkFormats; -+ inputStream >> convertionMatrix; -+} -+ -+void am_Gateway_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << gatewayID; -+ outputStream << name; -+ outputStream << sinkID; -+ outputStream << sourceID; -+ outputStream << domainSinkID; -+ outputStream << domainSourceID; -+ outputStream << controlDomainID; -+ outputStream << listSourceFormats; -+ outputStream << listSinkFormats; -+ outputStream << convertionMatrix; -+} -+ -+am_RoutingElement_s::am_RoutingElement_s(const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_domainID_t& domainIDValue, const am_CustomConnectionFormat_t& connectionFormatValue): -+ sourceID(sourceIDValue), -+ sinkID(sinkIDValue), -+ domainID(domainIDValue), -+ connectionFormat(connectionFormatValue) -+{ -+} -+ -+ -+bool operator==(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.sourceID == rhs.sourceID && -+ lhs.sinkID == rhs.sinkID && -+ lhs.domainID == rhs.domainID && -+ lhs.connectionFormat == rhs.connectionFormat -+ ; -+} -+ -+void am_RoutingElement_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> sourceID; -+ inputStream >> sinkID; -+ inputStream >> domainID; -+ inputStream >> connectionFormat; -+} -+ -+void am_RoutingElement_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << sourceID; -+ outputStream << sinkID; -+ outputStream << domainID; -+ outputStream << connectionFormat; -+} -+ -+am_SoundProperty_s::am_SoundProperty_s(const am_CustomSoundPropertyType_t& typeValue, const int16_t& valueValue): -+ type(typeValue), -+ value(valueValue) -+{ -+} -+ -+ -+bool operator==(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.type == rhs.type && -+ lhs.value == rhs.value -+ ; -+} -+ -+void am_SoundProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> type; -+ inputStream >> value; -+} -+ -+void am_SoundProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << type; -+ outputStream << value; -+} -+ -+am_SystemProperty_s::am_SystemProperty_s(const am_CustomSystemPropertyType_t& typeValue, const int16_t& valueValue): -+ type(typeValue), -+ value(valueValue) -+{ -+} -+ -+ -+bool operator==(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.type == rhs.type && -+ lhs.value == rhs.value -+ ; -+} -+ -+void am_SystemProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> type; -+ inputStream >> value; -+} -+ -+void am_SystemProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << type; -+ outputStream << value; -+} -+ -+am_SinkClass_s::am_SinkClass_s(const am_sinkClass_t& sinkClassIDValue, const std::string& nameValue, const am_ClassProperty_L& listClassPropertiesValue): -+ sinkClassID(sinkClassIDValue), -+ name(nameValue), -+ listClassProperties(listClassPropertiesValue) -+{ -+} -+ -+ -+bool operator==(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.sinkClassID == rhs.sinkClassID && -+ lhs.name == rhs.name && -+ lhs.listClassProperties == rhs.listClassProperties -+ ; -+} -+ -+void am_SinkClass_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> sinkClassID; -+ inputStream >> name; -+ inputStream >> listClassProperties; -+} -+ -+void am_SinkClass_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << sinkClassID; -+ outputStream << name; -+ outputStream << listClassProperties; -+} -+ -+am_SourceClass_s::am_SourceClass_s(const am_sourceClass_t& sourceClassIDValue, const std::string& nameValue, const am_ClassProperty_L& listClassPropertiesValue): -+ sourceClassID(sourceClassIDValue), -+ name(nameValue), -+ listClassProperties(listClassPropertiesValue) -+{ -+} -+ -+ -+bool operator==(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.sourceClassID == rhs.sourceClassID && -+ lhs.name == rhs.name && -+ lhs.listClassProperties == rhs.listClassProperties -+ ; -+} -+ -+void am_SourceClass_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> sourceClassID; -+ inputStream >> name; -+ inputStream >> listClassProperties; -+} -+ -+void am_SourceClass_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << sourceClassID; -+ outputStream << name; -+ outputStream << listClassProperties; -+} -+ -+am_SourceType_s::am_SourceType_s(const am_sourceID_t& sourceIDValue, const std::string& nameValue, const am_Availability_s& availabilityValue, const am_sourceClass_t& sourceClassIDValue): -+ sourceID(sourceIDValue), -+ name(nameValue), -+ availability(availabilityValue), -+ sourceClassID(sourceClassIDValue) -+{ -+} -+ -+ -+bool operator==(const am_SourceType_s& lhs, const am_SourceType_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.sourceID == rhs.sourceID && -+ lhs.name == rhs.name && -+ lhs.availability == rhs.availability && -+ lhs.sourceClassID == rhs.sourceClassID -+ ; -+} -+ -+void am_SourceType_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> sourceID; -+ inputStream >> name; -+ inputStream >> availability; -+ inputStream >> sourceClassID; -+} -+ -+void am_SourceType_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << sourceID; -+ outputStream << name; -+ outputStream << availability; -+ outputStream << sourceClassID; -+} -+ -+am_SinkType_s::am_SinkType_s(const am_sinkID_t& sinkIDValue, const std::string& nameValue, const am_Availability_s& availabilityValue, const am_mainVolume_t& volumeValue, const am_MuteState_e& muteStateValue, const am_sinkClass_t& sinkClassIDValue): -+ sinkID(sinkIDValue), -+ name(nameValue), -+ availability(availabilityValue), -+ volume(volumeValue), -+ muteState(muteStateValue), -+ sinkClassID(sinkClassIDValue) -+{ -+} -+ -+ -+bool operator==(const am_SinkType_s& lhs, const am_SinkType_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.sinkID == rhs.sinkID && -+ lhs.name == rhs.name && -+ lhs.availability == rhs.availability && -+ lhs.volume == rhs.volume && -+ lhs.muteState == rhs.muteState && -+ lhs.sinkClassID == rhs.sinkClassID -+ ; -+} -+ -+void am_SinkType_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> sinkID; -+ inputStream >> name; -+ inputStream >> availability; -+ inputStream >> volume; -+ inputStream >> muteState; -+ inputStream >> sinkClassID; -+} -+ -+void am_SinkType_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << sinkID; -+ outputStream << name; -+ outputStream << availability; -+ outputStream << volume; -+ outputStream << muteState; -+ outputStream << sinkClassID; -+} -+ -+am_Handle_s::am_Handle_s(const am_Handle_e& handleTypeValue, const uint16_t& handleValue): -+ handleType(handleTypeValue), -+ handle(handleValue) -+{ -+} -+ -+ -+bool operator==(const am_Handle_s& lhs, const am_Handle_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.handleType == rhs.handleType && -+ lhs.handle == rhs.handle -+ ; -+} -+ -+void am_Handle_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> handleType; -+ inputStream >> handle; -+} -+ -+void am_Handle_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << handleType; -+ outputStream << handle; -+} -+ -+am_MainSoundProperty_s::am_MainSoundProperty_s(const am_CustomMainSoundPropertyType_t& typeValue, const int16_t& valueValue): -+ type(typeValue), -+ value(valueValue) -+{ -+} -+ -+ -+bool operator==(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.type == rhs.type && -+ lhs.value == rhs.value -+ ; -+} -+ -+void am_MainSoundProperty_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> type; -+ inputStream >> value; -+} -+ -+void am_MainSoundProperty_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << type; -+ outputStream << value; -+} -+ -+am_MainConnectionType_s::am_MainConnectionType_s(const am_mainConnectionID_t& mainConnectionIDValue, const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_timeSync_t& delayValue, const am_ConnectionState_e& connectionStateValue): -+ mainConnectionID(mainConnectionIDValue), -+ sourceID(sourceIDValue), -+ sinkID(sinkIDValue), -+ delay(delayValue), -+ connectionState(connectionStateValue) -+{ -+} -+ -+ -+bool operator==(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.mainConnectionID == rhs.mainConnectionID && -+ lhs.sourceID == rhs.sourceID && -+ lhs.sinkID == rhs.sinkID && -+ lhs.delay == rhs.delay && -+ lhs.connectionState == rhs.connectionState -+ ; -+} -+ -+void am_MainConnectionType_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> mainConnectionID; -+ inputStream >> sourceID; -+ inputStream >> sinkID; -+ inputStream >> delay; -+ inputStream >> connectionState; -+} -+ -+void am_MainConnectionType_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << mainConnectionID; -+ outputStream << sourceID; -+ outputStream << sinkID; -+ outputStream << delay; -+ outputStream << connectionState; -+} -+ -+am_MainConnection_s::am_MainConnection_s(const am_mainConnectionID_t& mainConnectionIDValue, const am_ConnectionState_e& connectionStateValue, const am_sinkID_t& sinkIDValue, const am_sourceID_t& sourceIDValue, const am_timeSync_t& delayValue, const am_ConnectionID_L& listConnectionIDValue): -+ mainConnectionID(mainConnectionIDValue), -+ connectionState(connectionStateValue), -+ sinkID(sinkIDValue), -+ sourceID(sourceIDValue), -+ delay(delayValue), -+ listConnectionID(listConnectionIDValue) -+{ -+} -+ -+ -+bool operator==(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.mainConnectionID == rhs.mainConnectionID && -+ lhs.connectionState == rhs.connectionState && -+ lhs.sinkID == rhs.sinkID && -+ lhs.sourceID == rhs.sourceID && -+ lhs.delay == rhs.delay && -+ lhs.listConnectionID == rhs.listConnectionID -+ ; -+} -+ -+void am_MainConnection_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> mainConnectionID; -+ inputStream >> connectionState; -+ inputStream >> sinkID; -+ inputStream >> sourceID; -+ inputStream >> delay; -+ inputStream >> listConnectionID; -+} -+ -+void am_MainConnection_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << mainConnectionID; -+ outputStream << connectionState; -+ outputStream << sinkID; -+ outputStream << sourceID; -+ outputStream << delay; -+ outputStream << listConnectionID; -+} -+ -+am_NotificationPayload_s::am_NotificationPayload_s(const am_CustomNotificationType_t& typeValue, const int16_t& valueValue): -+ type(typeValue), -+ value(valueValue) -+{ -+} -+ -+ -+bool operator==(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.type == rhs.type && -+ lhs.value == rhs.value -+ ; -+} -+ -+void am_NotificationPayload_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> type; -+ inputStream >> value; -+} -+ -+void am_NotificationPayload_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << type; -+ outputStream << value; -+} -+ -+am_NotificationConfiguration_s::am_NotificationConfiguration_s(const am_CustomNotificationType_t& typeValue, const am_NotificationStatus_e& statusValue, const int16_t& parameterValue): -+ type(typeValue), -+ status(statusValue), -+ parameter(parameterValue) -+{ -+} -+ -+ -+bool operator==(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.type == rhs.type && -+ lhs.status == rhs.status && -+ lhs.parameter == rhs.parameter -+ ; -+} -+ -+void am_NotificationConfiguration_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> type; -+ inputStream >> status; -+ inputStream >> parameter; -+} -+ -+void am_NotificationConfiguration_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << type; -+ outputStream << status; -+ outputStream << parameter; -+} -+ -+am_Sink_s::am_Sink_s(const am_sinkID_t& sinkIDValue, const std::string& nameValue, const am_domainID_t& domainIDValue, const am_sinkClass_t& sinkClassIDValue, const am_volume_t& volumeValue, const bool& visibleValue, const am_Availability_s& availableValue, const am_MuteState_e& muteStateValue, const am_mainVolume_t& mainVolumeValue, const am_SoundProperty_L& listSoundPropertiesValue, const am_ConnectionFormat_L& listConnectionFormatsValue, const am_MainSoundProperty_L& listMainSoundPropertiesValue, const am_NotificationConfiguration_L& listMainNotificationConfigurationsValue, const am_NotificationConfiguration_L& listNotificationConfigurationsValue): -+ sinkID(sinkIDValue), -+ name(nameValue), -+ domainID(domainIDValue), -+ sinkClassID(sinkClassIDValue), -+ volume(volumeValue), -+ visible(visibleValue), -+ available(availableValue), -+ muteState(muteStateValue), -+ mainVolume(mainVolumeValue), -+ listSoundProperties(listSoundPropertiesValue), -+ listConnectionFormats(listConnectionFormatsValue), -+ listMainSoundProperties(listMainSoundPropertiesValue), -+ listMainNotificationConfigurations(listMainNotificationConfigurationsValue), -+ listNotificationConfigurations(listNotificationConfigurationsValue) -+{ -+} -+ -+ -+bool operator==(const am_Sink_s& lhs, const am_Sink_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.sinkID == rhs.sinkID && -+ lhs.name == rhs.name && -+ lhs.domainID == rhs.domainID && -+ lhs.sinkClassID == rhs.sinkClassID && -+ lhs.volume == rhs.volume && -+ lhs.visible == rhs.visible && -+ lhs.available == rhs.available && -+ lhs.muteState == rhs.muteState && -+ lhs.mainVolume == rhs.mainVolume && -+ lhs.listSoundProperties == rhs.listSoundProperties && -+ lhs.listConnectionFormats == rhs.listConnectionFormats && -+ lhs.listMainSoundProperties == rhs.listMainSoundProperties && -+ lhs.listMainNotificationConfigurations == rhs.listMainNotificationConfigurations && -+ lhs.listNotificationConfigurations == rhs.listNotificationConfigurations -+ ; -+} -+ -+void am_Sink_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> sinkID; -+ inputStream >> name; -+ inputStream >> domainID; -+ inputStream >> sinkClassID; -+ inputStream >> volume; -+ inputStream >> visible; -+ inputStream >> available; -+ inputStream >> muteState; -+ inputStream >> mainVolume; -+ inputStream >> listSoundProperties; -+ inputStream >> listConnectionFormats; -+ inputStream >> listMainSoundProperties; -+ inputStream >> listMainNotificationConfigurations; -+ inputStream >> listNotificationConfigurations; -+} -+ -+void am_Sink_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << sinkID; -+ outputStream << name; -+ outputStream << domainID; -+ outputStream << sinkClassID; -+ outputStream << volume; -+ outputStream << visible; -+ outputStream << available; -+ outputStream << muteState; -+ outputStream << mainVolume; -+ outputStream << listSoundProperties; -+ outputStream << listConnectionFormats; -+ outputStream << listMainSoundProperties; -+ outputStream << listMainNotificationConfigurations; -+ outputStream << listNotificationConfigurations; -+} -+ -+am_Source_s::am_Source_s(const am_sourceID_t& sourceIDValue, const am_domainID_t& domainIDValue, const std::string& nameValue, const am_sourceClass_t& sourceClassIDValue, const am_SourceState_e& sourceStateValue, const am_volume_t& volumeValue, const bool& visibleValue, const am_Availability_s& availableValue, const am_InterruptState_e& interruptStateValue, const am_SoundProperty_L& listSoundPropertiesValue, const am_ConnectionFormat_L& listConnectionFormatsValue, const am_MainSoundProperty_L& listMainSoundPropertiesValue, const am_NotificationConfiguration_L& listMainNotificationConfigurationsValue, const am_NotificationConfiguration_L& listNotificationConfigurationsValue): -+ sourceID(sourceIDValue), -+ domainID(domainIDValue), -+ name(nameValue), -+ sourceClassID(sourceClassIDValue), -+ sourceState(sourceStateValue), -+ volume(volumeValue), -+ visible(visibleValue), -+ available(availableValue), -+ interruptState(interruptStateValue), -+ listSoundProperties(listSoundPropertiesValue), -+ listConnectionFormats(listConnectionFormatsValue), -+ listMainSoundProperties(listMainSoundPropertiesValue), -+ listMainNotificationConfigurations(listMainNotificationConfigurationsValue), -+ listNotificationConfigurations(listNotificationConfigurationsValue) -+{ -+} -+ -+ -+bool operator==(const am_Source_s& lhs, const am_Source_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.sourceID == rhs.sourceID && -+ lhs.domainID == rhs.domainID && -+ lhs.name == rhs.name && -+ lhs.sourceClassID == rhs.sourceClassID && -+ lhs.sourceState == rhs.sourceState && -+ lhs.volume == rhs.volume && -+ lhs.visible == rhs.visible && -+ lhs.available == rhs.available && -+ lhs.interruptState == rhs.interruptState && -+ lhs.listSoundProperties == rhs.listSoundProperties && -+ lhs.listConnectionFormats == rhs.listConnectionFormats && -+ lhs.listMainSoundProperties == rhs.listMainSoundProperties && -+ lhs.listMainNotificationConfigurations == rhs.listMainNotificationConfigurations && -+ lhs.listNotificationConfigurations == rhs.listNotificationConfigurations -+ ; -+} -+ -+void am_Source_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> sourceID; -+ inputStream >> domainID; -+ inputStream >> name; -+ inputStream >> sourceClassID; -+ inputStream >> sourceState; -+ inputStream >> volume; -+ inputStream >> visible; -+ inputStream >> available; -+ inputStream >> interruptState; -+ inputStream >> listSoundProperties; -+ inputStream >> listConnectionFormats; -+ inputStream >> listMainSoundProperties; -+ inputStream >> listMainNotificationConfigurations; -+ inputStream >> listNotificationConfigurations; -+} -+ -+void am_Source_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << sourceID; -+ outputStream << domainID; -+ outputStream << name; -+ outputStream << sourceClassID; -+ outputStream << sourceState; -+ outputStream << volume; -+ outputStream << visible; -+ outputStream << available; -+ outputStream << interruptState; -+ outputStream << listSoundProperties; -+ outputStream << listConnectionFormats; -+ outputStream << listMainSoundProperties; -+ outputStream << listMainNotificationConfigurations; -+ outputStream << listNotificationConfigurations; -+} -+ -+am_Domain_s::am_Domain_s(const am_domainID_t& domainIDValue, const std::string& nameValue, const std::string& busnameValue, const std::string& nodenameValue, const bool& earlyValue, const bool& completeValue, const am_DomainState_e& stateValue): -+ domainID(domainIDValue), -+ name(nameValue), -+ busname(busnameValue), -+ nodename(nodenameValue), -+ early(earlyValue), -+ complete(completeValue), -+ state(stateValue) -+{ -+} -+ -+ -+bool operator==(const am_Domain_s& lhs, const am_Domain_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.domainID == rhs.domainID && -+ lhs.name == rhs.name && -+ lhs.busname == rhs.busname && -+ lhs.nodename == rhs.nodename && -+ lhs.early == rhs.early && -+ lhs.complete == rhs.complete && -+ lhs.state == rhs.state -+ ; -+} -+ -+void am_Domain_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> domainID; -+ inputStream >> name; -+ inputStream >> busname; -+ inputStream >> nodename; -+ inputStream >> early; -+ inputStream >> complete; -+ inputStream >> state; -+} -+ -+void am_Domain_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << domainID; -+ outputStream << name; -+ outputStream << busname; -+ outputStream << nodename; -+ outputStream << early; -+ outputStream << complete; -+ outputStream << state; -+} -+ -+am_EarlyData_s::am_EarlyData_s(const am_EarlyDataType_e& typeValue, const am_DataType_u& sinksourceValue, const am_EarlyData_u& dataValue): -+ type(typeValue), -+ sinksource(sinksourceValue), -+ data(dataValue) -+{ -+} -+ -+ -+bool operator==(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.type == rhs.type && -+ lhs.sinksource == rhs.sinksource && -+ lhs.data == rhs.data -+ ; -+} -+ -+void am_EarlyData_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> type; -+ inputStream >> sinksource; -+ inputStream >> data; -+} -+ -+void am_EarlyData_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << type; -+ outputStream << sinksource; -+ outputStream << data; -+} -+ -+am_Connection_s::am_Connection_s(const am_connectionID_t& connectionIDValue, const am_sourceID_t& sourceIDValue, const am_sinkID_t& sinkIDValue, const am_timeSync_t& delayValue, const am_CustomConnectionFormat_t& connectionFormatValue): -+ connectionID(connectionIDValue), -+ sourceID(sourceIDValue), -+ sinkID(sinkIDValue), -+ delay(delayValue), -+ connectionFormat(connectionFormatValue) -+{ -+} -+ -+ -+bool operator==(const am_Connection_s& lhs, const am_Connection_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.connectionID == rhs.connectionID && -+ lhs.sourceID == rhs.sourceID && -+ lhs.sinkID == rhs.sinkID && -+ lhs.delay == rhs.delay && -+ lhs.connectionFormat == rhs.connectionFormat -+ ; -+} -+ -+void am_Connection_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> connectionID; -+ inputStream >> sourceID; -+ inputStream >> sinkID; -+ inputStream >> delay; -+ inputStream >> connectionFormat; -+} -+ -+void am_Connection_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << connectionID; -+ outputStream << sourceID; -+ outputStream << sinkID; -+ outputStream << delay; -+ outputStream << connectionFormat; -+} -+ -+am_Volumes_s::am_Volumes_s(const am_VolumeType_e& volumeTypeValue, const am_DataType_u& volumeIDValue, const am_volume_t& volumeValue, const am_CustomRampType_t& rampValue, const am_time_t& timeValue): -+ volumeType(volumeTypeValue), -+ volumeID(volumeIDValue), -+ volume(volumeValue), -+ ramp(rampValue), -+ time(timeValue) -+{ -+} -+ -+ -+bool operator==(const am_Volumes_s& lhs, const am_Volumes_s& rhs) { -+ if (&lhs == &rhs) -+ return true; -+ -+ return -+ lhs.volumeType == rhs.volumeType && -+ lhs.volumeID == rhs.volumeID && -+ lhs.volume == rhs.volume && -+ lhs.ramp == rhs.ramp && -+ lhs.time == rhs.time -+ ; -+} -+ -+void am_Volumes_s::readFromInputStream(CommonAPI::InputStream& inputStream) { -+ inputStream >> volumeType; -+ inputStream >> volumeID; -+ inputStream >> volume; -+ inputStream >> ramp; -+ inputStream >> time; -+} -+ -+void am_Volumes_s::writeToOutputStream(CommonAPI::OutputStream& outputStream) const { -+ outputStream << volumeType; -+ outputStream << volumeID; -+ outputStream << volume; -+ outputStream << ramp; -+ outputStream << time; -+} -+ -+ -+ -+} // namespace am -+} // namespace genivi -+} // namespace org -diff --git a/AudioManagerDaemon/src-gen/org/genivi/am.h b/AudioManagerDaemon/src-gen/org/genivi/am.h -new file mode 100644 -index 0000000..dced63c ---- /dev/null -+++ b/AudioManagerDaemon/src-gen/org/genivi/am.h -@@ -0,0 +1,2445 @@ -+/* -+* This file was generated by the CommonAPI Generators. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. -+* -+* -+*/ -+/** -+ * @author Christian Linke -+ */ -+#ifndef ORG_GENIVI_am_H_ -+#define ORG_GENIVI_am_H_ -+ -+ -+ -+#if !defined (COMMONAPI_INTERNAL_COMPILATION) -+#define COMMONAPI_INTERNAL_COMPILATION -+#endif -+ -+#include <CommonAPI/InputStream.h> -+#include <CommonAPI/OutputStream.h> -+#include <CommonAPI/SerializableStruct.h> -+#include <CommonAPI/SerializableVariant.h> -+#include <CommonAPI/types.h> -+#include <cstdint> -+#include <memory> -+#include <string> -+#include <vector> -+ -+#undef COMMONAPI_INTERNAL_COMPILATION -+ -+namespace org { -+namespace genivi { -+ -+namespace am { -+ /** -+ * a source ID -+ */ -+ /** -+ * a source ID -+ */ -+ typedef uint16_t am_sourceID_t; -+ /** -+ * a mainConnection ID -+ */ -+ /** -+ * a mainConnection ID -+ */ -+ typedef uint16_t am_mainConnectionID_t; -+ /** -+ * offset time that is introduced in milli seconds. -+ */ -+ /** -+ * offset time that is introduced in milli seconds. -+ */ -+ typedef int16_t am_timeSync_t; -+ /** -+ * a sink ID -+ */ -+ /** -+ * a sink ID -+ */ -+ typedef uint16_t am_sinkID_t; -+ /** -+ * represents the connection state -+ */ -+ enum class am_ConnectionState_e: int32_t { -+ CS_UNKNOWN = 0, -+ /** -+ * This means the connection is just building up -+ */ -+ CS_CONNECTING = 1, -+ /** -+ * the connection is ready to be used -+ */ -+ CS_CONNECTED = 2, -+ /** -+ * the connection is in the course to be knocked down -+ */ -+ CS_DISCONNECTING = 3, -+ /** -+ * only relevant for connectionStatechanged. Is send after the connection was -+ * removed -+ */ -+ CS_DISCONNECTED = 4, -+ /** -+ * this means the connection is still build up but unused at the moment -+ */ -+ CS_SUSPENDED = 5, -+ CS_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_ConnectionState_eComparator; -+ /** -+ * this type holds all information of connections relevant to the HMI -+ */ -+ /** -+ * this type holds all information of connections relevant to the HMI -+ */ -+ struct am_MainConnectionType_s: CommonAPI::SerializableStruct { -+ /** -+ * the ID of the mainconnection -+ */ -+ am_mainConnectionID_t mainConnectionID; -+ /** -+ * the sourceID where the connection starts -+ */ -+ am_sourceID_t sourceID; -+ /** -+ * the sinkID where the connection ends -+ */ -+ am_sinkID_t sinkID; -+ /** -+ * the delay of the mainconnection -+ */ -+ am_timeSync_t delay; -+ /** -+ * the current connection state -+ */ -+ am_ConnectionState_e connectionState; -+ -+ am_MainConnectionType_s() = default; -+ am_MainConnectionType_s(const am_mainConnectionID_t& mainConnectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_timeSync_t& delay, const am_ConnectionState_e& connectionState); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt16Type(); -+ typeOutputStream.writeInt32Type(); -+ } -+ }; -+ typedef std::vector<am_MainConnectionType_s> am_MainConnection_L; -+ /** -+ * product specific identifier of property -+ */ -+ /** -+ * product specific identifier of property -+ */ -+ typedef uint16_t am_CustomClassProperty_t; -+ /** -+ * describes class properties -+ */ -+ /** -+ * describes class properties -+ */ -+ struct am_ClassProperty_s: CommonAPI::SerializableStruct { -+ /** -+ * the property as enum -+ */ -+ am_CustomClassProperty_t classProperty; -+ /** -+ * the value of the property -+ */ -+ int16_t value; -+ -+ am_ClassProperty_s() = default; -+ am_ClassProperty_s(const am_CustomClassProperty_t& classProperty, const int16_t& value); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt16Type(); -+ } -+ }; -+ typedef std::vector<am_ClassProperty_s> am_ClassProperty_L; -+ typedef uint16_t am_sinkClass_t; -+ /** -+ * struct describing sinkclasses -+ */ -+ /** -+ * struct describing sinkclasses -+ */ -+ struct am_SinkClass_s: CommonAPI::SerializableStruct { -+ /** -+ * the ID of the sinkClass -+ */ -+ am_sinkClass_t sinkClassID; -+ /** -+ * the name of the sinkClass - must be unique in the system -+ */ -+ std::string name; -+ /** -+ * the list of the class properties. These are pairs of a project specific enum -+ * describing the type of the value and an integer holding the real value. -+ */ -+ am_ClassProperty_L listClassProperties; -+ -+ am_SinkClass_s() = default; -+ am_SinkClass_s(const am_sinkClass_t& sinkClassID, const std::string& name, const am_ClassProperty_L& listClassProperties); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeStringType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.endWriteVectorType(); -+ } -+ }; -+ typedef std::vector<am_SinkClass_s> am_SinkClass_L; -+ /** -+ * This is the volume presented on the command interface. It is in the duty of the -+ * Controller to change the volumes given here into meaningful values on the -+ * routing interface. -+ The range of this type is customer specific. -+ */ -+ /** -+ * This is the volume presented on the command interface. It is in the duty of the -+ * Controller to change the volumes given here into meaningful values on the -+ * routing interface. -+ The range of this type is customer specific. -+ */ -+ typedef int16_t am_mainVolume_t; -+ /** -+ * This project specific value gives the information about reason for reason for -+ * Source/Sink change -+ */ -+ /** -+ * This project specific value gives the information about reason for reason for -+ * Source/Sink change -+ */ -+ typedef uint16_t am_CustomAvailabilityReason_t; -+ /** -+ * with the help of this enum, sinks and sources can report their availability -+ * state -+ */ -+ enum class am_Availability_e: int32_t { -+ /** -+ * default -+ */ -+ A_UNKNOWN = 0, -+ /** -+ * The source / sink is available -+ */ -+ A_AVAILABLE = 1, -+ /** -+ * the source / sink is not available -+ */ -+ A_UNAVAILABLE = 2, -+ A_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_Availability_eComparator; -+ enum class am_MuteState_e: int32_t { -+ /** -+ * default -+ */ -+ MS_UNKNOWN = 0, -+ /** -+ * the source / sink is muted -+ */ -+ MS_MUTED = 1, -+ /** -+ * the source / sink is unmuted -+ */ -+ MS_UNMUTED = 2, -+ MS_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_MuteState_eComparator; -+ /** -+ * this describes the availability of a sink or a source together with the latest -+ * change -+ */ -+ /** -+ * this describes the availability of a sink or a source together with the latest -+ * change -+ */ -+ struct am_Availability_s: CommonAPI::SerializableStruct { -+ /** -+ * the current availability state -+ */ -+ am_Availability_e availability; -+ /** -+ * the reason for the last change. This can be used to trigger events that deal -+ * with state changes. -+ */ -+ am_CustomAvailabilityReason_t availabilityReason; -+ -+ am_Availability_s() = default; -+ am_Availability_s(const am_Availability_e& availability, const am_CustomAvailabilityReason_t& availabilityReason); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeInt32Type(); -+ typeOutputStream.writeUInt16Type(); -+ } -+ }; -+ /** -+ * this type holds all information of sinks relevant to the HMI -+ */ -+ /** -+ * this type holds all information of sinks relevant to the HMI -+ */ -+ struct am_SinkType_s: CommonAPI::SerializableStruct { -+ /** -+ * This is the ID of the sink, it is unique in the system. There are 2 ways, ID -+ * can be created: either it is assigned during the registration process (in a -+ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it -+ * is a fixed (the project has to ensure the uniqueness of the ID). -+ */ -+ am_sinkID_t sinkID; -+ /** -+ * The name of the sink. Must be unique in the whole system. -+ */ -+ std::string name; -+ /** -+ * This attribute reflects the availability of the sink. There are several reasons -+ * why a sink could be not available for the moment: for example the shutdown of -+ * a sink because of overtemperature or over- & undervoltage. The -+ * availability consists of two pieces of information: -+ -+ Availablility: the -+ * status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN -+ -+ * AvailabilityReason: this informs about the last reason for a change in -+ * availability. The reasons itself are product specific. -+ */ -+ am_Availability_s availability; -+ /** -+ * This is the representation of the Volume for the commandInterface. It is used -+ * by the HMI to set the volume of a sink, the AudioManagerController has to -+ * transform this into real source and sink volumes. -+ */ -+ am_mainVolume_t volume; -+ am_MuteState_e muteState; -+ /** -+ * The sinkClassID references to a sinkClass. With the help of classification, -+ * rules can be setup to define the system behaviour. -+ */ -+ am_sinkClass_t sinkClassID; -+ -+ am_SinkType_s() = default; -+ am_SinkType_s(const am_sinkID_t& sinkID, const std::string& name, const am_Availability_s& availability, const am_mainVolume_t& volume, const am_MuteState_e& muteState, const am_sinkClass_t& sinkClassID); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeStringType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.writeInt16Type(); -+ typeOutputStream.writeInt32Type(); -+ typeOutputStream.writeUInt16Type(); -+ } -+ }; -+ typedef std::vector<am_SinkType_s> am_SinkType_L; -+ typedef uint16_t am_sourceClass_t; -+ /** -+ * struct describing source classes -+ */ -+ /** -+ * struct describing source classes -+ */ -+ struct am_SourceClass_s: CommonAPI::SerializableStruct { -+ /** -+ * the source ID -+ */ -+ am_sourceClass_t sourceClassID; -+ /** -+ * the name of the sourceClass - must be unique in the system -+ */ -+ std::string name; -+ /** -+ * the list of the class properties. These are pairs of a project specific enum -+ * describing the type of the value and an integer holding the real value. -+ */ -+ am_ClassProperty_L listClassProperties; -+ -+ am_SourceClass_s() = default; -+ am_SourceClass_s(const am_sourceClass_t& sourceClassID, const std::string& name, const am_ClassProperty_L& listClassProperties); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeStringType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.endWriteVectorType(); -+ } -+ }; -+ typedef std::vector<am_SourceClass_s> am_SourceClass_L; -+ /** -+ * this type holds all information of sources relevant to the HMI -+ */ -+ /** -+ * this type holds all information of sources relevant to the HMI -+ */ -+ struct am_SourceType_s: CommonAPI::SerializableStruct { -+ /** -+ * This is the ID of the source, it is unique in the system. There are 2 ways, ID -+ * can be created: either it is assigned during the registration process (in a -+ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it -+ * is a fixed (the project has to ensure the uniqueness of the ID). -+ */ -+ am_sourceID_t sourceID; -+ /** -+ * The name of the source. Must be unique in the whole system. -+ */ -+ std::string name; -+ /** -+ * the availability of the source -+ */ -+ am_Availability_s availability; -+ /** -+ * the sourceClassID, indicates the class the source is in. This information can -+ * be used by the Controller to implement different behaviour for different -+ * classes. -+ */ -+ am_sourceClass_t sourceClassID; -+ -+ am_SourceType_s() = default; -+ am_SourceType_s(const am_sourceID_t& sourceID, const std::string& name, const am_Availability_s& availability, const am_sourceClass_t& sourceClassID); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeStringType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.writeUInt16Type(); -+ } -+ }; -+ typedef std::vector<am_SourceType_s> am_SourceType_L; -+ /** -+ * describes the different system properties. Project specific -+ */ -+ /** -+ * describes the different system properties. Project specific -+ */ -+ typedef uint16_t am_CustomSystemPropertyType_t; -+ /** -+ * struct describing system properties -+ */ -+ /** -+ * struct describing system properties -+ */ -+ struct am_SystemProperty_s: CommonAPI::SerializableStruct { -+ /** -+ * the type that is set -+ */ -+ am_CustomSystemPropertyType_t type; -+ /** -+ * the value -+ */ -+ int16_t value; -+ -+ am_SystemProperty_s() = default; -+ am_SystemProperty_s(const am_CustomSystemPropertyType_t& type, const int16_t& value); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt16Type(); -+ } -+ }; -+ typedef std::vector<am_SystemProperty_s> am_SystemProperty_L; -+ /** -+ * a connection ID -+ */ -+ /** -+ * a connection ID -+ */ -+ typedef uint16_t am_connectionID_t; -+ typedef std::vector<am_connectionID_t> am_ConnectionID_L; -+ /** -+ * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and -+ * maximum can be limited by actual project. -+ */ -+ /** -+ * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and -+ * maximum can be limited by actual project. -+ */ -+ typedef int16_t am_volume_t; -+ /** -+ * Project specific sound properties. -+ */ -+ /** -+ * Project specific sound properties. -+ */ -+ typedef uint16_t am_CustomSoundPropertyType_t; -+ /** -+ * This enum characterizes the data of the EarlyData_t -+ */ -+ enum class am_EarlyDataType_e: int32_t { -+ /** -+ * default -+ */ -+ ES_UNKNOWN = 0, -+ /** -+ * the source volume -+ */ -+ ED_SOURCE_VOLUME = 1, -+ /** -+ * the sink volume -+ */ -+ ED_SINK_VOLUME = 2, -+ /** -+ * a source property -+ */ -+ ED_SOURCE_PROPERTY = 3, -+ /** -+ * a sink property -+ */ -+ ED_SINK_PROPERTY = 4, -+ ED_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_EarlyDataType_eComparator; -+ /** -+ * struct describing the sound property -+ */ -+ /** -+ * struct describing the sound property -+ */ -+ struct am_SoundProperty_s: CommonAPI::SerializableStruct { -+ /** -+ * the type of the property - a project specific enum -+ */ -+ am_CustomSoundPropertyType_t type; -+ /** -+ * the actual value of the property -+ */ -+ int16_t value; -+ -+ am_SoundProperty_s() = default; -+ am_SoundProperty_s(const am_CustomSoundPropertyType_t& type, const int16_t& value); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt16Type(); -+ } -+ }; -+ /** -+ * data type depends of am_EarlyDataType_e: -+ volume_t in case of ED_SOURCE_VOLUME, -+ * ED_SINK_VOLUME -+ soundProperty_t in case of ED_SOURCE_PROPERTY, -+ * ED_SINK_PROPERTY -+ */ -+ /** -+ * data type depends of am_EarlyDataType_e: -+ volume_t in case of ED_SOURCE_VOLUME, -+ * ED_SINK_VOLUME -+ soundProperty_t in case of ED_SOURCE_PROPERTY, -+ * ED_SINK_PROPERTY -+ */ -+ typedef CommonAPI::Variant<am_volume_t, am_SoundProperty_s> am_EarlyData_u; -+ /** -+ * data type depends of am_EarlyDataType_e: -+ sourceID in case of ED_SOURCE_VOLUME, -+ * ED_SOURCE_PROPERTY -+ sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY -+ */ -+ /** -+ * data type depends of am_EarlyDataType_e: -+ sourceID in case of ED_SOURCE_VOLUME, -+ * ED_SOURCE_PROPERTY -+ sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY -+ */ -+ typedef CommonAPI::Variant<am_sinkID_t, am_sourceID_t> am_DataType_u; -+ struct am_EarlyData_s: CommonAPI::SerializableStruct { -+ am_EarlyDataType_e type; -+ am_DataType_u sinksource; -+ am_EarlyData_u data; -+ -+ am_EarlyData_s() = default; -+ am_EarlyData_s(const am_EarlyDataType_e& type, const am_DataType_u& sinksource, const am_EarlyData_u& data); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeInt32Type(); -+ typeOutputStream.writeVariantType(); -+ typeOutputStream.writeVariantType(); -+ } -+ }; -+ typedef std::vector<am_EarlyData_s> am_EarlyData_L; -+ /** -+ * Here are all SoundProperties that can be set via the CommandInterface. Product -+ * specific -+ */ -+ /** -+ * Here are all SoundProperties that can be set via the CommandInterface. Product -+ * specific -+ */ -+ typedef uint16_t am_CustomMainSoundPropertyType_t; -+ /** -+ * struct describung mainsound property -+ */ -+ /** -+ * struct describung mainsound property -+ */ -+ struct am_MainSoundProperty_s: CommonAPI::SerializableStruct { -+ /** -+ * the type of the property -+ */ -+ am_CustomMainSoundPropertyType_t type; -+ /** -+ * the actual value -+ */ -+ int16_t value; -+ -+ am_MainSoundProperty_s() = default; -+ am_MainSoundProperty_s(const am_CustomMainSoundPropertyType_t& type, const int16_t& value); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt16Type(); -+ } -+ }; -+ typedef std::vector<am_MainSoundProperty_s> am_MainSoundProperty_L; -+ /** -+ * gives the type of the Notification. -+ */ -+ /** -+ * gives the type of the Notification. -+ */ -+ typedef uint16_t am_CustomNotificationType_t; -+ enum class am_NotificationStatus_e: int32_t { -+ NS_UNKNOWN = 0, -+ /** -+ * No notification, the function is turned off -+ */ -+ NS_OFF = 1, -+ /** -+ * Periodic notifications are sent out. The period in ms is given by -+ * am_NotificationParameter -+ */ -+ NS_PERIODIC = 2, -+ /** -+ * The notification is sent out when the minimum given by am_NotificationParameter -+ * is reached. -+ */ -+ NS_MINIMUM = 3, -+ /** -+ * The notification is sent out when the maximum given by am_NotificationParameter -+ * is reached. -+ */ -+ NS_MAXIMUM = 4, -+ /** -+ * The notification is sent out when a change happened. The Resolution of the -+ * change is defined by am_NotificationParameter. -+ */ -+ NS_CHANGE_ = 5, -+ NS_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_NotificationStatus_eComparator; -+ /** -+ * This struct holds information about the configuration for notifications -+ */ -+ /** -+ * This struct holds information about the configuration for notifications -+ */ -+ struct am_NotificationConfiguration_s: CommonAPI::SerializableStruct { -+ /** -+ * The notification type of the notification -+ */ -+ am_CustomNotificationType_t type; -+ /** -+ * The Notification status. This can be periodic, min/max value based or even off -+ * for example -+ */ -+ am_NotificationStatus_e status; -+ /** -+ * This gives additional information to the notification status. -+ Relation between -+ * notification status and the value: -+ NS_PERIODIC - the period in ms -+ NS_MINIMUM -+ * - the minimum value that triggers the notification -+ NS_MAXIMUM - the maximum -+ * value that triggers the notifcation -+ NS_CHANGE - the resolution of the change -+ * value -+ */ -+ int16_t parameter; -+ -+ am_NotificationConfiguration_s() = default; -+ am_NotificationConfiguration_s(const am_CustomNotificationType_t& type, const am_NotificationStatus_e& status, const int16_t& parameter); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt32Type(); -+ typeOutputStream.writeInt16Type(); -+ } -+ }; -+ typedef std::vector<am_NotificationConfiguration_s> am_NotificationConfiguration_L; -+ /** -+ * a domain ID -+ */ -+ /** -+ * a domain ID -+ */ -+ typedef uint16_t am_domainID_t; -+ /** -+ * This project specific value classifies the format in which data is exchanged -+ * within a connection. -+ */ -+ /** -+ * This project specific value classifies the format in which data is exchanged -+ * within a connection. -+ */ -+ typedef uint16_t am_CustomConnectionFormat_t; -+ /** -+ * This represents one "hopp" in a route -+ */ -+ /** -+ * This represents one "hopp" in a route -+ */ -+ struct am_RoutingElement_s: CommonAPI::SerializableStruct { -+ /** -+ * the source ID -+ */ -+ am_sourceID_t sourceID; -+ /** -+ * the sinkID -+ */ -+ am_sinkID_t sinkID; -+ /** -+ * the domainID the routeElement is in -+ */ -+ am_domainID_t domainID; -+ /** -+ * the connectionformat that is used for the route -+ */ -+ am_CustomConnectionFormat_t connectionFormat; -+ -+ am_RoutingElement_s() = default; -+ am_RoutingElement_s(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_domainID_t& domainID, const am_CustomConnectionFormat_t& connectionFormat); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ } -+ }; -+ typedef std::vector<am_RoutingElement_s> am_RoutingElement_L; -+ typedef std::vector<am_SoundProperty_s> am_SoundProperty_L; -+ /** -+ * time in ms! -+ */ -+ /** -+ * time in ms! -+ */ -+ typedef int16_t am_time_t; -+ /** -+ * For products, different ramp types can be defined here. -+ It is in the -+ * responsibility of the product to make sure that the routing plugins are aware -+ * of the ramp types used. -+ */ -+ /** -+ * For products, different ramp types can be defined here. -+ It is in the -+ * responsibility of the product to make sure that the routing plugins are aware -+ * of the ramp types used. -+ */ -+ typedef uint16_t am_CustomRampType_t; -+ /** -+ * This datatype determines if a sourceID or a sinkID is used in the union -+ * following -+ */ -+ enum class am_VolumeType_e: int32_t { -+ VT_UNKNOWN = 0, -+ /** -+ * the following type is a sink -+ */ -+ VT_SINK = 1, -+ /** -+ * the following type is a source -+ */ -+ VT_SOURCE = 2, -+ VT_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_VolumeType_eComparator; -+ /** -+ * This types describe a mixed description for source and sinks volumes. -+ */ -+ /** -+ * This types describe a mixed description for source and sinks volumes. -+ */ -+ struct am_Volumes_s: CommonAPI::SerializableStruct { -+ /** -+ * describes the type of the volume: source or sink. -+ */ -+ am_VolumeType_e volumeType; -+ /** -+ * either sourceID or sinkID -+ */ -+ am_DataType_u volumeID; -+ /** -+ * The volume -+ */ -+ am_volume_t volume; -+ /** -+ * the ramp that shall be driven -+ */ -+ am_CustomRampType_t ramp; -+ /** -+ * the time for the ramp -+ */ -+ am_time_t time; -+ -+ am_Volumes_s() = default; -+ am_Volumes_s(const am_VolumeType_e& volumeType, const am_DataType_u& volumeID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeInt32Type(); -+ typeOutputStream.writeVariantType(); -+ typeOutputStream.writeInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt16Type(); -+ } -+ }; -+ typedef std::vector<am_Volumes_s> am_Volumes_L; -+ typedef std::vector<am_CustomConnectionFormat_t> am_ConnectionFormat_L; -+ typedef bool am_bool_t; -+ typedef std::vector<am_bool_t> am_Convertion_L; -+ /** -+ * a gateway ID -+ */ -+ /** -+ * a gateway ID -+ */ -+ typedef uint16_t am_gatewayID_t; -+ /** -+ * a crossfader ID -+ */ -+ /** -+ * a crossfader ID -+ */ -+ typedef uint16_t am_crossfaderID_t; -+ /** -+ * speed -+ */ -+ /** -+ * speed -+ */ -+ typedef uint16_t am_speed_t; -+ /** -+ * describes the active sink of a crossfader. -+ */ -+ enum class am_HotSink_e: int32_t { -+ /** -+ * default -+ */ -+ HS_UNKNOWN = 0, -+ /** -+ * sinkA is active -+ */ -+ HS_SINKA = 1, -+ /** -+ * sinkB is active -+ */ -+ HS_SINKB = 2, -+ /** -+ * the crossfader is in the transition state -+ */ -+ HS_INTERMEDIATE = 3, -+ HS_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_HotSink_eComparator; -+ enum class am_DomainState_e: int32_t { -+ /** -+ * default -+ */ -+ DS_UNKNOWN = 0, -+ /** -+ * the domain is controlled by the daemon -+ */ -+ DS_CONTROLLED = 1, -+ /** -+ * the domain is independent starting up -+ */ -+ DS_INDEPENDENT_STARTUP = 1, -+ /** -+ * the domain is independent running down -+ */ -+ DS_INDEPENDENT_RUNDOWN = 2, -+ DS_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_DomainState_eComparator; -+ /** -+ * the errors of the audiomanager. All possible errors are in here. This enum is -+ * used widely as return parameter. -+ */ -+ enum class am_Error_e: int32_t { -+ /** -+ * no error - positive reply -+ */ -+ E_OK = 0, -+ /** -+ * default -+ */ -+ E_UNKNOWN = 1, -+ /** -+ * value out of range -+ */ -+ E_OUT_OF_RANGE = 2, -+ /** -+ * not used -+ */ -+ E_NOT_USED = 3, -+ /** -+ * a database error occurred -+ */ -+ E_DATABASE_ERROR = 4, -+ /** -+ * the desired object already exists -+ */ -+ E_ALREADY_EXISTS = 5, -+ /** -+ * there is no change -+ */ -+ E_NO_CHANGE = 6, -+ /** -+ * the desired action is not possible -+ */ -+ E_NOT_POSSIBLE = 7, -+ /** -+ * the desired object is non existent -+ */ -+ E_NON_EXISTENT = 8, -+ /** -+ * the asynchronous action was aborted -+ */ -+ E_ABORTED = 9, -+ /** -+ * This error is returned in case a connect is issued with a connectionFormat that -+ * cannot be selected for the connection. This could be either due to the -+ * capabilities of a source or a sink or gateway compatibilities for example -+ */ -+ E_WRONG_FORMAT = 10, -+ E_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_Error_eComparator; -+ enum class am_InterruptState_e: int32_t { -+ /** -+ * default -+ */ -+ IS_UNKNOWN = 0, -+ /** -+ * the interrupt state is off - no interrupt -+ */ -+ IS_OFF = 1, -+ /** -+ * the interrupt state is interrupted - the interrupt is active -+ */ -+ IS_INTERRUPTED = 2, -+ IS_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_InterruptState_eComparator; -+ /** -+ * This enumeration is used to define the type of the action that is correlated to -+ * a handle. -+ */ -+ enum class am_Handle_e: int32_t { -+ H_UNKNOWN = 0, -+ H_CONNECT = 1, -+ H_DISCONNECT = 2, -+ H_SETSOURCESTATE = 3, -+ H_SETSINKVOLUME = 4, -+ H_SETSOURCEVOLUME = 5, -+ H_SETSINKSOUNDPROPERTY = 6, -+ H_SETSOURCESOUNDPROPERTY = 7, -+ H_SETSINKSOUNDPROPERTIES = 8, -+ H_SETSOURCESOUNDPROPERTIES = 9, -+ H_CROSSFADE = 10, -+ H_SETVOLUMES = 11, -+ H_SETSINKNOTIFICATION = 12, -+ H_SETSOURCENOTIFICATION = 13, -+ H_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_Handle_eComparator; -+ /** -+ * The source state reflects the state of the source -+ */ -+ enum class am_SourceState_e: int32_t { -+ SS_UNKNNOWN = 0, -+ /** -+ * The source can be activly heared -+ */ -+ SS_ON = 1, -+ /** -+ * The source cannot be heared -+ */ -+ SS_OFF = 2, -+ /** -+ * The source is paused. Meaning it cannot be heared but should be prepared to -+ * play again soon. -+ */ -+ SS_PAUSED = 3, -+ SS_MAX -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_SourceState_eComparator; -+ /** -+ * This enum describes the ready state of the routing part -+ */ -+ enum class am_RoutingReady_e: int32_t { -+ RR_UNKNOWN = 0, -+ RR_READY = 1, -+ RR_RUNDOWN = 2 -+ }; -+ -+ // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1 -+ struct am_RoutingReady_eComparator; -+ /** -+ * a list of routing elements that lead from source to sink -+ */ -+ /** -+ * a list of routing elements that lead from source to sink -+ */ -+ struct am_Route_s: CommonAPI::SerializableStruct { -+ /** -+ * the sourceID where the route starts -+ */ -+ am_sourceID_t sourceID; -+ /** -+ * the sinkID where the route ends -+ */ -+ am_sinkID_t sinkID; -+ /** -+ * the actual route as list of routing elements -+ */ -+ am_RoutingElement_L route; -+ -+ am_Route_s() = default; -+ am_Route_s(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_RoutingElement_L& route); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.endWriteVectorType(); -+ } -+ }; -+ /** -+ * This struct describes the attribiutes of a crossfader. -+ */ -+ /** -+ * This struct describes the attribiutes of a crossfader. -+ */ -+ struct am_Crossfader_s: CommonAPI::SerializableStruct { -+ /** -+ * This is the ID of the crossfader, it is unique in the system. There are 2 ways, -+ * ID can be created: either it is assigned during the registration process (in a -+ * dynamic context, uniqueness will be ensured by the AudioManager daemon), or it -+ * is a fixed (the project has to ensure the uniqueness of the ID). -+ */ -+ am_crossfaderID_t crossfaderID; -+ /** -+ * The name of the crossfader. Must be unique in the whole system. -+ */ -+ std::string name; -+ /** -+ * The sinkID of the SinkA. Sinks shall be registered before registering the -+ * crossfader. -+ */ -+ am_sinkID_t sinkID_A; -+ /** -+ * The sinkID of the SinkB. Sinks shall be registered before registering the -+ * crossfader. -+ */ -+ am_sinkID_t sinkID_B; -+ /** -+ * The sourceID of the crossfader source. The source shall be registered before -+ * the crossfader. -+ */ -+ am_sourceID_t sourceID; -+ /** -+ * This enum can have 3 states: -+ -+ HS_SINKA sinkA is the current hot one, sinkB -+ * is not audible -+ HS_SINKB sinkB is the current hot one, sinkB is not -+ * audible -+ HS_INTERMEDIATE the fader is stuck in between a cross-fading -+ * action. This could be due to an abort or an error. Before using the -+ * crossfader, it must be set to either HS_SINKA or HS_SINKB. -+ */ -+ am_HotSink_e hotSink; -+ -+ am_Crossfader_s() = default; -+ am_Crossfader_s(const am_crossfaderID_t& crossfaderID, const std::string& name, const am_sinkID_t& sinkID_A, const am_sinkID_t& sinkID_B, const am_sourceID_t& sourceID, const am_HotSink_e& hotSink); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeStringType(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt32Type(); -+ } -+ }; -+ /** -+ * This struct describes the attributes of a gateway. -+ */ -+ /** -+ * This struct describes the attributes of a gateway. -+ */ -+ struct am_Gateway_s: CommonAPI::SerializableStruct { -+ /** -+ * This is the ID of the gateway, it is unique in the system. There are 2 ways, ID -+ * can be created: either it is assigned during the registration process (in a -+ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it -+ * is a fixed (the project has to ensure the uniqueness of the ID). -+ */ -+ am_gatewayID_t gatewayID; -+ /** -+ * The name of the gateway. Must be unique in the whole system. -+ */ -+ std::string name; -+ /** -+ * The sinkID of the gateway sink-end. The sink is a full blown sink with -+ * connectionFormats, sinkClassIDs etc... It makes sense to register the sinks of -+ * a gateway as non-visible. Care needs to be taken that the connectionsFormats -+ * match with the ones in the conversionMatrix. If the sink is located in the -+ * controllingDomain, the ID needs to be retrieved by registering the sink before -+ * registering the gateway. In case the sink is in a different domain, the ID -+ * needs to be retrieved via peeking. -+ */ -+ am_sinkID_t sinkID; -+ /** -+ * The sourceID of the gateway sink-end. The sink is a full blown source with -+ * connectionFormats, sinkClassIDs etc... It makes sense to register the sources -+ * of a gateway as non-visible. Care needs to be taken that the -+ * connectionsFormats match with the ones in the conversionMatrix. If the source -+ * is located in the controllingDomain, the ID needs to be retrieved by -+ * registering the source before registering the gateway. In case the source is -+ * in a different domain, the ID needs to be retrieved via peeking. -+ */ -+ am_sourceID_t sourceID; -+ /** -+ * The ID of the sink. If the domain is the same like the controlling domain, the -+ * ID is known due to registration. If the domain is different, the ID needs to -+ * be retrieved via peeking. -+ */ -+ am_domainID_t domainSinkID; -+ /** -+ * The ID of the source. If the domain is the same like the controlling domain, -+ * the ID is known due to registration. If the domain is different, the ID needs -+ * to be retrieved via peeking. -+ */ -+ am_domainID_t domainSourceID; -+ /** -+ * This is the ID of the domain that registers the gateway. -+ */ -+ am_domainID_t controlDomainID; -+ /** -+ * This is the list of available formats on the source side of the gateway. It is -+ * not defined during the gateway registration but copied from the source -+ * registration. -+ */ -+ am_ConnectionFormat_L listSourceFormats; -+ /** -+ * This is the list of available formats on the sink side of the gateway. It is -+ * not defined during the gateway registration but copied from the sink -+ * registration. -+ */ -+ am_ConnectionFormat_L listSinkFormats; -+ /** -+ * This is matrix holding information about the conversion capability of the -+ * gateway, it's length is defined by the length(listSinkFormats) x -+ * length(listSourceFormats). -+ If a SinkFormat can be converted into a -+ * SourceFormat, the vector will hold a 1, if no conversion is possible, a -+ * 0. -+ The data is stored row orientated, where the rows are related to the -+ * sinksFormats and the columns to the sourceFormats. The first value will hold -+ * the conversion information from the first sourceFormat to the first sinkFormat -+ * for example and the seventh value the information about the 3rd sinkFormat to -+ * the 1st sourceFormat in case we would have 3 sourceFormats. -+ */ -+ am_Convertion_L convertionMatrix; -+ -+ am_Gateway_s() = default; -+ am_Gateway_s(const am_gatewayID_t& gatewayID, const std::string& name, const am_sinkID_t& sinkID, const am_sourceID_t& sourceID, const am_domainID_t& domainSinkID, const am_domainID_t& domainSourceID, const am_domainID_t& controlDomainID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeStringType(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.endWriteVectorType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.endWriteVectorType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.writeBoolType(); -+ typeOutputStream.endWriteVectorType(); -+ } -+ }; -+ /** -+ * a handle is used for asynchronous operations and is uniquely assigned for each -+ * of this operations -+ */ -+ /** -+ * a handle is used for asynchronous operations and is uniquely assigned for each -+ * of this operations -+ */ -+ struct am_Handle_s: CommonAPI::SerializableStruct { -+ /** -+ * the handletype -+ */ -+ am_Handle_e handleType; -+ /** -+ * the handle as value -+ */ -+ uint16_t handle; -+ -+ am_Handle_s() = default; -+ am_Handle_s(const am_Handle_e& handleType, const uint16_t& handle); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeInt32Type(); -+ typeOutputStream.writeUInt16Type(); -+ } -+ }; -+ /** -+ * struct that holds attribiutes of a mainconnection -+ */ -+ /** -+ * struct that holds attribiutes of a mainconnection -+ */ -+ struct am_MainConnection_s: CommonAPI::SerializableStruct { -+ /** -+ * the assigned ID -+ */ -+ am_mainConnectionID_t mainConnectionID; -+ /** -+ * the current connection state -+ */ -+ am_ConnectionState_e connectionState; -+ /** -+ * the sinkID -+ */ -+ am_sinkID_t sinkID; -+ /** -+ * the sourceID -+ */ -+ am_sourceID_t sourceID; -+ /** -+ * the delay of the connection -+ */ -+ am_timeSync_t delay; -+ /** -+ * the list of sub connection IDs the mainconnection consists of -+ */ -+ am_ConnectionID_L listConnectionID; -+ -+ am_MainConnection_s() = default; -+ am_MainConnection_s(const am_mainConnectionID_t& mainConnectionID, const am_ConnectionState_e& connectionState, const am_sinkID_t& sinkID, const am_sourceID_t& sourceID, const am_timeSync_t& delay, const am_ConnectionID_L& listConnectionID); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt32Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt16Type(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.endWriteVectorType(); -+ } -+ }; -+ /** -+ * This struct holds the payload of a notification. -+ */ -+ /** -+ * This struct holds the payload of a notification. -+ */ -+ struct am_NotificationPayload_s: CommonAPI::SerializableStruct { -+ /** -+ * This defines the notification type -+ */ -+ am_CustomNotificationType_t type; -+ /** -+ * This is finally the value of the notification. It's meaning depends on the -+ * notificationType -+ */ -+ int16_t value; -+ -+ am_NotificationPayload_s() = default; -+ am_NotificationPayload_s(const am_CustomNotificationType_t& type, const int16_t& value); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt16Type(); -+ } -+ }; -+ /** -+ * This struct describes the attribiutes of a sink -+ */ -+ /** -+ * This struct describes the attribiutes of a sink -+ */ -+ struct am_Sink_s: CommonAPI::SerializableStruct { -+ /** -+ * This is the ID of the sink, it is unique in the system. There are 2 ways, ID -+ * can be created: either it is assigned during the registration process (in a -+ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it -+ * is a fixed (the project has to ensure the uniqueness of the ID). -+ */ -+ am_sinkID_t sinkID; -+ /** -+ * The name of the sink. Must be unique in the whole system. -+ */ -+ std::string name; -+ /** -+ * The domainID is the domain the sink belongs to. A sink can only be in one -+ * domain. -+ */ -+ am_domainID_t domainID; -+ /** -+ * The sinkClassID references to a sinkClass. With the help of classification, -+ * rules can be setup to define the system behaviour. -+ */ -+ am_sinkClass_t sinkClassID; -+ /** -+ * This is the volume of the sink. It is set by the AudioManagerController. -+ */ -+ am_volume_t volume; -+ /** -+ * This Boolean flag indicates whether a sink is visible to the commandInterface -+ * or not. If the User must have the possibility to choose the source in the HMI, -+ * it must be visible. But there are also good reasons for invisible sinks, for -+ * example if the sink is part of a crossfader or gateway. HMI relevant changes -+ * in visible sinks will be automatically reported by the daemon to the -+ * commandInterface. -+ */ -+ bool visible; -+ /** -+ * This attribute reflects the availability of the sink. There are several reasons -+ * why a sink could be not available for the moment: for example the shutdown of -+ * a sink because of overtemperature or over- & undervoltage. The -+ * availability consists of two pieces of information: -+ -+ Availablility: the -+ * status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN -+ -+ * AvailabilityReason: this informs about the last reason for a change in -+ * availability. The reasons itself are product specific. -+ */ -+ am_Availability_s available; -+ /** -+ * This attribute reflects the muteState of the sink. The information is not the -+ * "real" state of the sink, but the HMI representation for he commandInterface -+ * controlled by the AudioManagerController. -+ */ -+ am_MuteState_e muteState; -+ /** -+ * This is the representation of the Volume for the commandInterface. It is used -+ * by the HMI to set the volume of a sink, the AudioManagerController has to -+ * transform this into real source and sink volumes. -+ */ -+ am_mainVolume_t mainVolume; -+ /** -+ * This is the list of soundProperties, that the sink is capable of. The -+ * soundProperties itself are project specific. For sinks, a possible -+ * soundProperty could be for example settings. -+ */ -+ am_SoundProperty_L listSoundProperties; -+ /** -+ * This list holds information about the formats that the Source is capable of -+ * supporting when delivering audio. -+ */ -+ am_ConnectionFormat_L listConnectionFormats; -+ /** -+ * This is the list of the available mainSoundProperties. The principle is the -+ * same than with soundProperties, but they are only visible to the -+ * CommandInterface. -+ */ -+ am_MainSoundProperty_L listMainSoundProperties; -+ /** -+ * This is the list of the MainNotificationConfigurations. These notifications -+ * work on the level of command interface. -+ */ -+ am_NotificationConfiguration_L listMainNotificationConfigurations; -+ /** -+ * This is the list of the NotificationConfigurations. These notifications work on -+ * the level of RoutingPlugins. -+ */ -+ am_NotificationConfiguration_L listNotificationConfigurations; -+ -+ am_Sink_s() = default; -+ am_Sink_s(const am_sinkID_t& sinkID, const std::string& name, const am_domainID_t& domainID, const am_sinkClass_t& sinkClassID, const am_volume_t& volume, const bool& visible, const am_Availability_s& available, const am_MuteState_e& muteState, const am_mainVolume_t& mainVolume, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, const am_NotificationConfiguration_L& listMainNotificationConfigurations, const am_NotificationConfiguration_L& listNotificationConfigurations); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeStringType(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt16Type(); -+ typeOutputStream.writeBoolType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.writeInt32Type(); -+ typeOutputStream.writeInt16Type(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.endWriteVectorType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.endWriteVectorType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.endWriteVectorType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.endWriteVectorType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.endWriteVectorType(); -+ } -+ }; -+ /** -+ * This struct describes the attribiutes of a source -+ */ -+ /** -+ * This struct describes the attribiutes of a source -+ */ -+ struct am_Source_s: CommonAPI::SerializableStruct { -+ /** -+ * This is the ID of the source, it is unique in the system. There are 2 ways, ID -+ * can be created: either it is assigned during the registration process (in a -+ * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it -+ * is a fixed (the project has to ensure the uniqueness of the ID). -+ */ -+ am_sourceID_t sourceID; -+ /** -+ * The domainID is the domain the source belongs to. A source can only be in one -+ * domain. -+ */ -+ am_domainID_t domainID; -+ /** -+ * The name of the source. Must be unique in the whole system. -+ */ -+ std::string name; -+ /** -+ * the sourceClassID, indicates the class the source is in. This information can -+ * be used by the Controller to implement different behaviour for different -+ * classes. -+ */ -+ am_sourceClass_t sourceClassID; -+ /** -+ * The source state is an indication towards the source if it is actively heard or -+ * not. The source can use this information to implement features like automatic -+ * spin down of CD's in case the CD is not the active source or AF following of a -+ * tuner that is not actively heard. The source state is set by the -+ * AudioManagerController.There are 3 possible states: -+ -+ SS_ON: the source is -+ * active -+ SS_OFF: the source is off -+ SS_PAUSED: the source is paused and -+ * not active. -+ */ -+ am_SourceState_e sourceState; -+ /** -+ * This is the volume of the source. It is set by the AudioManagerController. It -+ * is used to adopt different audiolevels in a system and mixing of sources (e.g. -+ * navigation hints & music). -+ */ -+ am_volume_t volume; -+ /** -+ * This Boolean flag indicates whether a source is visible to the commandInterface -+ * or not. If the User must have the possibility to choose the source in the HMI, -+ * it must be visible. But there are also good reasons for invisible sources, for -+ * example if the source is part of a crossfader or gateway. HMI relevant changes -+ * in visible sources will be automatically reported by the daemon to the -+ * commandInterface. -+ */ -+ bool visible; -+ /** -+ * This attribute reflects the availability of the source. There are several -+ * reasons why a source could be not available for the moment. For example a CD -+ * player which has no CD entered in the slot can be unavailable, or a USB player -+ * with no or unreadable stick attached. Other scenarios involve the shutdown of -+ * a source because of overtemperature or over- & undervoltage. The -+ * availability consists of two informations: -+ -+ Availablility: the status -+ * itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN -+ -+ * AvailabilityReason: this informs about the last reason for a change in -+ * availability. The reasons itself are product specific. -+ */ -+ am_Availability_s available; -+ /** -+ * Some special sources can have special behaviors, the are so called "Low Level -+ * Interrupts". Here the current status is documented. The information can be -+ * used by the AudioManagerController to react to the changes by for example -+ * lowering the volume of the mainSources. The two states are -+ -+ IS_OFF: the -+ * interrupt is not active at the moment -+ IS_INTERRUPTED: the interrupt is -+ * playing at the moment. -+ */ -+ am_InterruptState_e interruptState; -+ /** -+ * This is the list of soundProperties, that the source is capable of. The -+ * soundProperties itself are project specific. For sources, a possible -+ * soundProperty could be navigation volume offset, for example. -+ */ -+ am_SoundProperty_L listSoundProperties; -+ /** -+ * This list holds information about the formats that the Source is capable of -+ * supporting when delivering audio. -+ */ -+ am_ConnectionFormat_L listConnectionFormats; -+ /** -+ * This is the list of the available mainSoundProperties. The principle is the -+ * same than with soundProperties, but they are only visible to the -+ * CommandInterface. -+ */ -+ am_MainSoundProperty_L listMainSoundProperties; -+ /** -+ * The list of MainNotificationConfigurations. These notifications work on the -+ * level of CommandInterface. -+ */ -+ am_NotificationConfiguration_L listMainNotificationConfigurations; -+ /** -+ * The list of MainNotificationConfigurations. These notifications work on the -+ * level of RoutingInterface. -+ */ -+ am_NotificationConfiguration_L listNotificationConfigurations; -+ -+ am_Source_s() = default; -+ am_Source_s(const am_sourceID_t& sourceID, const am_domainID_t& domainID, const std::string& name, const am_sourceClass_t& sourceClassID, const am_SourceState_e& sourceState, const am_volume_t& volume, const bool& visible, const am_Availability_s& available, const am_InterruptState_e& interruptState, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, const am_NotificationConfiguration_L& listMainNotificationConfigurations, const am_NotificationConfiguration_L& listNotificationConfigurations); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeStringType(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt32Type(); -+ typeOutputStream.writeInt16Type(); -+ typeOutputStream.writeBoolType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.writeInt32Type(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.endWriteVectorType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.endWriteVectorType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.endWriteVectorType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.endWriteVectorType(); -+ typeOutputStream.beginWriteVectorType(); -+ typeOutputStream.beginWriteStructType(); -+ typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type(); -+ typeOutputStream.endWriteStructType(); -+ typeOutputStream.endWriteVectorType(); -+ } -+ }; -+ /** -+ * This struct describes the attribiutes of a domain -+ */ -+ /** -+ * This struct describes the attribiutes of a domain -+ */ -+ struct am_Domain_s: CommonAPI::SerializableStruct { -+ /** -+ * the domain ID -+ */ -+ am_domainID_t domainID; -+ /** -+ * the name of the domain -+ */ -+ std::string name; -+ /** -+ * the busname. This is equal to a plugin name and is used to dispatch messages to -+ * the elements of a plugin -+ */ -+ std::string busname; -+ /** -+ * the name of the node -+ */ -+ std::string nodename; -+ /** -+ * indicated if the domain is independent at startup or not -+ */ -+ bool early; -+ /** -+ * indicates if the domain registration is complete or not -+ */ -+ bool complete; -+ /** -+ * the current domain state -+ */ -+ am_DomainState_e state; -+ -+ am_Domain_s() = default; -+ am_Domain_s(const am_domainID_t& domainID, const std::string& name, const std::string& busname, const std::string& nodename, const bool& early, const bool& complete, const am_DomainState_e& state); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeStringType(); -+ typeOutputStream.writeStringType(); -+ typeOutputStream.writeStringType(); -+ typeOutputStream.writeBoolType(); -+ typeOutputStream.writeBoolType(); -+ typeOutputStream.writeInt32Type(); -+ } -+ }; -+ /** -+ * a connection -+ */ -+ /** -+ * a connection -+ */ -+ struct am_Connection_s: CommonAPI::SerializableStruct { -+ /** -+ * the assigned ID -+ */ -+ am_connectionID_t connectionID; -+ /** -+ * the source the audio flows from -+ */ -+ am_sourceID_t sourceID; -+ /** -+ * the sink the audio flows to -+ */ -+ am_sinkID_t sinkID; -+ /** -+ * the delay of the conneciton -+ */ -+ am_timeSync_t delay; -+ /** -+ * the used connectionformat -+ */ -+ am_CustomConnectionFormat_t connectionFormat; -+ -+ am_Connection_s() = default; -+ am_Connection_s(const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_timeSync_t& delay, const am_CustomConnectionFormat_t& connectionFormat); -+ -+ -+ virtual void readFromInputStream(CommonAPI::InputStream& inputStream); -+ virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const; -+ -+ static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) { -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ typeOutputStream.writeInt16Type(); -+ typeOutputStream.writeUInt16Type(); -+ } -+ }; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Availability_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Availability_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_Availability_eComparator { -+ inline bool operator()(const am_Availability_e& lhs, const am_Availability_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_HotSink_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_HotSink_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_HotSink_eComparator { -+ inline bool operator()(const am_HotSink_e& lhs, const am_HotSink_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_ConnectionState_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_ConnectionState_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_ConnectionState_eComparator { -+ inline bool operator()(const am_ConnectionState_e& lhs, const am_ConnectionState_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_DomainState_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_DomainState_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_DomainState_eComparator { -+ inline bool operator()(const am_DomainState_e& lhs, const am_DomainState_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_EarlyDataType_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_EarlyDataType_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_EarlyDataType_eComparator { -+ inline bool operator()(const am_EarlyDataType_e& lhs, const am_EarlyDataType_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Error_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Error_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_Error_eComparator { -+ inline bool operator()(const am_Error_e& lhs, const am_Error_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_MuteState_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_MuteState_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_MuteState_eComparator { -+ inline bool operator()(const am_MuteState_e& lhs, const am_MuteState_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_InterruptState_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_InterruptState_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_InterruptState_eComparator { -+ inline bool operator()(const am_InterruptState_e& lhs, const am_InterruptState_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_VolumeType_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_VolumeType_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_VolumeType_eComparator { -+ inline bool operator()(const am_VolumeType_e& lhs, const am_VolumeType_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_NotificationStatus_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_NotificationStatus_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_NotificationStatus_eComparator { -+ inline bool operator()(const am_NotificationStatus_e& lhs, const am_NotificationStatus_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Handle_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Handle_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_Handle_eComparator { -+ inline bool operator()(const am_Handle_e& lhs, const am_Handle_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_SourceState_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_SourceState_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_SourceState_eComparator { -+ inline bool operator()(const am_SourceState_e& lhs, const am_SourceState_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_RoutingReady_e& enumValue) { -+ return inputStream.readEnumValue<int32_t>(enumValue); -+} -+ -+inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_RoutingReady_e& enumValue) { -+ return outputStream.writeEnumValue(static_cast<int32_t>(enumValue)); -+} -+ -+struct am_RoutingReady_eComparator { -+ inline bool operator()(const am_RoutingReady_e& lhs, const am_RoutingReady_e& rhs) const { -+ return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs); -+ } -+}; -+ -+bool operator==(const am_Route_s& lhs, const am_Route_s& rhs); -+inline bool operator!=(const am_Route_s& lhs, const am_Route_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_Availability_s& lhs, const am_Availability_s& rhs); -+inline bool operator!=(const am_Availability_s& lhs, const am_Availability_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs); -+inline bool operator!=(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs); -+inline bool operator!=(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_Gateway_s& lhs, const am_Gateway_s& rhs); -+inline bool operator!=(const am_Gateway_s& lhs, const am_Gateway_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs); -+inline bool operator!=(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs); -+inline bool operator!=(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs); -+inline bool operator!=(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs); -+inline bool operator!=(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs); -+inline bool operator!=(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_SourceType_s& lhs, const am_SourceType_s& rhs); -+inline bool operator!=(const am_SourceType_s& lhs, const am_SourceType_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_SinkType_s& lhs, const am_SinkType_s& rhs); -+inline bool operator!=(const am_SinkType_s& lhs, const am_SinkType_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_Handle_s& lhs, const am_Handle_s& rhs); -+inline bool operator!=(const am_Handle_s& lhs, const am_Handle_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs); -+inline bool operator!=(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs); -+inline bool operator!=(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs); -+inline bool operator!=(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs); -+inline bool operator!=(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs); -+inline bool operator!=(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_Sink_s& lhs, const am_Sink_s& rhs); -+inline bool operator!=(const am_Sink_s& lhs, const am_Sink_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_Source_s& lhs, const am_Source_s& rhs); -+inline bool operator!=(const am_Source_s& lhs, const am_Source_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_Domain_s& lhs, const am_Domain_s& rhs); -+inline bool operator!=(const am_Domain_s& lhs, const am_Domain_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs); -+inline bool operator!=(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_Connection_s& lhs, const am_Connection_s& rhs); -+inline bool operator!=(const am_Connection_s& lhs, const am_Connection_s& rhs) { -+ return !(lhs == rhs); -+} -+bool operator==(const am_Volumes_s& lhs, const am_Volumes_s& rhs); -+inline bool operator!=(const am_Volumes_s& lhs, const am_Volumes_s& rhs) { -+ return !(lhs == rhs); -+} -+ -+ -+static inline const char* getTypeCollectionName() { -+ static const char* typeCollectionName = "org.genivi.am"; -+ return typeCollectionName; -+} -+ -+inline CommonAPI::Version getTypeCollectionVersion() { -+ return CommonAPI::Version(2, 0); -+} -+ -+} // namespace am -+ -+} // namespace genivi -+} // namespace org -+ -+namespace CommonAPI { -+ -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_Availability_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_Availability_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Availability_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_Availability_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Availability_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_HotSink_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_HotSink_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_HotSink_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_HotSink_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_HotSink_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_ConnectionState_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_ConnectionState_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_ConnectionState_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_ConnectionState_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_ConnectionState_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_DomainState_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_DomainState_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_DomainState_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_DomainState_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_DomainState_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_EarlyDataType_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_EarlyDataType_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_EarlyDataType_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_EarlyDataType_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_EarlyDataType_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_Error_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_Error_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Error_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_Error_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Error_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_MuteState_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_MuteState_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_MuteState_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_MuteState_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_MuteState_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_InterruptState_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_InterruptState_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_InterruptState_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_InterruptState_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_InterruptState_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_VolumeType_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_VolumeType_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_VolumeType_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_VolumeType_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_VolumeType_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_NotificationStatus_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_NotificationStatus_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_NotificationStatus_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_NotificationStatus_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_NotificationStatus_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_Handle_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_Handle_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Handle_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_Handle_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Handle_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_SourceState_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_SourceState_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_SourceState_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_SourceState_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_SourceState_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ template<> -+ struct BasicTypeWriter<org::genivi::am::am_RoutingReady_e> { -+ inline static void writeType (CommonAPI::TypeOutputStream& typeStream) { -+ typeStream.writeInt32EnumType(); -+ } -+ }; -+ -+ template<> -+ struct InputStreamVectorHelper<org::genivi::am::am_RoutingReady_e> { -+ static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_RoutingReady_e>& vectorValue) { -+ inputStream.beginReadInt32EnumVector(); -+ } -+ }; -+ -+ template <> -+ struct OutputStreamVectorHelper<org::genivi::am::am_RoutingReady_e> { -+ static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_RoutingReady_e>& vectorValue) { -+ outputStream.beginWriteInt32EnumVector(vectorValue.size()); -+ } -+ }; -+ -+} -+ -+ -+namespace std { -+ //Hash for am_Availability_e -+ template<> -+ struct hash<org::genivi::am::am_Availability_e> { -+ inline size_t operator()(const org::genivi::am::am_Availability_e& am_Availability_e) const { -+ return static_cast<int32_t>(am_Availability_e); -+ } -+ }; -+ //Hash for am_HotSink_e -+ template<> -+ struct hash<org::genivi::am::am_HotSink_e> { -+ inline size_t operator()(const org::genivi::am::am_HotSink_e& am_HotSink_e) const { -+ return static_cast<int32_t>(am_HotSink_e); -+ } -+ }; -+ //Hash for am_ConnectionState_e -+ template<> -+ struct hash<org::genivi::am::am_ConnectionState_e> { -+ inline size_t operator()(const org::genivi::am::am_ConnectionState_e& am_ConnectionState_e) const { -+ return static_cast<int32_t>(am_ConnectionState_e); -+ } -+ }; -+ //Hash for am_DomainState_e -+ template<> -+ struct hash<org::genivi::am::am_DomainState_e> { -+ inline size_t operator()(const org::genivi::am::am_DomainState_e& am_DomainState_e) const { -+ return static_cast<int32_t>(am_DomainState_e); -+ } -+ }; -+ //Hash for am_EarlyDataType_e -+ template<> -+ struct hash<org::genivi::am::am_EarlyDataType_e> { -+ inline size_t operator()(const org::genivi::am::am_EarlyDataType_e& am_EarlyDataType_e) const { -+ return static_cast<int32_t>(am_EarlyDataType_e); -+ } -+ }; -+ //Hash for am_Error_e -+ template<> -+ struct hash<org::genivi::am::am_Error_e> { -+ inline size_t operator()(const org::genivi::am::am_Error_e& am_Error_e) const { -+ return static_cast<int32_t>(am_Error_e); -+ } -+ }; -+ //Hash for am_MuteState_e -+ template<> -+ struct hash<org::genivi::am::am_MuteState_e> { -+ inline size_t operator()(const org::genivi::am::am_MuteState_e& am_MuteState_e) const { -+ return static_cast<int32_t>(am_MuteState_e); -+ } -+ }; -+ //Hash for am_InterruptState_e -+ template<> -+ struct hash<org::genivi::am::am_InterruptState_e> { -+ inline size_t operator()(const org::genivi::am::am_InterruptState_e& am_InterruptState_e) const { -+ return static_cast<int32_t>(am_InterruptState_e); -+ } -+ }; -+ //Hash for am_VolumeType_e -+ template<> -+ struct hash<org::genivi::am::am_VolumeType_e> { -+ inline size_t operator()(const org::genivi::am::am_VolumeType_e& am_VolumeType_e) const { -+ return static_cast<int32_t>(am_VolumeType_e); -+ } -+ }; -+ //Hash for am_NotificationStatus_e -+ template<> -+ struct hash<org::genivi::am::am_NotificationStatus_e> { -+ inline size_t operator()(const org::genivi::am::am_NotificationStatus_e& am_NotificationStatus_e) const { -+ return static_cast<int32_t>(am_NotificationStatus_e); -+ } -+ }; -+ //Hash for am_Handle_e -+ template<> -+ struct hash<org::genivi::am::am_Handle_e> { -+ inline size_t operator()(const org::genivi::am::am_Handle_e& am_Handle_e) const { -+ return static_cast<int32_t>(am_Handle_e); -+ } -+ }; -+ //Hash for am_SourceState_e -+ template<> -+ struct hash<org::genivi::am::am_SourceState_e> { -+ inline size_t operator()(const org::genivi::am::am_SourceState_e& am_SourceState_e) const { -+ return static_cast<int32_t>(am_SourceState_e); -+ } -+ }; -+ //Hash for am_RoutingReady_e -+ template<> -+ struct hash<org::genivi::am::am_RoutingReady_e> { -+ inline size_t operator()(const org::genivi::am::am_RoutingReady_e& am_RoutingReady_e) const { -+ return static_cast<int32_t>(am_RoutingReady_e); -+ } -+ }; -+} -+ -+#endif // ORG_GENIVI_am_H_ -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.cpp b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.cpp -index 161a7b7..152c8b6 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.cpp -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.h -index 17c0c51..dced63c 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.h -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -714,15 +712,15 @@ namespace am { - am_NotificationStatus_e status; - /** - * This gives additional information to the notification status. -- Relation -- * between notification status and the value: -- NS_PERIODIC - the period in -- * ms -- NS_MINIMUM - the minimum value that triggers the notification -- NS_MAXIMUM -- * - the maximum value that triggers the notifcation -- NS_CHANGE - the resolution -- * of the change value -+ Relation between -+ * notification status and the value: -+ NS_PERIODIC - the period in ms -+ NS_MINIMUM -+ * - the minimum value that triggers the notification -+ NS_MAXIMUM - the maximum -+ * value that triggers the notifcation -+ NS_CHANGE - the resolution of the change -+ * value - */ - int16_t parameter; - -@@ -1155,8 +1153,8 @@ namespace am { - /** - * This enum can have 3 states: - -- HS_SINKA sinkA is the current hot one, -- * sinkB is not audible -+ HS_SINKA sinkA is the current hot one, sinkB -+ * is not audible - HS_SINKB sinkB is the current hot one, sinkB is not - * audible - HS_INTERMEDIATE the fader is stuck in between a cross-fading -@@ -1571,11 +1569,11 @@ namespace am { - * tuner that is not actively heard. The source state is set by the - * AudioManagerController.There are 3 possible states: - -- SS_ON: the source -- * is active -+ SS_ON: the source is -+ * active - SS_OFF: the source is off -- SS_PAUSED: the source is paused -- * and not active. -+ SS_PAUSED: the source is paused and -+ * not active. - */ - am_SourceState_e sourceState; - /** -@@ -2076,7 +2074,7 @@ static inline const char* getTypeCollectionName() { - } - - inline CommonAPI::Version getTypeCollectionVersion() { -- return CommonAPI::Version(1, 0); -+ return CommonAPI::Version(2, 0); - } - - } // namespace am -@@ -2096,7 +2094,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_Availability_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Availability_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2117,7 +2114,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_HotSink_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_HotSink_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2138,7 +2134,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_ConnectionState_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_ConnectionState_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2159,7 +2154,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_DomainState_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_DomainState_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2180,7 +2174,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_EarlyDataType_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_EarlyDataType_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2201,7 +2194,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_Error_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Error_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2222,7 +2214,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_MuteState_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_MuteState_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2243,7 +2234,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_InterruptState_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_InterruptState_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2264,7 +2254,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_VolumeType_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_VolumeType_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2285,7 +2274,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_NotificationStatus_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_NotificationStatus_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2306,7 +2294,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_Handle_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Handle_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2327,7 +2314,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_SourceState_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_SourceState_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -@@ -2348,7 +2334,6 @@ namespace CommonAPI { - template<> - struct InputStreamVectorHelper<org::genivi::am::am_RoutingReady_e> { - static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_RoutingReady_e>& vectorValue) { -- (void)vectorValue; - inputStream.beginReadInt32EnumVector(); - } - }; -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControl.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControl.h -index eb103e5..922e4e0 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControl.h -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControl.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * The interface towards the Controlling Instance (e.g HMI). It handles the -@@ -47,7 +45,7 @@ const char* CommandControl::getInterfaceId() { - } - - CommonAPI::Version CommandControl::getInterfaceVersion() { -- return CommonAPI::Version(1, 0); -+ return CommonAPI::Version(2, 0); - } - - -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.cpp b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.cpp -index e147744..f6b6af9 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.cpp -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * The interface towards the Controlling Instance (e.g HMI). It handles the -@@ -31,11 +29,11 @@ std::shared_ptr<CommonAPI::DBus::DBusProxy> createCommandControlDBusProxy( - return std::make_shared<CommandControlDBusProxy>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection); - } - --__attribute__((constructor)) void registerCommandControlDBusProxy(void) { -+INITIALIZER(registerCommandControlDBusProxy) { - CommonAPI::DBus::DBusFactory::registerProxyFactoryMethod(CommandControl::getInterfaceId(), - &createCommandControlDBusProxy); - } -- -+ - CommandControlDBusProxy::CommandControlDBusProxy( - const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, - const std::string& commonApiAddress, -@@ -216,26 +214,26 @@ std::future<CommonAPI::CallStatus> CommandControlDBusProxy::setVolumeAsync(const - /** - * This function is used to increment or decrement the current volume for a - * sink. --(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if -- * the value is not in the given volume range. -+(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. - */ --void CommandControlDBusProxy::volumeStep(const am_sinkID_t& sinkID, const int16_t& volumeStep_, CommonAPI::CallStatus& callStatus, am_Error_e& error) { -+void CommandControlDBusProxy::volumeStep(const am_sinkID_t& sinkID, const int16_t& volStep, CommonAPI::CallStatus& callStatus, am_Error_e& error) { - CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, int16_t>, - CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodWithReply( - *this, - "volumeStep", - "qn", -- sinkID, volumeStep_, -+ sinkID, volStep, - callStatus - , error); - } --std::future<CommonAPI::CallStatus> CommandControlDBusProxy::volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volumeStep_, VolumeStepAsyncCallback callback) { -+std::future<CommonAPI::CallStatus> CommandControlDBusProxy::volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volStep, VolumeStepAsyncCallback callback) { - return CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t, int16_t>, - CommonAPI::DBus::DBusSerializableArguments<am_Error_e> >::callMethodAsync( - *this, - "volumeStep", - "qn", -- sinkID, volumeStep_, -+ sinkID, volStep, - std::move(callback)); - } - /** -@@ -384,8 +382,8 @@ std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListMainSinksAsyn - } - /** - * returns the actual list of Sources --(at)return E_OK on success, -- * E_DATABASE_ERROR on error -+(at)return E_OK on success, E_DATABASE_ERROR -+ * on error - */ - void CommandControlDBusProxy::getListMainSources(CommonAPI::CallStatus& callStatus, am_SourceType_L& listMainSources, am_Error_e& error) { - CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<>, -@@ -407,8 +405,8 @@ std::future<CommonAPI::CallStatus> CommandControlDBusProxy::getListMainSourcesAs - /** - * This is used to retrieve all source sound properties related to a source. - * Returns a vector of the sound properties and values as pair --(at)return E_OK -- * on success, E_DATABASE_ERROR on error -+(at)return E_OK on -+ * success, E_DATABASE_ERROR on error - */ - void CommandControlDBusProxy::getListMainSinkSoundProperties(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error) { - CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_sinkID_t>, -@@ -644,7 +642,7 @@ std::future<CommonAPI::CallStatus> CommandControlDBusProxy::setMainSourceNotific - - - void CommandControlDBusProxy::getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const { -- ownVersionMajor = 1; -+ ownVersionMajor = 2; - ownVersionMinor = 0; - } - -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.h -index 64091a7..4d72e39 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.h -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusProxy.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * The interface towards the Controlling Instance (e.g HMI). It handles the -@@ -97,11 +95,11 @@ class CommandControlDBusProxy: virtual public CommandControlProxyBase, virtual p - /** - * This function is used to increment or decrement the current volume for a - * sink. -- (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if -- * the value is not in the given volume range. -+ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. - */ -- virtual void volumeStep(const am_sinkID_t& sinkID, const int16_t& volumeStep_, CommonAPI::CallStatus& callStatus, am_Error_e& error); -- virtual std::future<CommonAPI::CallStatus> volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volumeStep_, VolumeStepAsyncCallback callback); -+ virtual void volumeStep(const am_sinkID_t& sinkID, const int16_t& volStep, CommonAPI::CallStatus& callStatus, am_Error_e& error); -+ virtual std::future<CommonAPI::CallStatus> volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volStep, VolumeStepAsyncCallback callback); - /** - * sets the mute state of a sink - (at)return E_OK on success, E_UNKNOWN on error. -@@ -150,16 +148,16 @@ class CommandControlDBusProxy: virtual public CommandControlProxyBase, virtual p - virtual std::future<CommonAPI::CallStatus> getListMainSinksAsync(GetListMainSinksAsyncCallback callback); - /** - * returns the actual list of Sources -- (at)return E_OK on success, -- * E_DATABASE_ERROR on error -+ (at)return E_OK on success, E_DATABASE_ERROR -+ * on error - */ - virtual void getListMainSources(CommonAPI::CallStatus& callStatus, am_SourceType_L& listMainSources, am_Error_e& error); - virtual std::future<CommonAPI::CallStatus> getListMainSourcesAsync(GetListMainSourcesAsyncCallback callback); - /** - * This is used to retrieve all source sound properties related to a source. - * Returns a vector of the sound properties and values as pair -- (at)return E_OK -- * on success, E_DATABASE_ERROR on error -+ (at)return E_OK on -+ * success, E_DATABASE_ERROR on error - */ - virtual void getListMainSinkSoundProperties(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error); - virtual std::future<CommonAPI::CallStatus> getListMainSinkSoundPropertiesAsync(const am_sinkID_t& sinkID, GetListMainSinkSoundPropertiesAsyncCallback callback); -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.cpp b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.cpp -index db01c28..60d8871 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.cpp -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - #include "CommandControlDBusStubAdapter.h" - #include <org/genivi/am/CommandControl.h> -@@ -25,7 +23,7 @@ std::shared_ptr<CommonAPI::DBus::DBusStubAdapter> createCommandControlDBusStubAd - return std::make_shared<CommandControlDBusStubAdapter>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection, stubBase); - } - --__attribute__((constructor)) void registerCommandControlDBusStubAdapter(void) { -+INITIALIZER(registerCommandControlDBusStubAdapter) { - CommonAPI::DBus::DBusFactory::registerAdapterFactoryMethod(CommandControl::getInterfaceId(), - &createCommandControlDBusStubAdapter); - } -@@ -38,6 +36,7 @@ CommandControlDBusStubAdapterInternal::~CommandControlDBusStubAdapterInternal() - } - - void CommandControlDBusStubAdapterInternal::deactivateManagedInstances() { -+ - } - - const char* CommandControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXmlData() const { -@@ -230,12 +229,12 @@ const char* CommandControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXm - /** - * This function is used to increment or decrement the current volume for a - * sink. -- (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if -- * the value is not in the given volume range. -+ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. - */ - "<method name=\"volumeStep\">\n" - "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" -- "<arg name=\"volumeStep_\" type=\"n\" direction=\"in\" />\n" -+ "<arg name=\"volStep\" type=\"n\" direction=\"in\" />\n" - "<arg name=\"error\" type=\"i\" direction=\"out\" />\n" - "</method>\n" - /** -@@ -301,8 +300,8 @@ const char* CommandControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXm - "</method>\n" - /** - * returns the actual list of Sources -- (at)return E_OK on success, -- * E_DATABASE_ERROR on error -+ (at)return E_OK on success, E_DATABASE_ERROR -+ * on error - */ - "<method name=\"getListMainSources\">\n" - "<arg name=\"listMainSources\" type=\"a(qs(iq)q)\" direction=\"out\" />\n" -@@ -311,8 +310,8 @@ const char* CommandControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXm - /** - * This is used to retrieve all source sound properties related to a source. - * Returns a vector of the sound properties and values as pair -- (at)return E_OK -- * on success, E_DATABASE_ERROR on error -+ (at)return E_OK on -+ * success, E_DATABASE_ERROR on error - */ - "<method name=\"getListMainSinkSoundProperties\">\n" - "<arg name=\"sinkID\" type=\"q\" direction=\"in\" />\n" -@@ -412,10 +411,11 @@ const char* CommandControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXm - return introspectionData.c_str(); - } - --static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+CommonAPI::DBus::DBusGetAttributeStubDispatcher< - CommandControlStub, - CommonAPI::Version -- > getCommandControlInterfaceVersionStubDispatcher(&CommandControlStub::getInterfaceVersion, "uu"); -+ > CommandControlDBusStubAdapterInternal::getCommandControlInterfaceVersionStubDispatcher(&CommandControlStub::getInterfaceVersion, "uu"); -+ - - - /** -@@ -423,52 +423,52 @@ static CommonAPI::DBus::DBusGetAttributeStubDispatcher< - (at)return E_OK on success, E_NOT_POSSIBLE on - * failure, E_ALREADY_EXISTS if the connection does already exists - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sourceID_t, am_sinkID_t>, - std::tuple<am_mainConnectionID_t, am_Error_e> -- > connectStubDispatcher(&CommandControlStub::connect, "qi"); -+ > CommandControlDBusStubAdapterInternal::connectStubDispatcher(&CommandControlStub::connect, "qi"); - /** - * disconnects a mainConnection - (at)return E_OK on successes, E_NON_EXISTENT if - * the connection does not exist, E_NOT_POSSIBLE on error. - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_mainConnectionID_t>, - std::tuple<am_Error_e> -- > disconnectStubDispatcher(&CommandControlStub::disconnect, "i"); -+ > CommandControlDBusStubAdapterInternal::disconnectStubDispatcher(&CommandControlStub::disconnect, "i"); - /** - * sets the volume for a sink - (at)return E_OK on success, E_UNKOWN on error, - * E_OUT_OF_RANGE in case the value is out of range - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sinkID_t, am_mainVolume_t>, - std::tuple<am_Error_e> -- > setVolumeStubDispatcher(&CommandControlStub::setVolume, "i"); -+ > CommandControlDBusStubAdapterInternal::setVolumeStubDispatcher(&CommandControlStub::setVolume, "i"); - /** - * This function is used to increment or decrement the current volume for a - * sink. --(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if -- * the value is not in the given volume range. -+(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sinkID_t, int16_t>, - std::tuple<am_Error_e> -- > volumeStepStubDispatcher(&CommandControlStub::volumeStep, "i"); -+ > CommandControlDBusStubAdapterInternal::volumeStepStubDispatcher(&CommandControlStub::volumeStep, "i"); - /** - * sets the mute state of a sink - (at)return E_OK on success, E_UNKNOWN on error. - * If the mute state is already the desired one, the Daemon will return E_OK. - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sinkID_t, am_MuteState_e>, - std::tuple<am_Error_e> -- > setSinkMuteStateStubDispatcher(&CommandControlStub::setSinkMuteState, "i"); -+ > CommandControlDBusStubAdapterInternal::setSinkMuteStateStubDispatcher(&CommandControlStub::setSinkMuteState, "i"); - /** - * This method is used to set sound properties, e.g. Equalizer Values. Since the - * capabilities of the system can differ, the exact key value pairs can be -@@ -476,11 +476,11 @@ static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - (at)return E_OK on success, E_OUT_OF_RANGE if value - * exceeds range, E_UNKNOWN in case of an error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sinkID_t, am_MainSoundProperty_s>, - std::tuple<am_Error_e> -- > setMainSinkSoundPropertyStubDispatcher(&CommandControlStub::setMainSinkSoundProperty, "i"); -+ > CommandControlDBusStubAdapterInternal::setMainSinkSoundPropertyStubDispatcher(&CommandControlStub::setMainSinkSoundProperty, "i"); - /** - * This method is used to set sound properties, e.g. Equalizer Values. Since the - * capabilities of the system can differ, the exact key value pairs can be -@@ -488,153 +488,154 @@ static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - (at)return E_OK on success, E_OUT_OF_RANGE if value - * exceeds range, E_UNKNOWN in case of an error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sourceID_t, am_MainSoundProperty_s>, - std::tuple<am_Error_e> -- > setMainSourceSoundPropertyStubDispatcher(&CommandControlStub::setMainSourceSoundProperty, "i"); -+ > CommandControlDBusStubAdapterInternal::setMainSourceSoundPropertyStubDispatcher(&CommandControlStub::setMainSourceSoundProperty, "i"); - /** - * is used to set a specific system property. - (at)return E_OK on success, - * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_SystemProperty_s>, - std::tuple<am_Error_e> -- > setSystemPropertyStubDispatcher(&CommandControlStub::setSystemProperty, "i"); -+ > CommandControlDBusStubAdapterInternal::setSystemPropertyStubDispatcher(&CommandControlStub::setSystemProperty, "i"); - /** - * returns the actual list of MainConnections - (at)return E_OK on success, - * E_DATABASE_ERROR on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<>, - std::tuple<am_MainConnection_L, am_Error_e> -- > getListMainConnectionsStubDispatcher(&CommandControlStub::getListMainConnections, "a(qqqni)i"); -+ > CommandControlDBusStubAdapterInternal::getListMainConnectionsStubDispatcher(&CommandControlStub::getListMainConnections, "a(qqqni)i"); - /** - * returns the actual list of Sinks - (at)return E_OK on success, E_DATABASE_ERROR - * on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<>, - std::tuple<am_SinkType_L, am_Error_e> -- > getListMainSinksStubDispatcher(&CommandControlStub::getListMainSinks, "a(qs(iq)niq)i"); -+ > CommandControlDBusStubAdapterInternal::getListMainSinksStubDispatcher(&CommandControlStub::getListMainSinks, "a(qs(iq)niq)i"); - /** - * returns the actual list of Sources --(at)return E_OK on success, -- * E_DATABASE_ERROR on error -+(at)return E_OK on success, E_DATABASE_ERROR -+ * on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<>, - std::tuple<am_SourceType_L, am_Error_e> -- > getListMainSourcesStubDispatcher(&CommandControlStub::getListMainSources, "a(qs(iq)q)i"); -+ > CommandControlDBusStubAdapterInternal::getListMainSourcesStubDispatcher(&CommandControlStub::getListMainSources, "a(qs(iq)q)i"); - /** - * This is used to retrieve all source sound properties related to a source. - * Returns a vector of the sound properties and values as pair --(at)return E_OK -- * on success, E_DATABASE_ERROR on error -+(at)return E_OK on -+ * success, E_DATABASE_ERROR on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sinkID_t>, - std::tuple<am_MainSoundProperty_L, am_Error_e> -- > getListMainSinkSoundPropertiesStubDispatcher(&CommandControlStub::getListMainSinkSoundProperties, "a(qn)i"); -+ > CommandControlDBusStubAdapterInternal::getListMainSinkSoundPropertiesStubDispatcher(&CommandControlStub::getListMainSinkSoundProperties, "a(qn)i"); - /** - * This is used to retrieve all source sound properties related to a - * source. - (at)return E_OK on success, E_DATABASE_ERROR on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sourceID_t>, - std::tuple<am_MainSoundProperty_L, am_Error_e> -- > getListMainSourceSoundPropertiesStubDispatcher(&CommandControlStub::getListMainSourceSoundProperties, "a(qn)i"); -+ > CommandControlDBusStubAdapterInternal::getListMainSourceSoundPropertiesStubDispatcher(&CommandControlStub::getListMainSourceSoundProperties, "a(qn)i"); - /** - * This is used to retrieve SourceClass Information of all source classes - * - (at)return E_OK on success, E_DATABASE_ERROR on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<>, - std::tuple<am_SourceClass_L, am_Error_e> -- > getListSourceClassesStubDispatcher(&CommandControlStub::getListSourceClasses, "a(qsa(qn))i"); -+ > CommandControlDBusStubAdapterInternal::getListSourceClassesStubDispatcher(&CommandControlStub::getListSourceClasses, "a(qsa(qn))i"); - /** - * This is used to retrieve SinkClass Information of all sink classes - (at)return - * E_OK on success, E_DATABASE_ERROR on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<>, - std::tuple<am_SinkClass_L, am_Error_e> -- > getListSinkClassesStubDispatcher(&CommandControlStub::getListSinkClasses, "a(qsa(qn))i"); -+ > CommandControlDBusStubAdapterInternal::getListSinkClassesStubDispatcher(&CommandControlStub::getListSinkClasses, "a(qsa(qn))i"); - /** - * Retrieves a complete list of all systemProperties. - (at)return E_OK on success, - * E_DATABASE_ERROR on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<>, - std::tuple<am_SystemProperty_L, am_Error_e> -- > getListSystemPropertiesStubDispatcher(&CommandControlStub::getListSystemProperties, "a(qn)i"); -+ > CommandControlDBusStubAdapterInternal::getListSystemPropertiesStubDispatcher(&CommandControlStub::getListSystemProperties, "a(qn)i"); - /** - * returns the delay in ms that the audiopath for the given mainConnection - * has - (at)return E_OK on success, E_NOT_POSSIBLE if timing information is not - * yet retrieved, E_DATABASE_ERROR on read error on the database - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_mainConnectionID_t>, - std::tuple<am_timeSync_t, am_Error_e> -- > getTimingInformationStubDispatcher(&CommandControlStub::getTimingInformation, "ni"); -+ > CommandControlDBusStubAdapterInternal::getTimingInformationStubDispatcher(&CommandControlStub::getTimingInformation, "ni"); - /** - * Retrieves the list of MainNotifications for a sink. Does not return the - * possible ones. - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sinkID_t>, - std::tuple<am_NotificationConfiguration_L, am_Error_e> -- > getListMainSinkNotificationConfigurationsStubDispatcher(&CommandControlStub::getListMainSinkNotificationConfigurations, "a(qin)i"); -+ > CommandControlDBusStubAdapterInternal::getListMainSinkNotificationConfigurationsStubDispatcher(&CommandControlStub::getListMainSinkNotificationConfigurations, "a(qin)i"); - /** - * Retrieves the list of MainNotifications for a source. Does not return the - * possible ones. - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sourceID_t>, - std::tuple<am_NotificationConfiguration_L, am_Error_e> -- > getListMainSourceNotificationConfigurationsStubDispatcher(&CommandControlStub::getListMainSourceNotificationConfigurations, "a(qin)i"); -+ > CommandControlDBusStubAdapterInternal::getListMainSourceNotificationConfigurationsStubDispatcher(&CommandControlStub::getListMainSourceNotificationConfigurations, "a(qin)i"); - /** - * sets a MainNotificationConfiuration. This can be used to turn on an off - * notifications an to change the mode of the configuration. - (at)return E_OK on - * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sinkID_t, am_NotificationConfiguration_s>, - std::tuple<am_Error_e> -- > setMainSinkNotificationConfigurationStubDispatcher(&CommandControlStub::setMainSinkNotificationConfiguration, "i"); -+ > CommandControlDBusStubAdapterInternal::setMainSinkNotificationConfigurationStubDispatcher(&CommandControlStub::setMainSinkNotificationConfiguration, "i"); - /** - * sets a MainNotificationConfiuration. This can be used to turn on an off - * notifications an to change the mode of the configuration. - (at)return E_OK on - * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - CommandControlStub, - std::tuple<am_sourceID_t, am_NotificationConfiguration_s>, - std::tuple<am_Error_e> -- > setMainSourceNotificationConfigurationStubDispatcher(&CommandControlStub::setMainSourceNotificationConfiguration, "i"); -+ > CommandControlDBusStubAdapterInternal::setMainSourceNotificationConfigurationStubDispatcher(&CommandControlStub::setMainSourceNotificationConfiguration, "i"); -+ - - - /** -@@ -912,10 +913,14 @@ void CommandControlDBusStubAdapterInternal::fireMainSourceNotificationConfigurat - ); - } - -+ - const CommandControlDBusStubAdapterHelper::StubDispatcherTable& CommandControlDBusStubAdapterInternal::getStubDispatcherTable() { - return stubDispatcherTable_; - } - -+const CommonAPI::DBus::StubAttributeTable& CommandControlDBusStubAdapterInternal::getStubAttributeTable() { -+ return stubAttributeTable_; -+} - - CommandControlDBusStubAdapterInternal::CommandControlDBusStubAdapterInternal( - const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, -@@ -948,32 +953,32 @@ CommandControlDBusStubAdapterInternal::CommandControlDBusStubAdapterInternal( - (at)return E_OK on success, E_NOT_POSSIBLE on - * failure, E_ALREADY_EXISTS if the connection does already exists - */ -- { { "connect", "qq" }, &org::genivi::am::connectStubDispatcher }, -+ { { "connect", "qq" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::connectStubDispatcher }, - /** - * disconnects a mainConnection - (at)return E_OK on successes, E_NON_EXISTENT if - * the connection does not exist, E_NOT_POSSIBLE on error. - */ -- { { "disconnect", "q" }, &org::genivi::am::disconnectStubDispatcher }, -+ { { "disconnect", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::disconnectStubDispatcher }, - /** - * sets the volume for a sink - (at)return E_OK on success, E_UNKOWN on error, - * E_OUT_OF_RANGE in case the value is out of range - */ -- { { "setVolume", "qn" }, &org::genivi::am::setVolumeStubDispatcher }, -+ { { "setVolume", "qn" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setVolumeStubDispatcher }, - /** - * This function is used to increment or decrement the current volume for a - * sink. -- (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if -- * the value is not in the given volume range. -+ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. - */ -- { { "volumeStep", "qn" }, &org::genivi::am::volumeStepStubDispatcher }, -+ { { "volumeStep", "qn" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::volumeStepStubDispatcher }, - /** - * sets the mute state of a sink - (at)return E_OK on success, E_UNKNOWN on error. - * If the mute state is already the desired one, the Daemon will return E_OK. - */ -- { { "setSinkMuteState", "qi" }, &org::genivi::am::setSinkMuteStateStubDispatcher }, -+ { { "setSinkMuteState", "qi" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setSinkMuteStateStubDispatcher }, - /** - * This method is used to set sound properties, e.g. Equalizer Values. Since the - * capabilities of the system can differ, the exact key value pairs can be -@@ -981,7 +986,7 @@ CommandControlDBusStubAdapterInternal::CommandControlDBusStubAdapterInternal( - (at)return E_OK on success, E_OUT_OF_RANGE if value - * exceeds range, E_UNKNOWN in case of an error - */ -- { { "setMainSinkSoundProperty", "q(qn)" }, &org::genivi::am::setMainSinkSoundPropertyStubDispatcher }, -+ { { "setMainSinkSoundProperty", "q(qn)" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setMainSinkSoundPropertyStubDispatcher }, - /** - * This method is used to set sound properties, e.g. Equalizer Values. Since the - * capabilities of the system can differ, the exact key value pairs can be -@@ -989,96 +994,101 @@ CommandControlDBusStubAdapterInternal::CommandControlDBusStubAdapterInternal( - (at)return E_OK on success, E_OUT_OF_RANGE if value - * exceeds range, E_UNKNOWN in case of an error - */ -- { { "setMainSourceSoundProperty", "q(qn)" }, &org::genivi::am::setMainSourceSoundPropertyStubDispatcher }, -+ { { "setMainSourceSoundProperty", "q(qn)" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setMainSourceSoundPropertyStubDispatcher }, - /** - * is used to set a specific system property. - (at)return E_OK on success, - * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error - */ -- { { "setSystemProperty", "(qn)" }, &org::genivi::am::setSystemPropertyStubDispatcher }, -+ { { "setSystemProperty", "(qn)" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setSystemPropertyStubDispatcher }, - /** - * returns the actual list of MainConnections - (at)return E_OK on success, - * E_DATABASE_ERROR on error - */ -- { { "getListMainConnections", "" }, &org::genivi::am::getListMainConnectionsStubDispatcher }, -+ { { "getListMainConnections", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainConnectionsStubDispatcher }, - /** - * returns the actual list of Sinks - (at)return E_OK on success, E_DATABASE_ERROR - * on error - */ -- { { "getListMainSinks", "" }, &org::genivi::am::getListMainSinksStubDispatcher }, -+ { { "getListMainSinks", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSinksStubDispatcher }, - /** - * returns the actual list of Sources -- (at)return E_OK on success, -- * E_DATABASE_ERROR on error -+ (at)return E_OK on success, E_DATABASE_ERROR -+ * on error - */ -- { { "getListMainSources", "" }, &org::genivi::am::getListMainSourcesStubDispatcher }, -+ { { "getListMainSources", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSourcesStubDispatcher }, - /** - * This is used to retrieve all source sound properties related to a source. - * Returns a vector of the sound properties and values as pair -- (at)return E_OK -- * on success, E_DATABASE_ERROR on error -+ (at)return E_OK on -+ * success, E_DATABASE_ERROR on error - */ -- { { "getListMainSinkSoundProperties", "q" }, &org::genivi::am::getListMainSinkSoundPropertiesStubDispatcher }, -+ { { "getListMainSinkSoundProperties", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSinkSoundPropertiesStubDispatcher }, - /** - * This is used to retrieve all source sound properties related to a - * source. - (at)return E_OK on success, E_DATABASE_ERROR on error - */ -- { { "getListMainSourceSoundProperties", "q" }, &org::genivi::am::getListMainSourceSoundPropertiesStubDispatcher }, -+ { { "getListMainSourceSoundProperties", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSourceSoundPropertiesStubDispatcher }, - /** - * This is used to retrieve SourceClass Information of all source classes - * - (at)return E_OK on success, E_DATABASE_ERROR on error - */ -- { { "getListSourceClasses", "" }, &org::genivi::am::getListSourceClassesStubDispatcher }, -+ { { "getListSourceClasses", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListSourceClassesStubDispatcher }, - /** - * This is used to retrieve SinkClass Information of all sink classes - (at)return - * E_OK on success, E_DATABASE_ERROR on error - */ -- { { "getListSinkClasses", "" }, &org::genivi::am::getListSinkClassesStubDispatcher }, -+ { { "getListSinkClasses", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListSinkClassesStubDispatcher }, - /** - * Retrieves a complete list of all systemProperties. - (at)return E_OK on success, - * E_DATABASE_ERROR on error - */ -- { { "getListSystemProperties", "" }, &org::genivi::am::getListSystemPropertiesStubDispatcher }, -+ { { "getListSystemProperties", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListSystemPropertiesStubDispatcher }, - /** - * returns the delay in ms that the audiopath for the given mainConnection - * has - (at)return E_OK on success, E_NOT_POSSIBLE if timing information is not - * yet retrieved, E_DATABASE_ERROR on read error on the database - */ -- { { "getTimingInformation", "q" }, &org::genivi::am::getTimingInformationStubDispatcher }, -+ { { "getTimingInformation", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getTimingInformationStubDispatcher }, - /** - * Retrieves the list of MainNotifications for a sink. Does not return the - * possible ones. - */ -- { { "getListMainSinkNotificationConfigurations", "q" }, &org::genivi::am::getListMainSinkNotificationConfigurationsStubDispatcher }, -+ { { "getListMainSinkNotificationConfigurations", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSinkNotificationConfigurationsStubDispatcher }, - /** - * Retrieves the list of MainNotifications for a source. Does not return the - * possible ones. - */ -- { { "getListMainSourceNotificationConfigurations", "q" }, &org::genivi::am::getListMainSourceNotificationConfigurationsStubDispatcher }, -+ { { "getListMainSourceNotificationConfigurations", "q" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getListMainSourceNotificationConfigurationsStubDispatcher }, - /** - * sets a MainNotificationConfiuration. This can be used to turn on an off - * notifications an to change the mode of the configuration. - (at)return E_OK on - * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error - */ -- { { "setMainSinkNotificationConfiguration", "q(qin)" }, &org::genivi::am::setMainSinkNotificationConfigurationStubDispatcher }, -+ { { "setMainSinkNotificationConfiguration", "q(qin)" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setMainSinkNotificationConfigurationStubDispatcher }, - /** - * sets a MainNotificationConfiuration. This can be used to turn on an off - * notifications an to change the mode of the configuration. - (at)return E_OK on - * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error - */ -- { { "setMainSourceNotificationConfiguration", "q(qin)" }, &org::genivi::am::setMainSourceNotificationConfigurationStubDispatcher } -- }) { -+ { { "setMainSourceNotificationConfiguration", "q(qin)" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::setMainSourceNotificationConfigurationStubDispatcher } -+ }), -+ stubAttributeTable_() { -+ -+ stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::am::CommandControlDBusStubAdapterInternal::getCommandControlInterfaceVersionStubDispatcher }); -+} - -- stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::am::getCommandControlInterfaceVersionStubDispatcher }); -+const bool CommandControlDBusStubAdapterInternal::hasFreedesktopProperties() { -+ return false; - } - - } // namespace am -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.h -index 8ef3355..1c5ba0d 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.h -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlDBusStubAdapter.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * The interface towards the Controlling Instance (e.g HMI). It handles the -@@ -37,7 +35,7 @@ namespace am { - - typedef CommonAPI::DBus::DBusStubAdapterHelper<CommandControlStub> CommandControlDBusStubAdapterHelper; - --class CommandControlDBusStubAdapterInternal: public CommandControlStubAdapter, public CommandControlDBusStubAdapterHelper { -+class CommandControlDBusStubAdapterInternal: public virtual CommandControlStubAdapter, public CommandControlDBusStubAdapterHelper { - public: - CommandControlDBusStubAdapterInternal( - const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, -@@ -50,6 +48,8 @@ class CommandControlDBusStubAdapterInternal: public CommandControlStubAdapter, p - - ~CommandControlDBusStubAdapterInternal(); - -+ virtual const bool hasFreedesktopProperties(); -+ - - /** - * Callback that is called when the number of connections change -@@ -146,15 +146,245 @@ class CommandControlDBusStubAdapterInternal: public CommandControlStubAdapter, p - - - const CommandControlDBusStubAdapterHelper::StubDispatcherTable& getStubDispatcherTable(); -+ const CommonAPI::DBus::StubAttributeTable& getStubAttributeTable(); - - void deactivateManagedInstances(); - - -+static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ CommandControlStub, -+ CommonAPI::Version -+ > getCommandControlInterfaceVersionStubDispatcher; -+ -+ -+ -+/** -+ * connects a source to sink -+(at)return E_OK on success, E_NOT_POSSIBLE on -+ * failure, E_ALREADY_EXISTS if the connection does already exists -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sourceID_t, am_sinkID_t>, -+ std::tuple<am_mainConnectionID_t, am_Error_e> -+ > connectStubDispatcher; -+/** -+ * disconnects a mainConnection -+(at)return E_OK on successes, E_NON_EXISTENT if -+ * the connection does not exist, E_NOT_POSSIBLE on error. -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_mainConnectionID_t>, -+ std::tuple<am_Error_e> -+ > disconnectStubDispatcher; -+/** -+ * sets the volume for a sink -+(at)return E_OK on success, E_UNKOWN on error, -+ * E_OUT_OF_RANGE in case the value is out of range -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sinkID_t, am_mainVolume_t>, -+ std::tuple<am_Error_e> -+ > setVolumeStubDispatcher; -+/** -+ * This function is used to increment or decrement the current volume for a -+ * sink. -+(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sinkID_t, int16_t>, -+ std::tuple<am_Error_e> -+ > volumeStepStubDispatcher; -+/** -+ * sets the mute state of a sink -+(at)return E_OK on success, E_UNKNOWN on error. -+ * If the mute state is already the desired one, the Daemon will return E_OK. -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sinkID_t, am_MuteState_e>, -+ std::tuple<am_Error_e> -+ > setSinkMuteStateStubDispatcher; -+/** -+ * This method is used to set sound properties, e.g. Equalizer Values. Since the -+ * capabilities of the system can differ, the exact key value pairs can be -+ * extended in each product -+(at)return E_OK on success, E_OUT_OF_RANGE if value -+ * exceeds range, E_UNKNOWN in case of an error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sinkID_t, am_MainSoundProperty_s>, -+ std::tuple<am_Error_e> -+ > setMainSinkSoundPropertyStubDispatcher; -+/** -+ * This method is used to set sound properties, e.g. Equalizer Values. Since the -+ * capabilities of the system can differ, the exact key value pairs can be -+ * extended in each product -+(at)return E_OK on success, E_OUT_OF_RANGE if value -+ * exceeds range, E_UNKNOWN in case of an error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sourceID_t, am_MainSoundProperty_s>, -+ std::tuple<am_Error_e> -+ > setMainSourceSoundPropertyStubDispatcher; -+/** -+ * is used to set a specific system property. -+(at)return E_OK on success, -+ * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_SystemProperty_s>, -+ std::tuple<am_Error_e> -+ > setSystemPropertyStubDispatcher; -+/** -+ * returns the actual list of MainConnections -+(at)return E_OK on success, -+ * E_DATABASE_ERROR on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<>, -+ std::tuple<am_MainConnection_L, am_Error_e> -+ > getListMainConnectionsStubDispatcher; -+/** -+ * returns the actual list of Sinks -+(at)return E_OK on success, E_DATABASE_ERROR -+ * on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<>, -+ std::tuple<am_SinkType_L, am_Error_e> -+ > getListMainSinksStubDispatcher; -+/** -+ * returns the actual list of Sources -+(at)return E_OK on success, E_DATABASE_ERROR -+ * on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<>, -+ std::tuple<am_SourceType_L, am_Error_e> -+ > getListMainSourcesStubDispatcher; -+/** -+ * This is used to retrieve all source sound properties related to a source. -+ * Returns a vector of the sound properties and values as pair -+(at)return E_OK on -+ * success, E_DATABASE_ERROR on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sinkID_t>, -+ std::tuple<am_MainSoundProperty_L, am_Error_e> -+ > getListMainSinkSoundPropertiesStubDispatcher; -+/** -+ * This is used to retrieve all source sound properties related to a -+ * source. -+(at)return E_OK on success, E_DATABASE_ERROR on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sourceID_t>, -+ std::tuple<am_MainSoundProperty_L, am_Error_e> -+ > getListMainSourceSoundPropertiesStubDispatcher; -+/** -+ * This is used to retrieve SourceClass Information of all source classes -+ * -+(at)return E_OK on success, E_DATABASE_ERROR on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<>, -+ std::tuple<am_SourceClass_L, am_Error_e> -+ > getListSourceClassesStubDispatcher; -+/** -+ * This is used to retrieve SinkClass Information of all sink classes -+(at)return -+ * E_OK on success, E_DATABASE_ERROR on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<>, -+ std::tuple<am_SinkClass_L, am_Error_e> -+ > getListSinkClassesStubDispatcher; -+/** -+ * Retrieves a complete list of all systemProperties. -+(at)return E_OK on success, -+ * E_DATABASE_ERROR on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<>, -+ std::tuple<am_SystemProperty_L, am_Error_e> -+ > getListSystemPropertiesStubDispatcher; -+/** -+ * returns the delay in ms that the audiopath for the given mainConnection -+ * has -+(at)return E_OK on success, E_NOT_POSSIBLE if timing information is not -+ * yet retrieved, E_DATABASE_ERROR on read error on the database -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_mainConnectionID_t>, -+ std::tuple<am_timeSync_t, am_Error_e> -+ > getTimingInformationStubDispatcher; -+/** -+ * Retrieves the list of MainNotifications for a sink. Does not return the -+ * possible ones. -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sinkID_t>, -+ std::tuple<am_NotificationConfiguration_L, am_Error_e> -+ > getListMainSinkNotificationConfigurationsStubDispatcher; -+/** -+ * Retrieves the list of MainNotifications for a source. Does not return the -+ * possible ones. -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sourceID_t>, -+ std::tuple<am_NotificationConfiguration_L, am_Error_e> -+ > getListMainSourceNotificationConfigurationsStubDispatcher; -+/** -+ * sets a MainNotificationConfiuration. This can be used to turn on an off -+ * notifications an to change the mode of the configuration. -+(at)return E_OK on -+ * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sinkID_t, am_NotificationConfiguration_s>, -+ std::tuple<am_Error_e> -+ > setMainSinkNotificationConfigurationStubDispatcher; -+/** -+ * sets a MainNotificationConfiuration. This can be used to turn on an off -+ * notifications an to change the mode of the configuration. -+(at)return E_OK on -+ * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ CommandControlStub, -+ std::tuple<am_sourceID_t, am_NotificationConfiguration_s>, -+ std::tuple<am_Error_e> -+ > setMainSourceNotificationConfigurationStubDispatcher; -+ -+ -+ -+ - protected: - virtual const char* getMethodsDBusIntrospectionXmlData() const; -- -- private: -+ -+ private: - CommandControlDBusStubAdapterHelper::StubDispatcherTable stubDispatcherTable_; -+ CommonAPI::DBus::StubAttributeTable stubAttributeTable_; - }; - - class CommandControlDBusStubAdapter: public CommandControlDBusStubAdapterInternal, public std::enable_shared_from_this<CommandControlDBusStubAdapter> { -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxy.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxy.h -index 656d3f7..c628cd6 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxy.h -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxy.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * The interface towards the Controlling Instance (e.g HMI). It handles the -@@ -329,8 +327,8 @@ public: - /** - * This function is used to increment or decrement the current volume for a - * sink. -- (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if -- * the value is not in the given volume range. -+ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. - * - * Calls volumeStep with synchronous semantics. - * -@@ -340,7 +338,7 @@ public: - * "SUCCESS" or which type of error has occurred. In case of an error, ONLY the CallStatus - * will be set. - */ -- virtual void volumeStep(const am_sinkID_t& sinkID, const int16_t& volumeStep_, CommonAPI::CallStatus& callStatus, am_Error_e& error); -+ virtual void volumeStep(const am_sinkID_t& sinkID, const int16_t& volStep, CommonAPI::CallStatus& callStatus, am_Error_e& error); - /** - * Calls volumeStep with asynchronous semantics. - * -@@ -351,7 +349,7 @@ public: - * The std::future returned by this method will be fulfilled at arrival of the reply. - * It will provide the same value for CallStatus as will be handed to the callback. - */ -- virtual std::future<CommonAPI::CallStatus> volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volumeStep_, VolumeStepAsyncCallback callback); -+ virtual std::future<CommonAPI::CallStatus> volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volStep, VolumeStepAsyncCallback callback); - /** - * sets the mute state of a sink - (at)return E_OK on success, E_UNKNOWN on error. -@@ -506,8 +504,8 @@ public: - virtual std::future<CommonAPI::CallStatus> getListMainSinksAsync(GetListMainSinksAsyncCallback callback); - /** - * returns the actual list of Sources -- (at)return E_OK on success, -- * E_DATABASE_ERROR on error -+ (at)return E_OK on success, E_DATABASE_ERROR -+ * on error - * - * Calls getListMainSources with synchronous semantics. - * -@@ -531,8 +529,8 @@ public: - /** - * This is used to retrieve all source sound properties related to a source. - * Returns a vector of the sound properties and values as pair -- (at)return E_OK -- * on success, E_DATABASE_ERROR on error -+ (at)return E_OK on -+ * success, E_DATABASE_ERROR on error - * - * Calls getListMainSinkSoundProperties with synchronous semantics. - * -@@ -825,14 +823,20 @@ public: - std::shared_ptr<CommandControlProxyBase> delegate_; - }; - -+#ifdef WIN32 -+ typedef CommandControlProxy<CommonAPI::WINDummyAttributeExtension<CommonAPI::WINDummyAttribute>> CommandControlProxyDefault; -+#else -+ typedef CommandControlProxy<> CommandControlProxyDefault; -+#endif -+ - - // - // CommandControlProxy Implementation - // - template <typename ... _AttributeExtensions> - CommandControlProxy<_AttributeExtensions...>::CommandControlProxy(std::shared_ptr<CommonAPI::Proxy> delegate): -- delegate_(std::dynamic_pointer_cast<CommandControlProxyBase>(delegate)), -- _AttributeExtensions(*(std::dynamic_pointer_cast<CommandControlProxyBase>(delegate)))... { -+ _AttributeExtensions(*(std::dynamic_pointer_cast<CommandControlProxyBase>(delegate)))..., -+ delegate_(std::dynamic_pointer_cast<CommandControlProxyBase>(delegate)) { - } - - template <typename ... _AttributeExtensions> -@@ -884,17 +888,17 @@ std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>: - /** - * This function is used to increment or decrement the current volume for a - * sink. --(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if -- * the value is not in the given volume range. -+(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. - */ - template <typename ... _AttributeExtensions> --void CommandControlProxy<_AttributeExtensions...>::volumeStep(const am_sinkID_t& sinkID, const int16_t& volumeStep_, CommonAPI::CallStatus& callStatus, am_Error_e& error) { -- delegate_->volumeStep(sinkID, volumeStep_, callStatus, error); -+void CommandControlProxy<_AttributeExtensions...>::volumeStep(const am_sinkID_t& sinkID, const int16_t& volStep, CommonAPI::CallStatus& callStatus, am_Error_e& error) { -+ delegate_->volumeStep(sinkID, volStep, callStatus, error); - } - - template <typename ... _AttributeExtensions> --std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volumeStep_, VolumeStepAsyncCallback callback) { -- return delegate_->volumeStepAsync(sinkID, volumeStep_, callback); -+std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>::volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volStep, VolumeStepAsyncCallback callback) { -+ return delegate_->volumeStepAsync(sinkID, volStep, callback); - } - /** - * sets the mute state of a sink -@@ -986,8 +990,8 @@ std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>: - } - /** - * returns the actual list of Sources --(at)return E_OK on success, -- * E_DATABASE_ERROR on error -+(at)return E_OK on success, E_DATABASE_ERROR -+ * on error - */ - template <typename ... _AttributeExtensions> - void CommandControlProxy<_AttributeExtensions...>::getListMainSources(CommonAPI::CallStatus& callStatus, am_SourceType_L& listMainSources, am_Error_e& error) { -@@ -1001,8 +1005,8 @@ std::future<CommonAPI::CallStatus> CommandControlProxy<_AttributeExtensions...>: - /** - * This is used to retrieve all source sound properties related to a source. - * Returns a vector of the sound properties and values as pair --(at)return E_OK -- * on success, E_DATABASE_ERROR on error -+(at)return E_OK on -+ * success, E_DATABASE_ERROR on error - */ - template <typename ... _AttributeExtensions> - void CommandControlProxy<_AttributeExtensions...>::getListMainSinkSoundProperties(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error) { -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxyBase.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxyBase.h -index 377547a..79becb8 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxyBase.h -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlProxyBase.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * The interface towards the Controlling Instance (e.g HMI). It handles the -@@ -211,11 +209,11 @@ class CommandControlProxyBase: virtual public CommonAPI::Proxy { - /** - * This function is used to increment or decrement the current volume for a - * sink. -- (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if -- * the value is not in the given volume range. -+ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. - */ -- virtual void volumeStep(const am_sinkID_t& sinkID, const int16_t& volumeStep_, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; -- virtual std::future<CommonAPI::CallStatus> volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volumeStep_, VolumeStepAsyncCallback callback) = 0; -+ virtual void volumeStep(const am_sinkID_t& sinkID, const int16_t& volStep, CommonAPI::CallStatus& callStatus, am_Error_e& error) = 0; -+ virtual std::future<CommonAPI::CallStatus> volumeStepAsync(const am_sinkID_t& sinkID, const int16_t& volStep, VolumeStepAsyncCallback callback) = 0; - /** - * sets the mute state of a sink - (at)return E_OK on success, E_UNKNOWN on error. -@@ -264,16 +262,16 @@ class CommandControlProxyBase: virtual public CommonAPI::Proxy { - virtual std::future<CommonAPI::CallStatus> getListMainSinksAsync(GetListMainSinksAsyncCallback callback) = 0; - /** - * returns the actual list of Sources -- (at)return E_OK on success, -- * E_DATABASE_ERROR on error -+ (at)return E_OK on success, E_DATABASE_ERROR -+ * on error - */ - virtual void getListMainSources(CommonAPI::CallStatus& callStatus, am_SourceType_L& listMainSources, am_Error_e& error) = 0; - virtual std::future<CommonAPI::CallStatus> getListMainSourcesAsync(GetListMainSourcesAsyncCallback callback) = 0; - /** - * This is used to retrieve all source sound properties related to a source. - * Returns a vector of the sound properties and values as pair -- (at)return E_OK -- * on success, E_DATABASE_ERROR on error -+ (at)return E_OK on -+ * success, E_DATABASE_ERROR on error - */ - virtual void getListMainSinkSoundProperties(const am_sinkID_t& sinkID, CommonAPI::CallStatus& callStatus, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error) = 0; - virtual std::future<CommonAPI::CallStatus> getListMainSinkSoundPropertiesAsync(const am_sinkID_t& sinkID, GetListMainSinkSoundPropertiesAsyncCallback callback) = 0; -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStub.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStub.h -index 6e8de18..1fe5b1a 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStub.h -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStub.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * The interface towards the Controlling Instance (e.g HMI). It handles the -@@ -204,7 +202,7 @@ class CommandControlStubRemoteEvent { - * This class and the one above are the ones an application developer needs to have - * a look at if he wants to implement a service. - */ --class CommandControlStub : public virtual CommonAPI::Stub<CommandControlStubAdapter, CommandControlStubRemoteEvent> { -+class CommandControlStub: public virtual CommonAPI::Stub<CommandControlStubAdapter, CommandControlStubRemoteEvent> { - public: - virtual ~CommandControlStub() { } - virtual const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) = 0; -@@ -234,11 +232,11 @@ public: - /** - * This function is used to increment or decrement the current volume for a - * sink. -- (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if -- * the value is not in the given volume range. -+ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. - */ - /// This is the method that will be called on remote calls on the method volumeStep. -- virtual void volumeStep(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, int16_t volumeStep_, am_Error_e& error) = 0; -+ virtual void volumeStep(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, int16_t volStep, am_Error_e& error) = 0; - /** - * sets the mute state of a sink - (at)return E_OK on success, E_UNKNOWN on error. -@@ -287,16 +285,16 @@ public: - virtual void getListMainSinks(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SinkType_L& listMainSinks, am_Error_e& error) = 0; - /** - * returns the actual list of Sources -- (at)return E_OK on success, -- * E_DATABASE_ERROR on error -+ (at)return E_OK on success, E_DATABASE_ERROR -+ * on error - */ - /// This is the method that will be called on remote calls on the method getListMainSources. - virtual void getListMainSources(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SourceType_L& listMainSources, am_Error_e& error) = 0; - /** - * This is used to retrieve all source sound properties related to a source. - * Returns a vector of the sound properties and values as pair -- (at)return E_OK -- * on success, E_DATABASE_ERROR on error -+ (at)return E_OK on -+ * success, E_DATABASE_ERROR on error - */ - /// This is the method that will be called on remote calls on the method getListMainSinkSoundProperties. - virtual void getListMainSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error) = 0; -@@ -483,6 +481,8 @@ public: - using CommonAPI::Stub<CommandControlStubAdapter, CommandControlStubRemoteEvent>::initStubAdapter; - typedef CommonAPI::Stub<CommandControlStubAdapter, CommandControlStubRemoteEvent>::StubAdapterType StubAdapterType; - typedef CommonAPI::Stub<CommandControlStubAdapter, CommandControlStubRemoteEvent>::RemoteEventHandlerType RemoteEventHandlerType; -+ typedef CommandControlStubRemoteEvent RemoteEventType; -+ typedef CommandControl StubInterface; - }; - - } // namespace am -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.cpp b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.cpp -index f23f2da..9f2e7c5 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.cpp -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - #include <org/genivi/am/CommandControlStubDefault.h> - -@@ -70,14 +68,14 @@ void CommandControlStubDefault::setVolume(am_sinkID_t sinkID, am_mainVolume_t vo - /** - * This function is used to increment or decrement the current volume for a - * sink. --(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if -- * the value is not in the given volume range. -+(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. - */ --void CommandControlStubDefault::volumeStep(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, int16_t volumeStep_, am_Error_e& error) { -+void CommandControlStubDefault::volumeStep(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, int16_t volStep, am_Error_e& error) { - // Call old style methods in default -- volumeStep(sinkID, volumeStep_, error); -+ volumeStep(sinkID, volStep, error); - } --void CommandControlStubDefault::volumeStep(am_sinkID_t sinkID, int16_t volumeStep_, am_Error_e& error) { -+void CommandControlStubDefault::volumeStep(am_sinkID_t sinkID, int16_t volStep, am_Error_e& error) { - // No operation in default - } - -@@ -165,8 +163,8 @@ void CommandControlStubDefault::getListMainSinks(am_SinkType_L& listMainSinks, a - - /** - * returns the actual list of Sources --(at)return E_OK on success, -- * E_DATABASE_ERROR on error -+(at)return E_OK on success, E_DATABASE_ERROR -+ * on error - */ - void CommandControlStubDefault::getListMainSources(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SourceType_L& listMainSources, am_Error_e& error) { - // Call old style methods in default -@@ -179,8 +177,8 @@ void CommandControlStubDefault::getListMainSources(am_SourceType_L& listMainSour - /** - * This is used to retrieve all source sound properties related to a source. - * Returns a vector of the sound properties and values as pair --(at)return E_OK -- * on success, E_DATABASE_ERROR on error -+(at)return E_OK on -+ * success, E_DATABASE_ERROR on error - */ - void CommandControlStubDefault::getListMainSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error) { - // Call old style methods in default -diff --git a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.h b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.h -index 2bfe6ba..62257a4 100644 ---- a/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.h -+++ b/PluginCommandInterfaceCAPI/src-gen/org/genivi/am/CommandControlStubDefault.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * The interface towards the Controlling Instance (e.g HMI). It handles the -@@ -72,11 +70,11 @@ public: - /** - * This function is used to increment or decrement the current volume for a - * sink. -- (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if -- * the value is not in the given volume range. -+ (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the -+ * value is not in the given volume range. - */ -- virtual void volumeStep(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, int16_t volumeStep_, am_Error_e& error); -- virtual void volumeStep(am_sinkID_t sinkID, int16_t volumeStep_, am_Error_e& error); -+ virtual void volumeStep(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, int16_t volStep, am_Error_e& error); -+ virtual void volumeStep(am_sinkID_t sinkID, int16_t volStep, am_Error_e& error); - - /** - * sets the mute state of a sink -@@ -132,8 +130,8 @@ public: - - /** - * returns the actual list of Sources -- (at)return E_OK on success, -- * E_DATABASE_ERROR on error -+ (at)return E_OK on success, E_DATABASE_ERROR -+ * on error - */ - virtual void getListMainSources(const std::shared_ptr<CommonAPI::ClientId> clientId, am_SourceType_L& listMainSources, am_Error_e& error); - virtual void getListMainSources(am_SourceType_L& listMainSources, am_Error_e& error); -@@ -141,8 +139,8 @@ public: - /** - * This is used to retrieve all source sound properties related to a source. - * Returns a vector of the sound properties and values as pair -- (at)return E_OK -- * on success, E_DATABASE_ERROR on error -+ (at)return E_OK on -+ * success, E_DATABASE_ERROR on error - */ - virtual void getListMainSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_sinkID_t sinkID, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error); - virtual void getListMainSinkSoundProperties(am_sinkID_t sinkID, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error); -@@ -316,8 +314,7 @@ public: - - - protected: --private: -- class RemoteEventHandler: public CommandControlStubRemoteEvent { -+ class RemoteEventHandler: public virtual CommandControlStubRemoteEvent { - public: - RemoteEventHandler(CommandControlStubDefault* defaultStub); - -@@ -325,8 +322,8 @@ private: - private: - CommandControlStubDefault* defaultStub_; - }; -- -- RemoteEventHandler remoteEventHandler_; -+private: -+ CommandControlStubDefault::RemoteEventHandler remoteEventHandler_; - - - CommonAPI::Version interfaceVersion_; -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.cpp -index 161a7b7..152c8b6 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.cpp -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.h -index 8996092..dced63c 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * @author Christian Linke -@@ -714,15 +712,15 @@ namespace am { - am_NotificationStatus_e status; - /** - * This gives additional information to the notification status. -- Relation -- * between notification status and the value: -- NS_PERIODIC - the period in -- * ms -- NS_MINIMUM - the minimum value that triggers the notification -- NS_MAXIMUM -- * - the maximum value that triggers the notifcation -- NS_CHANGE - the resolution -- * of the change value -+ Relation between -+ * notification status and the value: -+ NS_PERIODIC - the period in ms -+ NS_MINIMUM -+ * - the minimum value that triggers the notification -+ NS_MAXIMUM - the maximum -+ * value that triggers the notifcation -+ NS_CHANGE - the resolution of the change -+ * value - */ - int16_t parameter; - -@@ -1155,8 +1153,8 @@ namespace am { - /** - * This enum can have 3 states: - -- HS_SINKA sinkA is the current hot one, -- * sinkB is not audible -+ HS_SINKA sinkA is the current hot one, sinkB -+ * is not audible - HS_SINKB sinkB is the current hot one, sinkB is not - * audible - HS_INTERMEDIATE the fader is stuck in between a cross-fading -@@ -1571,11 +1569,11 @@ namespace am { - * tuner that is not actively heard. The source state is set by the - * AudioManagerController.There are 3 possible states: - -- SS_ON: the source -- * is active -+ SS_ON: the source is -+ * active - SS_OFF: the source is off -- SS_PAUSED: the source is paused -- * and not active. -+ SS_PAUSED: the source is paused and -+ * not active. - */ - am_SourceState_e sourceState; - /** -@@ -2076,7 +2074,7 @@ static inline const char* getTypeCollectionName() { - } - - inline CommonAPI::Version getTypeCollectionVersion() { -- return CommonAPI::Version(1, 0); -+ return CommonAPI::Version(2, 0); - } - - } // namespace am -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControl.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControl.h -index 5cb6ccb..eba530d 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControl.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControl.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * This class implements everything from Audiomanager -> RoutingAdapter -@@ -43,7 +41,7 @@ const char* RoutingControl::getInterfaceId() { - } - - CommonAPI::Version RoutingControl::getInterfaceVersion() { -- return CommonAPI::Version(1, 0); -+ return CommonAPI::Version(2, 0); - } - - -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.cpp -index e32836f..24a154f 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.cpp -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * This class implements everything from Audiomanager -> RoutingAdapter -@@ -27,7 +25,7 @@ std::shared_ptr<CommonAPI::DBus::DBusProxy> createRoutingControlDBusProxy( - return std::make_shared<RoutingControlDBusProxy>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection); - } - --__attribute__((constructor)) void registerRoutingControlDBusProxy(void) { -+INITIALIZER(registerRoutingControlDBusProxy) { - CommonAPI::DBus::DBusFactory::registerProxyFactoryMethod(RoutingControl::getInterfaceId(), - &createRoutingControlDBusProxy); - } -@@ -72,7 +70,7 @@ std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncAbortAsync(cons - /** - * connects a source to a sink - (at)return E_OK on success, E_UNKNOWN on error, -- * E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match - */ - void RoutingControlDBusProxy::asyncConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, CommonAPI::CallStatus& callStatus) { - CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_connectionID_t, am_sourceID_t, am_sinkID_t, am_CustomConnectionFormat_t>, -@@ -197,8 +195,8 @@ std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSourceStateA - } - /** - * this function sets the sinksoundproperty. --(at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+(at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - void RoutingControlDBusProxy::asyncSetSinkSoundProperties(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus) { - CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_SoundProperty_L>, -@@ -221,8 +219,8 @@ std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSinkSoundPro - } - /** - * this function sets the sinksoundproperty. --(at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+(at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - void RoutingControlDBusProxy::asyncSetSinkSoundProperty(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus) { - CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<am_Handle_s, am_sinkID_t, am_SoundProperty_s>, -@@ -400,7 +398,7 @@ std::future<CommonAPI::CallStatus> RoutingControlDBusProxy::asyncSetSourceNotifi - - - void RoutingControlDBusProxy::getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const { -- ownVersionMajor = 1; -+ ownVersionMajor = 2; - ownVersionMinor = 0; - } - -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.h -index f9036d4..13557c2 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusProxy.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * This class implements everything from Audiomanager -> RoutingAdapter -@@ -55,7 +53,7 @@ class RoutingControlDBusProxy: virtual public RoutingControlProxyBase, virtual p - /** - * connects a source to a sink - (at)return E_OK on success, E_UNKNOWN on error, -- * E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match - */ - virtual void asyncConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, CommonAPI::CallStatus& callStatus); - virtual std::future<CommonAPI::CallStatus> asyncConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, AsyncConnectAsyncCallback callback); -@@ -95,15 +93,15 @@ class RoutingControlDBusProxy: virtual public RoutingControlProxyBase, virtual p - virtual std::future<CommonAPI::CallStatus> asyncSetSourceStateAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, AsyncSetSourceStateAsyncCallback callback); - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - virtual void asyncSetSinkSoundProperties(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus); - virtual std::future<CommonAPI::CallStatus> asyncSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, AsyncSetSinkSoundPropertiesAsyncCallback callback); - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - virtual void asyncSetSinkSoundProperty(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus); - virtual std::future<CommonAPI::CallStatus> asyncSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, AsyncSetSinkSoundPropertyAsyncCallback callback); -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.cpp -index 8563781..2016a98 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.cpp -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - #include "RoutingControlDBusStubAdapter.h" - #include <org/genivi/am/RoutingControl.h> -@@ -25,7 +23,7 @@ std::shared_ptr<CommonAPI::DBus::DBusStubAdapter> createRoutingControlDBusStubAd - return std::make_shared<RoutingControlDBusStubAdapter>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection, stubBase); - } - --__attribute__((constructor)) void registerRoutingControlDBusStubAdapter(void) { -+INITIALIZER(registerRoutingControlDBusStubAdapter) { - CommonAPI::DBus::DBusFactory::registerAdapterFactoryMethod(RoutingControl::getInterfaceId(), - &createRoutingControlDBusStubAdapter); - } -@@ -38,6 +36,7 @@ RoutingControlDBusStubAdapterInternal::~RoutingControlDBusStubAdapterInternal() - } - - void RoutingControlDBusStubAdapterInternal::deactivateManagedInstances() { -+ - } - - const char* RoutingControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXmlData() const { -@@ -56,7 +55,7 @@ const char* RoutingControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXm - /** - * connects a source to a sink - (at)return E_OK on success, E_UNKNOWN on error, -- * E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match - */ - "<method name=\"asyncConnect\">\n" - "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" -@@ -116,8 +115,8 @@ const char* RoutingControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXm - "</method>\n" - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - "<method name=\"asyncSetSinkSoundProperties\">\n" - "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" -@@ -126,8 +125,8 @@ const char* RoutingControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXm - "</method>\n" - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - "<method name=\"asyncSetSinkSoundProperty\">\n" - "<arg name=\"handle\" type=\"(iq)\" direction=\"in\" />\n" -@@ -195,10 +194,11 @@ const char* RoutingControlDBusStubAdapterInternal::getMethodsDBusIntrospectionXm - return introspectionData.c_str(); - } - --static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+CommonAPI::DBus::DBusGetAttributeStubDispatcher< - RoutingControlStub, - CommonAPI::Version -- > getRoutingControlInterfaceVersionStubDispatcher(&RoutingControlStub::getInterfaceVersion, "uu"); -+ > RoutingControlDBusStubAdapterInternal::getRoutingControlInterfaceVersionStubDispatcher(&RoutingControlStub::getInterfaceVersion, "uu"); -+ - - - /** -@@ -206,31 +206,31 @@ static CommonAPI::DBus::DBusGetAttributeStubDispatcher< - (at)return E_OK on success, E_UNKNOWN on error, - * E_NON_EXISTENT if handle was not found - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s>, - std::tuple<> -- > asyncAbortStubDispatcher(&RoutingControlStub::asyncAbort, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncAbortStubDispatcher(&RoutingControlStub::asyncAbort, ""); - /** - * connects a source to a sink - (at)return E_OK on success, E_UNKNOWN on error, -- * E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_connectionID_t, am_sourceID_t, am_sinkID_t, am_CustomConnectionFormat_t>, - std::tuple<> -- > asyncConnectStubDispatcher(&RoutingControlStub::asyncConnect, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncConnectStubDispatcher(&RoutingControlStub::asyncConnect, ""); - /** - * disconnect a connection with given connectionID - (at)return E_OK on success, - * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_connectionID_t>, - std::tuple<> -- > asyncDisconnectStubDispatcher(&RoutingControlStub::asyncDisconnect, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncDisconnectStubDispatcher(&RoutingControlStub::asyncDisconnect, ""); - /** - * this method is used to set the volume of a sink. This function is used to drive - * ramps, to mute or unmute or directly set the value. The difference is made -@@ -238,11 +238,11 @@ static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - (at)return E_OK on success, E_UNKNOWN on error, - * E_OUT_OF_RANGE if new volume is out of range - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_sinkID_t, am_volume_t, am_CustomRampType_t, am_time_t>, - std::tuple<> -- > asyncSetSinkVolumeStubDispatcher(&RoutingControlStub::asyncSetSinkVolume, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncSetSinkVolumeStubDispatcher(&RoutingControlStub::asyncSetSinkVolume, ""); - /** - * sets the volume of a source. This method is used to set the volume of a sink. - * This function is used to drive ramps, to mute or unmute or directly set the -@@ -252,96 +252,98 @@ static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - * range. - triggers the acknowledge ackSourceVolumeChange - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_sourceID_t, am_volume_t, am_CustomRampType_t, am_time_t>, - std::tuple<> -- > asyncSetSourceVolumeStubDispatcher(&RoutingControlStub::asyncSetSourceVolume, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncSetSourceVolumeStubDispatcher(&RoutingControlStub::asyncSetSourceVolume, ""); - /** - * This function is used to set the source state of a particular - * source. - (at)return E_OK on success, E_UNKNOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_sourceID_t, am_SourceState_e>, - std::tuple<> -- > asyncSetSourceStateStubDispatcher(&RoutingControlStub::asyncSetSourceState, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncSetSourceStateStubDispatcher(&RoutingControlStub::asyncSetSourceState, ""); - /** - * this function sets the sinksoundproperty. --(at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+(at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_sinkID_t, am_SoundProperty_L>, - std::tuple<> -- > asyncSetSinkSoundPropertiesStubDispatcher(&RoutingControlStub::asyncSetSinkSoundProperties, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncSetSinkSoundPropertiesStubDispatcher(&RoutingControlStub::asyncSetSinkSoundProperties, ""); - /** - * this function sets the sinksoundproperty. --(at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+(at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_sinkID_t, am_SoundProperty_s>, - std::tuple<> -- > asyncSetSinkSoundPropertyStubDispatcher(&RoutingControlStub::asyncSetSinkSoundProperty, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncSetSinkSoundPropertyStubDispatcher(&RoutingControlStub::asyncSetSinkSoundProperty, ""); - /** - * this function sets the sourcesoundproperty. - (at)return E_OK on success, - * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_sourceID_t, am_SoundProperty_L>, - std::tuple<> -- > asyncSetSourceSoundPropertiesStubDispatcher(&RoutingControlStub::asyncSetSourceSoundProperties, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncSetSourceSoundPropertiesStubDispatcher(&RoutingControlStub::asyncSetSourceSoundProperties, ""); - /** - * this function sets the sourcesoundproperty. - (at)return E_OK on success, - * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_sourceID_t, am_SoundProperty_s>, - std::tuple<> -- > asyncSetSourceSoundPropertyStubDispatcher(&RoutingControlStub::asyncSetSourceSoundProperty, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncSetSourceSoundPropertyStubDispatcher(&RoutingControlStub::asyncSetSourceSoundProperty, ""); - /** - * this function triggers crossfading. - (at)return E_OK on success, E_UNKNOWN on - * error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_crossfaderID_t, am_HotSink_e, am_CustomRampType_t, am_time_t>, - std::tuple<> -- > asyncCrossFadeStubDispatcher(&RoutingControlStub::asyncCrossFade, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncCrossFadeStubDispatcher(&RoutingControlStub::asyncCrossFade, ""); - /** - * this function is used for early and late audio functions to set the domain - * state - (at)return E_OK on success, E_UNKNOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_domainID_t, am_DomainState_e>, - std::tuple<am_Error_e> -- > setDomainStateStubDispatcher(&RoutingControlStub::setDomainState, "i"); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > RoutingControlDBusStubAdapterInternal::setDomainStateStubDispatcher(&RoutingControlStub::setDomainState, "i"); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_Volumes_L>, - std::tuple<> -- > asyncSetVolumesStubDispatcher(&RoutingControlStub::asyncSetVolumes, ""); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > RoutingControlDBusStubAdapterInternal::asyncSetVolumesStubDispatcher(&RoutingControlStub::asyncSetVolumes, ""); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_sinkID_t, am_NotificationConfiguration_s>, - std::tuple<> -- > asyncSetSinkNotificationConfigurationStubDispatcher(&RoutingControlStub::asyncSetSinkNotificationConfiguration, ""); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > RoutingControlDBusStubAdapterInternal::asyncSetSinkNotificationConfigurationStubDispatcher(&RoutingControlStub::asyncSetSinkNotificationConfiguration, ""); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlStub, - std::tuple<am_Handle_s, am_sourceID_t, am_NotificationConfiguration_s>, - std::tuple<> -- > asyncSetSourceNotificationConfigurationStubDispatcher(&RoutingControlStub::asyncSetSourceNotificationConfiguration, ""); -+ > RoutingControlDBusStubAdapterInternal::asyncSetSourceNotificationConfigurationStubDispatcher(&RoutingControlStub::asyncSetSourceNotificationConfiguration, ""); -+ -+ - - - -@@ -349,6 +351,9 @@ const RoutingControlDBusStubAdapterHelper::StubDispatcherTable& RoutingControlDB - return stubDispatcherTable_; - } - -+const CommonAPI::DBus::StubAttributeTable& RoutingControlDBusStubAdapterInternal::getStubAttributeTable() { -+ return stubAttributeTable_; -+} - - RoutingControlDBusStubAdapterInternal::RoutingControlDBusStubAdapterInternal( - const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, -@@ -381,19 +386,19 @@ RoutingControlDBusStubAdapterInternal::RoutingControlDBusStubAdapterInternal( - (at)return E_OK on success, E_UNKNOWN on error, - * E_NON_EXISTENT if handle was not found - */ -- { { "asyncAbort", "(iq)" }, &org::genivi::am::asyncAbortStubDispatcher }, -+ { { "asyncAbort", "(iq)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncAbortStubDispatcher }, - /** - * connects a source to a sink - (at)return E_OK on success, E_UNKNOWN on error, -- * E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match - */ -- { { "asyncConnect", "(iq)qqqq" }, &org::genivi::am::asyncConnectStubDispatcher }, -+ { { "asyncConnect", "(iq)qqqq" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncConnectStubDispatcher }, - /** - * disconnect a connection with given connectionID - (at)return E_OK on success, - * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found - */ -- { { "asyncDisconnect", "(iq)q" }, &org::genivi::am::asyncDisconnectStubDispatcher }, -+ { { "asyncDisconnect", "(iq)q" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncDisconnectStubDispatcher }, - /** - * this method is used to set the volume of a sink. This function is used to drive - * ramps, to mute or unmute or directly set the value. The difference is made -@@ -401,7 +406,7 @@ RoutingControlDBusStubAdapterInternal::RoutingControlDBusStubAdapterInternal( - (at)return E_OK on success, E_UNKNOWN on error, - * E_OUT_OF_RANGE if new volume is out of range - */ -- { { "asyncSetSinkVolume", "(iq)qnqn" }, &org::genivi::am::asyncSetSinkVolumeStubDispatcher }, -+ { { "asyncSetSinkVolume", "(iq)qnqn" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSinkVolumeStubDispatcher }, - /** - * sets the volume of a source. This method is used to set the volume of a sink. - * This function is used to drive ramps, to mute or unmute or directly set the -@@ -411,55 +416,60 @@ RoutingControlDBusStubAdapterInternal::RoutingControlDBusStubAdapterInternal( - * range. - triggers the acknowledge ackSourceVolumeChange - */ -- { { "asyncSetSourceVolume", "(iq)qnqn" }, &org::genivi::am::asyncSetSourceVolumeStubDispatcher }, -+ { { "asyncSetSourceVolume", "(iq)qnqn" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSourceVolumeStubDispatcher }, - /** - * This function is used to set the source state of a particular - * source. - (at)return E_OK on success, E_UNKNOWN on error - */ -- { { "asyncSetSourceState", "(iq)qi" }, &org::genivi::am::asyncSetSourceStateStubDispatcher }, -+ { { "asyncSetSourceState", "(iq)qi" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSourceStateStubDispatcher }, - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ -- { { "asyncSetSinkSoundProperties", "(iq)qa(qn)" }, &org::genivi::am::asyncSetSinkSoundPropertiesStubDispatcher }, -+ { { "asyncSetSinkSoundProperties", "(iq)qa(qn)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSinkSoundPropertiesStubDispatcher }, - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ -- { { "asyncSetSinkSoundProperty", "(iq)q(qn)" }, &org::genivi::am::asyncSetSinkSoundPropertyStubDispatcher }, -+ { { "asyncSetSinkSoundProperty", "(iq)q(qn)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSinkSoundPropertyStubDispatcher }, - /** - * this function sets the sourcesoundproperty. - (at)return E_OK on success, - * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range - */ -- { { "asyncSetSourceSoundProperties", "(iq)qa(qn)" }, &org::genivi::am::asyncSetSourceSoundPropertiesStubDispatcher }, -+ { { "asyncSetSourceSoundProperties", "(iq)qa(qn)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSourceSoundPropertiesStubDispatcher }, - /** - * this function sets the sourcesoundproperty. - (at)return E_OK on success, - * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range - */ -- { { "asyncSetSourceSoundProperty", "(iq)q(qn)" }, &org::genivi::am::asyncSetSourceSoundPropertyStubDispatcher }, -+ { { "asyncSetSourceSoundProperty", "(iq)q(qn)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSourceSoundPropertyStubDispatcher }, - /** - * this function triggers crossfading. - (at)return E_OK on success, E_UNKNOWN on - * error - */ -- { { "asyncCrossFade", "(iq)qiqn" }, &org::genivi::am::asyncCrossFadeStubDispatcher }, -+ { { "asyncCrossFade", "(iq)qiqn" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncCrossFadeStubDispatcher }, - /** - * this function is used for early and late audio functions to set the domain - * state - (at)return E_OK on success, E_UNKNOWN on error - */ -- { { "setDomainState", "qi" }, &org::genivi::am::setDomainStateStubDispatcher }, -- { { "asyncSetVolumes", "(iq)a(i(yv)nqn)" }, &org::genivi::am::asyncSetVolumesStubDispatcher }, -- { { "asyncSetSinkNotificationConfiguration", "(iq)q(qin)" }, &org::genivi::am::asyncSetSinkNotificationConfigurationStubDispatcher }, -- { { "asyncSetSourceNotificationConfiguration", "(iq)q(qin)" }, &org::genivi::am::asyncSetSourceNotificationConfigurationStubDispatcher } -- }) { -+ { { "setDomainState", "qi" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::setDomainStateStubDispatcher }, -+ { { "asyncSetVolumes", "(iq)a(i(yv)nqn)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetVolumesStubDispatcher }, -+ { { "asyncSetSinkNotificationConfiguration", "(iq)q(qin)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSinkNotificationConfigurationStubDispatcher }, -+ { { "asyncSetSourceNotificationConfiguration", "(iq)q(qin)" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::asyncSetSourceNotificationConfigurationStubDispatcher } -+ }), -+ stubAttributeTable_() { -+ -+ stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::am::RoutingControlDBusStubAdapterInternal::getRoutingControlInterfaceVersionStubDispatcher }); -+} - -- stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::am::getRoutingControlInterfaceVersionStubDispatcher }); -+const bool RoutingControlDBusStubAdapterInternal::hasFreedesktopProperties() { -+ return false; - } - - } // namespace am -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.h -index 5f73bcb..4be03fd 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlDBusStubAdapter.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * This class implements everything from Audiomanager -> RoutingAdapter -@@ -33,7 +31,7 @@ namespace am { - - typedef CommonAPI::DBus::DBusStubAdapterHelper<RoutingControlStub> RoutingControlDBusStubAdapterHelper; - --class RoutingControlDBusStubAdapterInternal: public RoutingControlStubAdapter, public RoutingControlDBusStubAdapterHelper { -+class RoutingControlDBusStubAdapterInternal: public virtual RoutingControlStubAdapter, public RoutingControlDBusStubAdapterHelper { - public: - RoutingControlDBusStubAdapterInternal( - const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, -@@ -46,19 +44,175 @@ class RoutingControlDBusStubAdapterInternal: public RoutingControlStubAdapter, p - - ~RoutingControlDBusStubAdapterInternal(); - -+ virtual const bool hasFreedesktopProperties(); -+ - - - - const RoutingControlDBusStubAdapterHelper::StubDispatcherTable& getStubDispatcherTable(); -+ const CommonAPI::DBus::StubAttributeTable& getStubAttributeTable(); - - void deactivateManagedInstances(); - - -+static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ RoutingControlStub, -+ CommonAPI::Version -+ > getRoutingControlInterfaceVersionStubDispatcher; -+ -+ -+ -+/** -+ * aborts an asynchronous action. -+(at)return E_OK on success, E_UNKNOWN on error, -+ * E_NON_EXISTENT if handle was not found -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s>, -+ std::tuple<> -+ > asyncAbortStubDispatcher; -+/** -+ * connects a source to a sink -+(at)return E_OK on success, E_UNKNOWN on error, -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_connectionID_t, am_sourceID_t, am_sinkID_t, am_CustomConnectionFormat_t>, -+ std::tuple<> -+ > asyncConnectStubDispatcher; -+/** -+ * disconnect a connection with given connectionID -+(at)return E_OK on success, -+ * E_UNKNOWN on error, E_NON_EXISTENT if connection was not found -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_connectionID_t>, -+ std::tuple<> -+ > asyncDisconnectStubDispatcher; -+/** -+ * this method is used to set the volume of a sink. This function is used to drive -+ * ramps, to mute or unmute or directly set the value. The difference is made -+ * through the ramptype. -+(at)return E_OK on success, E_UNKNOWN on error, -+ * E_OUT_OF_RANGE if new volume is out of range -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_sinkID_t, am_volume_t, am_CustomRampType_t, am_time_t>, -+ std::tuple<> -+ > asyncSetSinkVolumeStubDispatcher; -+/** -+ * sets the volume of a source. This method is used to set the volume of a sink. -+ * This function is used to drive ramps, to mute or unmute or directly set the -+ * value. The difference is made through the ramptype. -+(at)return E_OK on -+ * success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of -+ * range. -+triggers the acknowledge ackSourceVolumeChange -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_sourceID_t, am_volume_t, am_CustomRampType_t, am_time_t>, -+ std::tuple<> -+ > asyncSetSourceVolumeStubDispatcher; -+/** -+ * This function is used to set the source state of a particular -+ * source. -+(at)return E_OK on success, E_UNKNOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_sourceID_t, am_SourceState_e>, -+ std::tuple<> -+ > asyncSetSourceStateStubDispatcher; -+/** -+ * this function sets the sinksoundproperty. -+(at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_sinkID_t, am_SoundProperty_L>, -+ std::tuple<> -+ > asyncSetSinkSoundPropertiesStubDispatcher; -+/** -+ * this function sets the sinksoundproperty. -+(at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_sinkID_t, am_SoundProperty_s>, -+ std::tuple<> -+ > asyncSetSinkSoundPropertyStubDispatcher; -+/** -+ * this function sets the sourcesoundproperty. -+(at)return E_OK on success, -+ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_sourceID_t, am_SoundProperty_L>, -+ std::tuple<> -+ > asyncSetSourceSoundPropertiesStubDispatcher; -+/** -+ * this function sets the sourcesoundproperty. -+(at)return E_OK on success, -+ * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_sourceID_t, am_SoundProperty_s>, -+ std::tuple<> -+ > asyncSetSourceSoundPropertyStubDispatcher; -+/** -+ * this function triggers crossfading. -+(at)return E_OK on success, E_UNKNOWN on -+ * error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_crossfaderID_t, am_HotSink_e, am_CustomRampType_t, am_time_t>, -+ std::tuple<> -+ > asyncCrossFadeStubDispatcher; -+/** -+ * this function is used for early and late audio functions to set the domain -+ * state -+(at)return E_OK on success, E_UNKNOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_domainID_t, am_DomainState_e>, -+ std::tuple<am_Error_e> -+ > setDomainStateStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_Volumes_L>, -+ std::tuple<> -+ > asyncSetVolumesStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_sinkID_t, am_NotificationConfiguration_s>, -+ std::tuple<> -+ > asyncSetSinkNotificationConfigurationStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlStub, -+ std::tuple<am_Handle_s, am_sourceID_t, am_NotificationConfiguration_s>, -+ std::tuple<> -+ > asyncSetSourceNotificationConfigurationStubDispatcher; -+ -+ -+ -+ - protected: - virtual const char* getMethodsDBusIntrospectionXmlData() const; -- -- private: -+ -+ private: - RoutingControlDBusStubAdapterHelper::StubDispatcherTable stubDispatcherTable_; -+ CommonAPI::DBus::StubAttributeTable stubAttributeTable_; - }; - - class RoutingControlDBusStubAdapter: public RoutingControlDBusStubAdapterInternal, public std::enable_shared_from_this<RoutingControlDBusStubAdapter> { -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserver.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserver.h -index 4fe3ad8..cb3508e 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserver.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserver.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * Routing Receive sendInterface description. -@@ -43,7 +41,7 @@ const char* RoutingControlObserver::getInterfaceId() { - } - - CommonAPI::Version RoutingControlObserver::getInterfaceVersion() { -- return CommonAPI::Version(0, 1); -+ return CommonAPI::Version(2, 0); - } - - -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.cpp -index 9da10db..5d5d5d4 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.cpp -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * Routing Receive sendInterface description. -@@ -27,7 +25,7 @@ std::shared_ptr<CommonAPI::DBus::DBusProxy> createRoutingControlObserverDBusProx - return std::make_shared<RoutingControlObserverDBusProxy>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection); - } - --__attribute__((constructor)) void registerRoutingControlObserverDBusProxy(void) { -+INITIALIZER(registerRoutingControlObserverDBusProxy) { - CommonAPI::DBus::DBusFactory::registerProxyFactoryMethod(RoutingControlObserver::getInterfaceId(), - &createRoutingControlObserverDBusProxy); - } -@@ -320,8 +318,8 @@ std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::ackSinkVolum - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the domain. The other parameters of the domain - * will be overwritten when the domain is registered. --(at)return E_OK on -- * success, E_UNKNOWN on error -+(at)return E_OK on success, -+ * E_UNKNOWN on error - */ - void RoutingControlObserverDBusProxy::peekDomain(const std::string& name, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error) { - CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, -@@ -520,8 +518,8 @@ std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::deregisterSi - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the source. The other parameters of the source - * will be overwritten when the source is registered. --(at)return E_OK on -- * success, E_UNKNOWN on error -+(at)return E_OK on success, -+ * E_UNKNOWN on error - */ - void RoutingControlObserverDBusProxy::peekSource(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error) { - CommonAPI::DBus::DBusProxyHelper<CommonAPI::DBus::DBusSerializableArguments<std::string>, -@@ -898,8 +896,8 @@ std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::updateSinkAs - /** - * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the - * sourceID in the struct is not valid. --Please note that only the following -- * data out of am_Source_s have effect when they are -+Please note that only the following data -+ * out of am_Source_s have effect when they are - * changed: - sourceClassID, - listSoundProperties, -@@ -1059,8 +1057,8 @@ std::future<CommonAPI::CallStatus> RoutingControlObserverDBusProxy::confirmRouti - - - void RoutingControlObserverDBusProxy::getOwnVersion(uint16_t& ownVersionMajor, uint16_t& ownVersionMinor) const { -- ownVersionMajor = 0; -- ownVersionMinor = 1; -+ ownVersionMajor = 2; -+ ownVersionMinor = 0; - } - - } // namespace am -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.h -index 81d8885..a5d7f3c 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusProxy.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * Routing Receive sendInterface description. -@@ -114,8 +112,8 @@ class RoutingControlObserverDBusProxy: virtual public RoutingControlObserverProx - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the domain. The other parameters of the domain - * will be overwritten when the domain is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ - virtual void peekDomain(const std::string& name, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error); - virtual std::future<CommonAPI::CallStatus> peekDomainAsync(const std::string& name, PeekDomainAsyncCallback callback); -@@ -178,8 +176,8 @@ class RoutingControlObserverDBusProxy: virtual public RoutingControlObserverProx - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the source. The other parameters of the source - * will be overwritten when the source is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ - virtual void peekSource(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error); - virtual std::future<CommonAPI::CallStatus> peekSourceAsync(const std::string& name, PeekSourceAsyncCallback callback); -@@ -284,8 +282,8 @@ class RoutingControlObserverDBusProxy: virtual public RoutingControlObserverProx - /** - * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the - * sourceID in the struct is not valid. -- Please note that only the following -- * data out of am_Source_s have effect when they are -+ Please note that only the following data -+ * out of am_Source_s have effect when they are - * changed: - sourceClassID, - listSoundProperties, -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.cpp -index 4c8053d..00f4565 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.cpp -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - #include "RoutingControlObserverDBusStubAdapter.h" - #include <org/genivi/am/RoutingControlObserver.h> -@@ -25,7 +23,7 @@ std::shared_ptr<CommonAPI::DBus::DBusStubAdapter> createRoutingControlObserverDB - return std::make_shared<RoutingControlObserverDBusStubAdapter>(factory, commonApiAddress, interfaceName, busName, objectPath, dbusProxyConnection, stubBase); - } - --__attribute__((constructor)) void registerRoutingControlObserverDBusStubAdapter(void) { -+INITIALIZER(registerRoutingControlObserverDBusStubAdapter) { - CommonAPI::DBus::DBusFactory::registerAdapterFactoryMethod(RoutingControlObserver::getInterfaceId(), - &createRoutingControlObserverDBusStubAdapter); - } -@@ -38,6 +36,7 @@ RoutingControlObserverDBusStubAdapterInternal::~RoutingControlObserverDBusStubAd - } - - void RoutingControlObserverDBusStubAdapterInternal::deactivateManagedInstances() { -+ - } - - const char* RoutingControlObserverDBusStubAdapterInternal::getMethodsDBusIntrospectionXmlData() const { -@@ -149,8 +148,8 @@ const char* RoutingControlObserverDBusStubAdapterInternal::getMethodsDBusIntrosp - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the domain. The other parameters of the domain - * will be overwritten when the domain is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ - "<method name=\"peekDomain\">\n" - "<arg name=\"name\" type=\"s\" direction=\"in\" />\n" -@@ -236,8 +235,8 @@ const char* RoutingControlObserverDBusStubAdapterInternal::getMethodsDBusIntrosp - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the source. The other parameters of the source - * will be overwritten when the source is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ - "<method name=\"peekSource\">\n" - "<arg name=\"name\" type=\"s\" direction=\"in\" />\n" -@@ -384,8 +383,8 @@ const char* RoutingControlObserverDBusStubAdapterInternal::getMethodsDBusIntrosp - /** - * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the - * sourceID in the struct is not valid. -- Please note that only the following -- * data out of am_Source_s have effect when they are -+ Please note that only the following data -+ * out of am_Source_s have effect when they are - * changed: - sourceClassID, - listSoundProperties, -@@ -445,10 +444,10 @@ const char* RoutingControlObserverDBusStubAdapterInternal::getMethodsDBusIntrosp - return introspectionData.c_str(); - } - --static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+CommonAPI::DBus::DBusGetAttributeStubDispatcher< - RoutingControlObserverStub, - CommonAPI::Version -- > getRoutingControlObserverInterfaceVersionStubDispatcher(&RoutingControlObserverStub::getInterfaceVersion, "uu"); -+ > RoutingControlObserverDBusStubAdapterInternal::getRoutingControlObserverInterfaceVersionStubDispatcher(&RoutingControlObserverStub::getInterfaceVersion, "uu"); - - /** - * This attribute signals to the clients the current routing state. -@@ -456,164 +455,164 @@ A client - * should notify himself to this attribute in order to know the current state and - * act accordingly. - */ --static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+CommonAPI::DBus::DBusGetAttributeStubDispatcher< - RoutingControlObserverStub, - am_RoutingReady_e -- > getRoutingReadyAttributeStubDispatcher(&RoutingControlObserverStub::getRoutingReadyAttribute, "i"); -+ > RoutingControlObserverDBusStubAdapterInternal::getRoutingReadyAttributeStubDispatcher(&RoutingControlObserverStub::getRoutingReadyAttribute, "i"); - - - /** - * acknowledges a asyncConnect - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_connectionID_t, am_Error_e>, - std::tuple<> -- > ackConnectStubDispatcher(&RoutingControlObserverStub::ackConnect, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackConnectStubDispatcher(&RoutingControlObserverStub::ackConnect, ""); - /** - * acknowledges a asyncDisconnect - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_connectionID_t, am_Error_e>, - std::tuple<> -- > ackDisconnectStubDispatcher(&RoutingControlObserverStub::ackDisconnect, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackDisconnectStubDispatcher(&RoutingControlObserverStub::ackDisconnect, ""); - /** - * acknowledges a asyncsetSinkVolume - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_volume_t, am_Error_e>, - std::tuple<> -- > ackSetSinkVolumeChangeStubDispatcher(&RoutingControlObserverStub::ackSetSinkVolumeChange, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSetSinkVolumeChangeStubDispatcher(&RoutingControlObserverStub::ackSetSinkVolumeChange, ""); - /** - * acknowledges a asyncsetSourceVolume - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_volume_t, am_Error_e>, - std::tuple<> -- > ackSetSourceVolumeChangeStubDispatcher(&RoutingControlObserverStub::ackSetSourceVolumeChange, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSetSourceVolumeChangeStubDispatcher(&RoutingControlObserverStub::ackSetSourceVolumeChange, ""); - /** - * acknowlegde for asyncSetSourceState - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_Error_e>, - std::tuple<> -- > ackSetSourceStateStubDispatcher(&RoutingControlObserverStub::ackSetSourceState, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSetSourceStateStubDispatcher(&RoutingControlObserverStub::ackSetSourceState, ""); - /** - * acknowledges asyncSetSinkSoundProperties - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_Error_e>, - std::tuple<> -- > ackSetSinkSoundPropertiesStubDispatcher(&RoutingControlObserverStub::ackSetSinkSoundProperties, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSetSinkSoundPropertiesStubDispatcher(&RoutingControlObserverStub::ackSetSinkSoundProperties, ""); - /** - * acknowledges asyncSetSinkSoundProperty - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_Error_e>, - std::tuple<> -- > ackSetSinkSoundPropertyStubDispatcher(&RoutingControlObserverStub::ackSetSinkSoundProperty, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSetSinkSoundPropertyStubDispatcher(&RoutingControlObserverStub::ackSetSinkSoundProperty, ""); - /** - * acknowledges asyncSetSourceSoundProperties - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_Error_e>, - std::tuple<> -- > ackSetSourceSoundPropertiesStubDispatcher(&RoutingControlObserverStub::ackSetSourceSoundProperties, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSetSourceSoundPropertiesStubDispatcher(&RoutingControlObserverStub::ackSetSourceSoundProperties, ""); - /** - * acknowledges asyncSetSourceSoundProperty - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_Error_e>, - std::tuple<> -- > ackSetSourceSoundPropertyStubDispatcher(&RoutingControlObserverStub::ackSetSourceSoundProperty, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSetSourceSoundPropertyStubDispatcher(&RoutingControlObserverStub::ackSetSourceSoundProperty, ""); - /** - * acknowledges asyncCrossFade - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_HotSink_e, am_Error_e>, - std::tuple<> -- > ackCrossFadingStubDispatcher(&RoutingControlObserverStub::ackCrossFading, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackCrossFadingStubDispatcher(&RoutingControlObserverStub::ackCrossFading, ""); - /** - * acknowledges a volume tick. This can be used to display volumechanges during - * ramps - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_sourceID_t, am_volume_t>, - std::tuple<> -- > ackSourceVolumeTickStubDispatcher(&RoutingControlObserverStub::ackSourceVolumeTick, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSourceVolumeTickStubDispatcher(&RoutingControlObserverStub::ackSourceVolumeTick, ""); - /** - * acknowledges a volume tick. This can be used to display volumechanges during - * ramps - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_sinkID_t, am_volume_t>, - std::tuple<> -- > ackSinkVolumeTickStubDispatcher(&RoutingControlObserverStub::ackSinkVolumeTick, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSinkVolumeTickStubDispatcher(&RoutingControlObserverStub::ackSinkVolumeTick, ""); - /** - * This function returns the ID to the given domainName. If already a domain is - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the domain. The other parameters of the domain - * will be overwritten when the domain is registered. --(at)return E_OK on -- * success, E_UNKNOWN on error -+(at)return E_OK on success, -+ * E_UNKNOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<std::string>, - std::tuple<am_domainID_t, am_Error_e> -- > peekDomainStubDispatcher(&RoutingControlObserverStub::peekDomain, "qi"); -+ > RoutingControlObserverDBusStubAdapterInternal::peekDomainStubDispatcher(&RoutingControlObserverStub::peekDomain, "qi"); - /** - * registers a domain - (at)return E_OK on succes, E_ALREADY_EXISTENT if already - * registered E_UNKOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Domain_s, std::string, std::string>, - std::tuple<am_domainID_t, am_Error_e> -- > registerDomainStubDispatcher(&RoutingControlObserverStub::registerDomain, "qi"); -+ > RoutingControlObserverDBusStubAdapterInternal::registerDomainStubDispatcher(&RoutingControlObserverStub::registerDomain, "qi"); - /** - * deregisters a domain. All sources, sinks, gateways and crossfaders from that - * domain will be removed as well. - (at)return E_OK on succes, E_NON_EXISTENT if - * not found E_UNKOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_domainID_t>, - std::tuple<am_Error_e> -- > deregisterDomainStubDispatcher(&RoutingControlObserverStub::deregisterDomain, "i"); -+ > RoutingControlObserverDBusStubAdapterInternal::deregisterDomainStubDispatcher(&RoutingControlObserverStub::deregisterDomain, "i"); - /** - * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already - * registered E_UNKOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Gateway_s>, - std::tuple<am_gatewayID_t, am_Error_e> -- > registerGatewayStubDispatcher(&RoutingControlObserverStub::registerGateway, "qi"); -+ > RoutingControlObserverDBusStubAdapterInternal::registerGatewayStubDispatcher(&RoutingControlObserverStub::registerGateway, "qi"); - /** - * deregisters a gateway. Also removes all sinks and sources of the controlling - * domain. - (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on - * error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_gatewayID_t>, - std::tuple<am_Error_e> -- > deregisterGatewayStubDispatcher(&RoutingControlObserverStub::deregisterGateway, "i"); -+ > RoutingControlObserverDBusStubAdapterInternal::deregisterGatewayStubDispatcher(&RoutingControlObserverStub::deregisterGateway, "i"); - /** - * This function returns the ID to the given sinkName. If already a sink is - * registered with this name, it will return the corresponding ID, if not it will -@@ -622,45 +621,45 @@ static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - (at)return E_OK on success, - * E_UNKNOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<std::string>, - std::tuple<am_sinkID_t, am_Error_e> -- > peekSinkStubDispatcher(&RoutingControlObserverStub::peekSink, "qi"); -+ > RoutingControlObserverDBusStubAdapterInternal::peekSinkStubDispatcher(&RoutingControlObserverStub::peekSink, "qi"); - /** - * Registers a sink. If the sink is part of a gateway, the listconnectionFormats - * is copied to the gatewayInformation - (at)return E_OK on succes, - * E_ALREADY_EXISTENT if already registered E_UNKOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Sink_s>, - std::tuple<am_sinkID_t, am_Error_e> -- > registerSinkStubDispatcher(&RoutingControlObserverStub::registerSink, "qi"); -+ > RoutingControlObserverDBusStubAdapterInternal::registerSinkStubDispatcher(&RoutingControlObserverStub::registerSink, "qi"); - /** - * deregisters a sink. - (at)return E_OK on succes, E_NON_EXISTENT if not found - * E_UNKOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_sinkID_t>, - std::tuple<am_Error_e> -- > deregisterSinkStubDispatcher(&RoutingControlObserverStub::deregisterSink, "i"); -+ > RoutingControlObserverDBusStubAdapterInternal::deregisterSinkStubDispatcher(&RoutingControlObserverStub::deregisterSink, "i"); - /** - * This function returns the ID to the given sourceName. If already a source is - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the source. The other parameters of the source - * will be overwritten when the source is registered. --(at)return E_OK on -- * success, E_UNKNOWN on error -+(at)return E_OK on success, -+ * E_UNKNOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<std::string>, - std::tuple<am_sourceID_t, am_Error_e> -- > peekSourceStubDispatcher(&RoutingControlObserverStub::peekSource, "qi"); -+ > RoutingControlObserverDBusStubAdapterInternal::peekSourceStubDispatcher(&RoutingControlObserverStub::peekSource, "qi"); - /** - * registers a source. If the source is part of a gateway, the - * listconnectionFormats is copied to the gatewayInformation -@@ -668,147 +667,147 @@ static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID - * already exists - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Source_s>, - std::tuple<am_sourceID_t, am_Error_e> -- > registerSourceStubDispatcher(&RoutingControlObserverStub::registerSource, "qi"); -+ > RoutingControlObserverDBusStubAdapterInternal::registerSourceStubDispatcher(&RoutingControlObserverStub::registerSource, "qi"); - /** - * deregisters a source - (at)return E_OK on succes, E_NON_EXISTENT if not found - * E_UNKOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_sourceID_t>, - std::tuple<am_Error_e> -- > deregisterSourceStubDispatcher(&RoutingControlObserverStub::deregisterSource, "i"); -+ > RoutingControlObserverDBusStubAdapterInternal::deregisterSourceStubDispatcher(&RoutingControlObserverStub::deregisterSource, "i"); - /** - * this function registers a crossfader. - (at)return E_OK on succes, - * E_ALREADY_EXISTENT if already registered E_UNKOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Crossfader_s>, - std::tuple<am_crossfaderID_t, am_Error_e> -- > registerCrossfaderStubDispatcher(&RoutingControlObserverStub::registerCrossfader, "qi"); -+ > RoutingControlObserverDBusStubAdapterInternal::registerCrossfaderStubDispatcher(&RoutingControlObserverStub::registerCrossfader, "qi"); - /** - * this function deregisters a crossfader. removes all sources and sinks assiated - * as well. - (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on - * error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_crossfaderID_t>, - std::tuple<am_Error_e> -- > deregisterCrossfaderStubDispatcher(&RoutingControlObserverStub::deregisterCrossfader, "i"); -+ > RoutingControlObserverDBusStubAdapterInternal::deregisterCrossfaderStubDispatcher(&RoutingControlObserverStub::deregisterCrossfader, "i"); - /** - * this function peeks a sourceclassID. It is used by the RoutingPlugins to - * determine the SinkClassIDs of a sinkClass. - (at)return E_OK on succes, - * E_DATABASE_ERROR on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<std::string>, - std::tuple<am_sourceClass_t, am_Error_e> -- > peekSourceClassIDStubDispatcher(&RoutingControlObserverStub::peekSourceClassID, "qi"); -+ > RoutingControlObserverDBusStubAdapterInternal::peekSourceClassIDStubDispatcher(&RoutingControlObserverStub::peekSourceClassID, "qi"); - /** - * this function peeks a sourceclassID. It is used by the RoutingPlugins to - * determine the SinkClassIDs of a sinkClass. - (at)return E_OK on succes, - * E_DATABASE_ERROR on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<std::string>, - std::tuple<am_sinkClass_t, am_Error_e> -- > peekSinkClassIDStubDispatcher(&RoutingControlObserverStub::peekSinkClassID, "qi"); -+ > RoutingControlObserverDBusStubAdapterInternal::peekSinkClassIDStubDispatcher(&RoutingControlObserverStub::peekSinkClassID, "qi"); - /** - * is called when a low level interrupt changes it status. - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_sourceID_t, am_InterruptState_e>, - std::tuple<> -- > hookInterruptStatusChangeStubDispatcher(&RoutingControlObserverStub::hookInterruptStatusChange, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::hookInterruptStatusChangeStubDispatcher(&RoutingControlObserverStub::hookInterruptStatusChange, ""); - /** - * This hook is called when all elements from a domain are registered. - Is used by - * the Controller to know when all expected domains are finally registered - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_domainID_t>, - std::tuple<> -- > hookDomainRegistrationCompleteStubDispatcher(&RoutingControlObserverStub::hookDomainRegistrationComplete, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::hookDomainRegistrationCompleteStubDispatcher(&RoutingControlObserverStub::hookDomainRegistrationComplete, ""); - /** - * is called when a sink changes its availability - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_sinkID_t, am_Availability_s>, - std::tuple<> -- > hookSinkAvailablityStatusChangeStubDispatcher(&RoutingControlObserverStub::hookSinkAvailablityStatusChange, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::hookSinkAvailablityStatusChangeStubDispatcher(&RoutingControlObserverStub::hookSinkAvailablityStatusChange, ""); - /** - * is called when a source changes its availability - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_sourceID_t, am_Availability_s>, - std::tuple<> -- > hookSourceAvailablityStatusChangeStubDispatcher(&RoutingControlObserverStub::hookSourceAvailablityStatusChange, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::hookSourceAvailablityStatusChangeStubDispatcher(&RoutingControlObserverStub::hookSourceAvailablityStatusChange, ""); - /** - * is called when a domain changes its status. This used for early domains only - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_domainID_t, am_DomainState_e>, - std::tuple<> -- > hookDomainStateChangeStubDispatcher(&RoutingControlObserverStub::hookDomainStateChange, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::hookDomainStateChangeStubDispatcher(&RoutingControlObserverStub::hookDomainStateChange, ""); - /** - * is called when the timinginformation (delay) changed for a connection. - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_connectionID_t, am_timeSync_t>, - std::tuple<> -- > hookTimingInformationChangedStubDispatcher(&RoutingControlObserverStub::hookTimingInformationChanged, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::hookTimingInformationChangedStubDispatcher(&RoutingControlObserverStub::hookTimingInformationChanged, ""); - /** - * this function is used to send out all data that has been changed in an early - * state. - (at)return E_OK on success, E_UNKNOWN on error - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_EarlyData_L>, - std::tuple<> -- > sendChangedDataStubDispatcher(&RoutingControlObserverStub::sendChangedData, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::sendChangedDataStubDispatcher(&RoutingControlObserverStub::sendChangedData, ""); - /** - * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the - * gatewayID is not valid. - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_gatewayID_t, am_ConnectionFormat_L, am_ConnectionFormat_L, am_Convertion_L>, - std::tuple<am_Error_e> -- > updateGatewayStubDispatcher(&RoutingControlObserverStub::updateGateway, "i"); -+ > RoutingControlObserverDBusStubAdapterInternal::updateGatewayStubDispatcher(&RoutingControlObserverStub::updateGateway, "i"); - /** - * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the - * sinkID is not valid. - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_sinkID_t, am_sinkClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, - std::tuple<am_Error_e> -- > updateSinkStubDispatcher(&RoutingControlObserverStub::updateSink, "i"); -+ > RoutingControlObserverDBusStubAdapterInternal::updateSinkStubDispatcher(&RoutingControlObserverStub::updateSink, "i"); - /** - * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the - * sourceID in the struct is not valid. --Please note that only the following -- * data out of am_Source_s have effect when they are -+Please note that only the following data -+ * out of am_Source_s have effect when they are - * changed: - sourceClassID, - listSoundProperties, -@@ -816,56 +815,57 @@ listConnectionFormats, - * - listMainSoundProperties - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_sourceID_t, am_sourceClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, - std::tuple<am_Error_e> -- > updateSourceStubDispatcher(&RoutingControlObserverStub::updateSource, "i"); -+ > RoutingControlObserverDBusStubAdapterInternal::updateSourceStubDispatcher(&RoutingControlObserverStub::updateSource, "i"); - /** - * acknowledges a asyncSetSinkVolumes - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_Volumes_L, am_Error_e>, - std::tuple<> -- > ackSetVolumesStubDispatcher(&RoutingControlObserverStub::ackSetVolumes, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSetVolumesStubDispatcher(&RoutingControlObserverStub::ackSetVolumes, ""); - /** - * The acknowledge of the SinkNotificationConfiguration - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_Error_e>, - std::tuple<> -- > ackSinkNotificationConfigurationStubDispatcher(&RoutingControlObserverStub::ackSinkNotificationConfiguration, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSinkNotificationConfigurationStubDispatcher(&RoutingControlObserverStub::ackSinkNotificationConfiguration, ""); - /** - * The acknowledge of the SourceNotificationConfiguration - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_Handle_s, am_Error_e>, - std::tuple<> -- > ackSourceNotificationConfigurationStubDispatcher(&RoutingControlObserverStub::ackSourceNotificationConfiguration, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::ackSourceNotificationConfigurationStubDispatcher(&RoutingControlObserverStub::ackSourceNotificationConfiguration, ""); - /** - * is called whenever a notified value needs to be send - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_sinkID_t, am_NotificationPayload_s>, - std::tuple<> -- > hookSinkNotificationDataChangeStubDispatcher(&RoutingControlObserverStub::hookSinkNotificationDataChange, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::hookSinkNotificationDataChangeStubDispatcher(&RoutingControlObserverStub::hookSinkNotificationDataChange, ""); - /** - * is called whenever a notified value needs to be send - */ --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<am_sourceID_t, am_NotificationPayload_s>, - std::tuple<> -- > hookSourceNotificationDataChangeStubDispatcher(&RoutingControlObserverStub::hookSourceNotificationDataChange, ""); --static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ > RoutingControlObserverDBusStubAdapterInternal::hookSourceNotificationDataChangeStubDispatcher(&RoutingControlObserverStub::hookSourceNotificationDataChange, ""); -+CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< - RoutingControlObserverStub, - std::tuple<std::string>, - std::tuple<> -- > confirmRoutingRundownStubDispatcher(&RoutingControlObserverStub::confirmRoutingRundown, ""); -+ > RoutingControlObserverDBusStubAdapterInternal::confirmRoutingRundownStubDispatcher(&RoutingControlObserverStub::confirmRoutingRundown, ""); -+ - - /** - * This attribute signals to the clients the current routing state. -@@ -884,10 +884,14 @@ void RoutingControlObserverDBusStubAdapterInternal::fireRoutingReadyAttributeCha - } - - -+ - const RoutingControlObserverDBusStubAdapterHelper::StubDispatcherTable& RoutingControlObserverDBusStubAdapterInternal::getStubDispatcherTable() { - return stubDispatcherTable_; - } - -+const CommonAPI::DBus::StubAttributeTable& RoutingControlObserverDBusStubAdapterInternal::getStubAttributeTable() { -+ return stubAttributeTable_; -+} - - RoutingControlObserverDBusStubAdapterInternal::RoutingControlObserverDBusStubAdapterInternal( - const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, -@@ -921,92 +925,92 @@ RoutingControlObserverDBusStubAdapterInternal::RoutingControlObserverDBusStubAda - * should notify himself to this attribute in order to know the current state and - * act accordingly. - */ -- { { "getRoutingReadyAttribute", "" }, &org::genivi::am::getRoutingReadyAttributeStubDispatcher } -+ { { "getRoutingReadyAttribute", "" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::getRoutingReadyAttributeStubDispatcher } - , - /** - * acknowledges a asyncConnect - */ -- { { "ackConnect", "(iq)qi" }, &org::genivi::am::ackConnectStubDispatcher }, -+ { { "ackConnect", "(iq)qi" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackConnectStubDispatcher }, - /** - * acknowledges a asyncDisconnect - */ -- { { "ackDisconnect", "(iq)qi" }, &org::genivi::am::ackDisconnectStubDispatcher }, -+ { { "ackDisconnect", "(iq)qi" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackDisconnectStubDispatcher }, - /** - * acknowledges a asyncsetSinkVolume - */ -- { { "ackSetSinkVolumeChange", "(iq)ni" }, &org::genivi::am::ackSetSinkVolumeChangeStubDispatcher }, -+ { { "ackSetSinkVolumeChange", "(iq)ni" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSinkVolumeChangeStubDispatcher }, - /** - * acknowledges a asyncsetSourceVolume - */ -- { { "ackSetSourceVolumeChange", "(iq)ni" }, &org::genivi::am::ackSetSourceVolumeChangeStubDispatcher }, -+ { { "ackSetSourceVolumeChange", "(iq)ni" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSourceVolumeChangeStubDispatcher }, - /** - * acknowlegde for asyncSetSourceState - */ -- { { "ackSetSourceState", "(iq)i" }, &org::genivi::am::ackSetSourceStateStubDispatcher }, -+ { { "ackSetSourceState", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSourceStateStubDispatcher }, - /** - * acknowledges asyncSetSinkSoundProperties - */ -- { { "ackSetSinkSoundProperties", "(iq)i" }, &org::genivi::am::ackSetSinkSoundPropertiesStubDispatcher }, -+ { { "ackSetSinkSoundProperties", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSinkSoundPropertiesStubDispatcher }, - /** - * acknowledges asyncSetSinkSoundProperty - */ -- { { "ackSetSinkSoundProperty", "(iq)i" }, &org::genivi::am::ackSetSinkSoundPropertyStubDispatcher }, -+ { { "ackSetSinkSoundProperty", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSinkSoundPropertyStubDispatcher }, - /** - * acknowledges asyncSetSourceSoundProperties - */ -- { { "ackSetSourceSoundProperties", "(iq)i" }, &org::genivi::am::ackSetSourceSoundPropertiesStubDispatcher }, -+ { { "ackSetSourceSoundProperties", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSourceSoundPropertiesStubDispatcher }, - /** - * acknowledges asyncSetSourceSoundProperty - */ -- { { "ackSetSourceSoundProperty", "(iq)i" }, &org::genivi::am::ackSetSourceSoundPropertyStubDispatcher }, -+ { { "ackSetSourceSoundProperty", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetSourceSoundPropertyStubDispatcher }, - /** - * acknowledges asyncCrossFade - */ -- { { "ackCrossFading", "(iq)ii" }, &org::genivi::am::ackCrossFadingStubDispatcher }, -+ { { "ackCrossFading", "(iq)ii" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackCrossFadingStubDispatcher }, - /** - * acknowledges a volume tick. This can be used to display volumechanges during - * ramps - */ -- { { "ackSourceVolumeTick", "(iq)qn" }, &org::genivi::am::ackSourceVolumeTickStubDispatcher }, -+ { { "ackSourceVolumeTick", "(iq)qn" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSourceVolumeTickStubDispatcher }, - /** - * acknowledges a volume tick. This can be used to display volumechanges during - * ramps - */ -- { { "ackSinkVolumeTick", "(iq)qn" }, &org::genivi::am::ackSinkVolumeTickStubDispatcher }, -+ { { "ackSinkVolumeTick", "(iq)qn" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSinkVolumeTickStubDispatcher }, - /** - * This function returns the ID to the given domainName. If already a domain is - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the domain. The other parameters of the domain - * will be overwritten when the domain is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ -- { { "peekDomain", "s" }, &org::genivi::am::peekDomainStubDispatcher }, -+ { { "peekDomain", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::peekDomainStubDispatcher }, - /** - * registers a domain - (at)return E_OK on succes, E_ALREADY_EXISTENT if already - * registered E_UNKOWN on error - */ -- { { "registerDomain", "(qsssbbi)ss" }, &org::genivi::am::registerDomainStubDispatcher }, -+ { { "registerDomain", "(qsssbbi)ss" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::registerDomainStubDispatcher }, - /** - * deregisters a domain. All sources, sinks, gateways and crossfaders from that - * domain will be removed as well. - (at)return E_OK on succes, E_NON_EXISTENT if - * not found E_UNKOWN on error - */ -- { { "deregisterDomain", "q" }, &org::genivi::am::deregisterDomainStubDispatcher }, -+ { { "deregisterDomain", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::deregisterDomainStubDispatcher }, - /** - * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already - * registered E_UNKOWN on error - */ -- { { "registerGateway", "(qsqqqqqaqaqab)" }, &org::genivi::am::registerGatewayStubDispatcher }, -+ { { "registerGateway", "(qsqqqqqaqaqab)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::registerGatewayStubDispatcher }, - /** - * deregisters a gateway. Also removes all sinks and sources of the controlling - * domain. - (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on - * error - */ -- { { "deregisterGateway", "q" }, &org::genivi::am::deregisterGatewayStubDispatcher }, -+ { { "deregisterGateway", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::deregisterGatewayStubDispatcher }, - /** - * This function returns the ID to the given sinkName. If already a sink is - * registered with this name, it will return the corresponding ID, if not it will -@@ -1015,29 +1019,29 @@ RoutingControlObserverDBusStubAdapterInternal::RoutingControlObserverDBusStubAda - (at)return E_OK on success, - * E_UNKNOWN on error - */ -- { { "peekSink", "s" }, &org::genivi::am::peekSinkStubDispatcher }, -+ { { "peekSink", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::peekSinkStubDispatcher }, - /** - * Registers a sink. If the sink is part of a gateway, the listconnectionFormats - * is copied to the gatewayInformation - (at)return E_OK on succes, - * E_ALREADY_EXISTENT if already registered E_UNKOWN on error - */ -- { { "registerSink", "(qsqqnb(iq)ina(qn)aqa(qn)a(qin)a(qin))" }, &org::genivi::am::registerSinkStubDispatcher }, -+ { { "registerSink", "(qsqqnb(iq)ina(qn)aqa(qn)a(qin)a(qin))" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::registerSinkStubDispatcher }, - /** - * deregisters a sink. - (at)return E_OK on succes, E_NON_EXISTENT if not found - * E_UNKOWN on error - */ -- { { "deregisterSink", "q" }, &org::genivi::am::deregisterSinkStubDispatcher }, -+ { { "deregisterSink", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::deregisterSinkStubDispatcher }, - /** - * This function returns the ID to the given sourceName. If already a source is - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the source. The other parameters of the source - * will be overwritten when the source is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ -- { { "peekSource", "s" }, &org::genivi::am::peekSourceStubDispatcher }, -+ { { "peekSource", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::peekSourceStubDispatcher }, - /** - * registers a source. If the source is part of a gateway, the - * listconnectionFormats is copied to the gatewayInformation -@@ -1045,87 +1049,87 @@ RoutingControlObserverDBusStubAdapterInternal::RoutingControlObserverDBusStubAda - * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID - * already exists - */ -- { { "registerSource", "(qqsqinb(iq)ia(qn)aqa(qn)a(qin)a(qin))" }, &org::genivi::am::registerSourceStubDispatcher }, -+ { { "registerSource", "(qqsqinb(iq)ia(qn)aqa(qn)a(qin)a(qin))" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::registerSourceStubDispatcher }, - /** - * deregisters a source - (at)return E_OK on succes, E_NON_EXISTENT if not found - * E_UNKOWN on error - */ -- { { "deregisterSource", "q" }, &org::genivi::am::deregisterSourceStubDispatcher }, -+ { { "deregisterSource", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::deregisterSourceStubDispatcher }, - /** - * this function registers a crossfader. - (at)return E_OK on succes, - * E_ALREADY_EXISTENT if already registered E_UNKOWN on error - */ -- { { "registerCrossfader", "(qsqqqi)" }, &org::genivi::am::registerCrossfaderStubDispatcher }, -+ { { "registerCrossfader", "(qsqqqi)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::registerCrossfaderStubDispatcher }, - /** - * this function deregisters a crossfader. removes all sources and sinks assiated - * as well. - (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on - * error - */ -- { { "deregisterCrossfader", "q" }, &org::genivi::am::deregisterCrossfaderStubDispatcher }, -+ { { "deregisterCrossfader", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::deregisterCrossfaderStubDispatcher }, - /** - * this function peeks a sourceclassID. It is used by the RoutingPlugins to - * determine the SinkClassIDs of a sinkClass. - (at)return E_OK on succes, - * E_DATABASE_ERROR on error - */ -- { { "peekSourceClassID", "s" }, &org::genivi::am::peekSourceClassIDStubDispatcher }, -+ { { "peekSourceClassID", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::peekSourceClassIDStubDispatcher }, - /** - * this function peeks a sourceclassID. It is used by the RoutingPlugins to - * determine the SinkClassIDs of a sinkClass. - (at)return E_OK on succes, - * E_DATABASE_ERROR on error - */ -- { { "peekSinkClassID", "s" }, &org::genivi::am::peekSinkClassIDStubDispatcher }, -+ { { "peekSinkClassID", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::peekSinkClassIDStubDispatcher }, - /** - * is called when a low level interrupt changes it status. - */ -- { { "hookInterruptStatusChange", "qi" }, &org::genivi::am::hookInterruptStatusChangeStubDispatcher }, -+ { { "hookInterruptStatusChange", "qi" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookInterruptStatusChangeStubDispatcher }, - /** - * This hook is called when all elements from a domain are registered. - Is used by - * the Controller to know when all expected domains are finally registered - */ -- { { "hookDomainRegistrationComplete", "q" }, &org::genivi::am::hookDomainRegistrationCompleteStubDispatcher }, -+ { { "hookDomainRegistrationComplete", "q" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookDomainRegistrationCompleteStubDispatcher }, - /** - * is called when a sink changes its availability - */ -- { { "hookSinkAvailablityStatusChange", "q(iq)" }, &org::genivi::am::hookSinkAvailablityStatusChangeStubDispatcher }, -+ { { "hookSinkAvailablityStatusChange", "q(iq)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookSinkAvailablityStatusChangeStubDispatcher }, - /** - * is called when a source changes its availability - */ -- { { "hookSourceAvailablityStatusChange", "q(iq)" }, &org::genivi::am::hookSourceAvailablityStatusChangeStubDispatcher }, -+ { { "hookSourceAvailablityStatusChange", "q(iq)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookSourceAvailablityStatusChangeStubDispatcher }, - /** - * is called when a domain changes its status. This used for early domains only - */ -- { { "hookDomainStateChange", "qi" }, &org::genivi::am::hookDomainStateChangeStubDispatcher }, -+ { { "hookDomainStateChange", "qi" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookDomainStateChangeStubDispatcher }, - /** - * is called when the timinginformation (delay) changed for a connection. - */ -- { { "hookTimingInformationChanged", "qn" }, &org::genivi::am::hookTimingInformationChangedStubDispatcher }, -+ { { "hookTimingInformationChanged", "qn" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookTimingInformationChangedStubDispatcher }, - /** - * this function is used to send out all data that has been changed in an early - * state. - (at)return E_OK on success, E_UNKNOWN on error - */ -- { { "sendChangedData", "a(i(yv)(yv))" }, &org::genivi::am::sendChangedDataStubDispatcher }, -+ { { "sendChangedData", "a(i(yv)(yv))" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::sendChangedDataStubDispatcher }, - /** - * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the - * gatewayID is not valid. - */ -- { { "updateGateway", "qaqaqab" }, &org::genivi::am::updateGatewayStubDispatcher }, -+ { { "updateGateway", "qaqaqab" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::updateGatewayStubDispatcher }, - /** - * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the - * sinkID is not valid. - */ -- { { "updateSink", "qqa(qn)aqa(qn)" }, &org::genivi::am::updateSinkStubDispatcher }, -+ { { "updateSink", "qqa(qn)aqa(qn)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::updateSinkStubDispatcher }, - /** - * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the - * sourceID in the struct is not valid. -- Please note that only the following -- * data out of am_Source_s have effect when they are -+ Please note that only the following data -+ * out of am_Source_s have effect when they are - * changed: - sourceClassID, - listSoundProperties, -@@ -1133,31 +1137,36 @@ RoutingControlObserverDBusStubAdapterInternal::RoutingControlObserverDBusStubAda - * - listMainSoundProperties - */ -- { { "updateSource", "qqa(qn)aqa(qn)" }, &org::genivi::am::updateSourceStubDispatcher }, -+ { { "updateSource", "qqa(qn)aqa(qn)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::updateSourceStubDispatcher }, - /** - * acknowledges a asyncSetSinkVolumes - */ -- { { "ackSetVolumes", "(iq)a(i(yv)nqn)i" }, &org::genivi::am::ackSetVolumesStubDispatcher }, -+ { { "ackSetVolumes", "(iq)a(i(yv)nqn)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSetVolumesStubDispatcher }, - /** - * The acknowledge of the SinkNotificationConfiguration - */ -- { { "ackSinkNotificationConfiguration", "(iq)i" }, &org::genivi::am::ackSinkNotificationConfigurationStubDispatcher }, -+ { { "ackSinkNotificationConfiguration", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSinkNotificationConfigurationStubDispatcher }, - /** - * The acknowledge of the SourceNotificationConfiguration - */ -- { { "ackSourceNotificationConfiguration", "(iq)i" }, &org::genivi::am::ackSourceNotificationConfigurationStubDispatcher }, -+ { { "ackSourceNotificationConfiguration", "(iq)i" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::ackSourceNotificationConfigurationStubDispatcher }, - /** - * is called whenever a notified value needs to be send - */ -- { { "hookSinkNotificationDataChange", "q(qn)" }, &org::genivi::am::hookSinkNotificationDataChangeStubDispatcher }, -+ { { "hookSinkNotificationDataChange", "q(qn)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookSinkNotificationDataChangeStubDispatcher }, - /** - * is called whenever a notified value needs to be send - */ -- { { "hookSourceNotificationDataChange", "q(qn)" }, &org::genivi::am::hookSourceNotificationDataChangeStubDispatcher }, -- { { "confirmRoutingRundown", "s" }, &org::genivi::am::confirmRoutingRundownStubDispatcher } -- }) { -+ { { "hookSourceNotificationDataChange", "q(qn)" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::hookSourceNotificationDataChangeStubDispatcher }, -+ { { "confirmRoutingRundown", "s" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::confirmRoutingRundownStubDispatcher } -+ }), -+ stubAttributeTable_() { -+ -+ stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::am::RoutingControlObserverDBusStubAdapterInternal::getRoutingControlObserverInterfaceVersionStubDispatcher }); -+} - -- stubDispatcherTable_.insert({ { "getInterfaceVersion", "" }, &org::genivi::am::getRoutingControlObserverInterfaceVersionStubDispatcher }); -+const bool RoutingControlObserverDBusStubAdapterInternal::hasFreedesktopProperties() { -+ return false; - } - - } // namespace am -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.h -index 144e86a..cf26863 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverDBusStubAdapter.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * Routing Receive sendInterface description. -@@ -33,7 +31,7 @@ namespace am { - - typedef CommonAPI::DBus::DBusStubAdapterHelper<RoutingControlObserverStub> RoutingControlObserverDBusStubAdapterHelper; - --class RoutingControlObserverDBusStubAdapterInternal: public RoutingControlObserverStubAdapter, public RoutingControlObserverDBusStubAdapterHelper { -+class RoutingControlObserverDBusStubAdapterInternal: public virtual RoutingControlObserverStubAdapter, public RoutingControlObserverDBusStubAdapterHelper { - public: - RoutingControlObserverDBusStubAdapterInternal( - const std::shared_ptr<CommonAPI::DBus::DBusFactory>& factory, -@@ -46,6 +44,8 @@ class RoutingControlObserverDBusStubAdapterInternal: public RoutingControlObserv - - ~RoutingControlObserverDBusStubAdapterInternal(); - -+ virtual const bool hasFreedesktopProperties(); -+ - /** - * This attribute signals to the clients the current routing state. - A client -@@ -57,15 +57,442 @@ class RoutingControlObserverDBusStubAdapterInternal: public RoutingControlObserv - - - const RoutingControlObserverDBusStubAdapterHelper::StubDispatcherTable& getStubDispatcherTable(); -+ const CommonAPI::DBus::StubAttributeTable& getStubAttributeTable(); - - void deactivateManagedInstances(); - - -+static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ RoutingControlObserverStub, -+ CommonAPI::Version -+ > getRoutingControlObserverInterfaceVersionStubDispatcher; -+ -+/** -+ * This attribute signals to the clients the current routing state. -+A client -+ * should notify himself to this attribute in order to know the current state and -+ * act accordingly. -+ */ -+static CommonAPI::DBus::DBusGetAttributeStubDispatcher< -+ RoutingControlObserverStub, -+ am_RoutingReady_e -+ > getRoutingReadyAttributeStubDispatcher; -+ -+ -+/** -+ * acknowledges a asyncConnect -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_connectionID_t, am_Error_e>, -+ std::tuple<> -+ > ackConnectStubDispatcher; -+/** -+ * acknowledges a asyncDisconnect -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_connectionID_t, am_Error_e>, -+ std::tuple<> -+ > ackDisconnectStubDispatcher; -+/** -+ * acknowledges a asyncsetSinkVolume -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_volume_t, am_Error_e>, -+ std::tuple<> -+ > ackSetSinkVolumeChangeStubDispatcher; -+/** -+ * acknowledges a asyncsetSourceVolume -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_volume_t, am_Error_e>, -+ std::tuple<> -+ > ackSetSourceVolumeChangeStubDispatcher; -+/** -+ * acknowlegde for asyncSetSourceState -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_Error_e>, -+ std::tuple<> -+ > ackSetSourceStateStubDispatcher; -+/** -+ * acknowledges asyncSetSinkSoundProperties -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_Error_e>, -+ std::tuple<> -+ > ackSetSinkSoundPropertiesStubDispatcher; -+/** -+ * acknowledges asyncSetSinkSoundProperty -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_Error_e>, -+ std::tuple<> -+ > ackSetSinkSoundPropertyStubDispatcher; -+/** -+ * acknowledges asyncSetSourceSoundProperties -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_Error_e>, -+ std::tuple<> -+ > ackSetSourceSoundPropertiesStubDispatcher; -+/** -+ * acknowledges asyncSetSourceSoundProperty -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_Error_e>, -+ std::tuple<> -+ > ackSetSourceSoundPropertyStubDispatcher; -+/** -+ * acknowledges asyncCrossFade -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_HotSink_e, am_Error_e>, -+ std::tuple<> -+ > ackCrossFadingStubDispatcher; -+/** -+ * acknowledges a volume tick. This can be used to display volumechanges during -+ * ramps -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_sourceID_t, am_volume_t>, -+ std::tuple<> -+ > ackSourceVolumeTickStubDispatcher; -+/** -+ * acknowledges a volume tick. This can be used to display volumechanges during -+ * ramps -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_sinkID_t, am_volume_t>, -+ std::tuple<> -+ > ackSinkVolumeTickStubDispatcher; -+/** -+ * This function returns the ID to the given domainName. If already a domain is -+ * registered with this name, it will return the corresponding ID, if not it will -+ * reserve an ID but not register the domain. The other parameters of the domain -+ * will be overwritten when the domain is registered. -+(at)return E_OK on success, -+ * E_UNKNOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<std::string>, -+ std::tuple<am_domainID_t, am_Error_e> -+ > peekDomainStubDispatcher; -+/** -+ * registers a domain -+(at)return E_OK on succes, E_ALREADY_EXISTENT if already -+ * registered E_UNKOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Domain_s, std::string, std::string>, -+ std::tuple<am_domainID_t, am_Error_e> -+ > registerDomainStubDispatcher; -+/** -+ * deregisters a domain. All sources, sinks, gateways and crossfaders from that -+ * domain will be removed as well. -+(at)return E_OK on succes, E_NON_EXISTENT if -+ * not found E_UNKOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_domainID_t>, -+ std::tuple<am_Error_e> -+ > deregisterDomainStubDispatcher; -+/** -+ * registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already -+ * registered E_UNKOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Gateway_s>, -+ std::tuple<am_gatewayID_t, am_Error_e> -+ > registerGatewayStubDispatcher; -+/** -+ * deregisters a gateway. Also removes all sinks and sources of the controlling -+ * domain. -+(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on -+ * error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_gatewayID_t>, -+ std::tuple<am_Error_e> -+ > deregisterGatewayStubDispatcher; -+/** -+ * This function returns the ID to the given sinkName. If already a sink is -+ * registered with this name, it will return the corresponding ID, if not it will -+ * reserve an ID but not register the sink. The other parameters of the sink will -+ * be overwritten when the sink is registered. -+(at)return E_OK on success, -+ * E_UNKNOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<std::string>, -+ std::tuple<am_sinkID_t, am_Error_e> -+ > peekSinkStubDispatcher; -+/** -+ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats -+ * is copied to the gatewayInformation -+(at)return E_OK on succes, -+ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Sink_s>, -+ std::tuple<am_sinkID_t, am_Error_e> -+ > registerSinkStubDispatcher; -+/** -+ * deregisters a sink. -+(at)return E_OK on succes, E_NON_EXISTENT if not found -+ * E_UNKOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_sinkID_t>, -+ std::tuple<am_Error_e> -+ > deregisterSinkStubDispatcher; -+/** -+ * This function returns the ID to the given sourceName. If already a source is -+ * registered with this name, it will return the corresponding ID, if not it will -+ * reserve an ID but not register the source. The other parameters of the source -+ * will be overwritten when the source is registered. -+(at)return E_OK on success, -+ * E_UNKNOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<std::string>, -+ std::tuple<am_sourceID_t, am_Error_e> -+ > peekSourceStubDispatcher; -+/** -+ * registers a source. If the source is part of a gateway, the -+ * listconnectionFormats is copied to the gatewayInformation -+(at)return E_OK on -+ * success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID -+ * already exists -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Source_s>, -+ std::tuple<am_sourceID_t, am_Error_e> -+ > registerSourceStubDispatcher; -+/** -+ * deregisters a source -+(at)return E_OK on succes, E_NON_EXISTENT if not found -+ * E_UNKOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_sourceID_t>, -+ std::tuple<am_Error_e> -+ > deregisterSourceStubDispatcher; -+/** -+ * this function registers a crossfader. -+(at)return E_OK on succes, -+ * E_ALREADY_EXISTENT if already registered E_UNKOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Crossfader_s>, -+ std::tuple<am_crossfaderID_t, am_Error_e> -+ > registerCrossfaderStubDispatcher; -+/** -+ * this function deregisters a crossfader. removes all sources and sinks assiated -+ * as well. -+(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on -+ * error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_crossfaderID_t>, -+ std::tuple<am_Error_e> -+ > deregisterCrossfaderStubDispatcher; -+/** -+ * this function peeks a sourceclassID. It is used by the RoutingPlugins to -+ * determine the SinkClassIDs of a sinkClass. -+(at)return E_OK on succes, -+ * E_DATABASE_ERROR on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<std::string>, -+ std::tuple<am_sourceClass_t, am_Error_e> -+ > peekSourceClassIDStubDispatcher; -+/** -+ * this function peeks a sourceclassID. It is used by the RoutingPlugins to -+ * determine the SinkClassIDs of a sinkClass. -+(at)return E_OK on succes, -+ * E_DATABASE_ERROR on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<std::string>, -+ std::tuple<am_sinkClass_t, am_Error_e> -+ > peekSinkClassIDStubDispatcher; -+/** -+ * is called when a low level interrupt changes it status. -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_sourceID_t, am_InterruptState_e>, -+ std::tuple<> -+ > hookInterruptStatusChangeStubDispatcher; -+/** -+ * This hook is called when all elements from a domain are registered. -+Is used by -+ * the Controller to know when all expected domains are finally registered -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_domainID_t>, -+ std::tuple<> -+ > hookDomainRegistrationCompleteStubDispatcher; -+/** -+ * is called when a sink changes its availability -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_sinkID_t, am_Availability_s>, -+ std::tuple<> -+ > hookSinkAvailablityStatusChangeStubDispatcher; -+/** -+ * is called when a source changes its availability -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_sourceID_t, am_Availability_s>, -+ std::tuple<> -+ > hookSourceAvailablityStatusChangeStubDispatcher; -+/** -+ * is called when a domain changes its status. This used for early domains only -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_domainID_t, am_DomainState_e>, -+ std::tuple<> -+ > hookDomainStateChangeStubDispatcher; -+/** -+ * is called when the timinginformation (delay) changed for a connection. -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_connectionID_t, am_timeSync_t>, -+ std::tuple<> -+ > hookTimingInformationChangedStubDispatcher; -+/** -+ * this function is used to send out all data that has been changed in an early -+ * state. -+(at)return E_OK on success, E_UNKNOWN on error -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_EarlyData_L>, -+ std::tuple<> -+ > sendChangedDataStubDispatcher; -+/** -+ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the -+ * gatewayID is not valid. -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_gatewayID_t, am_ConnectionFormat_L, am_ConnectionFormat_L, am_Convertion_L>, -+ std::tuple<am_Error_e> -+ > updateGatewayStubDispatcher; -+/** -+ * updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the -+ * sinkID is not valid. -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_sinkID_t, am_sinkClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, -+ std::tuple<am_Error_e> -+ > updateSinkStubDispatcher; -+/** -+ * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the -+ * sourceID in the struct is not valid. -+Please note that only the following data -+ * out of am_Source_s have effect when they are -+ * changed: -+sourceClassID, -+listSoundProperties, -+listConnectionFormats, -+ * -+listMainSoundProperties -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_sourceID_t, am_sourceClass_t, am_SoundProperty_L, am_ConnectionFormat_L, am_MainSoundProperty_L>, -+ std::tuple<am_Error_e> -+ > updateSourceStubDispatcher; -+/** -+ * acknowledges a asyncSetSinkVolumes -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_Volumes_L, am_Error_e>, -+ std::tuple<> -+ > ackSetVolumesStubDispatcher; -+/** -+ * The acknowledge of the SinkNotificationConfiguration -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_Error_e>, -+ std::tuple<> -+ > ackSinkNotificationConfigurationStubDispatcher; -+/** -+ * The acknowledge of the SourceNotificationConfiguration -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_Handle_s, am_Error_e>, -+ std::tuple<> -+ > ackSourceNotificationConfigurationStubDispatcher; -+/** -+ * is called whenever a notified value needs to be send -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_sinkID_t, am_NotificationPayload_s>, -+ std::tuple<> -+ > hookSinkNotificationDataChangeStubDispatcher; -+/** -+ * is called whenever a notified value needs to be send -+ */ -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<am_sourceID_t, am_NotificationPayload_s>, -+ std::tuple<> -+ > hookSourceNotificationDataChangeStubDispatcher; -+static CommonAPI::DBus::DBusMethodWithReplyStubDispatcher< -+ RoutingControlObserverStub, -+ std::tuple<std::string>, -+ std::tuple<> -+ > confirmRoutingRundownStubDispatcher; -+ -+ -+ -+ - protected: - virtual const char* getMethodsDBusIntrospectionXmlData() const; -- -- private: -+ -+ private: - RoutingControlObserverDBusStubAdapterHelper::StubDispatcherTable stubDispatcherTable_; -+ CommonAPI::DBus::StubAttributeTable stubAttributeTable_; - }; - - class RoutingControlObserverDBusStubAdapter: public RoutingControlObserverDBusStubAdapterInternal, public std::enable_shared_from_this<RoutingControlObserverDBusStubAdapter> { -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxy.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxy.h -index 998e8ae..8158450 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxy.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxy.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * Routing Receive sendInterface description. -@@ -325,8 +323,8 @@ public: - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the domain. The other parameters of the domain - * will be overwritten when the domain is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - * - * Calls peekDomain with synchronous semantics. - * -@@ -533,8 +531,8 @@ public: - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the source. The other parameters of the source - * will be overwritten when the source is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - * - * Calls peekSource with synchronous semantics. - * -@@ -920,8 +918,8 @@ public: - /** - * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the - * sourceID in the struct is not valid. -- Please note that only the following -- * data out of am_Source_s have effect when they are -+ Please note that only the following data -+ * out of am_Source_s have effect when they are - * changed: - sourceClassID, - listSoundProperties, -@@ -1127,6 +1125,12 @@ public: - std::shared_ptr<RoutingControlObserverProxyBase> delegate_; - }; - -+#ifdef WIN32 -+ typedef RoutingControlObserverProxy<CommonAPI::WINDummyAttributeExtension<CommonAPI::WINDummyAttribute>> RoutingControlObserverProxyDefault; -+#else -+ typedef RoutingControlObserverProxy<> RoutingControlObserverProxyDefault; -+#endif -+ - namespace RoutingControlObserverExtensions { - /** - * This attribute signals to the clients the current routing state. -@@ -1141,6 +1145,9 @@ namespace RoutingControlObserverExtensions { - - static_assert(std::is_base_of<typename CommonAPI::AttributeExtension<RoutingControlObserverProxyBase::RoutingReadyAttribute>, extension_type>::value, - "Not CommonAPI Attribute Extension!"); -+ #ifdef WIN32 -+ RoutingReadyAttributeExtension() {} -+ #endif - - RoutingReadyAttributeExtension(RoutingControlObserverProxyBase& proxy): attributeExtension_(proxy.getRoutingReadyAttribute()) { - } -@@ -1160,8 +1167,8 @@ namespace RoutingControlObserverExtensions { - // - template <typename ... _AttributeExtensions> - RoutingControlObserverProxy<_AttributeExtensions...>::RoutingControlObserverProxy(std::shared_ptr<CommonAPI::Proxy> delegate): -- delegate_(std::dynamic_pointer_cast<RoutingControlObserverProxyBase>(delegate)), -- _AttributeExtensions(*(std::dynamic_pointer_cast<RoutingControlObserverProxyBase>(delegate)))... { -+ _AttributeExtensions(*(std::dynamic_pointer_cast<RoutingControlObserverProxyBase>(delegate)))..., -+ delegate_(std::dynamic_pointer_cast<RoutingControlObserverProxyBase>(delegate)) { - } - - template <typename ... _AttributeExtensions> -@@ -1319,8 +1326,8 @@ std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensi - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the domain. The other parameters of the domain - * will be overwritten when the domain is registered. --(at)return E_OK on -- * success, E_UNKNOWN on error -+(at)return E_OK on success, -+ * E_UNKNOWN on error - */ - template <typename ... _AttributeExtensions> - void RoutingControlObserverProxy<_AttributeExtensions...>::peekDomain(const std::string& name, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error) { -@@ -1439,8 +1446,8 @@ std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensi - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the source. The other parameters of the source - * will be overwritten when the source is registered. --(at)return E_OK on -- * success, E_UNKNOWN on error -+(at)return E_OK on success, -+ * E_UNKNOWN on error - */ - template <typename ... _AttributeExtensions> - void RoutingControlObserverProxy<_AttributeExtensions...>::peekSource(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error) { -@@ -1657,8 +1664,8 @@ std::future<CommonAPI::CallStatus> RoutingControlObserverProxy<_AttributeExtensi - /** - * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the - * sourceID in the struct is not valid. --Please note that only the following -- * data out of am_Source_s have effect when they are -+Please note that only the following data -+ * out of am_Source_s have effect when they are - * changed: - sourceClassID, - listSoundProperties, -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxyBase.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxyBase.h -index fa80989..3a8f470 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxyBase.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverProxyBase.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * Routing Receive sendInterface description. -@@ -165,8 +163,8 @@ class RoutingControlObserverProxyBase: virtual public CommonAPI::Proxy { - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the domain. The other parameters of the domain - * will be overwritten when the domain is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ - virtual void peekDomain(const std::string& name, CommonAPI::CallStatus& callStatus, am_domainID_t& domainID, am_Error_e& error) = 0; - virtual std::future<CommonAPI::CallStatus> peekDomainAsync(const std::string& name, PeekDomainAsyncCallback callback) = 0; -@@ -229,8 +227,8 @@ class RoutingControlObserverProxyBase: virtual public CommonAPI::Proxy { - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the source. The other parameters of the source - * will be overwritten when the source is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ - virtual void peekSource(const std::string& name, CommonAPI::CallStatus& callStatus, am_sourceID_t& sourceID, am_Error_e& error) = 0; - virtual std::future<CommonAPI::CallStatus> peekSourceAsync(const std::string& name, PeekSourceAsyncCallback callback) = 0; -@@ -335,8 +333,8 @@ class RoutingControlObserverProxyBase: virtual public CommonAPI::Proxy { - /** - * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the - * sourceID in the struct is not valid. -- Please note that only the following -- * data out of am_Source_s have effect when they are -+ Please note that only the following data -+ * out of am_Source_s have effect when they are - * changed: - sourceClassID, - listSoundProperties, -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStub.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStub.h -index eb61414..b01b1bd 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStub.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStub.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * Routing Receive sendInterface description. -@@ -87,7 +85,7 @@ class RoutingControlObserverStubRemoteEvent { - * This class and the one above are the ones an application developer needs to have - * a look at if he wants to implement a service. - */ --class RoutingControlObserverStub : public virtual CommonAPI::Stub<RoutingControlObserverStubAdapter, RoutingControlObserverStubRemoteEvent> { -+class RoutingControlObserverStub: public virtual CommonAPI::Stub<RoutingControlObserverStubAdapter, RoutingControlObserverStubRemoteEvent> { - public: - virtual ~RoutingControlObserverStub() { } - virtual const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) = 0; -@@ -168,8 +166,8 @@ public: - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the domain. The other parameters of the domain - * will be overwritten when the domain is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ - /// This is the method that will be called on remote calls on the method peekDomain. - virtual void peekDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_domainID_t& domainID, am_Error_e& error) = 0; -@@ -232,8 +230,8 @@ public: - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the source. The other parameters of the source - * will be overwritten when the source is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ - /// This is the method that will be called on remote calls on the method peekSource. - virtual void peekSource(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sourceID_t& sourceID, am_Error_e& error) = 0; -@@ -338,8 +336,8 @@ public: - /** - * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the - * sourceID in the struct is not valid. -- Please note that only the following -- * data out of am_Source_s have effect when they are -+ Please note that only the following data -+ * out of am_Source_s have effect when they are - * changed: - sourceClassID, - listSoundProperties, -@@ -380,6 +378,8 @@ public: - using CommonAPI::Stub<RoutingControlObserverStubAdapter, RoutingControlObserverStubRemoteEvent>::initStubAdapter; - typedef CommonAPI::Stub<RoutingControlObserverStubAdapter, RoutingControlObserverStubRemoteEvent>::StubAdapterType StubAdapterType; - typedef CommonAPI::Stub<RoutingControlObserverStubAdapter, RoutingControlObserverStubRemoteEvent>::RemoteEventHandlerType RemoteEventHandlerType; -+ typedef RoutingControlObserverStubRemoteEvent RemoteEventType; -+ typedef RoutingControlObserver StubInterface; - }; - - } // namespace am -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.cpp -index 46d10f7..fe41554 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.cpp -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - #include <org/genivi/am/RoutingControlObserverStubDefault.h> - -@@ -37,7 +35,7 @@ const am_RoutingReady_e& RoutingControlObserverStubDefault::getRoutingReadyAttri - - void RoutingControlObserverStubDefault::setRoutingReadyAttribute(am_RoutingReady_e value) { - const bool valueChanged = trySetRoutingReadyAttribute(std::move(value)); -- if (valueChanged) { -+ if (valueChanged && stubAdapter_ != NULL) { - stubAdapter_->fireRoutingReadyAttributeChanged(routingReadyAttributeValue_); - } - } -@@ -196,8 +194,8 @@ void RoutingControlObserverStubDefault::ackSinkVolumeTick(am_Handle_s handle, am - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the domain. The other parameters of the domain - * will be overwritten when the domain is registered. --(at)return E_OK on -- * success, E_UNKNOWN on error -+(at)return E_OK on success, -+ * E_UNKNOWN on error - */ - void RoutingControlObserverStubDefault::peekDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_domainID_t& domainID, am_Error_e& error) { - // Call old style methods in default -@@ -308,8 +306,8 @@ void RoutingControlObserverStubDefault::deregisterSink(am_sinkID_t sinkID, am_Er - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the source. The other parameters of the source - * will be overwritten when the source is registered. --(at)return E_OK on -- * success, E_UNKNOWN on error -+(at)return E_OK on success, -+ * E_UNKNOWN on error - */ - void RoutingControlObserverStubDefault::peekSource(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sourceID_t& sourceID, am_Error_e& error) { - // Call old style methods in default -@@ -510,8 +508,8 @@ void RoutingControlObserverStubDefault::updateSink(am_sinkID_t sinkID, am_sinkCl - /** - * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the - * sourceID in the struct is not valid. --Please note that only the following -- * data out of am_Source_s have effect when they are -+Please note that only the following data -+ * out of am_Source_s have effect when they are - * changed: - sourceClassID, - listSoundProperties, -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.h -index 0d19077..034a727 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * Routing Receive sendInterface description. -@@ -123,8 +121,8 @@ public: - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the domain. The other parameters of the domain - * will be overwritten when the domain is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ - virtual void peekDomain(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_domainID_t& domainID, am_Error_e& error); - virtual void peekDomain(std::string name, am_domainID_t& domainID, am_Error_e& error); -@@ -195,8 +193,8 @@ public: - * registered with this name, it will return the corresponding ID, if not it will - * reserve an ID but not register the source. The other parameters of the source - * will be overwritten when the source is registered. -- (at)return E_OK on -- * success, E_UNKNOWN on error -+ (at)return E_OK on success, -+ * E_UNKNOWN on error - */ - virtual void peekSource(const std::shared_ptr<CommonAPI::ClientId> clientId, std::string name, am_sourceID_t& sourceID, am_Error_e& error); - virtual void peekSource(std::string name, am_sourceID_t& sourceID, am_Error_e& error); -@@ -317,8 +315,8 @@ public: - /** - * updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the - * sourceID in the struct is not valid. -- Please note that only the following -- * data out of am_Source_s have effect when they are -+ Please note that only the following data -+ * out of am_Source_s have effect when they are - * changed: - sourceClassID, - listSoundProperties, -@@ -374,8 +372,7 @@ protected: - */ - virtual bool trySetRoutingReadyAttribute(am_RoutingReady_e value); - virtual bool validateRoutingReadyAttributeRequestedValue(const am_RoutingReady_e& value); --private: -- class RemoteEventHandler: public RoutingControlObserverStubRemoteEvent { -+ class RemoteEventHandler: public virtual RoutingControlObserverStubRemoteEvent { - public: - RemoteEventHandler(RoutingControlObserverStubDefault* defaultStub); - -@@ -390,8 +387,8 @@ private: - private: - RoutingControlObserverStubDefault* defaultStub_; - }; -- -- RemoteEventHandler remoteEventHandler_; -+private: -+ RoutingControlObserverStubDefault::RemoteEventHandler remoteEventHandler_; - - /** - * This attribute signals to the clients the current routing state. -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxy.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxy.h -index 4cc1ba0..a828096 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxy.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxy.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * This class implements everything from Audiomanager -> RoutingAdapter -@@ -67,7 +65,7 @@ public: - /** - * connects a source to a sink - (at)return E_OK on success, E_UNKNOWN on error, -- * E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match - * - * Calls asyncConnect with synchronous semantics. - * -@@ -192,8 +190,8 @@ public: - virtual std::future<CommonAPI::CallStatus> asyncSetSourceStateAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, AsyncSetSourceStateAsyncCallback callback); - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - * - * Calls asyncSetSinkSoundProperties with synchronous semantics. - * -@@ -216,8 +214,8 @@ public: - virtual std::future<CommonAPI::CallStatus> asyncSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, AsyncSetSinkSoundPropertiesAsyncCallback callback); - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - * - * Calls asyncSetSinkSoundProperty with synchronous semantics. - * -@@ -443,14 +441,20 @@ public: - std::shared_ptr<RoutingControlProxyBase> delegate_; - }; - -+#ifdef WIN32 -+ typedef RoutingControlProxy<CommonAPI::WINDummyAttributeExtension<CommonAPI::WINDummyAttribute>> RoutingControlProxyDefault; -+#else -+ typedef RoutingControlProxy<> RoutingControlProxyDefault; -+#endif -+ - - // - // RoutingControlProxy Implementation - // - template <typename ... _AttributeExtensions> - RoutingControlProxy<_AttributeExtensions...>::RoutingControlProxy(std::shared_ptr<CommonAPI::Proxy> delegate): -- delegate_(std::dynamic_pointer_cast<RoutingControlProxyBase>(delegate)), -- _AttributeExtensions(*(std::dynamic_pointer_cast<RoutingControlProxyBase>(delegate)))... { -+ _AttributeExtensions(*(std::dynamic_pointer_cast<RoutingControlProxyBase>(delegate)))..., -+ delegate_(std::dynamic_pointer_cast<RoutingControlProxyBase>(delegate)) { - } - - template <typename ... _AttributeExtensions> -@@ -474,7 +478,7 @@ std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>: - /** - * connects a source to a sink - (at)return E_OK on success, E_UNKNOWN on error, -- * E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match - */ - template <typename ... _AttributeExtensions> - void RoutingControlProxy<_AttributeExtensions...>::asyncConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, CommonAPI::CallStatus& callStatus) { -@@ -549,8 +553,8 @@ std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>: - } - /** - * this function sets the sinksoundproperty. --(at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+(at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - template <typename ... _AttributeExtensions> - void RoutingControlProxy<_AttributeExtensions...>::asyncSetSinkSoundProperties(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus) { -@@ -563,8 +567,8 @@ std::future<CommonAPI::CallStatus> RoutingControlProxy<_AttributeExtensions...>: - } - /** - * this function sets the sinksoundproperty. --(at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+(at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - template <typename ... _AttributeExtensions> - void RoutingControlProxy<_AttributeExtensions...>::asyncSetSinkSoundProperty(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus) { -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxyBase.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxyBase.h -index 75bba47..047dee2 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxyBase.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlProxyBase.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * This class implements everything from Audiomanager -> RoutingAdapter -@@ -70,7 +68,7 @@ class RoutingControlProxyBase: virtual public CommonAPI::Proxy { - /** - * connects a source to a sink - (at)return E_OK on success, E_UNKNOWN on error, -- * E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match - */ - virtual void asyncConnect(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, CommonAPI::CallStatus& callStatus) = 0; - virtual std::future<CommonAPI::CallStatus> asyncConnectAsync(const am_Handle_s& handle, const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_CustomConnectionFormat_t& connectionFormat, AsyncConnectAsyncCallback callback) = 0; -@@ -110,15 +108,15 @@ class RoutingControlProxyBase: virtual public CommonAPI::Proxy { - virtual std::future<CommonAPI::CallStatus> asyncSetSourceStateAsync(const am_Handle_s& handle, const am_sourceID_t& sourceID, const am_SourceState_e& state, AsyncSetSourceStateAsyncCallback callback) = 0; - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - virtual void asyncSetSinkSoundProperties(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, CommonAPI::CallStatus& callStatus) = 0; - virtual std::future<CommonAPI::CallStatus> asyncSetSinkSoundPropertiesAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_L& listSoundProperties, AsyncSetSinkSoundPropertiesAsyncCallback callback) = 0; - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - virtual void asyncSetSinkSoundProperty(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, CommonAPI::CallStatus& callStatus) = 0; - virtual std::future<CommonAPI::CallStatus> asyncSetSinkSoundPropertyAsync(const am_Handle_s& handle, const am_sinkID_t& sinkID, const am_SoundProperty_s& soundProperty, AsyncSetSinkSoundPropertyAsyncCallback callback) = 0; -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStub.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStub.h -index 5303589..853b179 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStub.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStub.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * This class implements everything from Audiomanager -> RoutingAdapter -@@ -83,7 +81,7 @@ class RoutingControlStubRemoteEvent { - * This class and the one above are the ones an application developer needs to have - * a look at if he wants to implement a service. - */ --class RoutingControlStub : public virtual CommonAPI::Stub<RoutingControlStubAdapter, RoutingControlStubRemoteEvent> { -+class RoutingControlStub: public virtual CommonAPI::Stub<RoutingControlStubAdapter, RoutingControlStubRemoteEvent> { - public: - virtual ~RoutingControlStub() { } - virtual const CommonAPI::Version& getInterfaceVersion(std::shared_ptr<CommonAPI::ClientId> clientId) = 0; -@@ -99,7 +97,7 @@ public: - /** - * connects a source to a sink - (at)return E_OK on success, E_UNKNOWN on error, -- * E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match - */ - /// This is the method that will be called on remote calls on the method asyncConnect. - virtual void asyncConnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_sourceID_t sourceID, am_sinkID_t sinkID, am_CustomConnectionFormat_t connectionFormat) = 0; -@@ -139,15 +137,15 @@ public: - virtual void asyncSetSourceState(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sourceID_t sourceID, am_SourceState_e state) = 0; - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - /// This is the method that will be called on remote calls on the method asyncSetSinkSoundProperties. - virtual void asyncSetSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_L listSoundProperties) = 0; - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - /// This is the method that will be called on remote calls on the method asyncSetSinkSoundProperty. - virtual void asyncSetSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_s soundProperty) = 0; -@@ -189,6 +187,8 @@ public: - using CommonAPI::Stub<RoutingControlStubAdapter, RoutingControlStubRemoteEvent>::initStubAdapter; - typedef CommonAPI::Stub<RoutingControlStubAdapter, RoutingControlStubRemoteEvent>::StubAdapterType StubAdapterType; - typedef CommonAPI::Stub<RoutingControlStubAdapter, RoutingControlStubRemoteEvent>::RemoteEventHandlerType RemoteEventHandlerType; -+ typedef RoutingControlStubRemoteEvent RemoteEventType; -+ typedef RoutingControl StubInterface; - }; - - } // namespace am -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.cpp b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.cpp -index 77e34e4..58a3918 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.cpp -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.cpp -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - #include <org/genivi/am/RoutingControlStubDefault.h> - -@@ -44,7 +42,7 @@ void RoutingControlStubDefault::asyncAbort(am_Handle_s handle) { - /** - * connects a source to a sink - (at)return E_OK on success, E_UNKNOWN on error, -- * E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match - */ - void RoutingControlStubDefault::asyncConnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_sourceID_t sourceID, am_sinkID_t sinkID, am_CustomConnectionFormat_t connectionFormat) { - // Call old style methods in default -@@ -114,8 +112,8 @@ void RoutingControlStubDefault::asyncSetSourceState(am_Handle_s handle, am_sourc - - /** - * this function sets the sinksoundproperty. --(at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+(at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - void RoutingControlStubDefault::asyncSetSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_L listSoundProperties) { - // Call old style methods in default -@@ -127,8 +125,8 @@ void RoutingControlStubDefault::asyncSetSinkSoundProperties(am_Handle_s handle, - - /** - * this function sets the sinksoundproperty. --(at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+(at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - void RoutingControlStubDefault::asyncSetSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_s soundProperty) { - // Call old style methods in default -diff --git a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.h b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.h -index f411112..e53197e 100644 ---- a/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.h -+++ b/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlStubDefault.h -@@ -1,11 +1,9 @@ - /* - * This file was generated by the CommonAPI Generators. --* Used org.genivi.commonapi.core 2.1.5.201312121915. --* Used org.franca.core 0.8.11.201401091023. -+* Used org.genivi.commonapi.core 2.1.6.v20140815. -+* Used org.franca.core 0.8.10.201309262002. - * --* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. --* If a copy of the MPL was not distributed with this file, You can obtain one at --* http://mozilla.org/MPL/2.0/. -+* - */ - /** - * This class implements everything from Audiomanager -> RoutingAdapter -@@ -52,7 +50,7 @@ public: - /** - * connects a source to a sink - (at)return E_OK on success, E_UNKNOWN on error, -- * E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match -+ * E_WRONG_FORMAT in case am_ConnectionFormat_e does not match - */ - virtual void asyncConnect(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_connectionID_t connectionID, am_sourceID_t sourceID, am_sinkID_t sinkID, am_CustomConnectionFormat_t connectionFormat); - virtual void asyncConnect(am_Handle_s handle, am_connectionID_t connectionID, am_sourceID_t sourceID, am_sinkID_t sinkID, am_CustomConnectionFormat_t connectionFormat); -@@ -97,16 +95,16 @@ public: - - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - virtual void asyncSetSinkSoundProperties(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_L listSoundProperties); - virtual void asyncSetSinkSoundProperties(am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_L listSoundProperties); - - /** - * this function sets the sinksoundproperty. -- (at)return E_OK on success, -- * E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range -+ (at)return E_OK on success, E_UNKNOWN -+ * on error, E_OUT_OF_RANGE in case the propery value is out of range - */ - virtual void asyncSetSinkSoundProperty(const std::shared_ptr<CommonAPI::ClientId> clientId, am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_s soundProperty); - virtual void asyncSetSinkSoundProperty(am_Handle_s handle, am_sinkID_t sinkID, am_SoundProperty_s soundProperty); -@@ -156,8 +154,7 @@ public: - - - protected: --private: -- class RemoteEventHandler: public RoutingControlStubRemoteEvent { -+ class RemoteEventHandler: public virtual RoutingControlStubRemoteEvent { - public: - RemoteEventHandler(RoutingControlStubDefault* defaultStub); - -@@ -165,8 +162,8 @@ private: - private: - RoutingControlStubDefault* defaultStub_; - }; -- -- RemoteEventHandler remoteEventHandler_; -+private: -+ RoutingControlStubDefault::RemoteEventHandler remoteEventHandler_; - - - CommonAPI::Version interfaceVersion_; --- -2.0.4 - diff --git a/meta-ivi/recipes-multimedia/audiomanager/audiomanager_6.1.bb b/meta-ivi/recipes-multimedia/audiomanager/audiomanager_6.1.bb deleted file mode 100644 index 2dbe4fc..0000000 --- a/meta-ivi/recipes-multimedia/audiomanager/audiomanager_6.1.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "Genivi AudioManager" -HOMEPAGE = "https://www.genivi.org/" -SECTION = "multimedia" - -LICENSE = "MPLv2" -LIC_FILES_CHKSUM = "file://LICENCE;md5=815ca599c9df247a0c7f619bab123dad" - -DEPENDS = "common-api-c++-dbus dlt-daemon sqlite3 dbus" - -BRANCH = "Intreprid_stable_branch" - -SRC_URI = "git://git.projects.genivi.org/AudioManager.git;branch=${BRANCH};tag=${PV} \ - file://0001-src-gen-update-to-CommonAPI-version-2.1.6.patch \ - file://AudioManager.service file://setup_amgr.sh" - -S = "${WORKDIR}/git" -inherit autotools gettext cmake pkgconfig systemd - -SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "AudioManager.service" -SYSTEMD_AUTO_ENABLE = "disable" - -EXTRA_OECMAKE += "-DWITH_TESTS=OFF -DUSE_BUILD_LIBS=OFF" -OECMAKE_CXX_FLAGS +="-ldl" - -FILES_${PN} += "${libdir}/audioManager/command/*.so* \ - ${libdir}/audioManager/control/*.so* \ - ${libdir}/audioManager/routing/*.so* \ - ${systemd_unitdir}/AudioManager.service \ - ${systemd_unitdir}/scripts/setup_amgr.sh \ -" - -FILES_${PN}-dbg += "${libdir}/audioManager/command/.debug/* \ - ${libdir}/audioManager/control/.debug/* \ - ${libdir}/audioManager/routing/.debug/* \ -" -do_install_append() { - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then - mkdir -p ${D}${systemd_unitdir}/scripts/ - install -m 0755 ${WORKDIR}/setup_amgr.sh ${D}${systemd_unitdir}/scripts/setup_amgr.sh - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/AudioManager.service ${D}${systemd_unitdir}/system - fi -} diff --git a/meta-ivi/recipes-multimedia/audiomanager/audiomanager_6.2.bb b/meta-ivi/recipes-multimedia/audiomanager/audiomanager_6.2.bb new file mode 100644 index 0000000..21676a2 --- /dev/null +++ b/meta-ivi/recipes-multimedia/audiomanager/audiomanager_6.2.bb @@ -0,0 +1,50 @@ +SUMMARY = "Genivi AudioManager" +HOMEPAGE = "https://www.genivi.org/" +SECTION = "multimedia" + +LICENSE = "MPLv2" +LIC_FILES_CHKSUM = "file://LICENCE;md5=815ca599c9df247a0c7f619bab123dad" + +DEPENDS = "common-api-c++-dbus dlt-daemon sqlite3 dbus node-state-manager" + +BRANCH = "master" + +SRC_URI = " \ + git://git.projects.genivi.org/AudioManager.git;branch=${BRANCH};tag=${PV} \ + file://AudioManager.service \ + file://setup_amgr.sh \ + file://0001-Add-CommonAPI-sources-generated-with-CommonAPI-2.1.6.patch \ + " + +S = "${WORKDIR}/git" +inherit autotools gettext cmake pkgconfig systemd + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "AudioManager.service" +SYSTEMD_AUTO_ENABLE = "disable" + +EXTRA_OECMAKE += "-DWITH_TESTS=OFF -DUSE_BUILD_LIBS=OFF" +OECMAKE_CXX_FLAGS +="-ldl" + +FILES_${PN} += " \ + ${libdir}/audioManager/command/*.so* \ + ${libdir}/audioManager/control/*.so* \ + ${libdir}/audioManager/routing/*.so* \ + ${systemd_unitdir}/AudioManager.service \ + ${systemd_unitdir}/scripts/setup_amgr.sh \ + " + +FILES_${PN}-dbg += " \ + ${libdir}/audioManager/command/.debug/* \ + ${libdir}/audioManager/control/.debug/* \ + ${libdir}/audioManager/routing/.debug/* \ + " + +do_install_append() { + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + mkdir -p ${D}${systemd_unitdir}/scripts/ + install -m 0755 ${WORKDIR}/setup_amgr.sh ${D}${systemd_unitdir}/scripts/setup_amgr.sh + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/AudioManager.service ${D}${systemd_unitdir}/system + fi +} diff --git a/meta-ivi/recipes-multimedia/audiomanager/audiomanager_git.bb b/meta-ivi/recipes-multimedia/audiomanager/audiomanager_git.bb index 143d0f2..516ff59 100644 --- a/meta-ivi/recipes-multimedia/audiomanager/audiomanager_git.bb +++ b/meta-ivi/recipes-multimedia/audiomanager/audiomanager_git.bb @@ -36,7 +36,7 @@ FILES_${PN}-dbg += "${libdir}/audioManager/command/.debug/* \ ${libdir}/audioManager/routing/.debug/* \ " do_install_append() { - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then mkdir -p ${D}${systemd_unitdir}/scripts/ install -m 0755 ${WORKDIR}/setup_amgr.sh ${D}${systemd_unitdir}/scripts/setup_amgr.sh install -d ${D}${systemd_unitdir}/system/ diff --git a/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch new file mode 100644 index 0000000..1d99ad1 --- /dev/null +++ b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch @@ -0,0 +1,33 @@ +From 54bba228ea52d01fd84941d97be23c03f9862b64 Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani <dv@pseudoterminal.org> +Date: Sat, 6 Apr 2013 01:22:22 +0200 +Subject: [PATCH] Disable yasm for libav when --disable-yasm + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Shane Wang <shane.wang@intel.com> +Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org> +--- + configure.ac | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 22ede88..ef3c050 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -305,6 +305,12 @@ else + emblibav_configure_args="$emblibav_configure_args --enable-gpl" + fi + ++ AC_ARG_ENABLE(yasm, ++ [AC_HELP_STRING([--disable-yasm], [disable use of yasm assembler])]) ++ if test "x$enable_yasm" = "xno"; then ++ emblibav_configure_args="$emblibav_configure_args --disable-yasm" ++ fi ++ + # if we are cross-compiling, tell libav so + case $host in + *android*) +-- +1.8.2 + diff --git a/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb new file mode 100644 index 0000000..2e6ed2e --- /dev/null +++ b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb @@ -0,0 +1,26 @@ +DEFAULT_PREFERENCE = "-1" + +include recipes-multimedia/gstreamer/gstreamer1.0-libav.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ + file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ + file://gst-libs/ext/libav/LICENSE;md5=23a54f59b82572c203a559346e89ed57 \ + file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ + file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ + file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" + +SRC_URI = " \ + http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \ + file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \ + " +SRC_URI[md5sum] = "58c7998a054d8d8ca041fa35738f72b6" +SRC_URI[sha256sum] = "ebc7fbe10955f40df6ccc4bf689075e7e296205fc7ecd8ff383d43c5cdf5bcd6" +LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \ + --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \ + --ranlib='${RANLIB}' \ + ${GSTREAMER_1_0_DEBUG}" + +S = "${WORKDIR}/gst-libav-${PV}" + diff --git a/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch new file mode 100644 index 0000000..a428ac9 --- /dev/null +++ b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch @@ -0,0 +1,30 @@ +From f629e041e9f678fcd86ad764a15117dff63c271c Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani <dv@pseudoterminal.org> +Date: Sat, 27 Apr 2013 02:50:25 +0200 +Subject: [PATCH] omx: fixed type error in printf call + +%zu expects size_t + +Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=699008] + +Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org> +--- + omx/gstomx.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/omx/gstomx.c b/omx/gstomx.c +index a2945ed..1eca7cc 100644 +--- a/omx/gstomx.c ++++ b/omx/gstomx.c +@@ -1630,7 +1630,7 @@ gst_omx_port_allocate_buffers_unlocked (GstOMXPort * port, + + GST_INFO_OBJECT (comp->parent, + "Allocating %d buffers of size %zu for %s port %u", n, +- port->port_def.nBufferSize, comp->name, (guint) port->index); ++ (size_t) (port->port_def.nBufferSize), comp->name, (guint) port->index); + + if (!port->buffers) + port->buffers = g_ptr_array_sized_new (n); +-- +1.7.9.5 + diff --git a/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb new file mode 100644 index 0000000..0903f12 --- /dev/null +++ b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb @@ -0,0 +1,13 @@ +DEFAULT_PREFERENCE = "-1" + +include recipes-multimedia/gstreamer/gstreamer1.0-omx.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f" + +SRC_URI = "http://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz" + +SRC_URI[md5sum] = "bb34b5742223267298bcffc209104a92" +SRC_URI[sha256sum] = "7a1d8d28d70dacc6bd3c7ee7d7e40df6d5a1d38d7c256d5c9c5c8ef15c005014" + +S = "${WORKDIR}/gst-omx-${PV}" diff --git a/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch new file mode 100644 index 0000000..d52afd5 --- /dev/null +++ b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch @@ -0,0 +1,64 @@ +From f59c5269f92d59a5296cbfeeb682d42095cd88ad Mon Sep 17 00:00:00 2001 +From: Wenzong Fan <wenzong.fan@windriver.com> +Date: Thu, 18 Sep 2014 02:24:07 -0400 +Subject: [PATCH] gstreamer1.0-plugins-bad: allow to disable libssh2 + +libssh2 is automatically linked to if present, this undetermined +dependency may cause build errors like: + + .../x86_64-poky-linux/4.9.0/ld: cannot find -lssh2 + +libssh2 isn't an oe-core recipe, so allow to disable it from +configure. + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> +--- + configure.ac | 23 +++++++++++++++++------ + 1 file changed, 17 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 0e95c5c..12153b4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1901,6 +1901,15 @@ AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [ + ]) + + dnl *** Curl *** ++AC_ARG_ENABLE([libssh2], ++ [ --enable-libssh2 enable LIBSSH2 support @<:@default=auto@:>@], ++ [case "${enableval}" in ++ yes) NEED_SSH2=yes ;; ++ no) NEED_SSH2=no ;; ++ auto) NEED_SSH2=auto ;; ++ *) AC_MSG_ERROR([bad value ${enableval} for --enable-libssh2]) ;; ++ esac],[NEED_SSH2=auto]) ++ + translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true) + AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [ + PKG_CHECK_MODULES(CURL, libcurl >= 7.21.0, [ +@@ -1915,12 +1924,14 @@ AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [ + ]) + AC_SUBST(CURL_CFLAGS) + AC_SUBST(CURL_LIBS) +- PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [ +- HAVE_SSH2="yes" +- AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available]) +- ], [ +- HAVE_SSH2="no" +- ]) ++ if test "x$NEED_SSH2" != "xno"; then ++ PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [ ++ HAVE_SSH2="yes" ++ AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available]) ++ ], [ ++ HAVE_SSH2="no" ++ ]) ++ fi + AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes") + AC_SUBST(SSH2_CFLAGS) + AC_SUBST(SSH2_LIBS) +-- +1.7.9.5 + diff --git a/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb new file mode 100644 index 0000000..29b8d51 --- /dev/null +++ b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb @@ -0,0 +1,11 @@ +DEFAULT_PREFERENCE = "-1" + +include recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ + file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a \ + file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \ + file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50" +SRC_URI[md5sum] = "cfd6f303c8df2740b27cc63b945decef" +SRC_URI[sha256sum] = "595d7911a9e6207dea37200587724bdbf841b81a5eb0730118be36976684278c" +S = "${WORKDIR}/gst-plugins-bad-${PV}" diff --git a/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb new file mode 100644 index 0000000..aa7c448 --- /dev/null +++ b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb @@ -0,0 +1,11 @@ +DEFAULT_PREFERENCE = "-1" + +include recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ + file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ + " +SRC_URI[md5sum] = "17aeabfbcd232526f50c9bee375f1b97" +SRC_URI[sha256sum] = "61edec35c270f86928bad434bd059da4efff865d1ef01bcc64ecbd903625dae1" +S = "${WORKDIR}/gst-plugins-base-${PV}" diff --git a/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb new file mode 100644 index 0000000..4c01d28 --- /dev/null +++ b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb @@ -0,0 +1,10 @@ +DEFAULT_PREFERENCE = "-1" + +include recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ + file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" +SRC_URI[md5sum] = "1a1f96bc27ad446e559474299160a9a8" +SRC_URI[sha256sum] = "bfb33536a515bdcc34482f64b8d9cc3e47c753878b254923b419bc2f7485e470" +S = "${WORKDIR}/gst-plugins-good-${PV}" diff --git a/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb new file mode 100644 index 0000000..0ac7721 --- /dev/null +++ b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb @@ -0,0 +1,9 @@ +DEFAULT_PREFERENCE = "-1" + +include recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 " +SRC_URI[md5sum] = "7ae60e2f759f58f32af5fcdc3c9193c4" +SRC_URI[sha256sum] = "537b0a7607eee499026388bb705b5b68985a3fd59fe22ee09accaf8cdf57eb3b" +S = "${WORKDIR}/gst-plugins-ugly-${PV}" diff --git a/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch new file mode 100644 index 0000000..94f5cc5 --- /dev/null +++ b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch @@ -0,0 +1,28 @@ +From 6b26f3dbf9bf577d71534ab7410de66d06e46ba2 Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani <dv@pseudoterminal.org> +Date: Sat, 6 Apr 2013 23:52:11 +0200 +Subject: [PATCH] Fix crash with gst-inspect Chris Lord <chris@openedhand.com> + +Upstream-Status: Pending + +Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org> +--- + tools/gst-inspect.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c +index 23b7c44..b79b02e 100644 +--- a/tools/gst-inspect.c ++++ b/tools/gst-inspect.c +@@ -1556,7 +1556,7 @@ main (int argc, char *argv[]) + g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE); + g_option_context_add_group (ctx, gst_init_get_option_group ()); + if (!g_option_context_parse (ctx, &argc, &argv, &err)) { +- g_printerr ("Error initializing: %s\n", err->message); ++ g_printerr ("Error initializing: %s\n", err ? err->message : "(null)"); + return -1; + } + g_option_context_free (ctx); +-- +1.8.2 + diff --git a/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb new file mode 100644 index 0000000..caacc34 --- /dev/null +++ b/meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb @@ -0,0 +1,14 @@ +DEFAULT_PREFERENCE = "-1" + +include recipes-multimedia/gstreamer/gstreamer1.0.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ + file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" + +SRC_URI = " \ + http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ + file://0001-Fix-crash-with-gst-inspect.patch \ + " +SRC_URI[md5sum] = "8155b9c7574ccaa361cc504e8e0e72dc" +SRC_URI[sha256sum] = "0f9a9817a384b3448c368c23345e5122435caef9c00f1c40d7b1953827b0d8eb" +S = "${WORKDIR}/gstreamer-${PV}" diff --git a/meta-ivi/recipes-multimedia/pulseaudio/pulseaudio_5.0.bbappend b/meta-ivi/recipes-multimedia/pulseaudio/pulseaudio_6.0.bbappend index 5401c66..f016c40 100644 --- a/meta-ivi/recipes-multimedia/pulseaudio/pulseaudio_5.0.bbappend +++ b/meta-ivi/recipes-multimedia/pulseaudio/pulseaudio_6.0.bbappend @@ -9,12 +9,9 @@ inherit systemd SYSTEMD_PACKAGES = "${PN}-server" SYSTEMD_SERVICE_${PN}-server = "pulseaudio.service" -PACKAGECONFIG_remove = "bluez4" -PACKAGECONFIG_append = " bluez5" - RDEPENDS_pulseaudio-module-systemd-login =+ "systemd" RDEPENDS_pulseaudio-server += "\ - ${@base_contains('DISTRO_FEATURES', 'x11', 'pulseaudio-module-systemd-login', '', d)}" + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'pulseaudio-module-systemd-login', '', d)}" python __anonymous () { ''' @@ -32,7 +29,7 @@ python __anonymous () { } do_install_append() { - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then install -d ${D}${systemd_unitdir}/system/ install -m 0644 ${WORKDIR}/pulseaudio.service ${D}${systemd_unitdir}/system fi diff --git a/meta-ivi/recipes-support-ivi/ecryptfs-utils/ecryptfs-utils_104.bb b/meta-ivi/recipes-support-ivi/ecryptfs-utils/ecryptfs-utils_104.bb index 46b41d5..e1ac7f0 100644 --- a/meta-ivi/recipes-support-ivi/ecryptfs-utils/ecryptfs-utils_104.bb +++ b/meta-ivi/recipes-support-ivi/ecryptfs-utils/ecryptfs-utils_104.bb @@ -40,7 +40,7 @@ FILES_${PN}-dbg += "${libdir}/ecryptfs/.debug \ ${libdir}/security/.debug \ " do_install_append() { - if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then install -d ${D}${systemd_unitdir}/system/ install -m 0644 ${WORKDIR}/ecryptfs.service ${D}${systemd_unitdir}/system fi diff --git a/meta-ivi/recipes-support-ivi/keyutils/keyutils_1.5.8.bb b/meta-ivi/recipes-support-ivi/keyutils/keyutils_1.5.8.bb index 964160d..29ea842 100644 --- a/meta-ivi/recipes-support-ivi/keyutils/keyutils_1.5.8.bb +++ b/meta-ivi/recipes-support-ivi/keyutils/keyutils_1.5.8.bb @@ -14,9 +14,9 @@ SRCREV = "dd64114721edca5808872190e7e2e927ee2e994c" SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git;protocol=git \ file://keyutils_fix_library_install.patch \ " -SRC_URI_append_arm = "file://keyutils-arm-remove-m32-m64.patch" -SRC_URI_append_x86 = "file://keyutils_fix_x86_cflags.patch" -SRC_URI_append_x86-64 = "file://keyutils_fix_x86-64_cflags.patch" +SRC_URI_append_arm = " file://keyutils-arm-remove-m32-m64.patch" +SRC_URI_append_x86 = " file://keyutils_fix_x86_cflags.patch" +SRC_URI_append_x86-64 = " file://keyutils_fix_x86-64_cflags.patch" S = "${WORKDIR}/git" diff --git a/meta-ivi/recipes-yocto-ivi/images/ivi-image.bb b/meta-ivi/recipes-yocto-ivi/images/ivi-image.bb index 7b4130b..1c18ed0 100644 --- a/meta-ivi/recipes-yocto-ivi/images/ivi-image.bb +++ b/meta-ivi/recipes-yocto-ivi/images/ivi-image.bb @@ -1,7 +1,7 @@ # Base this image on generic IVI image require recipes-yocto-ivi/images/ivi-image.inc -PV = "7.0+snapshot-${DATE}" +PV = "9.0+snapshot-${DATE}" IMAGE_INSTALL_append = " \ packagegroup-abstract-component-p1 \ diff --git a/meta-ivi/recipes-yocto-ivi/images/ivi-image.inc b/meta-ivi/recipes-yocto-ivi/images/ivi-image.inc index 2ec2be7..7e2c17b 100644 --- a/meta-ivi/recipes-yocto-ivi/images/ivi-image.inc +++ b/meta-ivi/recipes-yocto-ivi/images/ivi-image.inc @@ -17,3 +17,9 @@ IMAGE_FEATURES += " package-management" IMAGE_POSTPROCESS_COMMAND_imx53qsb += "rename_symlink ; " BUILDHISTORY_COMMIT = "1" + +# Set default password for 'root' user +inherit extrausers +ROOTPASSWORD = "root" +ROOTUSERNAME = "root" +EXTRA_USERS_PARAMS = "usermod -P ${ROOTPASSWORD} ${ROOTUSERNAME};" diff --git a/meta-ivi/recipes-yocto-ivi/images/intrepid-image.bb b/meta-ivi/recipes-yocto-ivi/images/kronos-image.bb index c889b0d..aca23b2 100644 --- a/meta-ivi/recipes-yocto-ivi/images/intrepid-image.bb +++ b/meta-ivi/recipes-yocto-ivi/images/kronos-image.bb @@ -1,5 +1,5 @@ # Base this image on generic IVI image require recipes-yocto-ivi/images/ivi-image.bb -PV = "7.0.0" +PV = "9.0.0" diff --git a/meta-ivi/recipes-yocto-ivi/packagegroups/packagegroup-abstract-component-p1.bb b/meta-ivi/recipes-yocto-ivi/packagegroups/packagegroup-abstract-component-p1.bb index f43c955..2f0089e 100644 --- a/meta-ivi/recipes-yocto-ivi/packagegroups/packagegroup-abstract-component-p1.bb +++ b/meta-ivi/recipes-yocto-ivi/packagegroups/packagegroup-abstract-component-p1.bb @@ -15,6 +15,7 @@ ALLOW_EMPTY_${PN} = "1" RDEPENDS_${PN} += "\ bluez5 \ bluez5-obex \ + libbluetooth-plugins-service \ glibc \ ofono \ wayland-ivi-extension \ diff --git a/meta-ivi/recipes-yocto-ivi/packagegroups/packagegroup-abstract-component-p2.bb b/meta-ivi/recipes-yocto-ivi/packagegroups/packagegroup-abstract-component-p2.bb index a2be521..641b7ac 100644 --- a/meta-ivi/recipes-yocto-ivi/packagegroups/packagegroup-abstract-component-p2.bb +++ b/meta-ivi/recipes-yocto-ivi/packagegroups/packagegroup-abstract-component-p2.bb @@ -15,6 +15,7 @@ ALLOW_EMPTY_${PN} = "1" RDEPENDS_${PN} += "\ + neard \ node-health-monitor \ persistence-client-library \ persistence-administrator \ |