aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS6
-rw-r--r--README.md41
-rw-r--r--meta-ivi-bsp/recipes-bsp/u-boot/u-boot_2013.07.bbappend2
-rw-r--r--meta-ivi-bsp/recipes-kernel/linux/linux-yocto/qemux86.cfg11
-rw-r--r--meta-ivi-bsp/recipes-kernel/linux/linux-yocto/qemux86_64.cfg11
-rw-r--r--meta-ivi-bsp/recipes-kernel/linux/linux-yocto/vexpress_a9.cfg13
-rw-r--r--meta-ivi-bsp/recipes-kernel/linux/linux-yocto_3.10.bbappend23
-rw-r--r--meta-ivi-bsp/recipes-kernel/linux/linux-yocto_3.14.bbappend13
-rw-r--r--meta-ivi-demo/README.md73
-rw-r--r--meta-ivi-demo/conf/local.conf.sample9
-rw-r--r--meta-ivi-demo/recipes-demo-platform/images/ivi-image-demo-sdk.bb24
-rw-r--r--meta-ivi-demo/recipes-demo-platform/images/ivi-image-demo.bb18
-rw-r--r--meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-browser.bb20
-rw-r--r--meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-gps.bb28
-rw-r--r--meta-ivi-demo/recipes-demo-platform/packagegroups/packagegroup-gdp-qt5.bb42
-rw-r--r--meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker/0001-CMakeLists.txt-replaced-APPEND-with-SET.patch27
-rw-r--r--meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker/ambd.service15
-rw-r--r--meta-ivi-demo/recipes-extended/automotive-message-broker/automotive-message-broker_git.bb36
-rw-r--r--meta-ivi-demo/recipes-extended/browser-poc/browser-poc-git/COPYING373
-rw-r--r--meta-ivi-demo/recipes-extended/browser-poc/browser-poc_git.bb34
-rw-r--r--meta-ivi-demo/recipes-kernel/linux/linux-yocto_3.10.bbappend3
-rw-r--r--meta-ivi-demo/recipes-navigation/gpsd/gpsd_3.%.bbappend1
-rw-r--r--meta-ivi-demo/recipes-qt/qt5/qtbase_5.%.bbappend6
-rw-r--r--meta-ivi-demo/recipes-qt/qt5/qtwayland-native_git.bbappend1
-rw-r--r--meta-ivi-demo/recipes-qt/qt5/qtwayland_git.bbappend1
-rw-r--r--meta-ivi-demo/recipes-qt/qt5/qtwebkit_5.%.bbappend1
-rw-r--r--meta-ivi/conf/bblayers.conf.sample1
-rw-r--r--meta-ivi/conf/conf-notes.txt2
-rw-r--r--meta-ivi/conf/distro/poky-ivi-systemd.conf23
-rw-r--r--meta-ivi/conf/local.conf.sample13
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5/0001-plugins-Add-initial-code-for-service-plugin.patch97
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5/0002-plugins-service-Add-initial-code.patch168
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5/0003-plugins-service-Add-State-property.patch88
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5/0004-plugins-service-Add-RemoteUUID-property.patch46
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5/0005-plugins-service-Add-LocalUUID-property.patch48
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5/0006-plugins-service-Add-implemention-of-.Connect-method.patch104
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5/0007-plugins-service-Add-implemention-of-.Disconnect-meth.patch72
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5/0008-plugins-service-Add-Device-property.patch43
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5/0009-plugins-service-Add-Version-property.patch49
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5/0010-plugins-service-Add-AutoConnect-property.patch63
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5/0011-plugins-service-Add-Blocked-property.patch64
-rw-r--r--meta-ivi/recipes-connectivity/bluez5/bluez5_%.bbappend41
-rw-r--r--meta-ivi/recipes-connectivity/neard/neard_0.14.bbappend6
-rw-r--r--meta-ivi/recipes-core-ivi/base-passwd/base-passwd/add-default-root-pass.patch10
-rw-r--r--meta-ivi/recipes-core-ivi/base-passwd/base-passwd_3.5.29.bbappend6
-rw-r--r--meta-ivi/recipes-core-ivi/dbus/dbus/capi-dbus-add-send-with-reply-set-notify.patch201
-rw-r--r--meta-ivi/recipes-core-ivi/dbus/dbus_%.bbappend5
-rw-r--r--meta-ivi/recipes-devtools/qemu/qemu_2.%.bbappend4
-rw-r--r--meta-ivi/recipes-extended/common-api/common-api-c++-dbus_2.1.6-p6.bb (renamed from meta-ivi/recipes-extended/common-api/common-api-c++-dbus_2.1.6-p1.bb)3
-rw-r--r--meta-ivi/recipes-extended/common-api/common-api-c++_2.1.6-p1.bb (renamed from meta-ivi/recipes-extended/common-api/common-api-c++_2.1.6.bb)5
-rw-r--r--meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-build-with-systemd-209.patch9
-rw-r--r--meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch91
-rw-r--r--meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0003-systemd-unit-type-should-be-in-lowercase-so-use-Type.patch98
-rw-r--r--meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch27
-rw-r--r--meta-ivi/recipes-extended/dlt-daemon/dlt-daemon/modify_systemd_config_dir.patch13
-rw-r--r--meta-ivi/recipes-extended/dlt-daemon/dlt-daemon_2.10.0.bb55
-rw-r--r--meta-ivi/recipes-extended/dlt-daemon/dlt-daemon_2.11.1.bb44
-rw-r--r--meta-ivi/recipes-extended/node-health-monitor/node-health-monitor_1.3.5.bb (renamed from meta-ivi/recipes-extended/node-health-monitor/node-health-monitor_1.3.3.bb)2
-rw-r--r--meta-ivi/recipes-extended/node-state-manager/node-state-manager/link-with-gio.patch17
-rw-r--r--meta-ivi/recipes-extended/node-state-manager/node-state-manager_2.0.0.bb1
-rw-r--r--meta-ivi/recipes-extended/persistence-administrator/persistence-administrator/configure.ac-fix-typo-libperscommon.patch26
-rw-r--r--meta-ivi/recipes-extended/persistence-administrator/persistence-administrator_1.0.5.bb (renamed from meta-ivi/recipes-extended/persistence-administrator/persistence-administrator_1.0.2.bb)9
-rw-r--r--meta-ivi/recipes-extended/persistence-client-library/persistence-client-library-1.0.0/0001-Fix-cast-on-64bit-machines.patch35
-rw-r--r--meta-ivi/recipes-extended/persistence-client-library/persistence-client-library_1.0.0.bb (renamed from meta-ivi/recipes-extended/persistence-client-library/persistence-client-library_0.9.0.bb)17
-rw-r--r--meta-ivi/recipes-extended/persistence-common-object/persistence-common-object/B251_typedef_uint64_t.patch21
-rw-r--r--meta-ivi/recipes-extended/persistence-common-object/persistence-common-object/configure.ac-fix-typo.patch26
-rw-r--r--meta-ivi/recipes-extended/persistence-common-object/persistence-common-object_1.0.3.bb (renamed from meta-ivi/recipes-extended/persistence-common-object/persistence-common-object_1.0.1.bb)11
-rw-r--r--meta-ivi/recipes-graphics/mesa/mesa_10.%.bbappend2
-rw-r--r--meta-ivi/recipes-graphics/wayland/wayland-ivi-extension/use_sysroot_dir.patch10
-rw-r--r--meta-ivi/recipes-graphics/wayland/wayland-ivi-extension_1.2.0.bb (renamed from meta-ivi/recipes-graphics/wayland/wayland-ivi-extension_1.2.0_rc7.bb)5
-rw-r--r--meta-ivi/recipes-graphics/wayland/wayland-ivi-extension_1.3.0.bb23
-rw-r--r--meta-ivi/recipes-graphics/wayland/weston/0001-Enable-disable-default-virtual-keyboard.patch84
-rw-r--r--meta-ivi/recipes-graphics/wayland/weston/ivi-shell-click-event.patch124
-rw-r--r--meta-ivi/recipes-graphics/wayland/weston_1.5.0.bbappend17
-rw-r--r--meta-ivi/recipes-graphics/xorg-lib/xkeyboard-config_%.bbappend4
-rw-r--r--meta-ivi/recipes-multimedia/audiomanager/audiomanager/0001-Add-CommonAPI-sources-generated-with-CommonAPI-2.1.6.patch25986
-rw-r--r--meta-ivi/recipes-multimedia/audiomanager/audiomanager/0001-src-gen-update-to-CommonAPI-version-2.1.6.patch9227
-rw-r--r--meta-ivi/recipes-multimedia/audiomanager/audiomanager_6.2.bb (renamed from meta-ivi/recipes-multimedia/audiomanager/audiomanager_6.1.bb)38
-rw-r--r--meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch33
-rw-r--r--meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb26
-rw-r--r--meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch30
-rw-r--r--meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb13
-rw-r--r--meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch64
-rw-r--r--meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb11
-rw-r--r--meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb11
-rw-r--r--meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb10
-rw-r--r--meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb9
-rw-r--r--meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch28
-rw-r--r--meta-ivi/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb14
-rw-r--r--meta-ivi/recipes-multimedia/pulseaudio/pulseaudio_6.0.bbappend (renamed from meta-ivi/recipes-multimedia/pulseaudio/pulseaudio_5.0.bbappend)3
-rw-r--r--meta-ivi/recipes-support-ivi/keyutils/keyutils_1.5.8.bb6
-rw-r--r--meta-ivi/recipes-yocto-ivi/images/ivi-image.bb2
-rw-r--r--meta-ivi/recipes-yocto-ivi/images/ivi-image.inc6
-rw-r--r--meta-ivi/recipes-yocto-ivi/images/kronos-image.bb (renamed from meta-ivi/recipes-yocto-ivi/images/intrepid-image.bb)2
-rw-r--r--meta-ivi/recipes-yocto-ivi/packagegroups/packagegroup-abstract-component-p1.bb1
-rw-r--r--meta-ivi/recipes-yocto-ivi/packagegroups/packagegroup-abstract-component-p2.bb1
96 files changed, 28186 insertions, 10100 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
diff --git a/README.md b/README.md
index 7490897..67432f2 100644
--- a/README.md
+++ b/README.md
@@ -31,15 +31,16 @@ Layer Dependencies
------------------
URI: git://git.yoctoproject.org/poky
-> branch: master
-> revision: 39ca8b429b6244e9649e7303cbb240adf007bf22
+> 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_2013.07.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_2013.07.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-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 ce2dbd0..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 = "${@bb.utils.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 e9b8f16..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}"
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..ad86f55 100644
--- a/meta-ivi/recipes-connectivity/bluez5/bluez5_%.bbappend
+++ b/meta-ivi/recipes-connectivity/bluez5/bluez5_%.bbappend
@@ -1,14 +1,43 @@
+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_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 \
+ "
-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"
+# we copy the EXTRA_OECONF from Poky's bluez5.inc, fix the following QA issue
+# on the way and enable the Service API (--enable-service) option.
+# WARNING: QA Issue: bluez5: configure was passed unrecognised options:
+# --with-systemdunitdir [unknown-configure-option]
+# Note: this is an issue only with the Poky "dizzy" branch and should be
+# removed in case of future/later Poky versions.
+# Poky rev: 419a37e09565a820fdeb2d49104cc27f6720af5a
+EXTRA_OECONF = "\
+ --enable-tools \
+ --disable-cups \
+ --enable-test \
+ --enable-datafiles \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-systemd', '--disable-systemd', d)} \
+ --enable-library \
+ --enable-service \
+"
-S = "${WORKDIR}/git"
+PACKAGES =+ " libbluetooth-plugins-service "
+FILES_libbluetooth-plugins-service = "${libdir}/bluetooth/plugins/*.so"
diff --git a/meta-ivi/recipes-connectivity/neard/neard_0.14.bbappend b/meta-ivi/recipes-connectivity/neard/neard_0.14.bbappend
new file mode 100644
index 0000000..3981b7b
--- /dev/null
+++ b/meta-ivi/recipes-connectivity/neard/neard_0.14.bbappend
@@ -0,0 +1,6 @@
+# FIX ME
+# RRECOMMENDS from poky brings in bluez4 but meta-ivi uses bluez5. For now
+# remove these "recommendations" until there will be a fix for this in poky.
+# Read more:
+# http://lists.openembedded.org/pipermail/openembedded-core/2014-November/098846.html
+RRECOMMENDS_${PN} = ""
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/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_2.1.6-p1.bb b/meta-ivi/recipes-extended/common-api/common-api-c++-dbus_2.1.6-p6.bb
index bf91a97..d1d612f 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,8 @@ 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}"
S = "${WORKDIR}/git"
DEPENDS = "common-api2 dbus"
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..19a3b7a 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,10 @@ 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}"
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 e9d336e..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 [ ${@bb.utils.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 e137535..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,6 +16,7 @@ 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"
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..31073fe 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,10 @@ 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 \
+ "
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/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-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- &amp; 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- &amp; 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 &amp; 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- &amp; 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- &amp; 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- &amp; 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 &amp; 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- &amp; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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- &amp; 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- &amp; 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 &amp; 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- &amp; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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.2.bb
index 483f967..21676a2 100644
--- a/meta-ivi/recipes-multimedia/audiomanager/audiomanager_6.1.bb
+++ b/meta-ivi/recipes-multimedia/audiomanager/audiomanager_6.2.bb
@@ -5,13 +5,16 @@ SECTION = "multimedia"
LICENSE = "MPLv2"
LIC_FILES_CHKSUM = "file://LICENCE;md5=815ca599c9df247a0c7f619bab123dad"
-DEPENDS = "common-api-c++-dbus dlt-daemon sqlite3 dbus"
+DEPENDS = "common-api-c++-dbus dlt-daemon sqlite3 dbus node-state-manager"
-BRANCH = "Intreprid_stable_branch"
+BRANCH = "master"
-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"
+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
@@ -23,17 +26,20 @@ 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/* \
-"
+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/
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 f10b45d..f016c40 100644
--- a/meta-ivi/recipes-multimedia/pulseaudio/pulseaudio_5.0.bbappend
+++ b/meta-ivi/recipes-multimedia/pulseaudio/pulseaudio_6.0.bbappend
@@ -9,9 +9,6 @@ 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 += "\
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'pulseaudio-module-systemd-login', '', d)}"
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 \