diff options
-rw-r--r-- | meta-ivi-demo/recipes-multimedia/audiomanager/audiomanager-poc.bb | 7 | ||||
-rw-r--r-- | meta-ivi-demo/recipes-multimedia/audiomanager/audiomanager-poc/0001-AudioManager-Proof-of-Concept.patch (renamed from meta-ivi-demo/recipes-multimedia/audiomanager/audiomanager-poc/0001-First-draft-for-Am-PoC.patch) | 6243 |
2 files changed, 2314 insertions, 3936 deletions
diff --git a/meta-ivi-demo/recipes-multimedia/audiomanager/audiomanager-poc.bb b/meta-ivi-demo/recipes-multimedia/audiomanager/audiomanager-poc.bb index 48e166b..1684797 100644 --- a/meta-ivi-demo/recipes-multimedia/audiomanager/audiomanager-poc.bb +++ b/meta-ivi-demo/recipes-multimedia/audiomanager/audiomanager-poc.bb @@ -2,7 +2,7 @@ SUMMARY = "GENIVI AudioManager PoC" DESCRIPTION = "Proof of Concept of the Genivi AudioManager" LICENSE = "MPLv2" -LIC_FILES_CHKSUM = "file://AudioManagerPoC/README;md5=a14727a1c077b5b52e8574824a2f9458" +LIC_FILES_CHKSUM = "file://AudioManagerPoC/README;md5=6825421ff1d3b214ec0bac87ae559c56" DEPENDS = "qtbase qtdeclarative qtwebkit" @@ -10,7 +10,7 @@ BRANCH = "Intreprid_stable_branch" VERSION = "6.1" SRC_URI = "git://git.projects.genivi.org/AudioManager.git;branch=${BRANCH};tag=${VERSION} \ - file://0001-First-draft-for-Am-PoC.patch \ + file://0001-AudioManager-Proof-of-Concept.patch \ " S = "${WORKDIR}/git" @@ -23,7 +23,8 @@ inherit qmake5 do_install_append() { mkdir -p ${D}/${bindir}/am-poc/qml - mv ${D}/${bindir}/falcon_hmi ${D}/${bindir}/am-poc + mv ${D}/${bindir}/AudioManager_PoC ${D}/${bindir}/am-poc + cp ${S}/AudioManagerPoC/*.sh ${D}/${bindir}/am-poc cp ${S}/AudioManagerPoC/*.qml ${D}/${bindir}/am-poc/qml/ } diff --git a/meta-ivi-demo/recipes-multimedia/audiomanager/audiomanager-poc/0001-First-draft-for-Am-PoC.patch b/meta-ivi-demo/recipes-multimedia/audiomanager/audiomanager-poc/0001-AudioManager-Proof-of-Concept.patch index e270798..ca6aa2b 100644 --- a/meta-ivi-demo/recipes-multimedia/audiomanager/audiomanager-poc/0001-First-draft-for-Am-PoC.patch +++ b/meta-ivi-demo/recipes-multimedia/audiomanager/audiomanager-poc/0001-AudioManager-Proof-of-Concept.patch @@ -1,9 +1,9 @@ -From c7b14680082f51414332763ba848c5f92c394174 Mon Sep 17 00:00:00 2001 +From 9de5fdb7a8acf15494bc827376b35c7fc1426ea1 Mon Sep 17 00:00:00 2001 From: Adrian Scarlat <adrian.scarlat@windriver.com> -Date: Tue, 16 Sep 2014 18:12:24 +0300 -Subject: [PATCH] First draft for Am PoC. +Date: Mon, 13 Oct 2014 19:53:54 +0300 +Subject: [PATCH] AudioManager Proof of Concept. -This AudioManager Proof Of Concept is based on AM ver 3.0 and Qt 5. +This AudioManager PoC is based on AM ver 3.0 and Qt 5. It will be a simple application that will demonstrate a few of the AM capabilities: 1. source playing; @@ -15,180 +15,192 @@ Added new folder: AudioManagerPoC/ Added new files: + AudioManagerPoC/README + AudioManagerPoC/AudioManager_PoC.pro + AudioManagerPoC/main.qml AudioManagerPoC/AudioManager.qml - AudioManagerPoC/AudioManagerCommander.cpp - AudioManagerPoC/AudioManagerCommander.h AudioManagerPoC/Button.qml AudioManagerPoC/Clock.qml - AudioManagerPoC/CommandInterface.xml AudioManagerPoC/HomePage.qml - AudioManagerPoC/Multimedia.qml - AudioManagerPoC/README AudioManagerPoC/Slider.qml AudioManagerPoC/Tab.qml - AudioManagerPoC/WebBrowser.qml - AudioManagerPoC/WindRiver_Rev_lrg.png - AudioManagerPoC/WindRiver_red_lrg.png AudioManagerPoC/application.qrc + AudioManagerPoC/main.cpp AudioManagerPoC/audiomanager.cpp AudioManagerPoC/audiomanager.h - AudioManagerPoC/audiomanager_command.h + AudioManagerPoC/volumechart.cpp + AudioManagerPoC/volumechart.h + AudioManagerPoC/qmlbuttoneventsreceiver.cpp + AudioManagerPoC/qmlbuttoneventsreceiver.h + AudioManagerPoC/start_am-poc.sh + AudioManagerPoC/getconnections.sh + AudioManagerPoC/getvolumes_val.sh + AudioManagerPoC/setvolume.sh + AudioManagerPoC/playCarReverse.sh + AudioManagerPoC/stopCarReverse.sh + AudioManagerPoC/playmusic.sh + AudioManagerPoC/stopmusic.sh + AudioManagerPoC/playnav.sh + AudioManagerPoC/stopnav.sh + AudioManagerPoC/playtel.sh + AudioManagerPoC/stoptel.sh + AudioManagerPoC/playtts.sh + AudioManagerPoC/stoptts.sh + AudioManagerPoC/tabs.js + AudioManagerPoC/WindRiver_red_lrg.png AudioManagerPoC/bg.png AudioManagerPoC/bg_homepage.png - AudioManagerPoC/browser.png AudioManagerPoC/clock.png AudioManagerPoC/clock_glass.png - AudioManagerPoC/falcon.config - AudioManagerPoC/falcon.creator - AudioManagerPoC/falcon.creator.user - AudioManagerPoC/falcon.files - AudioManagerPoC/falcon.includes - AudioManagerPoC/falcon_hmi.pro - AudioManagerPoC/falcon_hmi.pro.user - AudioManagerPoC/falcon_hmi.pro.user.7558c67.2.2pre5 + AudioManagerPoC/genivi_logo.png AudioManagerPoC/home.png - AudioManagerPoC/main.cpp - AudioManagerPoC/main.qml - AudioManagerPoC/media_player.png - AudioManagerPoC/playmedia.sh - AudioManagerPoC/qmlbuttoneventsreceiver.cpp - AudioManagerPoC/qmlbuttoneventsreceiver.h - AudioManagerPoC/skype.cpp - AudioManagerPoC/skype.h - AudioManagerPoC/skypeclient.cpp - AudioManagerPoC/skypeclient.h AudioManagerPoC/sound.png - AudioManagerPoC/tabs.js - AudioManagerPoC/volumechart.cpp - AudioManagerPoC/volumechart.h Signed-off-by: Adrian Scarlat <adrian.scarlat@windriver.com> --- - AudioManagerPoC/AudioManager.qml | 186 ++++++++ - AudioManagerPoC/AudioManagerCommander.cpp | 108 +++++ - AudioManagerPoC/AudioManagerCommander.h | 140 ++++++ - AudioManagerPoC/Button.qml | 80 ++++ - AudioManagerPoC/Clock.qml | 139 ++++++ - AudioManagerPoC/CommandInterface.xml | 153 +++++++ - AudioManagerPoC/HomePage.qml | 51 +++ - AudioManagerPoC/Multimedia.qml | 222 ++++++++++ - AudioManagerPoC/README | 2 + - AudioManagerPoC/Slider.qml | 122 ++++++ - AudioManagerPoC/Tab.qml | 115 +++++ - AudioManagerPoC/WebBrowser.qml | 67 +++ - AudioManagerPoC/WindRiver_Rev_lrg.png | Bin 0 -> 66998 bytes - AudioManagerPoC/WindRiver_red_lrg.png | Bin 0 -> 67921 bytes - AudioManagerPoC/application.qrc | 23 + - AudioManagerPoC/audiomanager.cpp | 264 ++++++++++++ - AudioManagerPoC/audiomanager.h | 105 +++++ - AudioManagerPoC/audiomanager_command.h | 448 ++++++++++++++++++++ - AudioManagerPoC/bg.png | Bin 0 -> 111940 bytes - AudioManagerPoC/bg_homepage.png | Bin 0 -> 211 bytes - AudioManagerPoC/browser.png | Bin 0 -> 800 bytes - AudioManagerPoC/clock.png | Bin 0 -> 19863 bytes - AudioManagerPoC/clock_glass.png | Bin 0 -> 4407 bytes - AudioManagerPoC/falcon.config | 2 + - AudioManagerPoC/falcon.creator | 1 + - AudioManagerPoC/falcon.creator.user | 189 +++++++++ - AudioManagerPoC/falcon.files | 14 + - AudioManagerPoC/falcon.includes | 1 + - AudioManagerPoC/falcon_hmi.pro | 57 +++ - AudioManagerPoC/falcon_hmi.pro.user | 448 ++++++++++++++++++++ - .../falcon_hmi.pro.user.7558c67.2.2pre5 | 267 ++++++++++++ - AudioManagerPoC/home.png | Bin 0 -> 671 bytes - AudioManagerPoC/main.cpp | 73 ++++ - AudioManagerPoC/main.qml | 180 ++++++++ - AudioManagerPoC/media_player.png | Bin 0 -> 713 bytes - AudioManagerPoC/playmedia.sh | 9 + - AudioManagerPoC/qmlbuttoneventsreceiver.cpp | 278 ++++++++++++ - AudioManagerPoC/qmlbuttoneventsreceiver.h | 40 ++ - AudioManagerPoC/skype.cpp | 27 ++ - AudioManagerPoC/skype.h | 19 + - AudioManagerPoC/skypeclient.cpp | 31 ++ - AudioManagerPoC/skypeclient.h | 24 ++ - AudioManagerPoC/sound.png | Bin 0 -> 800 bytes - AudioManagerPoC/tabs.js | 19 + - AudioManagerPoC/volumechart.cpp | 98 +++++ - AudioManagerPoC/volumechart.h | 22 + - 46 files changed, 4024 insertions(+) + AudioManagerPoC/AudioManager.qml | 178 +++++++++++++++ + AudioManagerPoC/AudioManager_PoC.pro | 91 ++++++++ + AudioManagerPoC/Button.qml | 121 +++++++++++ + AudioManagerPoC/Clock.qml | 141 ++++++++++++ + AudioManagerPoC/HomePage.qml | 54 +++++ + AudioManagerPoC/README | 25 +++ + AudioManagerPoC/Slider.qml | 125 +++++++++++ + AudioManagerPoC/Tab.qml | 135 ++++++++++++ + AudioManagerPoC/WindRiver_red_lrg.png | Bin 0 -> 67921 bytes + AudioManagerPoC/application.qrc | 20 ++ + AudioManagerPoC/audiomanager.cpp | 290 +++++++++++++++++++++++++ + AudioManagerPoC/audiomanager.h | 126 +++++++++++ + AudioManagerPoC/bg.png | Bin 0 -> 111940 bytes + AudioManagerPoC/bg_homepage.png | Bin 0 -> 211 bytes + AudioManagerPoC/clock.png | Bin 0 -> 19863 bytes + AudioManagerPoC/clock_glass.png | Bin 0 -> 4407 bytes + AudioManagerPoC/genivi_logo.png | Bin 0 -> 60335 bytes + AudioManagerPoC/getconnections.sh | 22 ++ + AudioManagerPoC/getvolumes_val.sh | 22 ++ + AudioManagerPoC/home.png | Bin 0 -> 671 bytes + AudioManagerPoC/main.cpp | 54 +++++ + AudioManagerPoC/main.qml | 164 ++++++++++++++ + AudioManagerPoC/playCarReverse.sh | 22 ++ + AudioManagerPoC/playmusic.sh | 22 ++ + AudioManagerPoC/playnav.sh | 22 ++ + AudioManagerPoC/playtel.sh | 22 ++ + AudioManagerPoC/playtts.sh | 22 ++ + AudioManagerPoC/qmlbuttoneventsreceiver.cpp | 311 +++++++++++++++++++++++++++ + AudioManagerPoC/qmlbuttoneventsreceiver.h | 63 ++++++ + AudioManagerPoC/setvolume.sh | 22 ++ + AudioManagerPoC/sound.png | Bin 0 -> 800 bytes + AudioManagerPoC/start_am-poc.sh | 8 + + AudioManagerPoC/stopCarReverse.sh | 22 ++ + AudioManagerPoC/stopmusic.sh | 22 ++ + AudioManagerPoC/stopnav.sh | 22 ++ + AudioManagerPoC/stoptel.sh | 22 ++ + AudioManagerPoC/stoptts.sh | 22 ++ + AudioManagerPoC/tabs.js | 36 ++++ + AudioManagerPoC/volumechart.cpp | 86 ++++++++ + AudioManagerPoC/volumechart.h | 41 ++++ + 40 files changed, 2355 insertions(+) create mode 100644 AudioManagerPoC/AudioManager.qml - create mode 100644 AudioManagerPoC/AudioManagerCommander.cpp - create mode 100644 AudioManagerPoC/AudioManagerCommander.h + create mode 100644 AudioManagerPoC/AudioManager_PoC.pro create mode 100644 AudioManagerPoC/Button.qml create mode 100644 AudioManagerPoC/Clock.qml - create mode 100644 AudioManagerPoC/CommandInterface.xml create mode 100644 AudioManagerPoC/HomePage.qml - create mode 100644 AudioManagerPoC/Multimedia.qml create mode 100644 AudioManagerPoC/README create mode 100644 AudioManagerPoC/Slider.qml create mode 100644 AudioManagerPoC/Tab.qml - create mode 100644 AudioManagerPoC/WebBrowser.qml - create mode 100644 AudioManagerPoC/WindRiver_Rev_lrg.png create mode 100644 AudioManagerPoC/WindRiver_red_lrg.png create mode 100644 AudioManagerPoC/application.qrc create mode 100644 AudioManagerPoC/audiomanager.cpp create mode 100644 AudioManagerPoC/audiomanager.h - create mode 100644 AudioManagerPoC/audiomanager_command.h create mode 100644 AudioManagerPoC/bg.png create mode 100644 AudioManagerPoC/bg_homepage.png - create mode 100644 AudioManagerPoC/browser.png create mode 100644 AudioManagerPoC/clock.png create mode 100644 AudioManagerPoC/clock_glass.png - create mode 100644 AudioManagerPoC/falcon.config - create mode 100644 AudioManagerPoC/falcon.creator - create mode 100644 AudioManagerPoC/falcon.creator.user - create mode 100644 AudioManagerPoC/falcon.files - create mode 100644 AudioManagerPoC/falcon.includes - create mode 100644 AudioManagerPoC/falcon_hmi.pro - create mode 100644 AudioManagerPoC/falcon_hmi.pro.user - create mode 100644 AudioManagerPoC/falcon_hmi.pro.user.7558c67.2.2pre5 + create mode 100644 AudioManagerPoC/genivi_logo.png + create mode 100755 AudioManagerPoC/getconnections.sh + create mode 100755 AudioManagerPoC/getvolumes_val.sh create mode 100644 AudioManagerPoC/home.png create mode 100644 AudioManagerPoC/main.cpp create mode 100644 AudioManagerPoC/main.qml - create mode 100644 AudioManagerPoC/media_player.png - create mode 100755 AudioManagerPoC/playmedia.sh + create mode 100755 AudioManagerPoC/playCarReverse.sh + create mode 100755 AudioManagerPoC/playmusic.sh + create mode 100755 AudioManagerPoC/playnav.sh + create mode 100755 AudioManagerPoC/playtel.sh + create mode 100755 AudioManagerPoC/playtts.sh create mode 100644 AudioManagerPoC/qmlbuttoneventsreceiver.cpp create mode 100644 AudioManagerPoC/qmlbuttoneventsreceiver.h - create mode 100644 AudioManagerPoC/skype.cpp - create mode 100644 AudioManagerPoC/skype.h - create mode 100644 AudioManagerPoC/skypeclient.cpp - create mode 100644 AudioManagerPoC/skypeclient.h + create mode 100755 AudioManagerPoC/setvolume.sh create mode 100644 AudioManagerPoC/sound.png + create mode 100755 AudioManagerPoC/start_am-poc.sh + create mode 100755 AudioManagerPoC/stopCarReverse.sh + create mode 100755 AudioManagerPoC/stopmusic.sh + create mode 100755 AudioManagerPoC/stopnav.sh + create mode 100755 AudioManagerPoC/stoptel.sh + create mode 100755 AudioManagerPoC/stoptts.sh create mode 100644 AudioManagerPoC/tabs.js create mode 100644 AudioManagerPoC/volumechart.cpp create mode 100644 AudioManagerPoC/volumechart.h diff --git a/AudioManagerPoC/AudioManager.qml b/AudioManagerPoC/AudioManager.qml new file mode 100644 -index 0000000..cdc66b0 +index 0000000..8d25fbc --- /dev/null +++ b/AudioManagerPoC/AudioManager.qml -@@ -0,0 +1,186 @@ +@@ -0,0 +1,178 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioManager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ */ ++ +import QtQuick 2.2 + +Rectangle { -+ Text { -+ text : "Reload audio profile!!!" -+ } + + Row { + spacing: 10 + y: 100; + x: 50 -+ + Button { ++ objectName: "parking" + text: "Parking Signal" ++ width: 200 + } + Button { ++ objectName: "nav" + text: "Navigation Message" ++ width: 250 + } + Button { ++ objectName: "tts" + text: "Text To Speech" ++ width: 200 + } + Button { ++ objectName: "phone" + text: "Start Phone Call" ++ width: 180 ++ } ++ Button { ++ objectName: "music" ++ text: "Play Music" ++ width: 180 + } + } ++ + Rectangle + { + color: "#000000"; @@ -207,45 +219,6 @@ index 0000000..cdc66b0 + asynchronous: true + } + } -+ /* -+ Rectangle { -+ x: 250 -+ y: 180 -+ width: 100 -+ height: 50 -+ gradient: Gradient { -+ GradientStop { -+ position: 0.00; -+ color: "#00000000"; -+ } -+ GradientStop { -+ position: 1.00; -+ color: "#FF000000"; -+ } -+ } -+ transform: Rotation { -+ angle: 90 -+ } -+ } -+ Rectangle { -+ x: 550 -+ y: 280 -+ width: 100 -+ height: 50 -+ gradient: Gradient { -+ GradientStop { -+ position: 0.00; -+ color: "#00000000"; -+ } -+ GradientStop { -+ position: 1.00; -+ color: "#FF000000"; -+ } -+ } -+ transform: Rotation { -+ angle: 270 -+ } -+ }*/ + + Timer { + property int idx: 0 @@ -257,6 +230,7 @@ index 0000000..cdc66b0 + idx++; + volChart.source = "image://volumes/" + idx; } + } ++ + Row { + z: 3 + x: 50 @@ -350,274 +324,152 @@ index 0000000..cdc66b0 + }//end connections + } +} -diff --git a/AudioManagerPoC/AudioManagerCommander.cpp b/AudioManagerPoC/AudioManagerCommander.cpp +diff --git a/AudioManagerPoC/AudioManager_PoC.pro b/AudioManagerPoC/AudioManager_PoC.pro new file mode 100644 -index 0000000..8547289 +index 0000000..5027038 --- /dev/null -+++ b/AudioManagerPoC/AudioManagerCommander.cpp -@@ -0,0 +1,108 @@ -+/* -+ * This file was generated by qdbusxml2cpp version 0.7 -+ * Command line was: qdbusxml2cpp CommandInterface.xml -c AudioManagerCommander -p AudioManagerCommander.cpp -a AudioManagerCommander.h -+ * -+ * qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -+ * -+ * This is an auto-generated file. -+ * Do not edit! All changes made to it will be lost. -+ */ -+ -+#ifndef AUDIOMANAGERCOMMANDER_CPP_1331895254 -+#define AUDIOMANAGERCOMMANDER_CPP_1331895254 -+ -+#include <QtCore/QObject> -+#include <QtCore/QByteArray> -+#include <QtCore/QList> -+#include <QtCore/QMap> -+#include <QtCore/QString> -+#include <QtCore/QStringList> -+#include <QtCore/QVariant> -+#include <QtDBus/QtDBus> -+ -+/* -+ * Proxy class for interface org.genivi.audiomanager.CommandInterface -+ */ -+class AudioManagerCommander: public QDBusAbstractInterface -+{ -+ Q_OBJECT -+public: -+ static inline const char *staticInterfaceName() -+ { return "org.genivi.audiomanager.CommandInterface"; } -+ -+public: -+ AudioManagerCommander(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0); -+ -+ ~AudioManagerCommander(); -+ -+public Q_SLOTS: // METHODS -+ inline QDBusPendingReply<short, ushort> Connect(ushort sourceID, ushort sinkID) -+ { -+ QList<QVariant> argumentList; -+ argumentList << qVariantFromValue(sourceID) << qVariantFromValue(sinkID); -+ return asyncCallWithArgumentList(QLatin1String("Connect"), argumentList); -+ } -+ inline QDBusReply<short> Connect(ushort sourceID, ushort sinkID, ushort &mainConnectionID) -+ { -+ QList<QVariant> argumentList; -+ argumentList << qVariantFromValue(sourceID) << qVariantFromValue(sinkID); -+ QDBusMessage reply = callWithArgumentList(QDBus::Block, QLatin1String("Connect"), argumentList); -+ if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 2) { -+ mainConnectionID = qdbus_cast<ushort>(reply.arguments().at(1)); -+ } -+ return reply; -+ } -+ -+ inline QDBusPendingReply<short> Disconnect(ushort mainConnectionID) -+ { -+ QList<QVariant> argumentList; -+ argumentList << qVariantFromValue(mainConnectionID); -+ return asyncCallWithArgumentList(QLatin1String("Disconnect"), argumentList); -+ } -+ -+ inline QDBusPendingReply<short> SetSinkMuteState(ushort sinkID, short muteState) -+ { -+ QList<QVariant> argumentList; -+ argumentList << qVariantFromValue(sinkID) << qVariantFromValue(muteState); -+ return asyncCallWithArgumentList(QLatin1String("SetSinkMuteState"), argumentList); -+ } -+ -+ inline QDBusPendingReply<short> SetVolume(ushort sinkID, short volume) -+ { -+ QList<QVariant> argumentList; -+ argumentList << qVariantFromValue(sinkID) << qVariantFromValue(volume); -+ return asyncCallWithArgumentList(QLatin1String("SetVolume"), argumentList); -+ } -+ -+ inline QDBusPendingReply<short> VolumeStep(ushort sinkID, short volumeStep) -+ { -+ QList<QVariant> argumentList; -+ argumentList << qVariantFromValue(sinkID) << qVariantFromValue(volumeStep); -+ return asyncCallWithArgumentList(QLatin1String("VolumeStep"), argumentList); -+ } -+ -+Q_SIGNALS: // SIGNALS -+ void MainConnectionStateChanged(ushort connectionID, short connectionState); -+}; -+ -+namespace org { -+ namespace genivi { -+ namespace audiomanager { -+ typedef ::AudioManagerCommander CommandInterface; -+ } -+ } -+} -+#endif -+/* -+ * Implementation of interface class AudioManagerCommander -+ */ -+ -+AudioManagerCommander::AudioManagerCommander(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) -+ : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) -+{ -+} -+ -+AudioManagerCommander::~AudioManagerCommander() -+{ -+} -+ -diff --git a/AudioManagerPoC/AudioManagerCommander.h b/AudioManagerPoC/AudioManagerCommander.h -new file mode 100644 -index 0000000..d39a2a1 ---- /dev/null -+++ b/AudioManagerPoC/AudioManagerCommander.h -@@ -0,0 +1,140 @@ -+/* -+ * This file was generated by qdbusxml2cpp version 0.7 -+ * Command line was: qdbusxml2cpp CommandInterface.xml -c AudioManagerCommander -p AudioManagerCommander.cpp -a AudioManagerCommander.h -+ * -+ * qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -+ * -+ * This is an auto-generated file. -+ * This file may have been hand-edited. Look for HAND-EDIT comments -+ * before re-generating it. -+ */ ++++ b/AudioManagerPoC/AudioManager_PoC.pro +@@ -0,0 +1,91 @@ ++#------------------------------------------------- ++# ++# Project created by QtCreator 2012-03-04T09:20:56 ++# ++#------------------------------------------------- + -+#ifndef AUDIOMANAGERCOMMANDER_H_1331895254 -+#define AUDIOMANAGERCOMMANDER_H_1331895254 -+ -+#include <QtCore/QObject> -+#include <QtCore/QMetaObject> -+#include <QtCore/QVariant> -+#include <QtDBus/QtDBus> -+#include <QtCore/QByteArray> -+#include <QtCore/QList> -+#include <QtCore/QMap> -+#include <QtCore/QString> -+#include <QtCore/QStringList> -+#include <QtCore/QVariant> -+ -+/* -+ * Adaptor class for interface org.genivi.audiomanager.CommandInterface -+ */ -+class AudioManagerCommander: public QDBusAbstractAdaptor -+{ -+ Q_OBJECT -+ Q_CLASSINFO("D-Bus Interface", "org.genivi.audiomanager.CommandInterface") -+ Q_CLASSINFO("D-Bus Introspection", "" -+" <interface name=\"org.genivi.audiomanager.CommandInterface\">\n" -+" <signal name=\"MainConnectionStateChanged\">\n" -+" <arg direction=\"out\" type=\"q\" name=\"connectionID\"/>\n" -+" <arg direction=\"out\" type=\"n\" name=\"connectionState\"/>\n" -+" </signal>\n" -+" <method name=\"Connect\">\n" -+" <arg direction=\"in\" type=\"q\" name=\"sourceID\"/>\n" -+" <arg direction=\"in\" type=\"q\" name=\"sinkID\"/>\n" -+" <arg direction=\"out\" type=\"n\" name=\"result\"/>\n" -+" <!-- method return code (am_Error_e) -->\n" -+" <arg direction=\"out\" type=\"q\" name=\"mainConnectionID\"/>\n" -+" </method>\n" -+" <method name=\"Disconnect\">\n" -+" <arg direction=\"in\" type=\"q\" name=\"mainConnectionID\"/>\n" -+" <arg direction=\"out\" type=\"n\" name=\"result\"/>\n" -+" <!-- method return code (am_Error_e) -->\n" -+" </method>\n" -+" <method name=\"SetVolume\">\n" -+" <arg direction=\"in\" type=\"q\" name=\"sinkID\"/>\n" -+" <arg direction=\"in\" type=\"n\" name=\"volume\"/>\n" -+" <arg direction=\"out\" type=\"n\" name=\"result\"/>\n" -+" <!-- method return code (am_Error_e) -->\n" -+" </method>\n" -+" <method name=\"VolumeStep\">\n" -+" <arg direction=\"in\" type=\"q\" name=\"sinkID\"/>\n" -+" <arg direction=\"in\" type=\"n\" name=\"volumeStep\"/>\n" -+" <arg direction=\"out\" type=\"n\" name=\"result\"/>\n" -+" <!-- method return code (am_Error_e) -->\n" -+" </method>\n" -+" <method name=\"SetSinkMuteState\">\n" -+" <arg direction=\"in\" type=\"q\" name=\"sinkID\"/>\n" -+" <arg direction=\"in\" type=\"n\" name=\"muteState\"/>\n" -+" <arg direction=\"out\" type=\"n\" name=\"result\"/>\n" -+" <!-- method return code (am_Error_e) -->\n" -+" </method>\n" -+" </interface>\n" -+ "") -+public: -+ AudioManagerCommander(QObject *parent); -+ virtual ~AudioManagerCommander(); -+ -+public: // PROPERTIES -+public Q_SLOTS: // METHODS -+ short Connect(ushort sourceID, ushort sinkID, ushort &mainConnectionID); -+ short Disconnect(ushort mainConnectionID); -+ short SetSinkMuteState(ushort sinkID, short muteState); -+ short SetVolume(ushort sinkID, short volume); -+ short VolumeStep(ushort sinkID, short volumeStep); -+Q_SIGNALS: // SIGNALS -+ void MainConnectionStateChanged(ushort connectionID, short connectionState); -+}; ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# + -+#endif -+/* -+ * Implementation of adaptor class AudioManagerCommander -+ */ ++QT += core ++QT += gui ++QT += dbus ++QT += qml ++QT += quick ++QT += widgets + -+AudioManagerCommander::AudioManagerCommander(QObject *parent) -+ : QDBusAbstractAdaptor(parent) -+{ -+ // constructor -+ setAutoRelaySignals(true); -+} ++TARGET = AudioManager_PoC ++CONFIG += console ++CONFIG -= app_bundle ++CONFIG +=qml_debug + -+AudioManagerCommander::~AudioManagerCommander() -+{ -+ // destructor -+} ++TEMPLATE = app + -+short AudioManagerCommander::Connect(ushort sourceID, ushort sinkID, ushort &mainConnectionID) -+{ -+ // handle method call org.genivi.audiomanager.CommandInterface.Connect -+ //return static_cast<YourObjectType *>(parent())->Connect(sourceID, sinkID, mainConnectionID); -+} ++SOURCES += main.cpp \ ++ qmlbuttoneventsreceiver.cpp \ ++ volumechart.cpp \ ++ audiomanager.cpp + -+short AudioManagerCommander::Disconnect(ushort mainConnectionID) -+{ -+ // handle method call org.genivi.audiomanager.CommandInterface.Disconnect -+ short result; -+ QMetaObject::invokeMethod(parent(), "Disconnect", Q_RETURN_ARG(short, result), Q_ARG(ushort, mainConnectionID)); -+ return result; -+} ++RESOURCES = application.qrc \ ++ application.qrc \ ++ application.qrc + -+short AudioManagerCommander::SetSinkMuteState(ushort sinkID, short muteState) -+{ -+ // handle method call org.genivi.audiomanager.CommandInterface.SetSinkMuteState -+ short result; -+ QMetaObject::invokeMethod(parent(), "SetSinkMuteState", Q_RETURN_ARG(short, result), Q_ARG(ushort, sinkID), Q_ARG(short, muteState)); -+ return result; -+} ++qmls.files += main.qml ++INSTALL += qmls + -+short AudioManagerCommander::SetVolume(ushort sinkID, short volume) -+{ -+ // handle method call org.genivi.audiomanager.CommandInterface.SetVolume -+ short result; -+ QMetaObject::invokeMethod(parent(), "SetVolume", Q_RETURN_ARG(short, result), Q_ARG(ushort, sinkID), Q_ARG(short, volume)); -+ return result; -+} ++OTHER_FILES += \ ++ main.qml \ ++ Button.qml \ ++ Slider.qml \ ++ Clock.qml \ ++ Tab.qml \ ++ tabs.js \ ++ AudioManager.qml \ ++ HomePage.qml \ ++ getconnections.sh \ ++ getvolumes_val.sh \ ++ setvolume.sh \ ++ playmusic.sh \ ++ playnav.sh \ ++ playtts.sh \ ++ playtel.sh \ ++ playCarReverse.sh \ ++ stopmusic.sh \ ++ stopnav.sh \ ++ stoptts.sh \ ++ stoptel.sh \ ++ stopCarReverse.sh \ ++ tabs.js \ ++ WindRiver_red_lrg.png \ ++ sound.png \ ++ home.png \ ++ genivi_logo.png \ ++ clock_glass.png \ ++ clock.png \ ++ bg_homepage.png \ ++ bg.png \ ++ stopmusic.sh + -+short AudioManagerCommander::VolumeStep(ushort sinkID, short volumeStep) -+{ -+ // handle method call org.genivi.audiomanager.CommandInterface.VolumeStep -+ short result; -+ QMetaObject::invokeMethod(parent(), "VolumeStep", Q_RETURN_ARG(short, result), Q_ARG(ushort, sinkID), Q_ARG(short, volumeStep)); -+ return result; -+} ++HEADERS += \ ++ qmlbuttoneventsreceiver.h \ ++ volumechart.h \ ++ audiomanager.h + ++target.path = /usr/bin ++INSTALLS += target diff --git a/AudioManagerPoC/Button.qml b/AudioManagerPoC/Button.qml new file mode 100644 -index 0000000..f100207 +index 0000000..392cf5c --- /dev/null +++ b/AudioManagerPoC/Button.qml -@@ -0,0 +1,80 @@ +@@ -0,0 +1,121 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2011-2014, Wind River Systems ++** Copyright (C) 2014, GENIVI Alliance ++** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ++** All rights reserved. ++** Contact: Nokia Corporation (qt-info@nokia.com) ++** ++** This file is part of the examples of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:BSD$ ++** You may use this file under the terms of the BSD license as follows: ++** ++** "Redistribution and use in source and binary forms, with or without ++** modification, are permitted provided that the following conditions are ++** met: ++** * Redistributions of source code must retain the above copyright ++** notice, this list of conditions and the following disclaimer. ++** * Redistributions in binary form must reproduce the above copyright ++** notice, this list of conditions and the following disclaimer in ++** the documentation and/or other materials provided with the ++** distribution. ++** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor ++** the names of its contributors may be used to endorse or promote ++** products derived from this software without specific prior written ++** permission. ++** ++** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ +import QtQuick 2.2 -+//import Effects 1.0 + +Rectangle { + @@ -698,12 +550,14 @@ index 0000000..f100207 +} diff --git a/AudioManagerPoC/Clock.qml b/AudioManagerPoC/Clock.qml new file mode 100644 -index 0000000..84b60a0 +index 0000000..2bbf7d9 --- /dev/null +++ b/AudioManagerPoC/Clock.qml -@@ -0,0 +1,139 @@ +@@ -0,0 +1,141 @@ +/**************************************************************************** +** ++** Copyright (C) 2011-2014, Wind River Systems ++** Copyright (C) 2014, GENIVI Alliance +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) @@ -841,468 +695,110 @@ index 0000000..84b60a0 + } + } +} -diff --git a/AudioManagerPoC/CommandInterface.xml b/AudioManagerPoC/CommandInterface.xml -new file mode 100644 -index 0000000..25bff5d ---- /dev/null -+++ b/AudioManagerPoC/CommandInterface.xml -@@ -0,0 +1,153 @@ -+<?xml version="1.0" encoding="UTF-8" ?> -+<!DOCTYPE node PUBLIC -+ "-//freedesktop//DTD D-Bus Object Introspection 1.0//EN" -+ "http://standards.freedesktop.org/dbus/1.0/introspect.dtd"> -+ -+<node> -+ <interface name="org.genivi.audiomanager.CommandInterface"> -+ <signal name="MainConnectionStateChanged"> -+ <arg type="q" name="connectionID" direction="out"/> -+ <arg type="n" name="connectionState" direction="out"/> -+ </signal> -+ -+ <method name="Connect"> -+ <arg type="q" name="sourceID" direction="in"/> -+ <arg type="q" name="sinkID" direction="in"/> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+ <arg type="q" name="mainConnectionID" direction="out"/> -+ </method> -+ -+ <method name="Disconnect"> -+ <arg type="q" name="mainConnectionID" direction="in"/> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+ </method> -+ -+ <method name="SetVolume"> -+ <arg type="q" name="sinkID" direction="in"/> -+ <arg type="n" name="volume" direction="in"/> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+ </method> -+ -+ <method name="VolumeStep"> -+ <arg type="q" name="sinkID" direction="in"/> -+ <arg type="n" name="volumeStep" direction="in"/> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+ </method> -+ -+ <method name="SetSinkMuteState"> -+ <arg type="q" name="sinkID" direction="in"/> -+ <arg type="n" name="muteState" direction="in"/> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+ </method> -+<!-- -+ <method name="SetMainSinkSoundProperty"> -+ <arg type="q" name="sinkID" direction="in"/> -+ <arg type="(nn)" name="soundProperty" direction="in"/> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+<!-- </method> --> -+ -+<!-- <method name="SetMainSourceSoundProperty"> -+ <arg type="q" name="sourceID" direction="in"/> -+ <arg type="(nn)" name="soundProperty" direction="in"/> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+<!-- </method> --> -+ -+<!-- <method name="SetSystemProperty"> -+ <arg type="(nn)" name="property" direction="in"/> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+<!-- </method>--> -+ -+ <method name="GetListMainConnections"> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+ <arg type="a(qqqnn)" name="listConnections" direction="out"/> <!-- am_mainConnectionID_t mainConnectionID; am_sourceID_t sourceID; am_sinkID_t sinkID; am_timeSync_t delay; am_ConnectionState_e connectionState; --> -+ <annotation name="com.trolltech.QtDBus.QtTypeName.Out1" value="QList<XXX>"/> -+ </method> -+ -+ <method name="GetListMainSinks"> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+ <arg type="a(qs(nn)nnq)" name="listMainSinks" direction="out"/> <!-- am_sinkID_t sinkID; std::string name; am_Availability_s availability; am_mainVolume_t volume; am_MuteState_e muteState; am_sinkClass_t sinkClassID; --> -+ <annotation name="com.trolltech.QtDBus.QtTypeName.Out1" value="QList<QVariant>"/> -+ </method> -+ -+<!-- <method name="GetListMainSources"> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+<!-- <arg type="a(qs(nn)qn)" name="listMainSources" direction="out"/> <!-- am_sourceID_t sourceID; std::string name; am_Availability_s availability; am_sourceClass_t sourceClassID; am_mainVolume_t volume; --> -+<!-- </method> --> -+ -+ <method name="GetListSystemProperties"> -+ <arg type="n" name="result" direction="out"/> <!-- method return code (am_Error_e) --> -+ <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="QList<SystemProperty>"/> -+ <arg type="a(nn)" name="listSystemProperties" direction="in"/> <!-- am_SystemProperty_e type; int16_t value; --> -+ </method> -+ -+ <signal name="NumberOfMainConnectionsChanged"> -+ </signal> -+ -+ <signal name="SinkAdded"> -+ <arg type="(qs(nn)nnq)" name="newSink" direction="out"/><!-- am_sinkID_t sinkID; std::string name; am_Availability_s availability; am_mainVolume_t volume; am_MuteState_e muteState; am_sinkClass_t sinkClassID; --> -+ </signal> -+ -+ <signal name="SinkRemoved"> -+ <arg type="q" name="removedSinkID" direction="out"/> -+ </signal> -+ -+ <signal name="SourceAdded"> -+ <arg type="(qs(nn)q)" name="newSource" direction="out"/><!-- am_sourceID_t sourceID; std::string name; am_Availability_s availability; am_sourceClass_t sourceClassID; --> -+ </signal> -+ -+ <signal name="SourceRemoved"> -+ <arg type="q" name="removedSourceID" direction="out"/> -+ </signal> -+ -+ <signal name="NumberOfSinkClassesChanged"> -+ </signal> -+ -+ <signal name="NumberOfSourceClassesChanged"> -+ </signal> -+ -+ <signal name="MainConnectionStateChanged"> -+ <arg type="q" name="connectionID" direction="out"/> -+ <arg type="n" name="connectionState" direction="out"/> -+ </signal> -+ -+ <signal name="MainSinkSoundPropertyChanged"> -+ <arg type="q" name="sinkID" direction="out"/> -+ <arg type="(nn)" name="SoundProperty" direction="out"/> -+ </signal> -+ -+ <signal name="MainSourceSoundPropertyChanged"> -+ <arg type="q" name="sourceID" direction="out"/> -+ <arg type="(nn)" name="SoundProperty" direction="out"/> -+ </signal> -+ -+ <signal name="SinkAvailabilityChanged"> -+ <arg type="q" name="sinkID" direction="out"/> -+ <arg type="(nn)" name="availability" direction="out"/> -+ </signal> -+ -+ <signal name="SourceAvailabilityChanged"> -+ <arg type="q" name="sourceID" direction="out"/> -+ <arg type="(nn)" name="availability" direction="out"/> -+ </signal> -+ -+ <signal name="VolumeChanged"> -+ <arg type="q" name="sinkID" direction="out"/> -+ <arg type="n" name="volume" direction="out"/> -+ </signal> -+ -+ <signal name="SinkMuteStateChanged"> -+ <arg type="q" name="sinkID" direction="out"/> -+ <arg type="n" name="muteState" direction="out"/> -+ </signal> -+ -+ <signal name="SystemPropertyChanged"> -+ <arg type="(nn)" name="SystemProperty" direction="out"/> -+ </signal> -+ -+ <signal name="TimingInformationChanged"> -+ <arg type="q" name="mainConnection" direction="out"/> -+ <arg type="n" name="time" direction="out"/> -+ </signal> -+ -+ </interface> -+</node> diff --git a/AudioManagerPoC/HomePage.qml b/AudioManagerPoC/HomePage.qml new file mode 100644 -index 0000000..4dfda0e +index 0000000..e0cc91a --- /dev/null +++ b/AudioManagerPoC/HomePage.qml -@@ -0,0 +1,51 @@ -+import QtQuick 2.2 -+ -+Row{ -+ spacing: 200 -+ anchors.verticalCenter: parent.verticalCenter -+ anchors.horizontalCenter: parent.verticalCenter -+ anchors.fill: parent -+ -+ Column { -+ anchors.verticalCenter: parent.verticalCenter -+ anchors.horizontalCenter: parent.verticalCenter -+ Clock { -+ z: 10; -+ x: 100 -+ y: 100 -+ } -+ -+ Image { -+ x: fullScreen.width * 0.1 -+ y: fullScreen.height * 0.8 - 100 -+ id: logo -+ source: "qrc:/qml/WindRiver_red_lrg.png" -+ } -+ } +@@ -0,0 +1,54 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioManager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ */ + -+ Column { -+ anchors.verticalCenter: parent.verticalCenter -+ anchors.horizontalCenter: parent.verticalCenter ++import QtQuick 2.2 + -+ //x: 500 -+ //y: fullScreen.height * 0.2 -+ spacing: 20 ++Row { ++ spacing: 50 ++ anchors.fill: parent + -+ Button { -+ height: 100 -+ text: "Youtube.com" -+ } -+ Button { -+ height: 100 -+ text: "Facebook.com" -+ } -+ Button { -+ height: 100 -+ text: "BBC.co.uk" -+ } -+ Button { -+ height: 100 -+ text: "WindRiver.com" ++ Image { ++ id: logoGENIVI ++ x: 0 ++ y: 100 ++ source: "qrc:/qml/genivi_logo.png" + } -+ } -+} -diff --git a/AudioManagerPoC/Multimedia.qml b/AudioManagerPoC/Multimedia.qml -new file mode 100644 -index 0000000..563307c ---- /dev/null -+++ b/AudioManagerPoC/Multimedia.qml -@@ -0,0 +1,222 @@ -+import QtQuick 2.2 + -+Column { -+ anchors.horizontalCenter: parent.horizontalCenter; -+ anchors.verticalCenter: parent.verticalCenter; -+ spacing: 10 -+ -+ Row { ++ Column { ++ x: 0 ++ y: 100 ++ spacing: 80 ++ ++ Clock { ++ id: myClock ++ z: 10 ++ x: 100 ++ y: 100 ++ } + ++ Image { ++ id: logoWR ++ anchors.horizontalCenter: myClock.horizontalCenter ++ anchors.topMargin: myClock.bottom + -+ Column { -+ ListModel { -+ id: playListModel -+ -+ ListElement { -+ artist: "Johnny cash" -+ album: "American IV: The Man Comes Around(2002)" -+ song: "Personal Jesus" -+ coverURL: "http://images.uulyrics.com/cover/j/johnny-cash/album-american-iv-the-man-comes-around.jpg" -+ mediaURL: "Johnny cash - Personal jesus.mp3" -+ } -+ ListElement { -+ artist: "Morcheeba" -+ album: "Dive Deep(2008)" -+ song: "Enjoy The Ride (Feat. Judy Tzuke)" -+ coverURL: "http://images.uulyrics.com/cover/m/morcheeba/album-dive-deep.jpg" -+ mediaURL: "Johnny cash - Personal jesus.mp3" -+ } -+ ListElement { -+ artist: "Morcheeba" -+ album: "Dive Deep(2008)" -+ song: "1 Enjoy The Ride (Feat. Judy Tzuke)" -+ coverURL: "http://images.uulyrics.com/cover/m/morcheeba/album-dive-deep.jpg" -+ mediaURL: "Johnny cash - Personal jesus.mp3" -+ } -+ ListElement { -+ artist: "Morcheeba" -+ album: "Dive Deep(2008)" -+ song: "2 Enjoy The Ride (Feat. Judy Tzuke)" -+ coverURL: "http://images.uulyrics.com/cover/m/morcheeba/album-dive-deep.jpg" -+ mediaURL: "Johnny cash - Personal jesus.mp3" -+ } -+ ListElement { -+ artist: "Morcheeba" -+ album: "Dive Deep(2008)" -+ song: "3 Enjoy The Ride (Feat. Judy Tzuke)" -+ coverURL: "http://images.uulyrics.com/cover/m/morcheeba/album-dive-deep.jpg" -+ mediaURL: "Johnny cash - Personal jesus.mp3" -+ } -+ ListElement { -+ artist: "Morcheeba" -+ album: "Dive Deep(2008)" -+ song: "4 Enjoy The Ride (Feat. Judy Tzuke)" -+ coverURL: "http://images.uulyrics.com/cover/m/morcheeba/album-dive-deep.jpg" -+ mediaURL: "Johnny cash - Personal jesus.mp3" ++ source: "qrc:/qml/WindRiver_red_lrg.png" + } + } ++} +diff --git a/AudioManagerPoC/README b/AudioManagerPoC/README +new file mode 100644 +index 0000000..2478f1a +--- /dev/null ++++ b/AudioManagerPoC/README +@@ -0,0 +1,25 @@ ++GENIVI_AudioManager_PoC ++=============================================== ++:Author: Adrian Scarlat <adrian.scarlat@windriver.com> ++:doctitle: GENIVI_AudioManager_PoC + -+ Row { -+ id: toolBar -+ spacing: 10 -+ anchors.horizontalCenter: parent.horizontalCenter; -+ anchors.topMargin: 10; -+ Button { -+ text: "<" -+ width: 50 -+ } -+ Button { -+ text: "Play Media" -+ } -+ Button { -+ text: ">" -+ width: 50 -+ } -+ } -+ Rectangle { -+ id: playlist -+ width: 600 -+ height: 300 -+ radius: 5 -+ anchors.top: toolBar.bottom; -+ anchors.topMargin: 10 -+ color: "#55000000" -+ -+ -+ Component { -+ id: playListDelegate -+ Rectangle{ -+ height: 64 -+ width: parent.width -+ color: "#11000000" -+ radius: 5 -+ Row { -+ spacing: 10 -+ Image { -+ id: cover -+ width: 64 -+ height: 64 -+ smooth: true -+ source: coverURL -+ } -+ Column { -+ width: playlist.width - 40 -+ Text { font.pixelSize: 20; font.bold: true; text: artist } -+ Text { font.pixelSize: 14; text: song + " / " + album } -+ // Rectangle { -+ // width: parent.width - 60; -+ // height: 4 -+ // radius: 2 -+ // color: "#22000000" -+ // } -+ } -+ } -+ MouseArea { -+ anchors.fill: parent -+ onClicked: { -+ playListView.currentIndex = index; -+ } -+ } ++SPDX license identifier: MPL-2.0 + -+ } -+ } ++Copyright (C) 2011-2014, Wind River Systems ++Copyright (C) 2014, GENIVI Alliance + -+ ListView { -+ id: playListView -+ spacing: 20 -+ anchors.fill: parent -+ // width: 600 -+ // height: 300 -+ anchors.leftMargin: 20 -+ anchors.rightMargin: 20 -+ anchors.topMargin: 20 -+ anchors.bottomMargin: 20 -+ model: playListModel -+ delegate: playListDelegate -+ highlight: Rectangle { color: "#55000000"; radius: 5 } -+ focus: true -+ clip: true -+ } -+ /* -+ Text { -+ anchors.left: parent.left; -+ anchors.leftMargin: 10 -+ anchors.top: parent.top; -+ anchors.topMargin: 10 -+ -+ //font.bold: true; -+ font.pixelSize: 20 -+ color: "#88000000" -+ text: "\nMorcheeba - Blood Like Lemonade.mp3\nMorcheeba - Enjoy The Ride.mp3\nMorcheeba - Otherwise.mp3" -+ } -+ */ -+ } -+ } -+ Rectangle { -+ width: 400; height: 240 -+ color: "white" -+ -+ ListModel { -+ id: appModel -+ ListElement { name: "Rock";} -+ ListElement { name: "Jazz";} -+ ListElement { name: "Country";} -+ ListElement { name: "Soul";} -+ ListElement { name: "Hip Hop"; } -+ } ++This file is part of AudioManager Pulse Audio Interface Routing Plugin. + -+ Component { -+ id: appDelegate -+ Rectangle { -+ color: Qt.rgba(1 - PathView.iconScale, 1 - PathView.iconScale, 1 - PathView.iconScale, PathView.iconScale) -+ radius: 5 -+ width: 100; height: 50 -+ scale: PathView.iconScale -+ smooth: true -+ Text { -+ anchors { -+ verticalCenter: parent.verticalCenter -+ horizontalCenter: parent.horizontalCenter } -+ text: name -+ smooth: true -+ color: "#FFFFFF" -+ font.bold: true; -+ font.pointSize: 14 -+ } -+ -+ MouseArea { -+ anchors.fill: parent -+ onClicked: view.currentIndex = index -+ } -+ } -+ } ++This Source Code Form is subject to the terms of the Mozilla Public ++License (MPL), 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/. + -+ //Component { -+ // id: appHighlight -+ // Rectangle { z: 100; width: 80; height: 40; color: "#00000000"; border.color: "lightsteelblue" } -+ //} -+ -+ PathView { -+ id: view -+ anchors.fill: parent -+ highlight: appHighlight -+ preferredHighlightBegin: 0.5 -+ preferredHighlightEnd: 0.5 -+ focus: true -+ model: appModel -+ delegate: appDelegate -+ path: Path { -+ startX: 10 -+ startY: 50 -+ PathAttribute { name: "iconScale"; value: 0.2 } -+ PathLine { x: 200; y: 150;}// controlX: 50; controlY: 200 } -+ PathAttribute { name: "iconScale"; value: 1.0 } -+ PathLine { x: 390; y: 50;}// controlX: 350; controlY: 200 } -+ PathAttribute { name: "iconScale"; value: 0.2 } -+ } -+ } -+ } ++For further information see http://www.genivi.org/. + -+ } ++The AudioManager Proof of Concept (AM PoC) is an applicaiton that uses the ++GENIVI AudioManager capabilities to demonstrate how audio sources are managed ++based on mixing rules that are defined in the configuration file for ++AM Control Plugin "libPluginControlInterface.conf". + -+} -diff --git a/AudioManagerPoC/README b/AudioManagerPoC/README -new file mode 100644 -index 0000000..6696378 ---- /dev/null -+++ b/AudioManagerPoC/README -@@ -0,0 +1,2 @@ -+License file -+TODO: fill in: ++For a details description please consult the "libPluginControlInterface.conf", ++"libPluginRoutingInterfacePulse.conf" and AudioManager documentation. diff --git a/AudioManagerPoC/Slider.qml b/AudioManagerPoC/Slider.qml new file mode 100644 -index 0000000..31d9e1b +index 0000000..1657d89 --- /dev/null +++ b/AudioManagerPoC/Slider.qml -@@ -0,0 +1,122 @@ +@@ -0,0 +1,125 @@ +/**************************************************************************** +** -+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -+** Contact: http://www.qt-project.org/ ++** Copyright (C) 2011-2014, Wind River Systems ++** Copyright (C) 2014, GENIVI Alliance ++** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ++** All rights reserved. ++** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** @@ -1334,10 +830,10 @@ index 0000000..31d9e1b +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -+** +** $QT_END_LICENSE$ +** +****************************************************************************/ ++ +import QtQuick 2.2 + +Item { @@ -1360,7 +856,7 @@ index 0000000..31d9e1b + GradientStop { position: 1.0; color: "#66555555" } + } + Text { -+ id: "channel" ++ id: channel + objectName: "channel" + anchors.verticalCenter: parent.verticalCenter; + anchors.horizontalCenter: parent.horizontalCenter; @@ -1423,10 +919,30 @@ index 0000000..31d9e1b +} diff --git a/AudioManagerPoC/Tab.qml b/AudioManagerPoC/Tab.qml new file mode 100644 -index 0000000..4ec2b55 +index 0000000..8116029 --- /dev/null +++ b/AudioManagerPoC/Tab.qml -@@ -0,0 +1,115 @@ +@@ -0,0 +1,135 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioManager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ */ ++ +import QtQuick 2.2 + +Rectangle { @@ -1542,1109 +1058,6 @@ index 0000000..4ec2b55 + } + } +} -diff --git a/AudioManagerPoC/WebBrowser.qml b/AudioManagerPoC/WebBrowser.qml -new file mode 100644 -index 0000000..3bc1dd7 ---- /dev/null -+++ b/AudioManagerPoC/WebBrowser.qml -@@ -0,0 +1,67 @@ -+import QtQuick 2.2 -+import QtWebKit 3.0 -+ -+Column { -+ y: 10 -+ x: fullScreen.width * 0.06 -+ -+ Row { -+ id: background -+ width: fullScreen.width * 0.8 -+ height: fullScreen.height * 0.08 -+ Button { -+ id: addr -+ text: "Enter address" -+ } -+ -+ Rectangle { -+ anchors.left: addr.right -+ anchors.leftMargin: 5 -+ width: background.width - addr.width - 5 -+ height: fullScreen.height * 0.08 -+ color: "#FFFFFF" -+ border.width: 2 -+ border.color: "#000000" -+ TextInput { -+ anchors.verticalCenter: parent.verticalCenter -+ x: 10 -+ text: "http://jplayer.org" -+ cursorVisible: false -+ color: "#000000" -+ } -+ } -+ } -+ -+ Rectangle { -+ anchors.top: background.bottom -+ anchors.topMargin: 10 -+ border.width: 2 -+ border.color: "#000000" -+ Flickable { -+ id: flickable -+ z:200 -+ width: fullScreen.width * 0.8 -+ height: fullScreen.height * 0.67 -+ contentWidth: Math.max(parent.width,webView.width) -+ contentHeight: Math.max(parent.height,webView.height) -+ -+ clip: true; -+ pressDelay: 200 -+ -+ -+ WebView { -+ id: webView -+ transformOrigin: Item.TopLeft -+ settings.pluginsEnabled: true -+ settings.javaEnabled: true -+ settings.javascriptEnabled: true -+ settings.javascriptCanOpenWindows: true -+ url: "http://jplayer.org" -+ preferredWidth: flickable.width -+ preferredHeight: flickable.height -+ contentsScale: 1 -+ } -+ } -+ } -+} -+ -diff --git a/AudioManagerPoC/WindRiver_Rev_lrg.png b/AudioManagerPoC/WindRiver_Rev_lrg.png -new file mode 100644 -index 0000000000000000000000000000000000000000..7053382451f2f60e22b039d93a54eb034b2e8342 -GIT binary patch -literal 66998 -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 -zb%3{c_RLn^t>T@oqn;	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ÐY=(o -zm;-z!>q^1RCT8|#Uh<~dR%O2a$up{A0bxs}*cZIejZ^TQ(Q4{%YBU#=$MSBIm#re~ -zYlKkIE*VPI%D3RZTQt?fr`{&ewurYn54I&Wx%eFomv7xojBr@kG332zQu1tJZrVn~ -z!0>OI4Tf!8wg*~;<cYS4ax;}sTNgQ9F`K0Ealu}V_z{ZbEu`7}oe4yRLl<TK736%Z -z?u(%}1GbfVgzY5{q0Fa4VP(p>uTKohO<%}49JU@B<#JHz$k`%T<#6N0`$nUkBf?AT -zvtH|DVRg-K3ss2p?pAT`H`h=yF1$^;LQ>8x5Ig@i=0^!Vi8m8*SDLNFLvWSnbE`S% -zd!r34S6_MDLkyS;$JjG!R;8y-@aZYcnFn;&SDA~KYGJtdqFeHUM=~=X^aOFjaUy%2 -z4~-cU_YNcdva_$(JEeuyzDN*?m$P+E)wabsUzK9>s<ob5BKqPgMT}}3h{vpU@~i?? -z9cq;auNM{GcNnc}ejMW;W8S6!U9jpSl%AT?Lt2_Vj+eG5wcrp(jTAg$tTW3x;_{&W -z6?jw5xu(gC@2<(7cCku!t4rU2zbPT7EVm_jKhxMj7SidSuyi8u`Gn$S{;Bq`F8@6? -zLrdarTa``oEmyQ-o15}kRpIuIF&|LwgKg3yU8(Z0x%TU>#O%l)o1a3$m<2`C67Tl9 -z+V)gQ3&#!yBX&IK5mh+1kdN#qN!YJk*!t7ntfCQhdH*iq8wn93gj@){=;x9^SK@oq -zYpk+5vc&Ppp1}p%Z||1M`MkOqFU4MoEUi{EWS&%isDH%E`u&B%$qm)+dUTZ>bqg(c -z<c1OU**M8SSe&J}ZFi~74;5;--)~2YOc;jLPQ|nbDK;U_1r$6|(SNx?br4-3EnM)+ -z*h>1tJx;QH4lC<}6pt>7Md}tfO2~LFZiZImTPl5<=Co%P26>kB+fCBw2h#3K9~4ql -zVpTUw#8MKzXPq8KO$y$(`Jy04IXi(tD%p3)9#535zT40gX{h{u{MZrGn57Tj1(`0+ -zOES*$2d4<Rq(;ZIl2F%HXc>3>N%{r1$x=}_+xklv*9S{4OHTV;zTvR&c&MKw$3~qO -z3a-uczu%DpGp|0d!oiPiGs=77gLJ65)gSm!<q6ajSB4%XcAvrHX`?Or+ym-EPhY;! -zewR@zI_H28WsjEpoO*KW^Y5G#P$Ig<88^$#a$<>x9llA|*vUOx=IN~y0e$y7J(6#- -zQtW_}R8-K)Vc?LO>uv=x5ZWW97W=f}Pp10D@QIE}`od<dV&}Y=_h`P6yqc+mHsPt_ -zNncdxUImnu3Fa00Cu!k<31m}I%=3cA5HWWzAs1__MSF_0R6t^F`nhKdqQBlLh{{2` -z9U;lVJ9|YI5h2}k&}q9V9eh;5TSQcBVuD?b#d-~X3XI}H@0r0yNJ-+Y%M8rI%J8q# -zdc8VrUJ8D6v}+j;tP`X8mf_Q|YPTAGb>77)_h(i;*$1-Ce_dLv9Wt(|3eXqANE2lt -z+7fkD7AcP!6N;nN<^pwg6pgswwd*lz5tk0G-@D`e@ng|?IV6dyn|TdMYOkQSa1XJ$ -ze)$(3QOpw((d&x)cgR`eQg>EDm#tK$;=27qE69;gNHW%!jAx8muB*wDU}@+!$`7r` -zQDmOysQdPw23KuOMT9Xa(KDQ?vOQueuQYja98Qomi5!laA@Vc4i7vTj>wJ{Pii|Uh -zy<YIjcBKoiHe4-aovXAPdM{lW5na$*9n;=c>?5V|1V09whS`qjIho|+Hfn56CcQ92 -aPZ-<KwisU{6=tk$6SY2IYmsM03ja3=pa<aq - -literal 0 -HcmV?d00001 - diff --git a/AudioManagerPoC/WindRiver_red_lrg.png b/AudioManagerPoC/WindRiver_red_lrg.png new file mode 100644 index 0000000000000000000000000000000000000000..12e64cc12030a75ba18001d7807943b9a7a5865c @@ -3707,10 +2120,10 @@ HcmV?d00001 diff --git a/AudioManagerPoC/application.qrc b/AudioManagerPoC/application.qrc new file mode 100644 -index 0000000..71c3395 +index 0000000..1519dec --- /dev/null +++ b/AudioManagerPoC/application.qrc -@@ -0,0 +1,23 @@ +@@ -0,0 +1,20 @@ +<RCC> + <qresource prefix="/qml"> + <file>main.qml</file> @@ -3722,25 +2135,44 @@ index 0000000..71c3395 + <file>bg.png</file> + <file>Tab.qml</file> + <file>tabs.js</file> -+ <file>browser.png</file> -+ <file>media_player.png</file> + <file>sound.png</file> -+ <file>WebBrowser.qml</file> -+ <file>Multimedia.qml</file> + <file>AudioManager.qml</file> + <file>HomePage.qml</file> + <file>home.png</file> + <file>bg_homepage.png</file> + <file>WindRiver_red_lrg.png</file> ++ <file>genivi_logo.png</file> + </qresource> +</RCC> diff --git a/AudioManagerPoC/audiomanager.cpp b/AudioManagerPoC/audiomanager.cpp new file mode 100644 -index 0000000..64e5dda +index 0000000..69ab1a5 --- /dev/null +++ b/AudioManagerPoC/audiomanager.cpp -@@ -0,0 +1,264 @@ +@@ -0,0 +1,290 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioNanager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ */ ++ +#include <QtDBus> ++#include <QDBusVariant> ++#include <QVariant> + +#include "audiomanager.h" + @@ -3749,8 +2181,8 @@ index 0000000..64e5dda +audiomanager::audiomanager(QObject *parent) : + QDBusAbstractInterface( + QString("org.genivi.audiomanager"), -+ QString("/org/genivi/audiomanager/CommandInterface"), -+ "org.genivi.audiomanager.CommandInterface", ++ QString("/org/genivi/audiomanager/commandinterface"), ++ "org.genivi.audiomanager.commandinterface", + QDBusConnection::sessionBus(), + parent) +{ @@ -3763,20 +2195,7 @@ index 0000000..64e5dda + qDBusRegisterMetaType<QList<Availability> >(); + qDBusRegisterMetaType<QList<Sink> >(); + qDBusRegisterMetaType<QList<Source> >(); -+/* -+ connect(this, -+ SIGNAL(MainConnectionStateChanged(ushort, short)), -+ this,SLOT(slotMainConnectionStateChanged(ushort, short))); -+*/ -+/* -+ bool res = connect(this, SIGNAL(MainConnectionStateChanged(QDBusVariant, QDBusVariant)), -+ this, SLOT(slotMainConnectionStateChanged(QDBusVariant, QDBusVariant))); -+ -+ res = connect(this, SIGNAL(NumberOfMainConnectionsChanged()), -+ this, SLOT(slotNumberOfMainConnectionsChanged())); -+ -+ //qDebug() << "Connect res:" << res; -+*/ ++ + this->connection().connect( + "", + "", @@ -3793,10 +2212,10 @@ index 0000000..64e5dda + this, + SLOT(slotNumberOfMainConnectionsChanged())); + -+ -+ //this->GetListMconnect() + GetListMainSources(); + GetListMainSinks(); ++ GetListMainConnections(); ++ +} + +void audiomanager::serviceOwnerChanged(const QString &name, @@ -3810,20 +2229,27 @@ index 0000000..64e5dda + +void audiomanager::Connect(const QString sourceName, const QString sinkName) +{ ++ qDebug() <<"Connect got called: " << sourceName << " " << sinkName; + QDBusMessage result = this->call( + "Connect", + QVariant::fromValue((ushort) sourceName2SourceID[sourceName]), + QVariant::fromValue((ushort) sinkName2SinkID[sinkName])); + QVariant resultCode = result.arguments().at(0); + QVariant mainConnectionID = result.arguments().at(1); ++ qDebug() <<"Connection ID: " << mainConnectionID.toInt(); + -+ mainConnectionID2SourceName[mainConnectionID.toUInt()] = sourceName; -+ sourceName2mainConnectionID[sourceName] = mainConnectionID.toUInt(); ++ if (mainConnectionID.toUInt() != 0) // connection doesn't exist ++ { ++ mainConnectionID2SourceName[mainConnectionID.toUInt()] = sourceName; ++ sourceName2mainConnectionID[sourceName] = mainConnectionID.toUInt(); ++ } +} + + +void audiomanager::Disconnect(const QString sourceName, const QString sinkName) +{ ++ qDebug() <<"Disconnect got called: " << sourceName << " " << sinkName; ++ qDebug() <<"Disconnect got called Cond ID: " << sourceName2mainConnectionID[sourceName]; + QDBusMessage result = this->call( + "Disconnect", + QVariant::fromValue((ushort) sourceName2mainConnectionID[sourceName])); @@ -3841,8 +2267,6 @@ index 0000000..64e5dda + QList<Source> sources = qdbus_cast<QList<Source> >(result.arguments().at(1)); + for (int i = 0; i < sources.size(); i++) + { -+ qDebug() << "name=" << sources[i].name -+ << ": sourceID=" << sources[i].sourceID; + + sourceName2SourceID[sources[i].name] = sources[i].sourceID; + } @@ -3860,8 +2284,6 @@ index 0000000..64e5dda + QList<Sink> sinks = qdbus_cast<QList<Sink> >(result.arguments().at(1)); + for (int i = 0; i < sinks.size(); i++) + { -+ qDebug() << "name=" << sinks[i].name -+ << ": sinkID=" << sinks[i].sinkID; + + sinkName2SinkID[sinks[i].name] = sinks[i].sinkID; + } @@ -3871,6 +2293,20 @@ index 0000000..64e5dda + +QList<MainConnection> audiomanager::GetListMainConnections() +{ ++ QDBusMessage result = this->call("GetListMainConnections"); ++ ++ if (result.errorMessage() != "") ++ { ++ return QList<MainConnection>(); ++ } ++ ++ QList<MainConnection> connections = qdbus_cast<QList<MainConnection> >(result.arguments().at(1)); ++ for (int i = 0; i < connections.size(); i++) ++ { ++ mainConnectionID2SourceName[connections[i].mainConnectionID] = connections[i].mainConnectionID; ++ } ++ ++ return connections; +} + + @@ -4006,10 +2442,30 @@ index 0000000..64e5dda +} diff --git a/AudioManagerPoC/audiomanager.h b/AudioManagerPoC/audiomanager.h new file mode 100644 -index 0000000..18ac3e0 +index 0000000..210a4fa --- /dev/null +++ b/AudioManagerPoC/audiomanager.h -@@ -0,0 +1,105 @@ +@@ -0,0 +1,126 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioNanager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ */ ++ +#ifndef AUDIOMANAGER_H +#define AUDIOMANAGER_H + @@ -4017,6 +2473,7 @@ index 0000000..18ac3e0 + +#include <QDBusArgument> +#include <QDBusAbstractInterface> ++#include <QDBusVariant> + +typedef struct +{ @@ -4115,460 +2572,6 @@ index 0000000..18ac3e0 +}; + +#endif // AUDIOMANAGER_H -diff --git a/AudioManagerPoC/audiomanager_command.h b/AudioManagerPoC/audiomanager_command.h -new file mode 100644 -index 0000000..7ea67bd ---- /dev/null -+++ b/AudioManagerPoC/audiomanager_command.h -@@ -0,0 +1,448 @@ -+ -+/* -+ * This file was automatically generated by dbusxx-xml2cpp; DO NOT EDIT! -+ */ -+ -+#ifndef __dbusxx__audiomanager_command_h__PROXY_MARSHAL_H -+#define __dbusxx__audiomanager_command_h__PROXY_MARSHAL_H -+ -+#include <dbus-c++/dbus.h> -+#include <cassert> -+ -+namespace org { -+namespace genivi { -+namespace audiomanager { -+ -+class CommandInterface_proxy -+: public ::DBus::InterfaceProxy -+{ -+public: -+ -+ CommandInterface_proxy() -+ : ::DBus::InterfaceProxy("org.genivi.audiomanager.CommandInterface") -+ { -+ connect_signal(CommandInterface_proxy, NumberOfMainConnectionsChanged, _NumberOfMainConnectionsChanged_stub); -+ connect_signal(CommandInterface_proxy, SinkAdded, _SinkAdded_stub); -+ connect_signal(CommandInterface_proxy, SinkRemoved, _SinkRemoved_stub); -+ connect_signal(CommandInterface_proxy, SourceAdded, _SourceAdded_stub); -+ connect_signal(CommandInterface_proxy, SourceRemoved, _SourceRemoved_stub); -+ connect_signal(CommandInterface_proxy, NumberOfSinkClassesChanged, _NumberOfSinkClassesChanged_stub); -+ connect_signal(CommandInterface_proxy, NumberOfSourceClassesChanged, _NumberOfSourceClassesChanged_stub); -+ connect_signal(CommandInterface_proxy, MainConnectionStateChanged, _MainConnectionStateChanged_stub); -+ connect_signal(CommandInterface_proxy, MainSinkSoundPropertyChanged, _MainSinkSoundPropertyChanged_stub); -+ connect_signal(CommandInterface_proxy, MainSourceSoundPropertyChanged, _MainSourceSoundPropertyChanged_stub); -+ connect_signal(CommandInterface_proxy, SinkAvailabilityChanged, _SinkAvailabilityChanged_stub); -+ connect_signal(CommandInterface_proxy, SourceAvailabilityChanged, _SourceAvailabilityChanged_stub); -+ connect_signal(CommandInterface_proxy, VolumeChanged, _VolumeChanged_stub); -+ connect_signal(CommandInterface_proxy, SinkMuteStateChanged, _SinkMuteStateChanged_stub); -+ connect_signal(CommandInterface_proxy, SystemPropertyChanged, _SystemPropertyChanged_stub); -+ connect_signal(CommandInterface_proxy, TimingInformationChanged, _TimingInformationChanged_stub); -+ } -+ -+public: -+ -+ /* properties exported by this interface */ -+public: -+ -+ /* methods exported by this interface, -+ * this functions will invoke the corresponding methods on the remote objects -+ */ -+ void Connect(const uint16_t& sourceID, const uint16_t& sinkID, int16_t& result, uint16_t& mainConnectionID) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << sourceID; -+ wi << sinkID; -+ call.member("Connect"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ ri >> result; -+ ri >> mainConnectionID; -+ } -+ -+ int16_t Disconnect(const uint16_t& mainConnectionID) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << mainConnectionID; -+ call.member("Disconnect"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ int16_t argout; -+ ri >> argout; -+ return argout; -+ } -+ -+ int16_t SetVolume(const uint16_t& sinkID, const int16_t& volume) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << sinkID; -+ wi << volume; -+ call.member("SetVolume"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ int16_t argout; -+ ri >> argout; -+ return argout; -+ } -+ -+ int16_t VolumeStep(const uint16_t& sinkID, const int16_t& volumeStep) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << sinkID; -+ wi << volumeStep; -+ call.member("VolumeStep"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ int16_t argout; -+ ri >> argout; -+ return argout; -+ } -+ -+ int16_t SetSinkMuteState(const uint16_t& sinkID, const int16_t& muteState) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << sinkID; -+ wi << muteState; -+ call.member("SetSinkMuteState"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ int16_t argout; -+ ri >> argout; -+ return argout; -+ } -+ -+ int16_t SetMainSinkSoundProperty(const uint16_t& sinkID, const ::DBus::Struct< int16_t, int16_t >& soundProperty) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << sinkID; -+ wi << soundProperty; -+ call.member("SetMainSinkSoundProperty"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ int16_t argout; -+ ri >> argout; -+ return argout; -+ } -+ -+ int16_t SetMainSourceSoundProperty(const uint16_t& sourceID, const ::DBus::Struct< int16_t, int16_t >& soundProperty) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << sourceID; -+ wi << soundProperty; -+ call.member("SetMainSourceSoundProperty"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ int16_t argout; -+ ri >> argout; -+ return argout; -+ } -+ -+ int16_t SetSystemProperty(const ::DBus::Struct< int16_t, int16_t >& property) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << property; -+ call.member("SetSystemProperty"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ int16_t argout; -+ ri >> argout; -+ return argout; -+ } -+ -+ void GetListMainConnections(int16_t& result, std::vector< ::DBus::Struct< uint16_t, uint16_t, uint16_t, int16_t, int16_t > >& listConnections) -+ { -+ ::DBus::CallMessage call; -+ call.member("GetListMainConnections"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ ri >> result; -+ ri >> listConnections; -+ } -+ -+ void GetListMainSinks(int16_t& result, std::vector< ::DBus::Struct< uint16_t, std::string, ::DBus::Struct< int16_t, int16_t >int16_t, int16_t, uint16_t > >& listMainSinks) -+ { -+ ::DBus::CallMessage call; -+ call.member("GetListMainSinks"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ ri >> result; -+ ri >> listMainSinks; -+ } -+ -+ void GetListMainSources(int16_t& result, std::vector< ::DBus::Struct< uint16_t, std::string, ::DBus::Struct< int16_t, int16_t >uint16_t, int16_t > >& listMainSources) -+ { -+ ::DBus::CallMessage call; -+ call.member("GetListMainSources"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ ri >> result; -+ ri >> listMainSources; -+ } -+ -+ void GetListMainSinkSoundProperties(const uint16_t& sinkID, int16_t& result, std::vector< ::DBus::Struct< int16_t, int16_t > >& listSoundProperties) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << sinkID; -+ call.member("GetListMainSinkSoundProperties"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ ri >> result; -+ ri >> listSoundProperties; -+ } -+ -+ void GetListMainSourceSoundProperties(const uint16_t& sourceID, int16_t& result, std::vector< ::DBus::Struct< int16_t, int16_t > >& listSourceProperties) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << sourceID; -+ call.member("GetListMainSourceSoundProperties"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ ri >> result; -+ ri >> listSourceProperties; -+ } -+ -+ void GetListSourceClasses(int16_t& result, std::vector< ::DBus::Struct< uint16_t, std::string, std::vector< ::DBus::Struct< int16_t, int16_t > > > >& listSourceClasses) -+ { -+ ::DBus::CallMessage call; -+ call.member("GetListSourceClasses"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ ri >> result; -+ ri >> listSourceClasses; -+ } -+ -+ void GetListSinkClasses(int16_t& result, std::vector< ::DBus::Struct< uint16_t, std::string, std::vector< ::DBus::Struct< int16_t, int16_t > > > >& listSinkClasses) -+ { -+ ::DBus::CallMessage call; -+ call.member("GetListSinkClasses"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ ri >> result; -+ ri >> listSinkClasses; -+ } -+ -+ int16_t GetListSystemProperties(const std::vector< ::DBus::Struct< int16_t, int16_t > >& listSystemProperties) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << listSystemProperties; -+ call.member("GetListSystemProperties"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ int16_t argout; -+ ri >> argout; -+ return argout; -+ } -+ -+ void GetTimingInformation(const uint16_t& mainConnectionID, int16_t& result, int16_t& delay) -+ { -+ ::DBus::CallMessage call; -+ ::DBus::MessageIter wi = call.writer(); -+ -+ wi << mainConnectionID; -+ call.member("GetTimingInformation"); -+ ::DBus::Message ret = invoke_method (call); -+ ::DBus::MessageIter ri = ret.reader(); -+ -+ ri >> result; -+ ri >> delay; -+ } -+ -+ -+public: -+ -+ /* signal handlers for this interface -+ */ -+ virtual void NumberOfMainConnectionsChanged() = 0; -+ virtual void SinkAdded(const ::DBus::Struct< uint16_t, std::string, ::DBus::Struct< int16_t, int16_t >int16_t, int16_t, uint16_t >& newSink) = 0; -+ virtual void SinkRemoved(const uint16_t& removedSinkID) = 0; -+ virtual void SourceAdded(const ::DBus::Struct< uint16_t, std::string, ::DBus::Struct< int16_t, int16_t >uint16_t >& newSource) = 0; -+ virtual void SourceRemoved(const uint16_t& removedSourceID) = 0; -+ virtual void NumberOfSinkClassesChanged() = 0; -+ virtual void NumberOfSourceClassesChanged() = 0; -+ virtual void MainConnectionStateChanged(const uint16_t& connectionID, const int16_t& connectionState) = 0; -+ virtual void MainSinkSoundPropertyChanged(const uint16_t& sinkID, const ::DBus::Struct< int16_t, int16_t >& SoundProperty) = 0; -+ virtual void MainSourceSoundPropertyChanged(const uint16_t& sourceID, const ::DBus::Struct< int16_t, int16_t >& SoundProperty) = 0; -+ virtual void SinkAvailabilityChanged(const uint16_t& sinkID, const ::DBus::Struct< int16_t, int16_t >& availability) = 0; -+ virtual void SourceAvailabilityChanged(const uint16_t& sourceID, const ::DBus::Struct< int16_t, int16_t >& availability) = 0; -+ virtual void VolumeChanged(const uint16_t& sinkID, const int16_t& volume) = 0; -+ virtual void SinkMuteStateChanged(const uint16_t& sinkID, const int16_t& muteState) = 0; -+ virtual void SystemPropertyChanged(const ::DBus::Struct< int16_t, int16_t >& SystemProperty) = 0; -+ virtual void TimingInformationChanged(const uint16_t& mainConnection, const int16_t& time) = 0; -+ -+private: -+ -+ /* unmarshalers (to unpack the DBus message before calling the actual signal handler) -+ */ -+ void _NumberOfMainConnectionsChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ NumberOfMainConnectionsChanged(); -+ } -+ void _SinkAdded_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ ::DBus::Struct< uint16_t, std::string, ::DBus::Struct< int16_t, int16_t >int16_t, int16_t, uint16_t > newSink; -+ ri >> newSink; -+ SinkAdded(newSink); -+ } -+ void _SinkRemoved_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ uint16_t removedSinkID; -+ ri >> removedSinkID; -+ SinkRemoved(removedSinkID); -+ } -+ void _SourceAdded_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ ::DBus::Struct< uint16_t, std::string, ::DBus::Struct< int16_t, int16_t >uint16_t > newSource; -+ ri >> newSource; -+ SourceAdded(newSource); -+ } -+ void _SourceRemoved_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ uint16_t removedSourceID; -+ ri >> removedSourceID; -+ SourceRemoved(removedSourceID); -+ } -+ void _NumberOfSinkClassesChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ NumberOfSinkClassesChanged(); -+ } -+ void _NumberOfSourceClassesChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ NumberOfSourceClassesChanged(); -+ } -+ void _MainConnectionStateChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ uint16_t connectionID; -+ ri >> connectionID; -+ int16_t connectionState; -+ ri >> connectionState; -+ MainConnectionStateChanged(connectionID, connectionState); -+ } -+ void _MainSinkSoundPropertyChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ uint16_t sinkID; -+ ri >> sinkID; -+ ::DBus::Struct< int16_t, int16_t > SoundProperty; -+ ri >> SoundProperty; -+ MainSinkSoundPropertyChanged(sinkID, SoundProperty); -+ } -+ void _MainSourceSoundPropertyChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ uint16_t sourceID; -+ ri >> sourceID; -+ ::DBus::Struct< int16_t, int16_t > SoundProperty; -+ ri >> SoundProperty; -+ MainSourceSoundPropertyChanged(sourceID, SoundProperty); -+ } -+ void _SinkAvailabilityChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ uint16_t sinkID; -+ ri >> sinkID; -+ ::DBus::Struct< int16_t, int16_t > availability; -+ ri >> availability; -+ SinkAvailabilityChanged(sinkID, availability); -+ } -+ void _SourceAvailabilityChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ uint16_t sourceID; -+ ri >> sourceID; -+ ::DBus::Struct< int16_t, int16_t > availability; -+ ri >> availability; -+ SourceAvailabilityChanged(sourceID, availability); -+ } -+ void _VolumeChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ uint16_t sinkID; -+ ri >> sinkID; -+ int16_t volume; -+ ri >> volume; -+ VolumeChanged(sinkID, volume); -+ } -+ void _SinkMuteStateChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ uint16_t sinkID; -+ ri >> sinkID; -+ int16_t muteState; -+ ri >> muteState; -+ SinkMuteStateChanged(sinkID, muteState); -+ } -+ void _SystemPropertyChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ ::DBus::Struct< int16_t, int16_t > SystemProperty; -+ ri >> SystemProperty; -+ SystemPropertyChanged(SystemProperty); -+ } -+ void _TimingInformationChanged_stub(const ::DBus::SignalMessage &sig) -+ { -+ ::DBus::MessageIter ri = sig.reader(); -+ -+ uint16_t mainConnection; -+ ri >> mainConnection; -+ int16_t time; -+ ri >> time; -+ TimingInformationChanged(mainConnection, time); -+ } -+}; -+ -+} } } -+#endif //__dbusxx__audiomanager_command_h__PROXY_MARSHAL_H diff --git a/AudioManagerPoC/bg.png b/AudioManagerPoC/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..8cd0ed04c38b5dc691e099baaa0bc224e359a070 @@ -6709,31 +4712,6 @@ upFhx|r=X$HA<)8UU|`_DGLcmR2pFcM@$QP>ST`4_lfl!~&t;ucLK6VpJUd?i literal 0 HcmV?d00001 -diff --git a/AudioManagerPoC/browser.png b/AudioManagerPoC/browser.png -new file mode 100644 -index 0000000000000000000000000000000000000000..dfec0dea938ee74a2049b8dce673fc285daff440 -GIT binary patch -literal 800 -zcmV+*1K<3KP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00001b5ch_0Itp) -z=>Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyY> -z5)V4)-L4S;000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0007eNkl<Z -zXx{Cb%}N|W5XXP(lALl#4w91r4+%MV4J;8+k70d-2+2FdXUGG1^8vgVkPt6|2V)>% -zL2u$E-hxO%zz@j94LZ5hKvPyvPj<ex2MZd8sejkUbahvC_rM(i&;|Oy25<rlfkd^T -z@HPb79S6hTic!gk?L=hMPVa&10*32$Eix;oz9&4&YD3Xc3GGy9xNbXT8vXz{%c1lq -zum!vWdWM{y@U{dSl6NM$3(;gCWUhb@!1M^Rr={;zAfzUXeEBTnH%lDl&43dljf5|3 -zegpFc{yDG$d<2dS{;}{@1gmLYWc$LYlnHxeU|#{-23C{iZ%bcIM@1)g-y`7Az^-Qu -zeaL~dtsB@w4>s2lYsLMk2b+}OK;n^o>X{G03~Ob{nFbt~@nrkVjBRyTbNEv=IN<77 -z^L$WmVWz>C3iGK32egh$18)|9R#my`@LwCss&F6?T`8@4s@PlgyawGU%t4I~9H@6U -zMxSnI>2#CPT!ykL97sf`n*_}zbwU7d4255u=cNYr97`TsaBWT<cxeE3RV7(B^*pv< -z*=!}Rr=H>Wg+-Ban*Y>wE2)LzGRv?kzI^Iv(8i9#)YKWXlMmCziP+C`@;WdMA!Jg= -znZ)-pLMX}c{ui(hd<MP(1H-UcU;%gmJT9OM;4g4LtBhE7z<UiOvOVYBvag&-L+G2K -zaM5`lG!Whck1bd>M_Wp?rkIPqoNmR2Ci*R9D>n7fAFH(DU@Q8g#a0~dw&HjlBDmn_ -z<Q$0~z@q?8m($;Y3*kKko@JEN7M%l6fInpobF`OydWntpnpJ1)C@;FL0x-&74XnfA -eD1Y{7oc;m6F@EGi_1ppg0000<MNUMnLSTXga8gVF - -literal 0 -HcmV?d00001 - diff --git a/AudioManagerPoC/clock.png b/AudioManagerPoC/clock.png new file mode 100644 index 0000000000000000000000000000000000000000..fdb660a3e8f77eb167b3676e4022fff8e0ea3482 @@ -7219,1035 +5197,1230 @@ G`~L%AO)!xF literal 0 HcmV?d00001 -diff --git a/AudioManagerPoC/falcon.config b/AudioManagerPoC/falcon.config -new file mode 100644 -index 0000000..e0284f4 ---- /dev/null -+++ b/AudioManagerPoC/falcon.config -@@ -0,0 +1,2 @@ -+// Add predefined macros for your project here. For example: -+// #define THE_ANSWER 42 -diff --git a/AudioManagerPoC/falcon.creator b/AudioManagerPoC/falcon.creator -new file mode 100644 -index 0000000..e94cbbd ---- /dev/null -+++ b/AudioManagerPoC/falcon.creator -@@ -0,0 +1 @@ -+[General] -diff --git a/AudioManagerPoC/falcon.creator.user b/AudioManagerPoC/falcon.creator.user -new file mode 100644 -index 0000000..76f2126 ---- /dev/null -+++ b/AudioManagerPoC/falcon.creator.user -@@ -0,0 +1,189 @@ -+<?xml version="1.0" encoding="UTF-8"?> -+<!DOCTYPE QtCreatorProject> -+<!-- Written by QtCreator 3.1.1, 2014-09-16T16:43:29. --> -+<qtcreator> -+ <data> -+ <variable>ProjectExplorer.Project.ActiveTarget</variable> -+ <value type="int">0</value> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.EditorSettings</variable> -+ <valuemap type="QVariantMap"> -+ <value type="bool" key="EditorConfiguration.AutoIndent">true</value> -+ <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value> -+ <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value> -+ <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0"> -+ <value type="QString" key="language">Cpp</value> -+ <valuemap type="QVariantMap" key="value"> -+ <value type="QByteArray" key="CurrentPreferences">CppGlobal</value> -+ </valuemap> -+ </valuemap> -+ <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1"> -+ <value type="QString" key="language">QmlJS</value> -+ <valuemap type="QVariantMap" key="value"> -+ <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value> -+ </valuemap> -+ </valuemap> -+ <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value> -+ <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value> -+ <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value> -+ <value type="int" key="EditorConfiguration.IndentSize">4</value> -+ <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value> -+ <value type="int" key="EditorConfiguration.MarginColumn">80</value> -+ <value type="bool" key="EditorConfiguration.MouseHiding">true</value> -+ <value type="bool" key="EditorConfiguration.MouseNavigation">true</value> -+ <value type="int" key="EditorConfiguration.PaddingMode">1</value> -+ <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value> -+ <value type="bool" key="EditorConfiguration.ShowMargin">false</value> -+ <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value> -+ <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value> -+ <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value> -+ <value type="int" key="EditorConfiguration.TabSize">8</value> -+ <value type="bool" key="EditorConfiguration.UseGlobal">true</value> -+ <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value> -+ <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value> -+ <value type="bool" key="EditorConfiguration.cleanIndentation">true</value> -+ <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value> -+ <value type="bool" key="EditorConfiguration.inEntireDocument">false</value> -+ </valuemap> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.PluginSettings</variable> -+ <valuemap type="QVariantMap"/> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.Target.0</variable> -+ <valuemap type="QVariantMap"> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{68beb270-8b5a-4f8b-83bd-c8c9933b88c2}</value> -+ <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value> -+ <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> -+ <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> -+ <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/spbc/HDD/ads/work/genivi/development/falcon-hmi-1.0</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> -+ <valuelist type="QVariantList" key="GenericProjectManager.GenericMakeStep.BuildTargets"> -+ <value type="QString">all</value> -+ </valuelist> -+ <value type="bool" key="GenericProjectManager.GenericMakeStep.Clean">false</value> -+ <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeArguments"></value> -+ <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeCommand"></value> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericMakeStep</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> -+ </valuemap> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> -+ <valuelist type="QVariantList" key="GenericProjectManager.GenericMakeStep.BuildTargets"> -+ <value type="QString">clean</value> -+ </valuelist> -+ <value type="bool" key="GenericProjectManager.GenericMakeStep.Clean">true</value> -+ <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeArguments"></value> -+ <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeCommand"></value> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericMakeStep</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> -+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> -+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Default</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Default</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericBuildConfiguration</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> -+ <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value> -+ <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> -+ <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> -+ <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> -+ <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> -+ <value type="int" key="Analyzer.Valgrind.NumCallers">25</value> -+ <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/> -+ <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value> -+ <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> -+ <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value> -+ <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> -+ <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> -+ <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> -+ <value type="int">0</value> -+ <value type="int">1</value> -+ <value type="int">2</value> -+ <value type="int">3</value> -+ <value type="int">4</value> -+ <value type="int">5</value> -+ <value type="int">6</value> -+ <value type="int">7</value> -+ <value type="int">8</value> -+ <value type="int">9</value> -+ <value type="int">10</value> -+ <value type="int">11</value> -+ <value type="int">12</value> -+ <value type="int">13</value> -+ <value type="int">14</value> -+ </valuelist> -+ <value type="int" key="PE.EnvironmentAspect.Base">2</value> -+ <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> -+ <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value> -+ <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value> -+ <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">false</value> -+ <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value> -+ <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> -+ <value type="bool" key="RunConfiguration.UseCppDebugger">false</value> -+ <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> -+ <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> -+ <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> -+ <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> -+ </valuemap> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.TargetCount</variable> -+ <value type="int">1</value> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable> -+ <value type="QByteArray">{b4d5812a-4957-43c8-8315-e2d43f005c78}</value> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.Updater.FileVersion</variable> -+ <value type="int">15</value> -+ </data> -+</qtcreator> -diff --git a/AudioManagerPoC/falcon.files b/AudioManagerPoC/falcon.files +diff --git a/AudioManagerPoC/genivi_logo.png b/AudioManagerPoC/genivi_logo.png new file mode 100644 -index 0000000..71a352b ---- /dev/null -+++ b/AudioManagerPoC/falcon.files -@@ -0,0 +1,14 @@ -+audiomanager.cpp -+audiomanager.h -+audiomanager_command.h -+AudioManagerCommander.cpp -+AudioManagerCommander.h -+main.cpp -+qmlbuttoneventsreceiver.cpp -+qmlbuttoneventsreceiver.h -+skype.cpp -+skype.h -+skypeclient.cpp -+skypeclient.h -+volumechart.cpp -+volumechart.h -\ No newline at end of file -diff --git a/AudioManagerPoC/falcon.includes b/AudioManagerPoC/falcon.includes -new file mode 100644 -index 0000000..945c9b4 ---- /dev/null -+++ b/AudioManagerPoC/falcon.includes -@@ -0,0 +1 @@ -+. -\ No newline at end of file -diff --git a/AudioManagerPoC/falcon_hmi.pro b/AudioManagerPoC/falcon_hmi.pro -new file mode 100644 -index 0000000..fce674b +index 0000000000000000000000000000000000000000..c474c061bfa19860e65767cb2878b622e6189ef4 +GIT binary patch +literal 60335 +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 +DmX31y + +literal 0 +HcmV?d00001 + +diff --git a/AudioManagerPoC/getconnections.sh b/AudioManagerPoC/getconnections.sh +new file mode 100755 +index 0000000..664a561 --- /dev/null -+++ b/AudioManagerPoC/falcon_hmi.pro -@@ -0,0 +1,57 @@ -+#------------------------------------------------- ++++ b/AudioManagerPoC/getconnections.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++ ++# SPDX license identifier: MPL-2.0 +# -+# Project created by QtCreator 2012-03-04T09:20:56 ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; +# -+#------------------------------------------------- -+ -+QT += core -+QT += gui -+#QT += declarative -+QT += dbus -+//QT += webkit -+QT += core gui qml quick webkitwidgets -+QT += widgets -+#QT += opengl -+ -+#LIBS += -L/home/popai/workspace/pulseaudio-0.9.22/src/.libs -+#LIBS += -lbrowser_amgr_bridge -+TARGET = falcon_hmi -+CONFIG += console -+CONFIG -= app_bundle -+ -+TEMPLATE = app -+ -+SOURCES += main.cpp \ -+ qmlbuttoneventsreceiver.cpp \ -+ skypeclient.cpp \ -+ skype.cpp \ -+ volumechart.cpp \ -+ audiomanager.cpp -+ -+RESOURCES = application.qrc \ -+ application.qrc -+ -+qmls.files += main.qml -+INSTALL += qmls + -+OTHER_FILES += \ -+ main.qml \ -+ Button.qml \ -+ Slider.qml \ -+ Clock.qml \ -+ Tab.qml \ -+ tabs.js \ -+ WebBrowser.qml \ -+ Multimedia.qml \ -+ AudioManager.qml \ -+ HomePage.qml ++dbus-send --session --print-reply --dest=org.genivi.audiomanager /org/genivi/audiomanager/commandinterface org.genivi.audiomanager.commandinterface.GetListMainConnections | awk '/struct/ {getline;getline;SOURCE=$2;getline;SINK=$2;getline;getline;STATUS=$2;print "Source"SOURCE"-->Sink"SINK"(Status"STATUS")";}' | sed 's/Source100/MediaPlayer/g' | sed 's/Source101/NaviPlayer/g' | sed 's/Source102/TTSPlayer/g' | sed 's/Source103/Skype/g' | sed 's/Source104/ReverseBeep/g' | sed 's/Sink100/AlsaPrimary/g' | sed 's/Sink101/AlsaSecondary/g' | sed 's/Status1/Connecting/g' | sed 's/Status2/Connected/g' | sed 's/Status3/Disconnecting/g' | sed 's/Status4/Disconnected/g' | sed 's/Status5/Suspended/g' +diff --git a/AudioManagerPoC/getvolumes_val.sh b/AudioManagerPoC/getvolumes_val.sh +new file mode 100755 +index 0000000..085d35e +--- /dev/null ++++ b/AudioManagerPoC/getvolumes_val.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh + -+HEADERS += \ -+ qmlbuttoneventsreceiver.h \ -+ skypeclient.h \ -+ skype.h \ -+ volumechart.h \ -+ audiomanager.h ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# + -+target.path = /usr/bin -+INSTALLS += target -diff --git a/AudioManagerPoC/falcon_hmi.pro.user b/AudioManagerPoC/falcon_hmi.pro.user -new file mode 100644 -index 0000000..9e7c998 ---- /dev/null -+++ b/AudioManagerPoC/falcon_hmi.pro.user -@@ -0,0 +1,448 @@ -+<?xml version="1.0" encoding="UTF-8"?> -+<!DOCTYPE QtCreatorProject> -+<!-- Written by QtCreator 3.1.1, 2014-09-16T16:43:53. --> -+<qtcreator> -+ <data> -+ <variable>ProjectExplorer.Project.ActiveTarget</variable> -+ <value type="int">1</value> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.EditorSettings</variable> -+ <valuemap type="QVariantMap"> -+ <value type="bool" key="EditorConfiguration.AutoIndent">true</value> -+ <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value> -+ <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value> -+ <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0"> -+ <value type="QString" key="language">Cpp</value> -+ <valuemap type="QVariantMap" key="value"> -+ <value type="QByteArray" key="CurrentPreferences">CppGlobal</value> -+ </valuemap> -+ </valuemap> -+ <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1"> -+ <value type="QString" key="language">QmlJS</value> -+ <valuemap type="QVariantMap" key="value"> -+ <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value> -+ </valuemap> -+ </valuemap> -+ <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value> -+ <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value> -+ <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value> -+ <value type="int" key="EditorConfiguration.IndentSize">4</value> -+ <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value> -+ <value type="int" key="EditorConfiguration.MarginColumn">80</value> -+ <value type="bool" key="EditorConfiguration.MouseHiding">true</value> -+ <value type="bool" key="EditorConfiguration.MouseNavigation">true</value> -+ <value type="int" key="EditorConfiguration.PaddingMode">1</value> -+ <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value> -+ <value type="bool" key="EditorConfiguration.ShowMargin">false</value> -+ <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value> -+ <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value> -+ <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value> -+ <value type="int" key="EditorConfiguration.TabSize">8</value> -+ <value type="bool" key="EditorConfiguration.UseGlobal">true</value> -+ <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value> -+ <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value> -+ <value type="bool" key="EditorConfiguration.cleanIndentation">true</value> -+ <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value> -+ <value type="bool" key="EditorConfiguration.inEntireDocument">false</value> -+ </valuemap> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.PluginSettings</variable> -+ <valuemap type="QVariantMap"/> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.Target.0</variable> -+ <valuemap type="QVariantMap"> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Local PC</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Local PC</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{93bda0ee-e8eb-4cb9-b241-fafc28b003ff}</value> -+ <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value> -+ <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> -+ <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> -+ <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/popai/work/adige/falcon/falcon_hmi-build-desktop</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value> -+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> -+ </valuemap> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> -+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> -+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> -+ </valuemap> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> -+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> -+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> -+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> -+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">4.7.2 Release</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> -+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value> -+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> -+ </valuemap> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> -+ <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/popai/work/adige/falcon/falcon_hmi-build-desktop</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value> -+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> -+ </valuemap> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> -+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> -+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> -+ </valuemap> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> -+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/> -+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> -+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> -+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">4.7.2 Debug</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> -+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value> -+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> -+ <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value> -+ <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> -+ <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> -+ <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> -+ <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> -+ <value type="int" key="Analyzer.Valgrind.NumCallers">25</value> -+ <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/> -+ <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value> -+ <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> -+ <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value> -+ <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> -+ <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> -+ <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> -+ <value type="int">0</value> -+ <value type="int">1</value> -+ <value type="int">2</value> -+ <value type="int">3</value> -+ <value type="int">4</value> -+ <value type="int">5</value> -+ <value type="int">6</value> -+ <value type="int">7</value> -+ <value type="int">8</value> -+ <value type="int">9</value> -+ <value type="int">10</value> -+ <value type="int">11</value> -+ <value type="int">12</value> -+ <value type="int">13</value> -+ <value type="int">14</value> -+ </valuelist> -+ <value type="int" key="PE.EnvironmentAspect.Base">2</value> -+ <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">falcon_hmi</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/spbc/HDD/ads/work/genivi/development/falcon-hmi-1.0/falcon_hmi.pro</value> -+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value> -+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">falcon_hmi.pro</value> -+ <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value> -+ <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value> -+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value> -+ <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> -+ <value type="bool" key="RunConfiguration.UseCppDebugger">true</value> -+ <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value> -+ <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> -+ <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> -+ <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> -+ </valuemap> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.Target.1</variable> -+ <valuemap type="QVariantMap"> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{68beb270-8b5a-4f8b-83bd-c8c9933b88c2}</value> -+ <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value> -+ <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> -+ <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> -+ <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/spbc/HDD/ads/work/genivi/development/falcon_build</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value> -+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> -+ </valuemap> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> -+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> -+ <value type="QString">-w</value> -+ <value type="QString">-r</value> -+ </valuelist> -+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w </value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> -+ </valuemap> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> -+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> -+ <value type="QString">-w</value> -+ <value type="QString">-r</value> -+ </valuelist> -+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w clean</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> -+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> -+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt in PATH Release</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> -+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value> -+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> -+ </valuemap> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> -+ <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/popai/work/adige/falcon/falcon_hmi-build-desktop</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value> -+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> -+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> -+ </valuemap> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> -+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> -+ <value type="QString">-w</value> -+ <value type="QString">-r</value> -+ </valuelist> -+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w </value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> -+ </valuemap> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> -+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> -+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> -+ <value type="QString">-w</value> -+ <value type="QString">-r</value> -+ </valuelist> -+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w clean</value> -+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> -+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> -+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt in PATH Debug</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> -+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value> -+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> -+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> -+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> -+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> -+ <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value> -+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value> -+ <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> -+ <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> -+ <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> -+ <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> -+ <value type="int" key="Analyzer.Valgrind.NumCallers">25</value> -+ <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/> -+ <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value> -+ <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> -+ <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value> -+ <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> -+ <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> -+ <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> -+ <value type="int">0</value> -+ <value type="int">1</value> -+ <value type="int">2</value> -+ <value type="int">3</value> -+ <value type="int">4</value> -+ <value type="int">5</value> -+ <value type="int">6</value> -+ <value type="int">7</value> -+ <value type="int">8</value> -+ <value type="int">9</value> -+ <value type="int">10</value> -+ <value type="int">11</value> -+ <value type="int">12</value> -+ <value type="int">13</value> -+ <value type="int">14</value> -+ </valuelist> -+ <value type="int" key="PE.EnvironmentAspect.Base">2</value> -+ <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">falcon_hmi</value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> -+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/spbc/HDD/ads/work/genivi/development/falcon-hmi-1.0/falcon_hmi.pro</value> -+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value> -+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">falcon_hmi.pro</value> -+ <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value> -+ <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value> -+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value> -+ <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> -+ <value type="bool" key="RunConfiguration.UseCppDebugger">true</value> -+ <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value> -+ <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> -+ <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> -+ <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value> -+ </valuemap> -+ <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> -+ </valuemap> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.TargetCount</variable> -+ <value type="int">2</value> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable> -+ <value type="QByteArray">{b4d5812a-4957-43c8-8315-e2d43f005c78}</value> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.Updater.FileVersion</variable> -+ <value type="int">15</value> -+ </data> -+</qtcreator> -diff --git a/AudioManagerPoC/falcon_hmi.pro.user.7558c67.2.2pre5 b/AudioManagerPoC/falcon_hmi.pro.user.7558c67.2.2pre5 -new file mode 100644 -index 0000000..a240228 ---- /dev/null -+++ b/AudioManagerPoC/falcon_hmi.pro.user.7558c67.2.2pre5 -@@ -0,0 +1,267 @@ -+<!DOCTYPE QtCreatorProject> -+<qtcreator> -+ <data> -+ <variable>ProjectExplorer.Project.ActiveTarget</variable> -+ <value type="int">0</value> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.EditorSettings</variable> -+ <valuemap type="QVariantMap"> -+ <value key="EditorConfiguration.Codec" type="QByteArray">Default</value> -+ </valuemap> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.Target.0</variable> -+ <valuemap type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Desktop</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.DesktopTarget</value> -+ <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">0</value> -+ <value key="ProjectExplorer.Target.ActiveDeployConfiguration" type="int">0</value> -+ <value key="ProjectExplorer.Target.ActiveRunConfiguration" type="int">0</value> -+ <valuemap key="ProjectExplorer.Target.BuildConfiguration.0" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">qmake</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value> -+ <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/> -+ <value key="QtProjectManager.QMakeBuildStep.QMakeForced" type="bool">false</value> -+ </valuemap> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.1" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value> -+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value> -+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/> -+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">2</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Build</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Build</value> -+ </valuemap> -+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.1" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value> -+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value> -+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"> -+ <value type="QString">clean</value> -+ </valuelist> -+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">1</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Clean</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Clean</value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">2</value> -+ <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value> -+ <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Qt in PATH Release</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/popai/work/adige/falcon/falcon_hmi-build-desktop</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value> -+ </valuemap> -+ <valuemap key="ProjectExplorer.Target.BuildConfiguration.1" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">qmake</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value> -+ <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/> -+ <value key="QtProjectManager.QMakeBuildStep.QMakeForced" type="bool">false</value> -+ </valuemap> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.1" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value> -+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value> -+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/> -+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">2</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Build</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Build</value> -+ </valuemap> -+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.1" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value> -+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value> -+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"> -+ <value type="QString">clean</value> -+ </valuelist> -+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">1</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Clean</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Clean</value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">2</value> -+ <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value> -+ <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Qt in PATH Debug</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">2</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/popai/work/adige/falcon/falcon_hmi-build-desktop</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value> -+ </valuemap> -+ <valuemap key="ProjectExplorer.Target.BuildConfiguration.2" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">qmake</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value> -+ <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/> -+ <value key="QtProjectManager.QMakeBuildStep.QMakeForced" type="bool">false</value> -+ </valuemap> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.1" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value> -+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value> -+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/> -+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">2</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Build</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Build</value> -+ </valuemap> -+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.1" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value> -+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value> -+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"> -+ <value type="QString">clean</value> -+ </valuelist> -+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">1</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Clean</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Clean</value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">2</value> -+ <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value> -+ <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">4.7.2 Release</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/popai/work/adige/falcon/falcon_hmi-build-desktop</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">4</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value> -+ </valuemap> -+ <valuemap key="ProjectExplorer.Target.BuildConfiguration.3" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">qmake</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value> -+ <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/> -+ <value key="QtProjectManager.QMakeBuildStep.QMakeForced" type="bool">false</value> -+ </valuemap> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.1" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value> -+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value> -+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/> -+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">2</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Build</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Build</value> -+ </valuemap> -+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.1" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Make</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value> -+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value> -+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"> -+ <value type="QString">clean</value> -+ </valuelist> -+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">1</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Clean</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Clean</value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">2</value> -+ <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value> -+ <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">4.7.2 Debug</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">2</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/popai/work/adige/falcon/falcon_hmi-build-desktop</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">4</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value> -+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value> -+ </valuemap> -+ <value key="ProjectExplorer.Target.BuildConfigurationCount" type="int">4</value> -+ <valuemap key="ProjectExplorer.Target.DeployConfiguration.0" type="QVariantMap"> -+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap"> -+ <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">0</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Deploy</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Deploy</value> -+ </valuemap> -+ <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">1</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">No deployment</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.DefaultDeployConfiguration</value> -+ </valuemap> -+ <value key="ProjectExplorer.Target.DeployConfigurationCount" type="int">1</value> -+ <valuemap key="ProjectExplorer.Target.RunConfiguration.0" type="QVariantMap"> -+ <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">falcon_hmi</value> -+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value> -+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4RunConfiguration</value> -+ <value key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase" type="int">2</value> -+ <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments" type="QVariantList"/> -+ <value key="Qt4ProjectManager.Qt4RunConfiguration.ProFile" type="QString">falcon_hmi.pro</value> -+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix" type="bool">false</value> -+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal" type="bool">false</value> -+ <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges" type="QVariantList"/> -+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetWorkingDirectory" type="bool">false</value> -+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory" type="QString"></value> -+ <value key="RunConfiguration.QmlDebugServerPort" type="uint">3768</value> -+ <value key="RunConfiguration.UseCppDebugger" type="bool">true</value> -+ <value key="RunConfiguration.UseQmlDebugger" type="bool">false</value> -+ </valuemap> -+ <value key="ProjectExplorer.Target.RunConfigurationCount" type="int">1</value> -+ </valuemap> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.TargetCount</variable> -+ <value type="int">1</value> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable> -+ <value type="QString">{7558c670-bf9c-4143-9d3f-7eed1a0e4b68}</value> -+ </data> -+ <data> -+ <variable>ProjectExplorer.Project.Updater.FileVersion</variable> -+ <value type="int">8</value> -+ </data> -+</qtcreator> ++dbus-send --session --print-reply --dest=org.genivi.audiomanager /org/genivi/audiomanager/commandinterface org.genivi.audiomanager.commandinterface.GetListMainSinks | awk '/struct/ {getline; FS="\""; getline;NAME=$2; getline; getline; getline; getline;FS=" "; getline;print NAME","$2}' diff --git a/AudioManagerPoC/home.png b/AudioManagerPoC/home.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca131f34a4b142e33cdb68bfb7b5244b67de44e @@ -8273,100 +6446,98 @@ HcmV?d00001 diff --git a/AudioManagerPoC/main.cpp b/AudioManagerPoC/main.cpp new file mode 100644 -index 0000000..cebe37c +index 0000000..74b512e --- /dev/null +++ b/AudioManagerPoC/main.cpp -@@ -0,0 +1,73 @@ -+#include <QApplication> +@@ -0,0 +1,54 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioNanager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ */ + -+//#include <QDeclarativeView> ++#include <QApplication> +#include <QQuickView> -+ -+//#include <QDeclarativeContext> +#include <QQmlContext> -+ +#include <QDebug> +#include <QGraphicsObject> +#include <QTimer> -+ -+//#include <QDeclarativeEngine> +#include <QQmlEngine> +#include <QQuickItem> -+//#include <QGLWidget> -+ + +#include "qmlbuttoneventsreceiver.h" -+#include "skype.h" -+#include "skypeclient.h" +#include "volumechart.h" +#include "audiomanager.h" -+#include "dlfcn.h" -+ -+ -+extern "C" void browserStartPlay(); -+ + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); -+ + QQuickView view; + QMLButtonEventsReceiver rec(&view); + view.rootContext()->setContextProperty("QMLButtonEventsReceiver", &rec); -+ -+ //QGLFormat fmt = QGLFormat::defaultFormat(); -+ //fmt.setSampleBuffers(false); -+ //QGLWidget* glWidget = new QGLWidget(fmt); -+ //view.setViewport(glWidget); -+ -+ view.engine()->addImageProvider(QLatin1String("volumes"), new volumechart()); // addImageProvider(QLatin1String("volumes"), new volumechart()); -+ ++ view.engine()->addImageProvider(QLatin1String("volumes"), new volumechart()); + view.setSource(QUrl("qrc:/qml/main.qml")); -+ + view.showMaximized(); -+ qDebug() << "Show maximized"; -+ //glWidget->show(); + -+ QTimer timer; -+ timer.setInterval(500); -+ QObject::connect(&timer, SIGNAL(timeout()), &rec, SLOT(refreshInfo())); -+ timer.start(); -+ -+ //QDBusConnection connection = QDBusConnection::sessionBus(); -+ //skype l_skype_bridge(connection, &app); -+ //skypeclient l_skype_client(connection, &app); -+ -+ //QObject::connect(&l_skype_client, SIGNAL(callStart()), &rec, SLOT(slotCallStart())); -+ //QObject::connect(&l_skype_client, SIGNAL(callEnd()), &rec, SLOT(slotCallEnd())); ++ qDebug() << "Show maximized"; + ++ QTimer *timer = new QTimer(&rec); ++ QObject::connect(timer, SIGNAL(timeout()), &rec, SLOT(slotRefreshInfo())); ++ timer->start(500); + + QObject *sliderVolume = view.rootObject()->findChild<QObject*>("sliderVolume"); -+ + sliderVolume->setProperty("value", 100.0); + -+ //QString name; -+ //l_skype_bridge.Invoke("NAME flacon_hmi_demo");// + QString::number(QDateTime::currentMSecsSinceEpoch())); -+ //l_skype_bridge.Invoke("PROTOCOL 1"); -+ + return app.exec(); +} diff --git a/AudioManagerPoC/main.qml b/AudioManagerPoC/main.qml new file mode 100644 -index 0000000..a779889 +index 0000000..cda9750 --- /dev/null +++ b/AudioManagerPoC/main.qml -@@ -0,0 +1,180 @@ -+import QtQuick 2.2 -+import QtWebKit 3.0 +@@ -0,0 +1,164 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioManager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ */ + ++import QtQuick 2.2 +import "tabs.js" as Tabs + +Rectangle { -+ color: "#000000" -+ + id: fullScreen; + width: 1280;//1600;// + height: 720;//900;// ++ color: "#000000" + + Image { + z: -1 @@ -8414,15 +6585,15 @@ index 0000000..a779889 + + Row { + x:0 -+ height: 100 ++ height: 100 + -+ Rectangle { ++ Rectangle { + color: "#00000000" + width: fullScreen.width * 0.08; + height: fullScreen.width * 0.08; + } + -+ Slider { ++ Slider { + y: 10 + height: 32; + width: fullScreen.width * 0.9 @@ -8438,12 +6609,13 @@ index 0000000..a779889 + + Row { + y: fullScreen.height * 0.1 ++ + Column { + id: tabs; + //TAB BAR + anchors.verticalCenter: parent.verticalCenter + spacing: 20 -+ //anchors.fill: parent ++ + Tab { + id: tab1 + iconURL: "qrc:/qml/home.png" @@ -8451,28 +6623,16 @@ index 0000000..a779889 + basecolor: "#FFFFFF"; + MouseArea {anchors.fill: parent; onClicked: { tabSelected(0); }} + } ++ + Tab { + id: tab2 -+ iconURL: "qrc:/qml/browser.png" ++ iconURL: "qrc:/qml/sound.png" + idContainer: tabContent2 + basecolor: "#FFFFFF"; + MouseArea {anchors.fill: parent; onClicked: { tabSelected(1); }} + } -+ Tab { -+ id: tab3 -+ iconURL: "qrc:/qml/media_player.png" -+ idContainer: tabContent3 -+ basecolor: "#FFFFFF"; -+ MouseArea {anchors.fill: parent; onClicked: { tabSelected(2); }} -+ } -+ Tab { -+ id: tab4 -+ iconURL: "qrc:/qml/sound.png" -+ idContainer: tabContent4 -+ basecolor: "#FFFFFF"; -+ MouseArea {anchors.fill: parent; onClicked: { tabSelected(3); }} -+ } + } ++ + Column { + //TAB CONTENT + anchors.verticalCenter: parent.verticalCenter @@ -8487,41 +6647,19 @@ index 0000000..a779889 + radius: 10; + + HomePage { -+ id: homePage ++ id: homePage ++ anchors.rightMargin: -53 ++ anchors.bottomMargin: 204 ++ anchors.leftMargin: 124 ++ anchors.topMargin: -31 + } + } + -+ Rectangle {//WEB-BROWSER ++ Rectangle {//SOUND SETTINGS + id: tabContent2; + visible: false; + color: tab2.color + width: fullScreen.width * 0.9; -+ height: fullScreen.height * 0.8; -+ radius: 10; -+ -+ //WebBrowser { -+ //id: webBrowser -+ //} -+ } -+ -+ Rectangle {//MULTIMEDIA -+ id: tabContent3; -+ visible: false; -+ color: tab3.color -+ width: fullScreen.width * 0.9; -+ height: fullScreen.height * 0.8; -+ radius: 10; -+ -+ Multimedia { -+ id: multimedia -+ } -+ } -+ -+ Rectangle {//SOUND SETTINGS -+ id: tabContent4; -+ visible: false; -+ color: tab4.color -+ width: fullScreen.width * 0.9; + height: fullScreen.height * 0.8 ; + radius: 10; + @@ -8536,103 +6674,198 @@ index 0000000..a779889 + } + } +} -diff --git a/AudioManagerPoC/media_player.png b/AudioManagerPoC/media_player.png -new file mode 100644 -index 0000000000000000000000000000000000000000..4f96238a5bd36020585ecfed539c9c3c5c7ffa98 -GIT binary patch -literal 713 -zcmV;)0yh1LP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00001b5ch_0Itp) -z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyY> -z5hyk}=<Wsp000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0006cNkl<Z -zXx`<TyG{Z@6ox;LL@TJQ+?Hr9!BCsn!UND)n7~t5@(5sQXKlM7+JP}qY)G`Rvl3!# -zuu^P>WLac)X6Ld?{F75HbLKzSIWqw^963XJ@<0V>0LQ>SPy)8Z_ix}6cmZyJYv2L+ -zN!tM@zyO#hl!4IU9B05xgLqhGLZ@|9fr&xlVVQ_Mte|U=cv!k7iSGbohvXMB7JF-< -zXgOtMQmUxq`83G~jYt%UaR$f-)5&PTwnD#eWvQ^MisXZ^ZG=>dog^fWqk4!vVWSkp -z;nsl>ktg;{BYkjG(6gw)Oh!T42F%wDfU;9%3$qv|oMKnzc@+g;889NhAda|<sGicQ -z8%9O$GJ(;RpaBgBqxgkkeT^jfuPY`Sz)~GdH_(7-FojBvuA(M8SSgMEJv7{joEtEY -ziH@?aMGC!b;G5PG=f1-Tm>S3X!3f+dTHhA0dJAbQtUWapfhEp$#~xgVCj}k#;6l&P -zAm_4>z3?Ni?m?u|3QZWW@-W>oV8Dl?6S?!(!m`A|E6XV)tE0Sb@yI|FbnzOq|0rs4 -zP0|DBmgl9Yy=!p_{0zOwg~gZgfR|wdJlQZdGf2Lvnv1;*k?$obrb0&Q!53T-VLN3b -ze8E8rg_P2%r{npw3%hCSknt?1l&{h%bx@NWJ7i@fbHds{S#pYvnkvgW1Wf(eBM0mO -vhr*LbzyYu;zP|&{;u?4dJc>*Cod1qrCAYJYH^nOV00000NkvXXu0mjfM(i&o - -literal 0 -HcmV?d00001 - -diff --git a/AudioManagerPoC/playmedia.sh b/AudioManagerPoC/playmedia.sh +diff --git a/AudioManagerPoC/playCarReverse.sh b/AudioManagerPoC/playCarReverse.sh +new file mode 100755 +index 0000000..ca6f730 +--- /dev/null ++++ b/AudioManagerPoC/playCarReverse.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++ ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# ++ ++PULSE_PROP="media.role='reverse'" aplay /opt/audiomanager/car_reverse.wav +diff --git a/AudioManagerPoC/playmusic.sh b/AudioManagerPoC/playmusic.sh +new file mode 100755 +index 0000000..541aa62 +--- /dev/null ++++ b/AudioManagerPoC/playmusic.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++ ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# ++ ++PULSE_PROP="media.role='MEDIA'" aplay /opt/audiomanager/UNKLE_-_Burn_My_Shadow.wav +diff --git a/AudioManagerPoC/playnav.sh b/AudioManagerPoC/playnav.sh new file mode 100755 -index 0000000..f5c49c7 +index 0000000..d1d98d2 --- /dev/null -+++ b/AudioManagerPoC/playmedia.sh -@@ -0,0 +1,9 @@ ++++ b/AudioManagerPoC/playnav.sh +@@ -0,0 +1,22 @@ +#!/bin/sh -+RESULT=`python -c 'import dbus; print dbus.SessionBus().call_blocking("org.genivi.audiomanager", "/org/genivi/audiomanager/CommandInterface", "org.genivi.audiomanager.CommandInterface", "Connect", "uu", (dbus.UInt32(100), dbus.UInt32(100) ))'` -+echo "RESULT:" $RESULT -+CONNECTIONID=`echo $RESULT | cut -d"(" -f4 | cut -d")" -f1` -+echo "CONNECTION ID:" $CONNECTIONID + -+gst-launch-0.10 filesrc location=/home/popai/music.wav ! decodebin ! alsasink ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# + -+python -c 'import dbus; print dbus.SessionBus().call_blocking("org.genivi.audiomanager", "/org/genivi/audiomanager/CommandInterface", "org.genivi.audiomanager.CommandInterface", "Disconnect", "u", (dbus.UInt32('$CONNECTIONID'), ))' ++PULSE_PROP="media.role='NAVI'" aplay /opt/audiomanager/navigation.wav +diff --git a/AudioManagerPoC/playtel.sh b/AudioManagerPoC/playtel.sh +new file mode 100755 +index 0000000..e37faf6 +--- /dev/null ++++ b/AudioManagerPoC/playtel.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++ ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# ++ ++PULSE_PROP="media.role='skype'" aplay /opt/audiomanager/telephone-ring.wav +diff --git a/AudioManagerPoC/playtts.sh b/AudioManagerPoC/playtts.sh +new file mode 100755 +index 0000000..ad6c444 +--- /dev/null ++++ b/AudioManagerPoC/playtts.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++ ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# ++ ++PULSE_PROP="media.role='TextToSpeach'" aplay /opt/audiomanager/tts.wav diff --git a/AudioManagerPoC/qmlbuttoneventsreceiver.cpp b/AudioManagerPoC/qmlbuttoneventsreceiver.cpp new file mode 100644 -index 0000000..874010a +index 0000000..2cee76b --- /dev/null +++ b/AudioManagerPoC/qmlbuttoneventsreceiver.cpp -@@ -0,0 +1,278 @@ -+#include "qmlbuttoneventsreceiver.h" +@@ -0,0 +1,311 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioNanager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ */ ++ +#include <QDebug> +#include <QProcess> +#include <QApplication> -+ -+//#include <QDeclarativeView> +#include <QQuickView> -+ -+//#include <QDeclarativeContext> +#include <QQmlContext> +#include <QQuickItem> +#include <QDebug> +#include <QString> +#include <QStringList> +#include <QGraphicsObject> ++#include <QFileDialog> ++#include <QStringListModel> ++#include <QThread> ++ +#include "qmlbuttoneventsreceiver.h" +#include "volumechart.h" + -+static bool mediaStatus = false; -+static bool ttsStatus = false; -+static bool navigationStatus = false; +static int masterVolumeFG = 100; +static int masterVolumeBG = 100; -+/* -+extern "C" void pauseHTML5(); -+extern "C" void playHTML5(); -+extern "C" void registerPlayHTML5Callback(void (*pcb)(void)); -+extern "C" void registerStopHTML5Callback(void (*scb)(void)); -+*/ +static audiomanager *static_amgr; -+/* -+void playHTML5Hook() -+{ -+ printf("CALL BUILD CONNECTION for Browser\n"); -+ static_amgr->Connect("Browser", "Background_Channel"); -+} -+ -+ -+void stopHTML5Hook() -+{ -+ printf("CALL DESTROY CONNECTION for Browser\n"); -+ static_amgr->Disconnect("Browser", "Background_Channel"); -+} -+*/ -+ + +QMLButtonEventsReceiver::QMLButtonEventsReceiver(QQuickView *view) +{ + this->amgr = new audiomanager(view); + static_amgr = amgr; + this->view = view; -+/* registerPlayHTML5Callback(playHTML5Hook); -+ registerStopHTML5Callback(stopHTML5Hook);*/ + connect(amgr, SIGNAL(sourceDisconnected(QString)), this, SLOT(slotSourceDisconnected(QString))); + connect(amgr, SIGNAL(sourceSuspended(QString)), this, SLOT(slotSourceSuspended(QString))); + connect(amgr, SIGNAL(sourceConnected(QString)), this, SLOT(slotSourceConnected(QString))); @@ -8645,7 +6878,6 @@ index 0000000..874010a + if (sourceName == "Browser") + { + qDebug() << "AMGR call - Stop html5"; -+ //pauseHTML5(); + } +} + @@ -8655,7 +6887,6 @@ index 0000000..874010a + if (sourceName == "Browser") + { + qDebug() << "AMGR call - Play html5"; -+ //playHTML5(); + } +} + @@ -8665,211 +6896,273 @@ index 0000000..874010a + if (sourceName == "Browser") + { + qDebug() << "AMGR call - Pause html5"; -+ //pauseHTML5(); + } +} + +QString QMLButtonEventsReceiver::clicked(QString btnText) const +{ + qDebug() << "Clicked:" << btnText; -+ if (btnText == "Play Media") { -+ amgr->Connect("Media player", "Background_Channel"); + ++ if (btnText == "Play Music") { ++ amgr->Connect("MediaPlayer", "AlsaPrimary"); + QProcess *p1 = new QProcess(); -+ p1->start("./playmedia.sh"); ++ p1->start("/usr/bin/am-poc/playmusic.sh"); ++ connect(p1, SIGNAL(finished(int)), SLOT(slotMediaEnd())); ++ return "Stop Music"; ++ } + -+ return "Stop Media"; ++ if (btnText == "Stop Music") { ++ amgr->Disconnect("MediaPlayer", "AlsaPrimary"); ++ QProcess *p1 = new QProcess(); ++ p1->start("/usr/bin/am-poc/stopmusic.sh"); ++ return "Play Music"; + } -+ else if (btnText == "Stop Media") { -+ QProcess *p1 = new QProcess(); -+ QStringList args; -+ args.push_back("gst-launch-0.10"); -+ p1->start("killall", args); -+ amgr->Disconnect("Media player", "Background_Channel"); -+ return "Play Media"; ++ ++ if (btnText == "Parking Signal") { ++ amgr->Connect("ReverseBeep", "AlsaSecondary"); ++ QProcess *p1 = new QProcess(); ++ p1->start("/usr/bin/am-poc/playCarReverse.sh"); ++ connect(p1, SIGNAL(finished(int)), SLOT(slotCarEnd())); ++ return "Stop Parking Signal"; + } -+ if (btnText == "Text To Speech") { -+ amgr->Connect("Text To Speech", "Foreground_Channel"); ++ ++ if (btnText == "Stop Parking Signal") { ++ amgr->Disconnect("ReverseBeep", "AlsaSecondary"); + QProcess *p1 = new QProcess(); -+ p1->start("./playtts.sh"); -+ connect(p1, SIGNAL(finished(int)), SLOT(slotTTSEnd())); -+ return "Text To Speech"; ++ p1->start("/usr/bin/am-poc/stopCarReverse.sh"); ++ return "Parking Signal"; + } ++ + if (btnText == "Navigation Message") { -+ amgr->Connect("Navigation", "Foreground_Channel"); ++ amgr->Connect("NaviPlayer", "AlsaSecondary"); + QProcess *p1 = new QProcess(); -+ p1->start("./playnav.sh"); ++ p1->start("/usr/bin/am-poc/playnav.sh"); + connect(p1, SIGNAL(finished(int)), SLOT(slotNavEnd())); ++ return "Stop Navigation Message"; ++ } ++ ++ if (btnText == "Stop Navigation Message") { ++ amgr->Disconnect("NaviPlayer", "AlsaSecondary"); ++ QProcess *p1 = new QProcess(); ++ p1->start("/usr/bin/am-poc/stopnav.sh"); + return "Navigation Message"; + } ++ ++ if (btnText == "Text To Speech") { ++ amgr->Connect("TTSPlayer", "AlsaSecondary"); ++ QProcess *p1 = new QProcess(); ++ p1->start("/usr/bin/am-poc/playtts.sh"); ++ connect(p1, SIGNAL(finished(int)), SLOT(slotTTSEnd())); ++ return "Stop Text To Speech"; ++ } ++ ++ if (btnText == "Stop Text To Speech") { ++ amgr->Disconnect("TTSPlayer", "AlsaSecondary"); ++ QProcess *p1 = new QProcess(); ++ p1->start("/usr/bin/am-poc/stoptts.sh"); ++ return "Text To Speech"; ++ } ++ + if (btnText == "Start Phone Call") { -+ amgr->Connect("Skype", "Foreground_Channel"); -+// QProcess *p1 = new QProcess(); -+// p1->start("./playnav.sh"); -+// connect(p1, SIGNAL(finished(int)), SLOT(slotNavEnd())); ++ amgr->Connect("Skype", "AlsaSecondary"); ++ QProcess *p1 = new QProcess(); ++ p1->start("/usr/bin/am-poc/playtel.sh"); ++ connect(p1, SIGNAL(finished(int)), SLOT(slotTelEnd())); + return "End Phone Call"; + } ++ + if (btnText == "End Phone Call") { -+ amgr->Disconnect("Skype", "Foreground_Channel"); -+// QProcess *p1 = new QProcess(); -+// p1->start("./playnav.sh"); -+// connect(p1, SIGNAL(finished(int)), SLOT(slotNavEnd())); ++ amgr->Disconnect("Skype", "AlsaSecondary"); ++ QProcess *p1 = new QProcess(); ++ p1->start("/usr/bin/am-poc/stoptel.sh"); + return "Start Phone Call"; + } -+ //TODO - phonecall ++ + //TODO - early audio + return btnText; +} + + +void QMLButtonEventsReceiver::slider(QString sliderText, qreal value) const -+{ ++{ + if (sliderText == "Volume") + { -+ //QProcess *p1 = new QProcess(); -+ //QStringList args; -+ //args.push_back(QString::number((int) value)); -+ //qDebug() << "ARGS:" << args; -+ //p1->start("./setvolume.sh", args); + if (channel == FOREGROUND_CHANNEL) + { -+ /* -+ if (value < masterVolumeBG) -+ { -+ masterVolumeBG = (int) value; -+ amgr->SetVolume("Background_Channel", value); -+ }*/ + masterVolumeFG = (int) value; -+ amgr->SetVolume("Foreground_Channel", value); ++ amgr->SetVolume("AlsaSecondary", value); + } + else + { + masterVolumeBG = (int) value; -+ amgr->SetVolume("Background_Channel", value); ++ amgr->SetVolume("AlsaPrimary", value); + } + } +} + -+void QMLButtonEventsReceiver::refreshInfo() ++void QMLButtonEventsReceiver::slotRefreshInfo() +{ -+ return; -+ -+ //qDebug() << "Refresh info!"; + QObject *text = view->rootObject()->findChild<QObject*>("textConnections"); + QObject *textSrc = view->rootObject()->findChild<QObject*>("textSources"); + QObject *textVol = view->rootObject()->findChild<QObject*>("textVolumes"); + -+ QProcess *p1 = new QProcess(); -+ p1->start("./getconnections.sh"); -+ p1->waitForFinished(-1); ++ QProcess *p1 = new QProcess(); ++ p1->start("/usr/bin/am-poc/getconnections.sh"); ++ p1->waitForFinished(-1); + -+ QString p_stdout = p1->readAllStandardOutput(); ++ QString p_stdout = p1->readAllStandardOutput(); + -+ text->setProperty("text", QString(p_stdout)); ++ text->setProperty("text", QString(p_stdout)); ++ QStringList linesConnections = QString(p_stdout).split("\n"); + -+ QStringList linesConnections = QString(p_stdout).split("\n"); ++ QProcess *p2 = new QProcess(); ++ p2->start("/usr/bin/am-poc/getvolumes_val.sh"); ++ p2->waitForFinished(-1); + -+ QProcess *p2 = new QProcess(); -+ p2->start("./getvolumes_val.sh"); -+ p2->waitForFinished(-1); ++ p_stdout = p2->readAllStandardOutput(); + -+ p_stdout = p2->readAllStandardOutput(); ++ QStringList lines = QString(p_stdout).split("\n"); ++ QString audiosources = ""; ++ QString audiovolumes = ""; + -+ QStringList lines = QString(p_stdout).split("\n"); -+ QString audiosources = ""; -+ QString audiovolumes = ""; ++ int oldChannel = channel; + -+ int oldChannel = channel; ++ channel = BACKGROUND_CHANNEL; ++ QObject *channelTXT = view->rootObject()->findChild<QObject*>("channel"); + -+ channel = BACKGROUND_CHANNEL; -+ QObject *channelTXT = view->rootObject()->findChild<QObject*>("channel"); -+ -+ for (int i = 0; i < lines.size(); i++) ++ for (int i = 0; i < lines.size(); i++) ++ { ++ QStringList x = lines[i].split(","); ++ if (x.length() == 2 && x.at(0).length() != 0 && x.at(1).length() != 0 ) + { -+ QStringList x = lines[i].split(","); -+ if (x.length() == 2 && x.at(0).length() != 0 && x.at(1).length() != 0 ) ++ QString src = QString(x.at(0)); ++ QString vol = "0"; ++ audiosources += src + "\n"; ++ int masterVolume = masterVolumeBG; ++ for (int j = 0; j < linesConnections.size(); j++) + { -+ QString src = QString(x.at(0)); -+ QString vol = "0"; -+ audiosources += src + "\n"; -+ int masterVolume = masterVolumeBG; -+ for (int j = 0; j < linesConnections.size(); j++) ++ if (linesConnections[j].contains(src) && linesConnections[j].contains("Connected")) + { -+ //qDebug() << "TEST:" << j << ":" << linesConnections << "|"<<linesConnections[j] << src; -+ if (linesConnections[j].contains(src) && linesConnections[j].contains("Connected")) ++ vol = QString(x.at(1)); ++ if (linesConnections[j].contains("AlsaSecondary")) + { -+ vol = QString(x.at(1)); -+ if (linesConnections[j].contains("Foreground_Channel")) -+ { -+ channel = FOREGROUND_CHANNEL; -+ masterVolume = masterVolumeFG; -+ -+ } ++ channel = FOREGROUND_CHANNEL; ++ masterVolume = masterVolumeFG; + } + } -+ audiovolumes += vol + "\n"; -+ volumechart::volumes[i].push_back(masterVolume * vol.toInt() / 100); + } ++ audiovolumes += vol + "\n"; ++ volumechart::volumes[i].push_back(masterVolume * vol.toInt() / 100); + } ++ } + -+ if (oldChannel != channel) -+ { -+ QObject *sliderVolume = view->rootObject()->findChild<QObject*>("sliderVolume"); -+ -+ if (channel == BACKGROUND_CHANNEL) -+ { -+ channelTXT->setProperty("text", "Background Channel"); -+ sliderVolume->setProperty("value", masterVolumeBG); -+ } -+ if (channel == FOREGROUND_CHANNEL) -+ { -+ channelTXT->setProperty("text", "Foreground Channel"); -+ sliderVolume->setProperty("value", masterVolumeFG); -+ } ++ if (oldChannel != channel) ++ { ++ QObject *sliderVolume = view->rootObject()->findChild<QObject*>("sliderVolume"); + ++ if (channel == BACKGROUND_CHANNEL) ++ { ++ channelTXT->setProperty("text", "Background Channel"); ++ sliderVolume->setProperty("value", masterVolumeBG); ++ } ++ if (channel == FOREGROUND_CHANNEL) ++ { ++ channelTXT->setProperty("text", "Foreground Channel"); ++ sliderVolume->setProperty("value", masterVolumeFG); + } ++ } + -+ textSrc->setProperty("text", audiosources); -+ textVol->setProperty("text", audiovolumes); ++ textSrc->setProperty("text", audiosources); ++ textVol->setProperty("text", audiovolumes); +} + -+ -+void QMLButtonEventsReceiver::slotCallStart() ++void QMLButtonEventsReceiver::slotMediaEnd() +{ -+ qDebug() << "QMLButtonEventsReceiver::slotCallStart()"; ++ qDebug() << "slotMediaEnd"; ++ amgr->Disconnect("MediaPlayer", "AlsaPrimary"); + QProcess *p1 = new QProcess(); -+ p1->start("./starttel.sh"); ++ p1->start("/usr/bin/am-poc/stopmusic.sh"); ++ ++ QObject *connectOptions = view->rootObject()->findChild<QObject*>("music"); ++ connectOptions->setProperty("text", "Play Music"); +} + ++void QMLButtonEventsReceiver::slotCarEnd() ++{ ++ qDebug() << "slotCarEnd"; ++ amgr->Disconnect("ReverseBeep", "AlsaSecondary"); ++ QProcess *p1 = new QProcess(); ++ p1->start("/usr/bin/am-poc/stopCarReverse.sh"); ++ ++ QObject *connectOptions = view->rootObject()->findChild<QObject*>("parking"); ++ connectOptions->setProperty("text", "Parking Signal"); ++} + -+void QMLButtonEventsReceiver::slotCallEnd() ++void QMLButtonEventsReceiver::slotNavEnd() +{ -+ qDebug() << "QMLButtonEventsReceiver::slotCallEnd()"; ++ qDebug() << "slotNavEnd"; ++ amgr->Disconnect("NaviPlayer", "AlsaSecondary"); + QProcess *p1 = new QProcess(); -+ p1->start("./endtel.sh"); ++ p1->start("/usr/bin/am-poc/stopnav.sh"); ++ ++ QObject *connectOptions = view->rootObject()->findChild<QObject*>("nav"); ++ connectOptions->setProperty("text", "Navigation Message"); +} + ++ +void QMLButtonEventsReceiver::slotTTSEnd() +{ -+ amgr->Disconnect("Text To Speech", "Foreground_Channel"); ++ qDebug() << "slotTTSEnd"; ++ amgr->Disconnect("TTSPlayer", "AlsaSecondary"); ++ QProcess *p1 = new QProcess(); ++ p1->start("/usr/bin/am-poc/stoptts.sh"); ++ ++ QObject *connectOptions = view->rootObject()->findChild<QObject*>("tts"); ++ connectOptions->setProperty("text", "Text To Speech"); +} + -+void QMLButtonEventsReceiver::slotNavEnd() ++void QMLButtonEventsReceiver::slotTelEnd() +{ -+ amgr->Disconnect("Navigation", "Foreground_Channel"); ++ qDebug() << "slotTelEnd"; ++ amgr->Disconnect("Skype", "AlsaSecondary"); ++ QProcess *p1 = new QProcess(); ++ p1->start("/usr/bin/am-poc/stoptel.sh"); ++ ++ QObject *connectOptions = view->rootObject()->findChild<QObject*>("phone"); ++ connectOptions->setProperty("text", "Start Phone Call"); +} diff --git a/AudioManagerPoC/qmlbuttoneventsreceiver.h b/AudioManagerPoC/qmlbuttoneventsreceiver.h new file mode 100644 -index 0000000..6a3e387 +index 0000000..4d0eb10 --- /dev/null +++ b/AudioManagerPoC/qmlbuttoneventsreceiver.h -@@ -0,0 +1,40 @@ +@@ -0,0 +1,63 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioNanager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ */ ++ +#ifndef QMLBUTTONEVENTSRECEIVER_H +#define QMLBUTTONEVENTSRECEIVER_H + +#include <QObject> -+//#include <QDeclarativeView> +#include <QQuickView> ++ +#include "audiomanager.h" + +#define BACKGROUND_CHANNEL 1 @@ -8886,149 +7179,55 @@ index 0000000..6a3e387 + + +public slots: -+ void refreshInfo(); -+ void slotCallStart(); -+ void slotCallEnd(); ++ void slotRefreshInfo(); ++ //void slotCallStart(); + + void slotSourceConnected(QString sourceName); + void slotSourceDisconnected(QString sourceName); + void slotSourceSuspended(QString sourceName); + -+ void slotTTSEnd(); ++ void slotMediaEnd(); ++ void slotCarEnd(); + void slotNavEnd(); ++ void slotTTSEnd(); ++ void slotTelEnd(); ++ + +private: -+ QQuickView *view; ++ QQuickView *view; + audiomanager *amgr; + int channel; +}; + +#endif // QMLBUTTONEVENTSRECEIVER_H -diff --git a/AudioManagerPoC/skype.cpp b/AudioManagerPoC/skype.cpp -new file mode 100644 -index 0000000..b0f56ca ---- /dev/null -+++ b/AudioManagerPoC/skype.cpp -@@ -0,0 +1,27 @@ -+#include "skype.h" -+ -+#include <QDebug> -+#include <QDBusPendingCall> -+ -+skype::skype(QDBusConnection &connection, QObject *parent) : -+ QDBusAbstractInterface( -+ QString("com.Skype.API"), -+ QString("/com/Skype"), -+ "com.Skype.API", -+ connection, -+ parent) -+{ -+} -+ -+void skype::Invoke(const QString cmd) -+{ -+ QList<QVariant> args; -+ args << cmd; -+ QDBusMessage res = this->call("Invoke", cmd); -+ qDebug() << "SKYPE CMD:" << cmd << ":" << res.arguments(); -+} -+ -+void skype::InvokeCallback() -+{ -+ qDebug() << "InvokeCallback"; -+} -diff --git a/AudioManagerPoC/skype.h b/AudioManagerPoC/skype.h -new file mode 100644 -index 0000000..2014a0c ---- /dev/null -+++ b/AudioManagerPoC/skype.h -@@ -0,0 +1,19 @@ -+#ifndef SKYPE_H -+#define SKYPE_H -+ -+#include <QObject> -+#include <QDBusAbstractInterface> -+ -+class skype : public QDBusAbstractInterface -+{ -+ Q_OBJECT -+public: -+ skype(QDBusConnection &connection, QObject *parent); -+ -+public slots: -+ void InvokeCallback(); -+ -+ void Invoke(const QString cmd); -+}; -+ -+#endif // SKYPE_H -diff --git a/AudioManagerPoC/skypeclient.cpp b/AudioManagerPoC/skypeclient.cpp -new file mode 100644 -index 0000000..2be0340 ---- /dev/null -+++ b/AudioManagerPoC/skypeclient.cpp -@@ -0,0 +1,31 @@ -+#include "skypeclient.h" -+#include <QDebug> -+#include <QDBusConnection> -+ -+skypeclient::skypeclient(QDBusConnection l_bus, QObject *parent) : QObject(parent) -+{ -+ bool x = l_bus.registerObject(QString("/com/Skype/Client"), this, -+ QDBusConnection::ExportAllSlots -+ | QDBusConnection::ExportAllSignals ); -+ qDebug() << x; -+} -+ -+void skypeclient::Notify(const QString &cmd) -+{ -+ static bool started = false; -+ qDebug() << "SKYPE NOTIFY:" << cmd; -+ if (cmd.contains("CALL")) -+ { -+ if (cmd.contains("RINGIN") && !started) -+ { -+ qDebug() << "SKYPE NOTIFY:" << cmd; -+ started = true; -+ emit callStart(); -+ } -+ if (started && (cmd.contains("FINISHED") || cmd.contains("MISSED" ))) -+ { -+ started = false; -+ emit callEnd(); -+ } -+ } -+} -diff --git a/AudioManagerPoC/skypeclient.h b/AudioManagerPoC/skypeclient.h -new file mode 100644 -index 0000000..e3f3a6c +diff --git a/AudioManagerPoC/setvolume.sh b/AudioManagerPoC/setvolume.sh +new file mode 100755 +index 0000000..a75bf8c --- /dev/null -+++ b/AudioManagerPoC/skypeclient.h -@@ -0,0 +1,24 @@ -+#ifndef SKYPECLIENT_H -+#define SKYPECLIENT_H -+ -+#include <QDBusArgument> -+#include <QDBusContext> -+#include <QDBusConnection> -+ -+class skypeclient : public QObject -+{ -+ Q_OBJECT -+ -+ Q_CLASSINFO("D-Bus Interface", "com.Skype.API.Client"); -+public: -+ skypeclient(QDBusConnection l_bus, QObject *parent); -+ -+public slots: -+ void Notify(const QString &cmd); ++++ b/AudioManagerPoC/setvolume.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh + -+signals: -+ void callStart(); -+ void callEnd(); -+}; ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# + -+#endif // SKYPECLIENT_H ++RESULT=`python -c 'import dbus; print dbus.SessionBus().call_blocking("org.genivi.audiomanager", "/org/genivi/audiomanager/commandinterface", "org.genivi.audiomanager.commandinterface", "SetVolume", "ui", (dbus.UInt32(100), dbus.UInt32('$1') ))'` diff --git a/AudioManagerPoC/sound.png b/AudioManagerPoC/sound.png new file mode 100644 index 0000000000000000000000000000000000000000..4101212d36df7421a54d90e811f2cd597be1d8db @@ -9054,12 +7253,186 @@ eV}JITJN^RBi@IOL`IbWf0000<MNUMnLSTZnmtl?o literal 0 HcmV?d00001 +diff --git a/AudioManagerPoC/start_am-poc.sh b/AudioManagerPoC/start_am-poc.sh +new file mode 100755 +index 0000000..dd1bc2e +--- /dev/null ++++ b/AudioManagerPoC/start_am-poc.sh +@@ -0,0 +1,8 @@ ++#! /bin/sh ++ ++export DBUS_FATAL_WARNINGS=0 ++export `dbus-launch` ++pulseaudio -p /usr/lib/pulse-5.0/modules/ -n -F /etc/pulse/am_poc.pa & ++AudioManager -c/usr/lib/audioManager/control/libPluginControlInterface.so -l/usr/lib/audioManager/command/ -r/usr/lib/audioManager/routing/ & ++export XDG_RUNTIME_DIR=/var/run/user/0 ++/usr/bin/am-poc/AudioManager_PoC +diff --git a/AudioManagerPoC/stopCarReverse.sh b/AudioManagerPoC/stopCarReverse.sh +new file mode 100755 +index 0000000..d85398b +--- /dev/null ++++ b/AudioManagerPoC/stopCarReverse.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++ ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# ++ ++ps aux | grep [c]ar_reverse.wav | awk '{print $2}' | xargs kill -9 +diff --git a/AudioManagerPoC/stopmusic.sh b/AudioManagerPoC/stopmusic.sh +new file mode 100755 +index 0000000..3e014cc +--- /dev/null ++++ b/AudioManagerPoC/stopmusic.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++ ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# ++ ++ps aux | grep [U]NKLE | awk '{print $2}' | xargs kill -9 +diff --git a/AudioManagerPoC/stopnav.sh b/AudioManagerPoC/stopnav.sh +new file mode 100755 +index 0000000..cc54cac +--- /dev/null ++++ b/AudioManagerPoC/stopnav.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++ ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# ++ ++ps aux | grep [n]avigation.wav | awk '{print $2}' | xargs kill -9 +diff --git a/AudioManagerPoC/stoptel.sh b/AudioManagerPoC/stoptel.sh +new file mode 100755 +index 0000000..ff7c544 +--- /dev/null ++++ b/AudioManagerPoC/stoptel.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++ ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# ++ ++ps aux | grep [t]elephone | awk '{print $2}' | xargs kill -9 +diff --git a/AudioManagerPoC/stoptts.sh b/AudioManagerPoC/stoptts.sh +new file mode 100755 +index 0000000..e02dda3 +--- /dev/null ++++ b/AudioManagerPoC/stoptts.sh +@@ -0,0 +1,22 @@ ++#!/bin/sh ++ ++# SPDX license identifier: MPL-2.0 ++# ++# Copyright (C) 2011-2014, Wind River Systems ++# Copyright (C) 2014, GENIVI Alliance ++# ++# This file is part of GENIVI AudioNanager PoC. ++# ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License (MPL), 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/. ++# ++# For further information see http://www.genivi.org/. ++# ++# List of changes: ++# ++# 21.09.2014, Adrian Scarlat, First version of the code; ++# Added Copyright and License information; ++# ++ ++ps aux | grep [t]ts.wav | awk '{print $2}' | xargs kill -9 diff --git a/AudioManagerPoC/tabs.js b/AudioManagerPoC/tabs.js new file mode 100644 -index 0000000..1441b06 +index 0000000..c43cb84 --- /dev/null +++ b/AudioManagerPoC/tabs.js -@@ -0,0 +1,19 @@ +@@ -0,0 +1,36 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioNanager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ * ++ */ + +var tabIDS = new Array(); + @@ -9071,38 +7444,47 @@ index 0000000..1441b06 + console.log("newSelectedTab, newSelectedTabContent", newSelectedTab, newSelectedTabContent); + if (oldSelectedTab) + { -+ //oldSelectedTab.unselect(); + oldSelectedTab.visible = false; + } -+ //newSelectedTabContent.visible = true; + + oldSelectedTab = newSelectedTab; -+ //oldSelectedTabContent = newSelectedTabContent; +} diff --git a/AudioManagerPoC/volumechart.cpp b/AudioManagerPoC/volumechart.cpp new file mode 100644 -index 0000000..50e84d0 +index 0000000..6cff8aa --- /dev/null +++ b/AudioManagerPoC/volumechart.cpp -@@ -0,0 +1,98 @@ -+#include "volumechart.h" +@@ -0,0 +1,86 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioNanager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ */ + -+//#include <qdeclarativeextensionplugin.h> +#include <qqmlextensionplugin.h> -+ -+//#include <qdeclarativeengine.h> -+#include <qqmlengine.h> -+ -+//#include <qdeclarative.h> -+//#include <qdeclarativeitem.h> -+#include <qquickitem.h> -+//#include <qdeclarativeimageprovider.h> -+#include <qquickimageprovider.h> -+//#include <qdeclarativeview.h> -+#include <qquickview.h> -+#include <QDebug> ++#include <QQmlEngine> ++#include <QQuickItem> ++#include <QQuickImageProvider> ++#include <QQuickView> +#include <QImage> +#include <QPainter> ++#include <QDebug> ++ ++#include "volumechart.h" + +QList<QList<int> > volumechart::volumes; + @@ -9120,7 +7502,6 @@ index 0000000..50e84d0 + volumechart::volumes.push_back(l4); + QList<int> l5; + volumechart::volumes.push_back(l5); -+ qDebug() << "V1"; +} + +QPixmap volumechart::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) @@ -9152,7 +7533,6 @@ index 0000000..50e84d0 + { + limitMin = volumes[src].size() - 40; + } -+ //qDebug() << limitMin; + for (int i = limitMin; i < volumes[src].size(); i++) + { + painter.drawLine((i - 1 - (limitMin -1)) * 10, src * 2 + 75 - volumes[src][i - 1] / 2, @@ -9161,38 +7541,35 @@ index 0000000..50e84d0 + } + return pixmap; +} -+ -+/* -+class ImageProviderExtensionPlugin : public QDeclarativeExtensionPlugin -+{ -+ Q_OBJECT -+public: -+ void registerTypes(const char *uri) -+ { -+ Q_UNUSED(uri); -+ } -+ -+ void initializeEngine(QDeclarativeEngine *engine, const char *uri) -+ { -+ Q_UNUSED(uri); -+ engine->addImageProvider("volumes", new volumechart); -+ } -+}; -+ -+#include "imageprovider.moc" -+ -+Q_EXPORT_PLUGIN(ImageProviderExtensionPlugin); -+*/ diff --git a/AudioManagerPoC/volumechart.h b/AudioManagerPoC/volumechart.h new file mode 100644 -index 0000000..109dd3a +index 0000000..6eab601 --- /dev/null +++ b/AudioManagerPoC/volumechart.h -@@ -0,0 +1,22 @@ +@@ -0,0 +1,41 @@ ++/** ++ * SPDX license identifier: MPL-2.0 ++ * ++ * Copyright (C) 2011-2014, Wind River Systems ++ * Copyright (C) 2014, GENIVI Alliance ++ * ++ * This file is part of GENIVI AudioNanager PoC. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License (MPL), 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/. ++ * ++ * For further information see http://www.genivi.org/. ++ * ++ * List of changes: ++ * ++ * 21.09.2014, Adrian Scarlat, First version of the code; ++ * Added Copyright and License information; ++ */ ++ +#ifndef VOLUMECHART_H +#define VOLUMECHART_H + -+//#include <QDeclarativeImageProvider> +#include <QQuickImageProvider> +#include <QQuickView> +#include <QPixmap> |