Fused Location 56/111856/7 submit/tizen/20170713.072054
authorMarcin Masternak <m.masternak@samsung.com>
Fri, 12 May 2017 16:39:34 +0000 (18:39 +0200)
committerkj7.sung <kj7.sung@samsung.com>
Tue, 11 Jul 2017 09:48:53 +0000 (18:48 +0900)
Change-Id: Idf2623e4b47e5b63f5acb86325896a74b2daaab0
Signed-off-by: kj7.sung <kj7.sung@samsung.com>
Signed-off-by: Marcin Masternak <m.masternak@samsung.com>
client/include/lbs_dbus_client.h
client/src/lbs_dbus_client.c
packaging/liblbs-dbus.spec
server/include/lbs_dbus_server.h
server/src/lbs_dbus_server.c

index d3a64e6..6b03553 100644 (file)
@@ -36,6 +36,7 @@ typedef enum {
        LBS_CLIENT_METHOD_GEOFENCE,
        LBS_CLIENT_METHOD_MOCK,
        LBS_CLIENT_METHOD_PASSIVE,
+       LBS_CLIENT_METHOD_FUSED
 } lbs_client_method_e;
 
 typedef enum {
@@ -65,8 +66,8 @@ typedef void (*lbs_client_cb)(const char *sig, GVariant *param, void *user_data)
 int lbs_client_create(lbs_client_method_e method, lbs_client_dbus_h *lbs_client);
 int lbs_client_destroy(lbs_client_dbus_h lbs_client);
 
-int lbs_client_start(lbs_client_dbus_h lbs_client, unsigned int interval, lbs_client_callback_e callback_type, lbs_client_cb callback, void *user_data);
-int lbs_client_stop(lbs_client_dbus_h lbs_client, unsigned int interval);
+int lbs_client_start(lbs_client_dbus_h lbs_client, unsigned int interval, lbs_client_callback_e callback_type, lbs_client_cb callback, int fused_mode, void *user_data);
+int lbs_client_stop(lbs_client_dbus_h lbs_client, unsigned int interval, int fused_mode);
 int lbs_client_batch_start(lbs_client_dbus_h lbs_client, lbs_client_callback_e callback_type, lbs_client_cb callback, unsigned int batch_interval, unsigned int batch_period, void *user_data);
 int lbs_client_batch_stop(lbs_client_dbus_h lbs_client);
 
index 0e92fa6..843a5cb 100755 (executable)
@@ -41,6 +41,7 @@ typedef struct _lbs_client_dbus_s {
        int batch_evt_id;
        int nmea_evt_id;
        int privacy_evt_id;
+       int fused_mode;
        unsigned int interval;
        lbs_client_cb user_cb;
        lbs_client_cb batch_cb;
@@ -210,7 +211,7 @@ static void __privacy_setting_changed(GDBusConnection *conn, const gchar *name,
        g_free(pkg_id);
        g_free(privacy_id);
 
-       if (lbs_client_stop(handle, handle->interval) != LBS_CLIENT_ERROR_NONE)
+       if (lbs_client_stop(handle, handle->interval, handle->fused_mode) != LBS_CLIENT_ERROR_NONE)
                LBS_CLIENT_LOGE("lbs_client_stop is fail");
 
        if (handle->user_cb)
@@ -441,6 +442,7 @@ lbs_client_set_position_update_interval(lbs_client_dbus_h lbs_client, unsigned i
        g_variant_builder_add(builder, "{sv}", "INTERVAL_UPDATE", g_variant_new_uint32(interval));
        g_variant_builder_add(builder, "{sv}", "PREV_INTERVAL", g_variant_new_uint32(prev_interval));
        g_variant_builder_add(builder, "{sv}", "METHOD", g_variant_new_int32(handle->method));
+       g_variant_builder_add(builder, "{sv}", "FUSED_MODE", g_variant_new_int32(handle->fused_mode));
        param = g_variant_ref_sink(g_variant_new("(@a{sv})", g_variant_builder_end(builder)));
        method = g_variant_ref_sink(g_variant_new("(i)", handle->method));
 
@@ -543,7 +545,7 @@ lbs_client_batch_stop(lbs_client_dbus_h lbs_client)
 }
 
 EXPORT_API int
-lbs_client_start(lbs_client_dbus_h lbs_client, unsigned int interval, lbs_client_callback_e callback_type, lbs_client_cb callback, void *user_data)
+lbs_client_start(lbs_client_dbus_h lbs_client, unsigned int interval, lbs_client_callback_e callback_type, lbs_client_cb callback, int fused_mode, void *user_data)
 {
        LBS_CLIENT_LOGD("lbs_client_start");
        g_return_val_if_fail(lbs_client, LBS_CLIENT_ERROR_PARAMETER);
@@ -620,6 +622,7 @@ lbs_client_start(lbs_client_dbus_h lbs_client, unsigned int interval, lbs_client
        g_variant_builder_add(builder, "{sv}", "CMD", g_variant_new_string("START"));
        g_variant_builder_add(builder, "{sv}", "METHOD", g_variant_new_int32(handle->method));
        g_variant_builder_add(builder, "{sv}", "INTERVAL", g_variant_new_uint32(interval));
+       g_variant_builder_add(builder, "{sv}", "FUSED_MODE", g_variant_new_int32(fused_mode));
 
        if (__lbs_get_appid(&app_id)) {
                LBS_CLIENT_LOGD("[%s] Request START", app_id);
@@ -702,12 +705,13 @@ lbs_client_start(lbs_client_dbus_h lbs_client, unsigned int interval, lbs_client
        lbs_client_privacy_signal_subcribe(handle);
        handle->is_started = TRUE;
        handle->interval = interval;
+       handle->fused_mode = fused_mode;
 
        return LBS_CLIENT_ERROR_NONE;
 }
 
 EXPORT_API int
-lbs_client_stop(lbs_client_dbus_h lbs_client, unsigned int interval)
+lbs_client_stop(lbs_client_dbus_h lbs_client, unsigned int interval, int fused_mode)
 {
        LBS_CLIENT_LOGD("lbs_client_stop [interval: %d]", interval);
 
@@ -732,6 +736,7 @@ lbs_client_stop(lbs_client_dbus_h lbs_client, unsigned int interval)
        LBS_CLIENT_LOGD("METHOD: %d", handle->method);
        g_variant_builder_add(builder, "{sv}", "METHOD", g_variant_new_int32(handle->method));
        g_variant_builder_add(builder, "{sv}", "INTERVAL", g_variant_new_uint32(interval));
+       g_variant_builder_add(builder, "{sv}", "FUSED_MODE", g_variant_new_int32(fused_mode));
 
        if (__lbs_get_appid(&app_id)) {
                LBS_CLIENT_LOGD("[%s] Request STOP", app_id);
index 64561f4..afc9a85 100644 (file)
@@ -1,6 +1,6 @@
 Name:          liblbs-dbus
 Summary:       DBus interface for Location Based Service
-Version:       1.0.3
+Version:       1.1.0
 Release:       1
 Group:         Location/Libraries
 License:       Apache-2.0
index e8bb001..7b55b05 100644 (file)
@@ -120,6 +120,16 @@ lbs_server_create(char *service_name,
 int lbs_server_create(char *service_name, char *service_path, char *name, char *description, lbs_server_dbus_h *lbs_server, lbs_server_dbus_cb_t *lbs_server_cb, gpointer userdata);
 int lbs_server_destroy(lbs_server_dbus_h lbs_server);
 
+typedef enum {
+       LBS_SERVER_METHOD_GPS = 0,
+       LBS_SERVER_METHOD_NPS,
+       LBS_SERVER_METHOD_AGPS,
+       LBS_SERVER_METHOD_GEOFENCE,
+       LBS_SERVER_METHOD_MOCK,
+       LBS_SERVER_METHOD_PASSIVE,
+       LBS_SERVER_METHOD_FUSED,
+       LBS_SERVER_METHOD_SIZE,
+} lbs_server_method_e;
 
 __END_DECLS
 
index cf32b7f..9bf0b3f 100644 (file)
@@ -82,16 +82,6 @@ typedef struct _lbs_server_dbus_s {
 #endif
 } lbs_server_dbus_s;
 
-typedef enum {
-       LBS_SERVER_METHOD_GPS = 0,
-       LBS_SERVER_METHOD_NPS,
-       LBS_SERVER_METHOD_AGPS,
-       LBS_SERVER_METHOD_GEOFENCE,
-       LBS_SERVER_METHOD_MOCK,
-       LBS_SERVER_METHOD_PASSIVE,
-       LBS_SERVER_METHOD_SIZE,
-} lbs_server_method_e;
-
 static gboolean lbs_dbus_setup_position_interface(LbsObjectSkeleton *object, lbs_server_dbus_s *ctx)
 {
        LBS_SERVER_LOGD("lbs_dbus_setup_position_interface");
@@ -725,7 +715,6 @@ lbs_server_emit_position_changed(lbs_server_dbus_h lbs_server,
        g_object_unref(lbs_pos);
 
        return LBS_SERVER_ERROR_NONE;
-
 }
 
 EXPORT_API int