summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author <philippe colliot>2015-08-05 14:13:23 +0200
committer <philippe colliot>2015-08-05 14:13:23 +0200
commit2dd1022d0bf232b2540f1a66ea310c12bc4c2d61 (patch)
tree0a1b31d5b500781dfe2b2f4bff4e668a1996e8ad
parentf0d502c1548dc8cc0805a0a72f74e46d821c0a9e (diff)
downloadpoi-service-2dd1022d0bf232b2540f1a66ea310c12bc4c2d61.tar.gz
Restore LM stuff
-rw-r--r--src/navigation/map-viewer/mapviewercontrol-plugin/CMakeLists.txt15
-rw-r--r--src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx61
2 files changed, 75 insertions, 1 deletions
diff --git a/src/navigation/map-viewer/mapviewercontrol-plugin/CMakeLists.txt b/src/navigation/map-viewer/mapviewercontrol-plugin/CMakeLists.txt
index 319c741..b7dbaca 100644
--- a/src/navigation/map-viewer/mapviewercontrol-plugin/CMakeLists.txt
+++ b/src/navigation/map-viewer/mapviewercontrol-plugin/CMakeLists.txt
@@ -30,10 +30,23 @@ cmake_minimum_required(VERSION 2.8)
message(STATUS "mapviewer control")
+if(${YOCTO_CONFIG})
+ add_definitions(-DLM=1)
+ message(STATUS "Build with layer manager")
+ include_directories(${STAGING_INCDIR})
+ link_directories(${STAGING_LIBDIR})
+ set(genivi_mapviewer_mapviewercontrol_LIBS ${PLUGIN_LDFLAGS} "-lilmCommon" "-lilmClient" "-lilmControl")
+
+else()
+ add_definitions(-DLM=0)
+ message(STATUS "Build without layer manager")
+ set(genivi_mapviewer_mapviewercontrol_LIBS ${PLUGIN_LDFLAGS})
+endif()
+
+
include_directories(${DBUS_GENERATED_INCLUDE_DIR}/map-viewer)
include_directories(${DBUS_GENERATED_INCLUDE_DIR}/navigation-core)
-set(genivi_mapviewer_mapviewercontrol_LIBS ${PLUGIN_LDFLAGS})
set(genivi_mapviewer_mapviewercontrol_LIBRARY_DIRS ${PLUGIN_LIBRARIES})
module_add_library(genivi_mapviewer_mapviewercontrol genivi_mapviewer_mapviewercontrol.cxx ${DBUS_GENERATED_INCLUDE_DIR}/map-viewer/genivi-mapviewer-mapviewercontrol_adaptor.h ${DBUS_GENERATED_INCLUDE_DIR}/navigation-core/genivi-navigationcore-routing_proxy.h ${DBUS_GENERATED_INCLUDE_DIR}/navigation-core/genivi-navigationcore-session_proxy.h ${DBUS_GENERATED_INCLUDE_DIR}/navigation-core/genivi-navigationcore-mapmatchedposition_proxy.h)
diff --git a/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx b/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx
index e98046a..919f43e 100644
--- a/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx
+++ b/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx
@@ -27,6 +27,16 @@
#include <math.h>
#include <unistd.h>
#include <stdlib.h>
+
+#if LM
+#include <ilm/ilm_client.h>
+#include <ilm/ilm_client.h>
+#include <ilm/ilm_control.h>
+#ifndef FSA_LAYER
+#define FSA_LAYER 2000
+#endif
+#endif
+
#include "genivi-mapviewer-mapviewercontrol_adaptor.h"
#include "genivi-navigationcore-routing_proxy.h"
#include "genivi-navigationcore-session_proxy.h"
@@ -1465,10 +1475,54 @@ MapViewerControlObj::MapViewerControlObj(MapViewerControl *mapviewercontrol, uin
sel.u.p_rect.rl.x=MapViewSize._1;
sel.u.p_rect.rl.y=MapViewSize._2;
transform_set_screen_selection(trans, &sel);
+
+#if LM
+ t_ilm_nativedisplay display = (t_ilm_nativedisplay)graphics_get_data(m_graphics.u.graphics, "display");
+ if (ilm_initWithNativedisplay(display) != ILM_SUCCESS) {
+ dbg(lvl_debug, "error on ilm_initWidthNativeDisplay\n");
+ }
+
+ t_ilm_nativehandle nativehandle=(t_ilm_nativehandle)graphics_get_data(m_graphics.u.graphics,"xwindow_id");
+ t_ilm_surface surfaceId=FSA_LAYER+m_handle;
+ t_ilm_layer layerId=FSA_LAYER;
+ if (ilm_surfaceCreate(nativehandle, MapViewSize._1, MapViewSize._2, ILM_PIXELFORMAT_RGBA_8888, &surfaceId) != ILM_SUCCESS) {
+ dbg(lvl_debug,"error on ilm_surfaceCreate\n");
+ }
+#if 0
+ if (ilm_layerAddSurface(layerId, surfaceId) != ILM_SUCCESS) {
+ dbg(lvl_debug,"error on ilm_layerAddSurface\n");
+ }
+#else
+ t_ilm_surface surfaceId_order[2] = {
+ FSA_LAYER + m_handle,
+ FSA_LAYER + m_handle + 1
+ };
+ if (ilm_layerSetRenderOrder(layerId, surfaceId_order, 2) != ILM_SUCCESS) {
+ dbg(lvl_debug,"error on ilm_layerSetRenderOrder\n");
+ }
+#endif
+ if (ilm_commitChanges() != ILM_SUCCESS) {
+ dbg(lvl_debug,"error on ilm_commitChanges\n");
+ }
+#endif
+
}
MapViewerControlObj::~MapViewerControlObj()
{
+#if LM
+ t_ilm_surface surfaceId=FSA_LAYER+m_handle;
+ t_ilm_layer layerId=FSA_LAYER;
+ if (ilm_surfaceRemove(surfaceId) != ILM_SUCCESS) {
+ dbg(lvl_debug,"error on ilm_surfaceRemove\n");
+ }
+ if (ilm_layerRemoveSurface(layerId, surfaceId) != ILM_SUCCESS) {
+ dbg(lvl_debug,"error on ilm_layerAddSurface\n");
+ }
+ if (ilm_commitChanges() != ILM_SUCCESS) {
+ dbg(lvl_debug,"error on ilm_commitChanges\n");
+ }
+#endif
graphics_remove_callback(m_graphics.u.graphics, m_postdraw_callback);
#if 0
@@ -1637,4 +1691,11 @@ plugin_init(void)
conns[0]->request_name("org.genivi.mapviewer.MapViewerControl");
server=new MapViewerControl(*conns[0]);
+#if LM
+#if 0
+ if (ilm_init() != ILM_SUCCESS) {
+ dbg(lvl_debug,"error on ilm_init\n");
+ }
+#endif
+#endif
}