summaryrefslogtreecommitdiff
path: root/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx')
-rw-r--r--src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx64
1 files changed, 37 insertions, 27 deletions
diff --git a/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx b/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx
index bbacb2d..dd03d80 100644
--- a/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx
+++ b/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx
@@ -64,7 +64,6 @@
#include <MapMatchedPositionProxy.hpp>
#include <RoutingProxy.hpp>
#include <navigationcore/SessionProxy.hpp>
-
#include "log.h"
DLT_DECLARE_CONTEXT(gCtx);
@@ -120,7 +119,7 @@ class MapViewerControlObj
struct mapset *m_mapset;
uint32_t m_handle;
double m_scrolldirection, m_scrollspeed;
- double m_rotationangle, m_rotationanglepersecond;
+ double m_rotationangle, m_rotationanglepersecond;
struct callback *m_postdraw_callback;
struct callback *m_move_callback;
@@ -134,7 +133,9 @@ class MapViewerControlObj
uint16_t m_width;
uint16_t m_height;
- void MoveMap(void);
+ MapViewerControlObj(MapViewerControlServerStub *mapviewercontrol, NavigationTypes::Handle handle, const MapViewerControl::Dimension &MapViewSize);
+ ~MapViewerControlObj();
+ void MoveMap(void);
void SetFollowCarMode(NavigationTypes::Handle SessionHandle, bool active);
void GetFollowCarMode(bool& active);
void SetCameraHeadingAngle(NavigationTypes::Handle SessionHandle, double angle);
@@ -151,7 +152,7 @@ class MapViewerControlObj
void SetMapViewPerspective(NavigationTypes::Handle SessionHandle, MapViewerControl::MapPerspective MapViewPerspectiveMode);
void GetMapViewPerspective(MapViewerControl::MapPerspective &MapViewPerspectiveMode);
void GetScaleList(std::vector< MapViewerControl::MapScale >& ScalesList);
- void SetMapViewScale(NavigationTypes::Handle SessionHandle, uint32_t ScaleID);
+ void SetMapViewScale(NavigationTypes::Handle SessionHandle, uint8_t ScaleID);
void SetMapViewScaleByDelta(NavigationTypes::Handle SessionHandle, int16_t ScaleDelta);
void GetMapViewScale(uint8_t& ScaleID, MapViewerControl::MapScaleType &IsMinMax);
void GetMapViewType(MapViewerControl::MapViewType &MapViewType);
@@ -170,8 +171,6 @@ class MapViewerControlObj
void HideRoute(NavigationTypes::Handle SessionHandle, NavigationTypes::Handle RouteHandle);
void ConvertPixelCoordsToGeoCoords(NavigationTypes::Handle SessionHandle, const std::vector<MapViewerControl::Pixel> &pixelCoordinates, std::vector<NavigationTypes::Coordinate2D> &GeoCoordinates);
void ConvertGeoCoordsToPixelCoords(NavigationTypes::Handle SessionHandle, const std::vector<NavigationTypes::Coordinate2D> &geoCoordinates, std::vector<MapViewerControl::Pixel> &pixelCoordinates);
- MapViewerControlObj(MapViewerControlServerStub *mapviewercontrol, NavigationTypes::Handle handle, const MapViewerControl::Dimension &MapViewSize);
- ~MapViewerControlObj();
};
static std::map<uint32_t, MapViewerControlObj *> mp_handles;
@@ -323,6 +322,19 @@ class NavigationCoreSessionClientProxy
}
};
+class ClientStub : public CommonAPI::ClientId
+{
+public:
+ ~ClientStub(){}
+ bool operator==(ClientId& clientIdToCompare) {
+ return true;
+ }
+
+ std::size_t hashCode() {
+ return 0;
+ }
+};
+
class MapViewerControlServerStub : public MapViewerControlStubDefault
{
public:
@@ -336,7 +348,6 @@ class MapViewerControlServerStub : public MapViewerControlStubDefault
m_version.setVersionMinor(0);
m_version.setVersionMicro(0);
m_version.setDate("21-01-2014");
-
}
/**
@@ -447,6 +458,7 @@ class MapViewerControlServerStub : public MapViewerControlStubDefault
if (!obj)
throw DBus::ErrorInvalidArgs("Invalid mapviewinstance handle");
else obj->SetFollowCarMode(_sessionHandle, _followCarMode);
+ fireFollowCarModeChangedEvent(_mapViewInstanceHandle,_followCarMode);
_reply();
}
@@ -709,17 +721,17 @@ class MapViewerControlServerStub : public MapViewerControlStubDefault
/**
* description: setMapViewScale = This method sets the map scale by specifying a ScaleID
*/
- void setMapViewScale(const std::shared_ptr<CommonAPI::ClientId> _client, ::v4::org::genivi::navigation::NavigationTypes::Handle _sessionHandle, ::v4::org::genivi::navigation::NavigationTypes::Handle _mapViewInstanceHandle, uint16_t _scaleID, setMapViewScaleReply_t _reply){
- dbg(lvl_debug,"enter\n");
+ void setMapViewScale(const std::shared_ptr<CommonAPI::ClientId> _client, ::v4::org::genivi::navigation::NavigationTypes::Handle _sessionHandle, ::v4::org::genivi::navigation::NavigationTypes::Handle _mapViewInstanceHandle, uint8_t _scaleID, setMapViewScaleReply_t _reply){
+ MapViewerControl::MapScaleType is_min_max=MapViewerControl::MapScaleType::INVALID;
MapViewerControlObj *obj=mp_handles[_mapViewInstanceHandle];
if (!obj)
throw DBus::ErrorInvalidArgs("Invalid mapviewinstance handle");
else {
- obj->SetMapViewScale(_sessionHandle, _scaleID);
- uint8_t current_scale;
- MapViewerControl::MapScaleType is_min_max;
- obj->GetMapViewScale(current_scale,is_min_max);
- fireMapViewScaleChangedSelective(_mapViewInstanceHandle,current_scale,is_min_max);
+// obj->SetMapViewScale(_sessionHandle, _scaleID);
+// obj->GetMapViewScale(_scaleID,is_min_max);
+ fireMapViewScaleChangedSelective(_mapViewInstanceHandle,_scaleID,is_min_max);
+ fireFollowCarModeChangedEvent(_mapViewInstanceHandle,false);
+
}
_reply();
}
@@ -1069,7 +1081,6 @@ class MapViewerControlServerStub : public MapViewerControlStubDefault
throw DBus::ErrorNotSupported("Not yet supported");
}
-
private:
CommonTypes::Version m_version;
@@ -1188,18 +1199,17 @@ MapViewerControlObj::GetScaleList(std::vector<MapViewerControl::MapScale> &Scale
}
void
-MapViewerControlObj::SetMapViewScale(NavigationTypes::Handle SessionHandle, uint32_t ScaleID)
+MapViewerControlObj::SetMapViewScale(NavigationTypes::Handle SessionHandle, uint8_t ScaleID)
{
long scale=1 << ScaleID;
struct transformation *trans=navit_get_trans(m_navit.u.navit);
transform_set_scale(trans, scale);
- navit_draw(m_navit.u.navit);
+ navit_draw(m_navit.u.navit);
}
void
MapViewerControlObj::SetMapViewScaleByDelta(NavigationTypes::Handle SessionHandle, int16_t ScaleDelta)
{
- LOG_INFO(gCtx,"Delta=%d",ScaleDelta);
if (ScaleDelta < 0)
navit_zoom_in(m_navit.u.navit,1 << (-ScaleDelta),NULL);
else if (ScaleDelta > 0)
@@ -1983,34 +1993,34 @@ plugin_init(void)
// init the map viewer control server
const std::string domain = "local";
- const std::string instanceMapViewerControl = "MapViewerControl";
+ const std::string instanceMapViewerControlServer = "MapViewerControl";
std::shared_ptr<MapViewerControlServerStub> myServiceMapViewerControl = std::make_shared<MapViewerControlServerStub>();
- bool successfullyRegistered = runtime->registerService(domain, instanceMapViewerControl, myServiceMapViewerControl);
+ bool successfullyRegistered = runtime->registerService(domain, instanceMapViewerControlServer, myServiceMapViewerControl);
while (!successfullyRegistered) {
std::this_thread::sleep_for(std::chrono::milliseconds(100));
- successfullyRegistered = runtime->registerService(domain, instanceMapViewerControl, myServiceMapViewerControl);
+ successfullyRegistered = runtime->registerService(domain, instanceMapViewerControlServer, myServiceMapViewerControl);
}
LOG_INFO_MSG(gCtx,"map viewer control server");
//init the session client
- const std::string instanceNavigationCoreSession = "Session";
- mp_navigationCoreSessionClientProxy = new NavigationCoreSessionClientProxy(domain,instanceNavigationCoreSession);
+ const std::string instanceNavigationCoreSessionClient = "Session";
+ mp_navigationCoreSessionClientProxy = new NavigationCoreSessionClientProxy(domain,instanceNavigationCoreSessionClient);
LOG_INFO_MSG(gCtx,"session client");
//init the routing client
- const std::string instanceRouting = "Routing";
- mp_routingClientProxy = new RoutingClientProxy(domain,instanceRouting);
+ const std::string instanceRoutingClient = "Routing";
+ mp_routingClientProxy = new RoutingClientProxy(domain,instanceRoutingClient);
mp_routingClientProxy->setListeners();
LOG_INFO_MSG(gCtx,"routing client");
// init the map matched position client
- const std::string instanceMapMatchedPosition = "MapMatchedPosition";
- mp_mapMatchedPositionClientProxy = new MapMatchedPositionClientProxy(domain,instanceMapMatchedPosition);
+ const std::string instanceMapMatchedPositionClient = "MapMatchedPosition";
+ mp_mapMatchedPositionClientProxy = new MapMatchedPositionClientProxy(domain,instanceMapMatchedPositionClient);
mp_mapMatchedPositionClientProxy->setListeners();
LOG_INFO_MSG(gCtx,"map matched position client");