location: apply next HAL architecture (hal api + backend) 90/251890/3 accepted/tizen/unified/20210301.130241 submit/tizen/20210222.074141 submit/tizen/20210301.051848
authorchakradhar pogiri <v.pogiri@samsung.com>
Wed, 20 Jan 2021 09:16:04 +0000 (14:46 +0530)
committerchakradhar pogiri <v.pogiri@samsung.com>
Fri, 19 Feb 2021 05:08:14 +0000 (10:38 +0530)
Change-Id: Iff6fa2ac2adb695ec0264314e9123f40f911b5ec

CMakeLists.txt
gps-plugin/CMakeLists.txt
gps-plugin/include/nmea_parser.h
gps-plugin/src/gps_plugin_replay.c
gps-plugin/src/nmea_parser.c
packaging/lbs-plugin-gps-rpi3.spec [changed mode: 0644->0755]

index b1205b3..a051811 100644 (file)
@@ -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 libtzplatform-config capi-system-peripheral-io)
+pkg_check_modules(pkgs REQUIRED glib-2.0 vconf dlog libtzplatform-config capi-system-peripheral-io hal-api-common hal-api-location)
 
 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)
index c74dac8..4b2aac1 100644 (file)
@@ -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)
index 73d5bef..2226af9 100644 (file)
@@ -19,6 +19,8 @@
 #ifndef NMEA_PARSER_H
 #define NMEA_PARSER_H
 
+#include <hal/hal-location-interface.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif                         /* __cplusplus */
index 39f5227..6fa36cf 100644 (file)
@@ -25,7 +25,8 @@
 #include <sys/time.h>
 #include <sys/stat.h>
 
-#include <gps_plugin_intf.h>
+#include <hal/hal-location-interface.h>
+#include <hal/hal-common-interface.h>
 #include <tzplatform_config.h>
 
 #include "gps_plugin_debug.h"
@@ -34,6 +35,8 @@
 
 #include "peripheral_io.h"
 
+
+
 #define REPLAY_NMEA_SET_SIZE           4096
 #define REPLAY_NMEA_SENTENCE_SIZE      128
 
@@ -49,6 +52,8 @@
 #define GPS_UART_PORT 0
 #define GPS_UART_BUFF_SIZE 1024
 
+#define EXPORT __attribute__ ((visibility("default")))
+
 gps_event_cb g_gps_event_cb = NULL;
 void *g_user_data = NULL;
 
@@ -80,16 +85,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
-};
-
 static int gps_uart_close()
 {
        int ret;
@@ -794,7 +789,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();
@@ -803,7 +798,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;
@@ -815,7 +810,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;
 
@@ -854,7 +849,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)
+{
+       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)
 {
-       return &g_gps_plugin_replay_interface;
+       if (!data)
+               return -EINVAL;
+       free(data);
+
+       return 0;
 }
+
+hal_backend EXPORT hal_backend_location_data = {
+       .name = "location-backend",
+       .vendor = "rpi",
+       .abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+       .init = location_init,
+       .exit = location_exit,
+};
index 5b042e0..26c2662 100644 (file)
@@ -20,7 +20,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <glib.h>
-#include <gps_plugin_intf.h>
+#include <hal/hal-location-interface.h>
 
 #include "gps_plugin_debug.h"
 #include "nmea_parser.h"
old mode 100644 (file)
new mode 100755 (executable)
index 431a221..2e9e889
@@ -1,6 +1,6 @@
 Name:       lbs-plugin-gps-rpi3
 Summary:    LBS Server plugin library for replay mode
-Version:    0.1.1
+Version:    0.1.2
 Release:    1
 Group:      Location/Libraries
 License:    Apache-2.0
@@ -10,9 +10,10 @@ BuildRequires:  cmake
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(vconf)
 BuildRequires:  pkgconfig(dlog)
-BuildRequires:  pkgconfig(lbs-server-plugin)
 BuildRequires:  pkgconfig(libtzplatform-config)
 BuildRequires:  pkgconfig(capi-system-peripheral-io)
+BuildRequires:  pkgconfig(hal-api-common)
+BuildRequires:  pkgconfig(hal-api-location)
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
 
@@ -33,6 +34,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 +48,17 @@ cp -a nmea-log/*.log %{buildroot}%{TZ_SYS_RO_ETC}/location
 
 %post
 rm -rf %{_libdir}/liblbs-server-plugin.so
-ln -sf %{_libdir}/liblbs-plugin-gps-rpi3.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-plugin-gps-rpi3.so %{_libdir}/libSLP-lbs-plugin-replay.so
-ln -sf %{_libdir}/liblbs-plugin-gps-rpi3.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-plugin-gps-rpi3.manifest
-%license LICENSE
+%{_hal_licensedir}/%{name}/LICENSE
 %defattr(-,root,root,-)
-%{_libdir}/liblbs-plugin-gps-rpi3.so*
+%{_hal_libdir}/*.so*
 %{TZ_SYS_RO_ETC}/location/*