diff options
author | <philippe colliot> | 2015-08-25 13:30:40 +0200 |
---|---|---|
committer | <philippe colliot> | 2015-08-25 13:30:40 +0200 |
commit | 1da40e28957f2dbda99a1586cdbe83140f283a59 (patch) | |
tree | 576c3de6091de9d6a62f120384003d9ad5ef0859 | |
parent | 508abef52bfe890c06ca4a5263320f0fe448f962 (diff) | |
download | poi-service-1da40e28957f2dbda99a1586cdbe83140f283a59.tar.gz |
Fix dbus launch steps
3 files changed, 42 insertions, 26 deletions
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 9d9fd86..dfe48c8 100644 --- a/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx +++ b/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx @@ -69,8 +69,16 @@ #define dbg(level,...) ; #endif -static DBus::Glib::BusDispatcher dispatchers[4]; -static DBus::Connection *conns[4]; +enum { + MAPVIEWER_CONTROL_CONNECTION=0, + NAVIGATIONCORE_SESSION_CONNECTION, + NAVIGATIONCORE_ROUTING_CONNECTION, + NAVIGATIONCORE_MAPMATCHEDPOSITION_CONNECTION, + CONNECTION_AMOUNT +}; + +static DBus::Glib::BusDispatcher dispatchers[CONNECTION_AMOUNT]; +static DBus::Connection *conns[CONNECTION_AMOUNT]; static int32_t navigationcore_session=-1; static double double_variant(DBus::Variant variant); @@ -1331,7 +1339,7 @@ MapViewerControlObj::DisplayRoute(uint32_t SessionHandle, uint32_t RouteHandle, { HideRoute(SessionHandle, RouteHandle); if (navigationcore_session == -1) { - NavigationCoreSession session(*conns[1]); + NavigationCoreSession session(*conns[NAVIGATIONCORE_SESSION_CONNECTION]); navigationcore_session=session.CreateSession("MapViewerControl"); } DisplayedRoute *route=new DisplayedRoute(this,navigationcore_session,RouteHandle,m_mapset); @@ -1409,7 +1417,7 @@ MapViewerControlObj::MapViewerControlObj(MapViewerControl *mapviewercontrol, uin m_force_draw=false; m_perspective=GENIVI_MAPVIEWER_2D; m_follow_car=true; - m_routing=new Routing(*conns[2], this); + m_routing=new Routing(*conns[NAVIGATIONCORE_ROUTING_CONNECTION], this); struct attr navit_template; struct attr navit_flags={attr_flags};navit_flags.u.num=2; struct attr *navit_attrs[]={&navit_flags,NULL}; @@ -1466,7 +1474,7 @@ MapViewerControlObj::MapViewerControlObj(MapViewerControl *mapviewercontrol, uin m_vehicle.u.vehicle=vehicle_new(&m_navit,vehicle_attrs); navit_add_attr(m_navit.u.navit, &m_vehicle); navit_set_attr(m_navit.u.navit, &m_vehicle); - m_mapmatchedposition=new MapMatchedPosition(*conns[3], m_vehicle.u.vehicle); + m_mapmatchedposition=new MapMatchedPosition(*conns[NAVIGATIONCORE_MAPMATCHEDPOSITION_CONNECTION], m_vehicle.u.vehicle); navit_init(m_navit.u.navit); graphics_get_data(m_graphics.u.graphics,"window"); @@ -1687,14 +1695,16 @@ plugin_init(void) { event_request_system("glib","genivi_mapviewercontrol"); int i; - for (i = 0 ; i < 4 ; i++) { + for (i = 0 ; i < CONNECTION_AMOUNT ; i++) { + // init the dispatcher + DBus::default_dispatcher = &dispatchers[i]; + dispatchers[i].attach(NULL); + // create a connection on the session bus and connect the dispatcher conns[i] = new DBus::Connection(DBus::Connection::SessionBus()); - dispatchers[i].attach(NULL); - DBus::default_dispatcher = &dispatchers[i]; conns[i]->setup(&dispatchers[i]); } - conns[0]->request_name("org.genivi.mapviewer.MapViewerControl"); - server=new MapViewerControl(*conns[0]); + conns[MAPVIEWER_CONTROL_CONNECTION]->request_name("org.genivi.mapviewer.MapViewerControl"); + server=new MapViewerControl(*conns[MAPVIEWER_CONTROL_CONNECTION]); #if LM #if 0 diff --git a/src/navigation/navigation-core/CMakeLists.txt b/src/navigation/navigation-core/CMakeLists.txt index 3c65eee..f7119a4 100644 --- a/src/navigation/navigation-core/CMakeLists.txt +++ b/src/navigation/navigation-core/CMakeLists.txt @@ -30,9 +30,7 @@ include_directories(${GLIB_INCLUDE_DIRS}) include_directories(${DBUS_CPP_INCLUDE_DIRS}) include_directories(${DBUS_CPP_GLIB_INCLUDE_DIRS}) -if(NOT ${YOCTO_CONFIG}) - include(${PRELOAD_CACHE_FOR_PLUGINS}) -endif() +include(${PRELOAD_CACHE_FOR_PLUGINS}) include_directories(${INCLUDE_DIRECTORIES}) include_directories(.) diff --git a/src/navigation/poi-cam/genivi_poiservice_cam_navit.cxx b/src/navigation/poi-cam/genivi_poiservice_cam_navit.cxx index 0c3b422..9d83b35 100644 --- a/src/navigation/poi-cam/genivi_poiservice_cam_navit.cxx +++ b/src/navigation/poi-cam/genivi_poiservice_cam_navit.cxx @@ -46,14 +46,20 @@ #define dbg(level,...) ; #endif +enum { + POI_CONTENTACCESSMODULE_CONNECTION=0, + POI_CONTENTACCESS_CONNECTION, + CONNECTION_AMOUNT +}; + #include "genivi-poiservice-constants.h" #include "genivi-poiservice-poicontentaccess_proxy.h" #include "genivi-poiservice-contentaccessmodule_adaptor.h" #include <algorithm> -static DBus::Glib::BusDispatcher dispatchers[2]; -static DBus::Connection *conns[2]; +static DBus::Glib::BusDispatcher dispatchers[CONNECTION_AMOUNT]; +static DBus::Connection *conns[CONNECTION_AMOUNT]; static const char *cam_name="org.genivi.poiservice.POIContentAccessModuleNavit"; static DBus::Variant @@ -118,7 +124,7 @@ class ContentAccessModule register_cam(void) { class PoiContentAccess *pca; - pca=new PoiContentAccess(*conns[1]); + pca=new PoiContentAccess(*conns[POI_CONTENTACCESS_CONNECTION]); int camid=pca->RegisterContentAccessModule(cam_name); dbg(lvl_debug,"camid=%d\n",camid); @@ -332,16 +338,18 @@ void plugin_init(void) { dbg(lvl_debug,"enter\n"); - event_request_system("glib","genivi_poiservice"); - int i; - for (i = 0 ; i < 2 ; i++) { - conns[i] = new DBus::Connection(DBus::Connection::SessionBus()); - dispatchers[i].attach(NULL); - DBus::default_dispatcher = &dispatchers[i]; - conns[i]->setup(&dispatchers[i]); - } - conns[0]->request_name(cam_name); - server=new ContentAccessModule(*conns[0]); + event_request_system("glib","genivi_poiservice"); + int i; + for (i = 0 ; i < CONNECTION_AMOUNT ; i++) { + // init the dispatcher + DBus::default_dispatcher = &dispatchers[i]; + dispatchers[i].attach(NULL); + // create a connection on the session bus and connect the dispatcher + conns[i] = new DBus::Connection(DBus::Connection::SessionBus()); + conns[i]->setup(&dispatchers[i]); + } + conns[POI_CONTENTACCESSMODULE_CONNECTION]->request_name(cam_name); + server=new ContentAccessModule(*conns[POI_CONTENTACCESSMODULE_CONNECTION]); try { server->register_cam(); } catch(...) { |