From 99b529d4f36c0a06a487d7fc4424c2060228d9ea Mon Sep 17 00:00:00 2001 From: chakradhar pogiri Date: Thu, 11 Feb 2021 17:52:48 +0530 Subject: [PATCH] location: apply next HAL architecture (hal api + backend) Change-Id: I6f50f36e083c0d53e759404659102c7b0489b57e --- CMakeLists.txt | 3 +- gps-plugin/CMakeLists.txt | 4 +- gps-plugin/include/nmea_parser.h | 2 + gps-plugin/src/gps_plugin_replay.c | 53 +++++++++++++++++-------- gps-plugin/src/nmea_parser.c | 2 +- packaging/lbs-server-plugin-replay.spec | 16 +++++--- 6 files changed, 55 insertions(+), 25 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 993eb14..e57b8eb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ SET(PREFIX ${CMAKE_INSTALL_PREFIX}) # Set required packages INCLUDE(FindPkgConfig) -pkg_check_modules(pkgs REQUIRED glib-2.0 vconf dlog lbs-server-plugin deviced libtzplatform-config) +pkg_check_modules(pkgs REQUIRED glib-2.0 vconf dlog hal-api-common hal-api-location deviced libtzplatform-config) FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") @@ -21,4 +21,5 @@ ADD_DEFINITIONS(" -DEXPORT_API=\"__attribute__((visibility(\\\"default\\\")))\" MESSAGE(${CMAKE_C_FLAGS}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE DESTINATION ${HAL_LICENSE_DIR}/${PROJECT_NAME} COMPONENT RuntimeLibraries) ADD_SUBDIRECTORY(gps-plugin) diff --git a/gps-plugin/CMakeLists.txt b/gps-plugin/CMakeLists.txt index c74dac8..4b2aac1 100644 --- a/gps-plugin/CMakeLists.txt +++ b/gps-plugin/CMakeLists.txt @@ -1,3 +1,5 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(hal-backend-location C) aux_source_directory(src SOURCES) INCLUDE_DIRECTORIES(include) @@ -15,4 +17,4 @@ SET_TARGET_PROPERTIES(${PROJECT_NAME} CLEAN_DIRECT_OUTPUT 1 ) -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_DIR}) +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${HAL_LIB_DIR} COMPONENT RuntimeLibraries) diff --git a/gps-plugin/include/nmea_parser.h b/gps-plugin/include/nmea_parser.h index 73d5bef..2226af9 100644 --- a/gps-plugin/include/nmea_parser.h +++ b/gps-plugin/include/nmea_parser.h @@ -19,6 +19,8 @@ #ifndef NMEA_PARSER_H #define NMEA_PARSER_H +#include + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ diff --git a/gps-plugin/src/gps_plugin_replay.c b/gps-plugin/src/gps_plugin_replay.c index be57286..faf9c54 100644 --- a/gps-plugin/src/gps_plugin_replay.c +++ b/gps-plugin/src/gps_plugin_replay.c @@ -25,7 +25,8 @@ #include #include -#include +#include +#include #include #include @@ -35,6 +36,7 @@ #define REPLAY_NMEA_SET_SIZE 4096 #define REPLAY_NMEA_SENTENCE_SIZE 128 +#define EXPORT __attribute__ ((visibility("default"))) gps_event_cb g_gps_event_cb = NULL; @@ -67,16 +69,6 @@ typedef struct { replay_timeout *g_replay_timer = NULL; -int gps_plugin_replay_gps_init(gps_event_cb gps_event_cb, void *user_data); -int gps_plugin_replay_gps_deinit(gps_failure_reason_t *reason_code); -int gps_plugin_replay_gps_request(gps_action_t gps_action, void *gps_action_data, gps_failure_reason_t *reason_code); - -static const gps_plugin_interface g_gps_plugin_replay_interface = { - gps_plugin_replay_gps_init, - gps_plugin_replay_gps_deinit, - gps_plugin_replay_gps_request -}; - void gps_plugin_replay_pos_event(pos_data_t *data) { gps_event_info_t gps_event; @@ -682,7 +674,7 @@ void gps_plugin_replay_timer_deinit(replay_timeout *timer) timer = NULL; } -int gps_plugin_replay_gps_init(gps_event_cb gps_event_cb, void *user_data) +static int gps_plugin_replay_gps_init(gps_event_cb gps_event_cb, void *user_data) { g_gps_event_cb = gps_event_cb; g_replay_timer = gps_plugin_replay_timer_init(); @@ -691,7 +683,7 @@ int gps_plugin_replay_gps_init(gps_event_cb gps_event_cb, void *user_data) return TRUE; } -int gps_plugin_replay_gps_deinit(gps_failure_reason_t *reason_code) +static int gps_plugin_replay_gps_deinit(gps_failure_reason_t *reason_code) { gps_plugin_replay_timer_deinit(g_replay_timer); g_gps_event_cb = NULL; @@ -700,7 +692,7 @@ int gps_plugin_replay_gps_deinit(gps_failure_reason_t *reason_code) return TRUE; } -int gps_plugin_replay_gps_request(gps_action_t gps_action, void *gps_action_data, gps_failure_reason_t *reason_code) +static int gps_plugin_replay_gps_request(gps_action_t gps_action, void *gps_action_data, gps_failure_reason_t *reason_code) { gps_action_start_data_t *gps_start_data = gps_action_data; @@ -739,7 +731,36 @@ int gps_plugin_replay_gps_request(gps_action_t gps_action, void *gps_action_data return TRUE; } -EXPORT_API const gps_plugin_interface *get_gps_plugin_interface() +static int location_init(void **data) { - return &g_gps_plugin_replay_interface; + hal_backend_location_funcs *location_funcs; + + location_funcs = calloc(1, sizeof(hal_backend_location_funcs)); + if (!location_funcs) + return -ENOMEM; + + location_funcs->init = gps_plugin_replay_gps_init; + location_funcs->deinit = gps_plugin_replay_gps_deinit; + location_funcs->request = gps_plugin_replay_gps_request; + + *data = (void *)location_funcs; + + return 0; } + +static int location_exit(void *data) +{ + if (!data) + return -EINVAL; + free(data); + + return 0; +} + +hal_backend EXPORT hal_backend_location_data = { + .name = "location-backend", + .vendor = "replay", + .abi_version = HAL_ABI_VERSION_TIZEN_6_5, + .init = location_init, + .exit = location_exit, +}; diff --git a/gps-plugin/src/nmea_parser.c b/gps-plugin/src/nmea_parser.c index 5b042e0..26c2662 100644 --- a/gps-plugin/src/nmea_parser.c +++ b/gps-plugin/src/nmea_parser.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include "gps_plugin_debug.h" #include "nmea_parser.h" diff --git a/packaging/lbs-server-plugin-replay.spec b/packaging/lbs-server-plugin-replay.spec index f8a154b..eb86192 100644 --- a/packaging/lbs-server-plugin-replay.spec +++ b/packaging/lbs-server-plugin-replay.spec @@ -1,6 +1,6 @@ Name: lbs-server-plugin-replay Summary: LBS Server plugin library for replay mode -Version: 0.2.8 +Version: 0.2.9 Release: 1 Group: Location/Libraries License: Apache-2.0 @@ -13,6 +13,8 @@ BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(lbs-server-plugin) BuildRequires: pkgconfig(deviced) BuildRequires: pkgconfig(libtzplatform-config) +BuildRequires: pkgconfig(hal-api-common) +BuildRequires: pkgconfig(hal-api-location) Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig @@ -33,6 +35,8 @@ export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE" MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'` cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} \ -DLIB_DIR=%{_libdir} \ + -DHAL_LIB_DIR=%{_hal_libdir} \ + -DHAL_LICENSE_DIR=%{_hal_licensedir} \ make %{?jobs:-j%jobs} @@ -45,17 +49,17 @@ cp -a nmea-log/*.log %{buildroot}%{TZ_SYS_RO_ETC}/location %post rm -rf %{_libdir}/liblbs-server-plugin.so -ln -sf %{_libdir}/liblbs-server-plugin-replay.so %{_libdir}/liblbs-server-plugin.so +ln -sf %{_hal_libdir}/libhal-backend-location.so %{_libdir}/liblbs-server-plugin.so #for compatible with old version -ln -sf %{_libdir}/liblbs-server-plugin-replay.so %{_libdir}/libSLP-lbs-plugin-replay.so -ln -sf %{_libdir}/liblbs-server-plugin-replay.so %{_libdir}/libSLP-lbs-plugin.so +#ln -sf %{_hal_libdir}/libhal-backend-location.so %{_libdir}/libSLP-lbs-plugin-replay.so +#ln -sf %{_hal_libdir}/libhal-backend-location.so %{_libdir}/libSLP-lbs-plugin.so /sbin/ldconfig %postun -p /sbin/ldconfig %files %manifest lbs-server-plugin-replay.manifest -%license LICENSE +%{_hal_licensedir}/%{name}/LICENSE %defattr(-,root,root,-) -%{_libdir}/liblbs-server-plugin-replay.so* +%{_hal_libdir}/*.so* %{TZ_SYS_RO_ETC}/location/* -- 2.34.1