summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author <philippe colliot>2014-10-17 18:24:40 +0200
committer <philippe colliot>2014-10-17 18:24:40 +0200
commit1dd6909bdbd453b6edc661d5dfae5b074f6c7684 (patch)
tree5e2b3a21e8583823d1bd8a5eac04b68c8695642c
parent2de0fb16798f86ff80ccb4223089beffbab75c35 (diff)
downloadnavigation-1dd6909bdbd453b6edc661d5dfae5b074f6c7684.tar.gz
some updates for ilm migration (preliminary)
-rw-r--r--.gitignore2
-rw-r--r--src/CMakeLists.txt25
-rw-r--r--src/hmi/qml/CameraSettings.qml30
-rw-r--r--src/hmi/qml/Core/genivi.js4
-rw-r--r--src/hmi/qml/Entry.qml4
-rw-r--r--src/hmi/qml/EntrySimple.qml3
-rw-r--r--src/hmi/qml/NavigationBrowseMap.qml76
-rw-r--r--src/hmi/qml/application.qml8
-rw-r--r--src/hmi/qml/hmi-launcher/CMakeLists.txt22
-rw-r--r--src/hmi/qml/hmi-launcher/hmi-launcher.pro28
-rw-r--r--src/hmi/qml/hmi-launcher/lm_control.cpp152
-rw-r--r--src/hmi/qml/hmi-launcher/lm_control.h74
-rw-r--r--src/hmi/qml/hmi-launcher/main.cpp25
m---------src/ilm0
-rw-r--r--src/patches/amb_allow_sessionbus.patch1
-rw-r--r--src/patches/layer_management_cast_fix.patch13
-rwxr-xr-xsrc/script/build.sh47
-rw-r--r--src/script/fsa-config.sh6
18 files changed, 422 insertions, 98 deletions
diff --git a/.gitignore b/.gitignore
index 2861298..5c86de6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,8 @@
#folders
*-debug/
*-release/
+*-Debug/
+*-Release/
/.project
bin/
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d3c5662..c3d4e45 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -27,7 +27,7 @@ set (create_file cmake -E touch)
# Check if navigation-service stuff with the right version has been cloned and do it if necessary
set(navigation-service_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/navigation)
set(navigation-service_URL http://git.projects.genivi.org/lbs/navigation.git)
-set(navigation-service_VERSION 469f4bbb8e811ee024e2f831eceec79bd65578bd)
+set(navigation-service_VERSION dfeb9609b0944109325b554cab2e50a2c7a04079)
if (EXISTS ${navigation-service_SRC_DIR})
execute_process(
@@ -39,8 +39,9 @@ if (EXISTS ${navigation-service_SRC_DIR})
if (${version} MATCHES ${navigation-service_VERSION})
message(STATUS "version of navigation-service up to date")
else()
- message(STATUS "get the right version")
+ message(STATUS "get the right version of navigation-service")
execute_process(
+ COMMAND "${git_executable}" pull
COMMAND "${git_executable}" checkout ${navigation-service_VERSION}
WORKING_DIRECTORY "${navigation-service_SRC_DIR}"
RESULT_VARIABLE error_code
@@ -59,8 +60,9 @@ else()
message(FATAL_ERROR "Failed to clone repository: '${navigation-service_URL}'")
endif()
- message(STATUS "get the right version")
+ message(STATUS "get the right version of navigation-service")
execute_process(
+ COMMAND "${git_executable}" pull
COMMAND "${git_executable}" checkout ${navigation-service_VERSION}
WORKING_DIRECTORY "${navigation-service_SRC_DIR}"
RESULT_VARIABLE error_code
@@ -71,6 +73,7 @@ else()
endif()
# Check if automotive-message-broker stuff with the right version has been cloned and do it if necessary
+# please consider that patches have been applied
set(automotive-message-broker_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/automotive-message-broker)
set(automotive-message-broker_URL https://github.com/otcshare/automotive-message-broker.git)
set(automotive-message-broker_VERSION ac3fe53327a13afc571efe079a31a0472ea285a3)
@@ -87,8 +90,9 @@ if (EXISTS ${automotive-message-broker_SRC_DIR})
if (${version} MATCHES ${automotive-message-broker_VERSION})
message(STATUS "version of automotive-message-broker up to date")
else()
- message(STATUS "get the right version")
+ message(STATUS "get the right version of automotive-message-broker")
execute_process(
+ COMMAND "${git_executable}" pull
COMMAND "${git_executable}" checkout ${automotive-message-broker_VERSION}
WORKING_DIRECTORY "${automotive-message-broker_SRC_DIR}"
RESULT_VARIABLE error_code
@@ -106,8 +110,9 @@ else()
if(error_code)
message(FATAL_ERROR "Failed to clone repository: '${automotive-message-broker_URL}'")
endif()
- message(STATUS "get the right version")
+ message(STATUS "get the right version of automotive-message-broker")
execute_process(
+ COMMAND "${git_executable}" pull
COMMAND "${git_executable}" checkout ${automotive-message-broker_VERSION}
WORKING_DIRECTORY "${automotive-message-broker_SRC_DIR}"
RESULT_VARIABLE error_code
@@ -119,9 +124,9 @@ endif()
set (PATCH_EXECUTABLE patch -p1 -s)
if (EXISTS ${automotive-message-broker_PATCH_DUMMY_FILE})
- message(STATUS "patch already applied")
+ message(STATUS "patch already applied to automotive-message-broker")
else()
- message(STATUS "apply the patch")
+ message(STATUS "apply the patch to automotive-message-broker")
execute_process(
COMMAND ${PATCH_EXECUTABLE} -i ${automotive-message-broker_PATCH_SRC_DIR}/amb_allow_sessionbus.patch
COMMAND ${create_file} ${automotive-message-broker_PATCH_DUMMY_FILE}
@@ -129,6 +134,10 @@ else()
WORKING_DIRECTORY "${automotive-message-broker_SRC_DIR}"
RESULT_VARIABLE error_code
)
- message( STATUS "Patch result: ${error_code}, PROF SOURCE DIR: ${automotive-message-broker_SRC_DIR}" )
+ if(error_code)
+ message(FATAL_ERROR "Failed to apply the patch")
+ endif()
endif()
+
+
diff --git a/src/hmi/qml/CameraSettings.qml b/src/hmi/qml/CameraSettings.qml
index acdb790..08d2e09 100644
--- a/src/hmi/qml/CameraSettings.qml
+++ b/src/hmi/qml/CameraSettings.qml
@@ -94,20 +94,30 @@ HMIMenu {
function showSurfaces()
{
+ /****
Genivi.lm_message(dbusIf,"ServiceConnect",["uint32",dbusIf.pid()]);
- Genivi.lm_message(dbusIf,"SetSurfaceDestinationRegion",["uint32",2000+Genivi.g_map_handle[1],"uint32",map.x,"uint32",map.y,"uint32",map.width,"uint32",map.height]);
- Genivi.lm_message(dbusIf,"SetSurfaceSourceRegion",["uint32",2000+Genivi.g_map_handle[1],"uint32",0,"uint32",0,"uint32",map.width,"uint32",map.height]);
- Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",2000+Genivi.g_map_handle[1],"boolean",true]);
+ Genivi.lm_message(dbusIf,"SetSurfaceDestinationRegion",["uint32",Genivi.g_layer+Genivi.g_map_handle[1],"uint32",map.x,"uint32",map.y,"uint32",map.width,"uint32",map.height]);
+ Genivi.lm_message(dbusIf,"SetSurfaceSourceRegion",["uint32",Genivi.g_layer+Genivi.g_map_handle[1],"uint32",0,"uint32",0,"uint32",map.width,"uint32",map.height]);
+ Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",Genivi.g_layer+Genivi.g_map_handle[1],"boolean",true]);
Genivi.lm_message(dbusIf,"CommitChanges",[]);
Genivi.lm_message(dbusIf,"ServiceDisconnect",["uint32",dbusIf.pid()]);
+ ****/
+ lm_control.surface_set_destination_rectangle(Genivi.g_layer+Genivi.g_map_handle[1], 7, 140, 1906/*map.width*/, 760/*map.height*/);
+ lm_control.surface_set_source_rectangle(Genivi.g_layer+Genivi.g_map_handle[1], 0, 0, map.width, map.height);
+ lm_control.surface_set_visibility(Genivi.g_layer+Genivi.g_map_handle[1], 1);
+ lm_control.commit_changes();
}
function hideSurfaces()
{
+ /****
Genivi.lm_message(dbusIf,"ServiceConnect",["uint32",dbusIf.pid()]);
- Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",2000+Genivi.g_map_handle[1],"boolean",false]);
+ Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",Genivi.g_layer+Genivi.g_map_handle[1],"boolean",false]);
Genivi.lm_message(dbusIf,"CommitChanges",[]);
Genivi.lm_message(dbusIf,"ServiceDisconnect",["uint32",dbusIf.pid()]);
+ ****/
+ lm_control.surface_set_visibility(Genivi.g_layer+Genivi.g_map_handle[1], 0);
+ lm_control.commit_changes();
}
function move_start(lat, lon)
@@ -218,7 +228,8 @@ HMIMenu {
function toggleSplit()
{
- hideSurfaces();
+ if (Genivi.g_layer_manager == true)
+ hideSurfaces();
var res=Genivi.mapviewercontrol_message(dbusIf,"GetDisplayedRoutes",[]);
var res3=Genivi.mapviewercontrol_message(dbusIf, "GetMapViewTheme", []);
if (split.text == Genivi.gettext("Split")) {
@@ -256,7 +267,8 @@ HMIMenu {
}
}
}
- showSurfaces();
+ if (Genivi.g_layer_manager == true)
+ showSurfaces();
updateMapViewer();
}
@@ -380,7 +392,8 @@ HMIMenu {
Genivi.data['show_current_position']=true;
move_stop();
camera_stop();
- hideSurfaces();
+ if (Genivi.g_layer_manager == true)
+ hideSurfaces();
pageOpen("NavigationBrowseMap");
}
}
@@ -407,7 +420,8 @@ HMIMenu {
}
Component.onCompleted: {
Genivi.map_handle(dbusIf,menu.width,menu.height,Genivi.MAPVIEWER_MAIN_MAP);
- showSurfaces();
+ if (Genivi.g_layer_manager == true)
+ showSurfaces();
updateMapViewer();
updateDayNight();
}
diff --git a/src/hmi/qml/Core/genivi.js b/src/hmi/qml/Core/genivi.js
index 9b8f8e0..a13b67a 100644
--- a/src/hmi/qml/Core/genivi.js
+++ b/src/hmi/qml/Core/genivi.js
@@ -39,6 +39,8 @@ var g_map_handle;
var g_map_handle2;
var g_poisearch_handle;
var g_lang;
+var g_layer_manager = false; //no layer manager by default
+var g_layer;
var data=new Array;
@@ -54,6 +56,8 @@ var entrydest;
var entrycriterion;
var entryselectedentry;
+var entrycancel = false; //set ti true when back button is pushed without any selection
+
var Maneuver = new Object;
Maneuver[NAVIGATIONCORE_INVALID]="INVALID";
Maneuver[NAVIGATIONCORE_CRUISE]="CRUISE";
diff --git a/src/hmi/qml/Entry.qml b/src/hmi/qml/Entry.qml
index 3f9b651..f6b4a82 100644
--- a/src/hmi/qml/Entry.qml
+++ b/src/hmi/qml/Entry.qml
@@ -159,9 +159,9 @@ HMIMenu {
} next:back; prev:view}
*/
StdButton { id:back; text: "Back"; onClicked: {
- Genivi.entrydest=null;
disconnectSignals();
- Genivi.entryselectedentry=0;
+ Genivi.entrycancel=true;
+ Genivi.preloadMode=true;
pageOpen(Genivi.entryback);
} next:view; prev:keyboard}
}
diff --git a/src/hmi/qml/EntrySimple.qml b/src/hmi/qml/EntrySimple.qml
index d5d9c60..6e8f2c3 100644
--- a/src/hmi/qml/EntrySimple.qml
+++ b/src/hmi/qml/EntrySimple.qml
@@ -71,7 +71,8 @@ HMIMenu {
pageOpen(Genivi.entryback);
} next:back; prev:keyboard}
StdButton { id:back; text: "Back"; onClicked: {
- Genivi.entrydest=null;
+ Genivi.entrycancel=true;
+ Genivi.preloadMode=true;
pageOpen(Genivi.entryback);
} next:keyboard; prev:ok}
}
diff --git a/src/hmi/qml/NavigationBrowseMap.qml b/src/hmi/qml/NavigationBrowseMap.qml
index a928cda..378592f 100644
--- a/src/hmi/qml/NavigationBrowseMap.qml
+++ b/src/hmi/qml/NavigationBrowseMap.qml
@@ -352,33 +352,61 @@ HMIMenu {
function showSurfaces()
{
- Genivi.lm_message(dbusIf,"ServiceConnect",["uint32",dbusIf.pid()]);
- if (Genivi.g_map_handle2) {
- Genivi.lm_message(dbusIf,"SetSurfaceDestinationRegion",["uint32",2000+Genivi.g_map_handle[1],"uint32",map.x,"uint32",map.y,"uint32",map.width/2,"uint32",map.height]);
- Genivi.lm_message(dbusIf,"SetSurfaceSourceRegion",["uint32",2000+Genivi.g_map_handle[1],"uint32",0,"uint32",0,"uint32",map.width/2,"uint32",map.height]);
- Genivi.lm_message(dbusIf,"SetSurfaceDestinationRegion",["uint32",2000+Genivi.g_map_handle2[1],"uint32",map.x+map.width/2,"uint32",map.y,"uint32",map.width/2,"uint32",map.height]);
- Genivi.lm_message(dbusIf,"SetSurfaceSourceRegion",["uint32",2000+Genivi.g_map_handle2[1],"uint32",0,"uint32",0,"uint32",map.width/2,"uint32",map.height]);
- Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",2000+Genivi.g_map_handle[1],"boolean",true]);
- Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",2000+Genivi.g_map_handle2[1],"boolean",true]);
- } else {
- Genivi.lm_message(dbusIf,"SetSurfaceDestinationRegion",["uint32",2000+Genivi.g_map_handle[1],"uint32",map.x,"uint32",map.y,"uint32",map.width,"uint32",map.height]);
- Genivi.lm_message(dbusIf,"SetSurfaceSourceRegion",["uint32",2000+Genivi.g_map_handle[1],"uint32",0,"uint32",0,"uint32",map.width,"uint32",map.height]);
- Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",2000+Genivi.g_map_handle[1],"boolean",true]);
- }
- Genivi.lm_message(dbusIf,"CommitChanges",[]);
- Genivi.lm_message(dbusIf,"ServiceDisconnect",["uint32",dbusIf.pid()]);
- }
+ /****
+ Genivi.lm_message(dbusIf,"ServiceConnect",["uint32",dbusIf.pid()]);
+ if (Genivi.g_map_handle2) {
+ Genivi.lm_message(dbusIf,"SetSurfaceDestinationRegion",["uint32",Genivi.g_layer+Genivi.g_map_handle[1],"uint32",map.x,"uint32",map.y,"uint32",map.width/2,"uint32",map.height]);
+ Genivi.lm_message(dbusIf,"SetSurfaceSourceRegion",["uint32",Genivi.g_layer+Genivi.g_map_handle[1],"uint32",0,"uint32",0,"uint32",map.width/2,"uint32",map.height]);
+ Genivi.lm_message(dbusIf,"SetSurfaceDestinationRegion",["uint32",Genivi.g_layer+Genivi.g_map_handle2[1],"uint32",map.x+map.width/2,"uint32",map.y,"uint32",map.width/2,"uint32",map.height]);
+ Genivi.lm_message(dbusIf,"SetSurfaceSourceRegion",["uint32",Genivi.g_layer+Genivi.g_map_handle2[1],"uint32",0,"uint32",0,"uint32",map.width/2,"uint32",map.height]);
+ Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",Genivi.g_layer+Genivi.g_map_handle[1],"boolean",true]);
+ Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",Genivi.g_layer+Genivi.g_map_handle2[1],"boolean",true]);
+ } else {
+ Genivi.lm_message(dbusIf,"SetSurfaceDestinationRegion",["uint32",Genivi.g_layer+Genivi.g_map_handle[1],"uint32",map.x,"uint32",map.y,"uint32",map.width,"uint32",map.height]);
+ Genivi.lm_message(dbusIf,"SetSurfaceSourceRegion",["uint32",Genivi.g_layer+Genivi.g_map_handle[1],"uint32",0,"uint32",0,"uint32",map.width,"uint32",map.height]);
+ Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",Genivi.g_layer+Genivi.g_map_handle[1],"boolean",true]);
+ }
+ Genivi.lm_message(dbusIf,"CommitChanges",[]);
+ Genivi.lm_message(dbusIf,"ServiceDisconnect",["uint32",dbusIf.pid()]);
+ ****/
+ if (Genivi.g_map_handle2) {
+ lm_control.surface_set_destination_rectangle(
+ Genivi.g_layer+Genivi.g_map_handle[1], map.x, map.y, map.width/2, map.height);
+ lm_control.surface_set_source_rectangle(
+ Genivi.g_layer+Genivi.g_map_handle[1], map.x, map.y, map.width/2, map.height);
+ lm_control.surface_set_destination_rectangle(
+ Genivi.g_layer+Genivi.g_map_handle2[1], map.x, map.y, map.width/2, map.height);
+ lm_control.surface_set_source_rectangle(
+ Genivi.g_layer+Genivi.g_map_handle2[1], map.x, map.y, map.width/2, map.height);
+ lm_control.surface_set_visibility(Genivi.g_layer+Genivi.g_map_handle[1], 1);
+ lm_control.surface_set_visibility(Genivi.g_layer+Genivi.g_map_handle2[1], 1);
+ } else {
+ lm_control.surface_set_destination_rectangle(
+ Genivi.g_layer+Genivi.g_map_handle[1], 7, 140, 1906/*map.width*/, 760/*map.height*/);
+ lm_control.surface_set_source_rectangle(
+ Genivi.g_layer+Genivi.g_map_handle[1], 0, 0, map.width, map.height);
+ lm_control.surface_set_visibility(Genivi.g_layer+Genivi.g_map_handle[1], 1);
+ }
+ lm_control.commit_changes();
+ }
function hideSurfaces()
{
- Genivi.lm_message(dbusIf,"ServiceConnect",["uint32",dbusIf.pid()]);
- if (Genivi.g_map_handle2) {
- Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",2000+Genivi.g_map_handle2[1],"boolean",false]);
- }
- Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",2000+Genivi.g_map_handle[1],"boolean",false]);
- Genivi.lm_message(dbusIf,"CommitChanges",[]);
- Genivi.lm_message(dbusIf,"ServiceDisconnect",["uint32",dbusIf.pid()]);
- }
+ /****
+ Genivi.lm_message(dbusIf,"ServiceConnect",["uint32",dbusIf.pid()]);
+ if (Genivi.g_map_handle2) {
+ Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",Genivi.g_layer+Genivi.g_map_handle2[1],"boolean",false]);
+ }
+ Genivi.lm_message(dbusIf,"SetSurfaceVisibility",["uint32",Genivi.g_layer+Genivi.g_map_handle[1],"boolean",false]);
+ Genivi.lm_message(dbusIf,"CommitChanges",[]);
+ Genivi.lm_message(dbusIf,"ServiceDisconnect",["uint32",dbusIf.pid()]);
+ ****/
+ if (Genivi.g_map_handle2) {
+ lm_control.surface_set_visibility(Genivi.g_layer+Genivi.g_map_handle2[1], 0);
+ }
+ lm_control.surface_set_visibility(Genivi.g_layer+Genivi.g_map_handle[1], 0);
+ lm_control.commit_changes();
+ }
function routeOverview()
{
diff --git a/src/hmi/qml/application.qml b/src/hmi/qml/application.qml
index cf18f1d..5c78800 100644
--- a/src/hmi/qml/application.qml
+++ b/src/hmi/qml/application.qml
@@ -36,8 +36,11 @@ import "Core/genivi.js" as Genivi;
ApplicationWindow {
id: container
+ visible: true
width: StyleSheetMap.menu[Constants.WIDTH];
height: StyleSheetMap.menu[Constants.HEIGHT];
+ property Item layer_manager;
+ property Item layer_number;
property Item component;
function load(page)
{
@@ -49,6 +52,11 @@ ApplicationWindow {
Component.onCompleted: {
Genivi.setlang("eng_USA"); //by default set to english US
+ if (layer_manager)
+ {
+ Genivi.g_layer_manager = true;
+ Genivi.g_layer = layer_number;
+ }
load("MainMenu");
}
}
diff --git a/src/hmi/qml/hmi-launcher/CMakeLists.txt b/src/hmi/qml/hmi-launcher/CMakeLists.txt
index 603e60f..f52c268 100644
--- a/src/hmi/qml/hmi-launcher/CMakeLists.txt
+++ b/src/hmi/qml/hmi-launcher/CMakeLists.txt
@@ -13,6 +13,9 @@
# Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
# this file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# List of changes:
+# 13-10-2014, Tanibata, Nobuhiko, adaptation to layer management
+#
# @licence end@
###########################################################################
project(hmi-launcher)
@@ -31,6 +34,20 @@ pkg_check_modules(QT5_DBUS REQUIRED Qt5DBus)
pkg_check_modules(QT5_WIDGETS REQUIRED Qt5Widgets)
pkg_check_modules(QT5_GUI REQUIRED Qt5Gui)
pkg_check_modules(QT5_NETWORK REQUIRED Qt5Network)
+pkg_check_modules(QT5_OPENGL REQUIRED glesv2)
+
+
+if (${LM} EQUAL 1 )
+ message("building with layer management")
+ set(ILM_LIBRARIES "-lilmCommon -lilmClient -lilmControl")
+ include_directories(${QT5_OPENGL_INCLUDE_DIRS})
+ include_directories(${ILM_INCLUDE_DIRS})
+ file(GLOB ILM_SOURCES lm_control.cpp lm_control.h)
+ add_definitions(-DLM)
+else()
+ message("building without layer management")
+endif()
+
include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(${QT5_CORE_INCLUDE_DIRS})
@@ -65,6 +82,8 @@ link_directories(
${QT5_GUI_LIBRARY_DIRS}
${QT5_NETWORK_LIBRARY_DIRS}
${DBUS_LIBRARY_DIRS}
+ ${QT5_OPENGL_LIBRARY_DIRS}
+ ${ILM_LIBRARY_DIRS}
)
set(LIBRARIES
@@ -76,6 +95,8 @@ set(LIBRARIES
${QT5_GUI_LIBRARIES}
${QT5_NETWORK_LIBRARIES}
${DBUS_LIBRARIES}
+ ${QT5_OPENGL_LIBRARIES}
+ ${ILM_LIBRARIES}
)
# generate constants used by the QML files
@@ -135,6 +156,7 @@ add_executable(hmi-launcher
dbusifsignal.h
wheelarea.h
preference.h
+ ${ILM_SOURCES}
)
target_link_libraries(hmi-launcher ${LIBRARIES})
diff --git a/src/hmi/qml/hmi-launcher/hmi-launcher.pro b/src/hmi/qml/hmi-launcher/hmi-launcher.pro
deleted file mode 100644
index 479a65b..0000000
--- a/src/hmi/qml/hmi-launcher/hmi-launcher.pro
+++ /dev/null
@@ -1,28 +0,0 @@
-lessThan(QT_MAJOR_VERSION, 5): error(This project requires Qt 5 or later)
-
-TARGET = hmi-launcher
-OBJECTS_DIR = tmp
-MOC_DIR = tmp
-INCLUDEPATH += compat
-CONFIG += qt plugin
-QT += qml quick widgets dbus
-#CONFIG+=qml_debug
-TEMPLATE = app
-
-SOURCES += main.cpp \
- dbusif.cpp \
- wheelareaplugin.cpp \
- preference.cpp
-unix {
- CONFIG += link_pkgconfig
- PKGCONFIG += dbus-1
-}
-
-INCLUDEPATH += $$PWD/../../../bin/hmi/qml
-DEPENDPATH += $$PWD/../../../bin/hmi/qml
-
-HEADERS += \
- dbusif.h \
- dbusifsignal.h \
- wheelarea.h \
- preference.h
diff --git a/src/hmi/qml/hmi-launcher/lm_control.cpp b/src/hmi/qml/hmi-launcher/lm_control.cpp
new file mode 100644
index 0000000..840a0dc
--- /dev/null
+++ b/src/hmi/qml/hmi-launcher/lm_control.cpp
@@ -0,0 +1,152 @@
+/**
+* @licence app begin@
+* SPDX-License-Identifier: MPL-2.0
+*
+* \copyright Copyright (C) 2014 DENSO CORPORATION
+*
+* \file lm_control.cpp
+*
+* \brief This file is part of the FSA HMI.
+*
+* \author Tanibata, Nobuhiko <NOBUHIKO_TANIBATA@denso.co.jp>
+*
+* \version 1.0
+*
+* 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:
+*
+* <date>, <name>, <description of change>
+*
+* @licence end@
+*/
+#include <stdio.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include "lm_control.h"
+#include "ilm_client.h"
+#include "ilm_control.h"
+#include "ilm_common.h"
+
+t_ilm_layer application;
+t_ilm_layer navit;
+
+lm_control::lm_control(QObject *parent)
+{
+ (void)parent;
+ ilm_init();
+ return;
+}
+
+lm_control::~lm_control()
+{
+ ilm_destroy();
+}
+
+void
+lm_control::surface_set_visibility(int surfaceid, int visibility)
+{
+ t_ilm_surface surface_id = 0;
+ t_ilm_bool ilm_visibility = 0;
+
+ LOG_INFO("lm_control::surface_set_visibility"
+ "(surfaceid=%d, visibility=%d)\n"
+ ,surfaceid ,visibility);
+
+ surface_id = (t_ilm_surface)surfaceid;
+ ilm_visibility = (t_ilm_bool)visibility;
+
+ ilmErrorTypes ret = ilm_surfaceSetVisibility(surface_id, ilm_visibility);
+
+ if (ILM_SUCCESS != ret)
+ {
+ LOG_WARNING("failed to layer_set_visibility.\n");
+ }
+}
+
+void
+lm_control::surface_set_source_rectangle(
+ int surfaceid, int x, int y, int width, int height)
+{
+ t_ilm_surface surface_id = 0;
+ t_ilm_int ilm_x = 0;
+ t_ilm_int ilm_y = 0;
+ t_ilm_int ilm_width = 0;
+ t_ilm_int ilm_height = 0;
+
+ LOG_INFO("lm_control::surface_set_source_rectangle"
+ "(surfaceid=%d, x=%d, y=%d, width=%d, height=%d)\n"
+ ,surfaceid ,x ,y ,width ,height);
+
+ surface_id = (t_ilm_surface)surfaceid;
+ ilm_x = (t_ilm_int)x;
+ ilm_y = (t_ilm_int)y;
+ ilm_width = (t_ilm_int)width;
+ ilm_height = (t_ilm_int)height;
+
+ ilmErrorTypes ret = ilm_surfaceSetSourceRectangle(
+ surface_id, ilm_x, ilm_y, ilm_width, ilm_height);
+
+ if (ILM_SUCCESS != ret)
+ {
+ LOG_WARNING("failed to surface_set_source_rectangle.\n");
+ }
+}
+
+void
+lm_control::surface_set_destination_rectangle(
+ int surfaceid, int x, int y, int width, int height)
+{
+ t_ilm_surface surface_id = 0;
+ t_ilm_int ilm_x = 0;
+ t_ilm_int ilm_y = 0;
+ t_ilm_int ilm_width = 0;
+ t_ilm_int ilm_height = 0;
+
+ LOG_INFO("lm_control::surface_set_destination_rectangle"
+ "(surfaceid=%d, x=%d, y=%d, width=%d, height=%d)\n"
+ ,surfaceid ,x ,y ,width ,height);
+
+ surface_id = (t_ilm_surface)surfaceid;
+ ilm_x = (t_ilm_int)x;
+ ilm_y = (t_ilm_int)y;
+ ilm_width = (t_ilm_int)width;
+ ilm_height = (t_ilm_int)height;
+
+ ilmErrorTypes ret = ilm_surfaceSetDestinationRectangle(
+ surface_id, ilm_x, ilm_y, ilm_width, ilm_height);
+
+ if (ILM_SUCCESS != ret)
+ {
+ LOG_WARNING("failed to surface_set_destination_rectangle.\n");
+ }
+}
+
+void
+lm_control::surface_remove(int surfaceid)
+{
+ LOG_INFO("lm_control::surface_remove(surfaceid=%d)\n", surfaceid);
+
+ ilmErrorTypes ret = ilm_surfaceRemove(surfaceid);
+ if (ILM_SUCCESS != ret)
+ {
+ LOG_WARNING("failed to surface_remove.\n");
+ }
+}
+
+void
+lm_control::commit_changes()
+{
+ LOG_INFO("lm_control::commit_changes()\n");
+
+ ilmErrorTypes ret = ilm_commitChanges();
+ if (ILM_SUCCESS != ret)
+ {
+ LOG_WARNING("failed to comit_changes.\n");
+ }
+}
diff --git a/src/hmi/qml/hmi-launcher/lm_control.h b/src/hmi/qml/hmi-launcher/lm_control.h
new file mode 100644
index 0000000..50a2e5f
--- /dev/null
+++ b/src/hmi/qml/hmi-launcher/lm_control.h
@@ -0,0 +1,74 @@
+/**
+* @licence app begin@
+* SPDX-License-Identifier: MPL-2.0
+*
+* \copyright Copyright (C) 2014 DENSO CORPORATION
+*
+* \file lm_control.h
+*
+* \brief This file is part of the FSA HMI.
+*
+* \author Tanibata, Nobuhiko <NOBUHIKO_TANIBATA@denso.co.jp>
+*
+* \version 1.0
+*
+* 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:
+*
+* <date>, <name>, <description of change>
+*
+* @licence end@
+*/
+#ifndef LM_CONTROL_H
+#define LM_CONTROL_H
+
+#include <stdio.h>
+#include <QObject>
+
+#define DEBUG_LEVEL 2
+
+#define LOG_INFO(...) { \
+ if (0 < DEBUG_LEVEL) { \
+ printf("[INFO] " __VA_ARGS__); \
+ fflush(stdout); \
+ } \
+}
+
+#define LOG_WARNING(...) { \
+ if (1 < DEBUG_LEVEL) { \
+ printf("[WARNING] " __VA_ARGS__); \
+ fflush(stdout); \
+ } \
+}
+
+#define LOG_ERROR(...) { \
+ if (1 < DEBUG_LEVEL) { \
+ printf("[ERROR] " __VA_ARGS__); \
+ fflush(stdout); \
+ } \
+}
+
+class lm_control : QObject
+{
+ Q_OBJECT
+
+ public:
+ lm_control(QObject *parent = 0);
+ ~lm_control();
+
+ Q_INVOKABLE void surface_set_visibility(int surfaceid, int visibility);
+ Q_INVOKABLE void surface_set_source_rectangle(
+ int surfaceid, int x, int y, int width, int height);
+ Q_INVOKABLE void surface_set_destination_rectangle(
+ int surfaceid, int x, int y, int width, int height);
+ Q_INVOKABLE void surface_remove(int surfaceid);
+ Q_INVOKABLE void commit_changes();
+};
+
+#endif // LM_CONTROL_H
diff --git a/src/hmi/qml/hmi-launcher/main.cpp b/src/hmi/qml/hmi-launcher/main.cpp
index 5045995..77dccfc 100644
--- a/src/hmi/qml/hmi-launcher/main.cpp
+++ b/src/hmi/qml/hmi-launcher/main.cpp
@@ -9,6 +9,7 @@
* \brief This file is part of the FSA HMI.
*
* \author Philippe Colliot <philippe.colliot@mpsa.com>
+* \author Tanibata, Nobuhiko <NOBUHIKO_TANIBATA@denso.co.jp>
*
* \version 1.0
*
@@ -21,7 +22,7 @@
*
* List of changes:
*
-* <date>, <name>, <description of change>
+* 13-10-2014, Tanibata, Nobuhiko, adaptation to layer management
*
* @licence end@
*/
@@ -33,10 +34,15 @@
#include <QQmlEngine>
#include <QQuickWindow>
#include <QSurfaceFormat>
+#include <QQmlContext>
#include "dbusif.h"
#include "wheelarea.h"
#include "preference.h"
+#if LM
+ #include "lm_control.h"
+#endif
+
int main(int argc, char ** argv)
{
QApplication app(argc, argv);
@@ -48,6 +54,10 @@ int main(int argc, char ** argv)
int rc = 0;
+#if LM
+ lm_control lmc;
+#endif
+
QQmlEngine engine;
QQmlComponent *component = new QQmlComponent(&engine);
@@ -64,8 +74,21 @@ int main(int argc, char ** argv)
return -1;
}
+ QQmlContext *context = engine.rootContext();
+
+#if LM
+ context->setContextProperty("lm_control", (QObject*)&lmc);
+#endif
+
QObject *topLevel = component->create();
+#if LM
+ topLevel->setProperty("layer_manager", 1);
+ topLevel->setProperty("layer_number", argv[2]);
+#else
+ topLevel->setProperty("layer_manager", 0);
+#endif
+
QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);
window->setFlags(Qt::CustomizeWindowHint);
diff --git a/src/ilm b/src/ilm
new file mode 160000
+Subproject d3927a6ae5e6c9230d55b6ba4195d434586521c
diff --git a/src/patches/amb_allow_sessionbus.patch b/src/patches/amb_allow_sessionbus.patch
index d9b77c8..d8312c3 100644
--- a/src/patches/amb_allow_sessionbus.patch
+++ b/src/patches/amb_allow_sessionbus.patch
@@ -121,4 +121,3 @@ index 0835a64..7fb48ea 100755
+
managerObject = bus.get_object("org.automotive.message.broker", "/");
managerInterface = dbus.Interface(managerObject, "org.automotive.Manager")
-
diff --git a/src/patches/layer_management_cast_fix.patch b/src/patches/layer_management_cast_fix.patch
deleted file mode 100644
index df3dee7..0000000
--- a/src/patches/layer_management_cast_fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer/src/X11GLESRenderer.cpp b/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer/src/X11GLESRenderer.cpp
-index 2d9b0a9..09ffd43 100644
---- a/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer/src/X11GLESRenderer.cpp
-+++ b/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer/src/X11GLESRenderer.cpp
-@@ -46,7 +46,7 @@ bool X11GLESRenderer::start(int width, int height, const char* displayname)
- m_pWindowSystem = new X11WindowSystem(displayname, width, height, m_pScene);
- m_pGraphicSystem = new GLESGraphicsystem(width,height, ShaderProgramGLES::createProgram);
-
-- if (!m_pWindowSystem->init(m_pGraphicSystem))
-+ if (!m_pWindowSystem->init((BaseGraphicSystem<_XDisplay*, long unsigned int>*)m_pGraphicSystem))
- {
- goto fail; // TODO bad style
- }
diff --git a/src/script/build.sh b/src/script/build.sh
index 03681fe..243e583 100755
--- a/src/script/build.sh
+++ b/src/script/build.sh
@@ -25,6 +25,9 @@ source fsa-config.sh
GENIVI_NAVIGATION_ROUTING_API=$NAVIGATION_SERVICE_API_DIR/navigation-core/genivi-navigationcore-routing.xml
GENIVI_NAVIGATION_CONSTANTS_API=$NAVIGATION_SERVICE_API_DIR/navigation-core/genivi-navigationcore-constants.xml
+# by default no ilm
+lm=0
+
#--------------------------------------------------------------------------
# Compiler Flags
#--------------------------------------------------------------------------
@@ -32,33 +35,50 @@ GENIVI_NAVIGATION_CONSTANTS_API=$NAVIGATION_SERVICE_API_DIR/navigation-core/geni
#--------------------------------------------------------------------------
usage() {
- echo "Usage: ./build.sh Build fuel stop advisor"
- echo " or: ./build.sh [command]"
+ echo "Usage: ./build.sh [command]"
echo
echo "command:"
echo " make Build"
- echo " clean Clean"
- echo " src-clean Clean the cloned sources"
+ echo " makelm Build with layer manager"
+ echo " clean Clean the bin"
+ echo " src-clean Clean the cloned sources and the bin"
+ echo " clone Clone the sources"
echo " help Print Help"
echo
echo
}
-build() {
+clone() {
echo ''
- echo 'Building fuel stop advisor'
+ echo 'Clone/update version of additional sources if needed'
cd $TOP_DIR/..
mkdir -p bin
cd $TOP_BIN_DIR
cmake $TOP_DIR
-
+
cd $TOP_BIN_DIR
mkdir -p $NAVIGATION_SERVICE
cd $NAVIGATION_SERVICE_BUILD_SCRIPT_DIR
- # call the bash script of navigation, set the bin dir to navigation-service and tell it where to clone the positioning
- bash ./build.sh make $NAVIGATION_SERVICE_BIN_DIR $POSITIONING_SRC_DIR
+ # call the bash script of navigation, set the bin dir to navigation-service and tell it where to clone the positioning and the ilm
+ bash ./build.sh clone $NAVIGATION_SERVICE_BIN_DIR $POSITIONING_SRC_DIR $IVI_LAYER_MANAGER_SRC_DIR
+}
+
+build() {
+ echo ''
+ echo 'Building fuel stop advisor'
+ clone
+
+ cd $TOP_BIN_DIR
+ mkdir -p $NAVIGATION_SERVICE
+ cd $NAVIGATION_SERVICE_BUILD_SCRIPT_DIR
+ # call the bash script of navigation, set the bin dir to navigation-service and tell it where to clone the positioning and the ilm
+ if [ $lm -eq 0 ]; then
+ bash ./build.sh make $NAVIGATION_SERVICE_BIN_DIR $POSITIONING_SRC_DIR $IVI_LAYER_MANAGER_SRC_DIR
+ else
+ bash ./build.sh makelm $NAVIGATION_SERVICE_BIN_DIR $POSITIONING_SRC_DIR $IVI_LAYER_MANAGER_SRC_DIR
+ fi
cd $TOP_BIN_DIR
mkdir -p $FUEL_STOP_ADVISOR
cd $FUEL_STOP_ADVISOR_BIN_DIR
@@ -82,7 +102,7 @@ build() {
cd $TOP_BIN_DIR
mkdir -p $HMI_LAUNCHER
cd $HMI_LAUNCHER_BIN_DIR
- cmake -Dnavigation-service_API=$NAVIGATION_SERVICE_API_DIR -Dpositioning_API=$ENHANCED_POSITION_SERVICE_API_DIR $HMI_LAUNCHER_SRC_DIR && make
+ cmake -DLM=$lm -Dnavigation-service_API=$NAVIGATION_SERVICE_API_DIR -Dpositioning_API=$ENHANCED_POSITION_SERVICE_API_DIR $HMI_LAUNCHER_SRC_DIR && make
cd $TOP_BIN_DIR
mkdir -p $POI_SERVER
@@ -111,15 +131,18 @@ if [ $# -ge 1 ]; then
usage
elif [ $1 = make ]; then
build
+ elif [ $1 = makelm ]; then
+ lm=1
+ build
elif [ $1 = clean ]; then
clean
elif [ $1 = src-clean ]; then
src-clean
+ elif [ $1 = clone ]; then
+ clone
else
usage
fi
-elif [ $# -eq 0 ]; then
- build
else
usage
fi
diff --git a/src/script/fsa-config.sh b/src/script/fsa-config.sh
index 0b515dd..f4f6747 100644
--- a/src/script/fsa-config.sh
+++ b/src/script/fsa-config.sh
@@ -26,6 +26,7 @@ NAVIGATION_SERVICE_API_DIR=$NAVIGATION_SERVICE_SRC_DIR/api
NAVIGATION_SERVICE_BUILD_SCRIPT_DIR=$NAVIGATION_SERVICE_SRC_DIR/src/navigation/script
NAVIT=navit
+#the binaries of navit are located into the navigation-service binaries
NAVIT_BIN_DIR=$NAVIGATION_SERVICE_BIN_DIR/navit/navit
POI_SERVER=poi-server
@@ -62,6 +63,11 @@ AUTOMOTIVE_MESSAGE_BROKER=automotive-message-broker
AUTOMOTIVE_MESSAGE_BROKER_SRC_DIR=$TOP_DIR/$AUTOMOTIVE_MESSAGE_BROKER
AUTOMOTIVE_MESSAGE_BROKER_BIN_DIR=$TOP_BIN_DIR/$AUTOMOTIVE_MESSAGE_BROKER
+IVI_LAYER_MANAGER=ilm
+IVI_LAYER_MANAGER_SRC_DIR=$TOP_DIR/$IVI_LAYER_MANAGER
+#the binaries of ilm are located into the navigation-service binaries
+IVI_LAYER_MANAGER_BIN_DIR=$NAVIGATION_SERVICE_BIN_DIR/$IVI_LAYER_MANAGER
+
LOG_REPLAYER=log-replayer
LOG_REPLAYER_SRC_DIR=$TOP_DIR/$LOG_REPLAYER
LOG_REPLAYER_BIN_DIR=$TOP_BIN_DIR/$LOG_REPLAYER