From: Marcin Masternak Date: Fri, 12 May 2017 16:39:34 +0000 (+0200) Subject: Fused Location X-Git-Tag: submit/tizen/20170713.072054^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F56%2F111856%2F7;p=platform%2Fcore%2Flocation%2Flbs-dbus.git Fused Location Change-Id: Idf2623e4b47e5b63f5acb86325896a74b2daaab0 Signed-off-by: kj7.sung Signed-off-by: Marcin Masternak --- diff --git a/client/include/lbs_dbus_client.h b/client/include/lbs_dbus_client.h index d3a64e6..6b03553 100644 --- a/client/include/lbs_dbus_client.h +++ b/client/include/lbs_dbus_client.h @@ -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); diff --git a/client/src/lbs_dbus_client.c b/client/src/lbs_dbus_client.c index 0e92fa6..843a5cb 100755 --- a/client/src/lbs_dbus_client.c +++ b/client/src/lbs_dbus_client.c @@ -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); diff --git a/packaging/liblbs-dbus.spec b/packaging/liblbs-dbus.spec index 64561f4..afc9a85 100644 --- a/packaging/liblbs-dbus.spec +++ b/packaging/liblbs-dbus.spec @@ -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 diff --git a/server/include/lbs_dbus_server.h b/server/include/lbs_dbus_server.h index e8bb001..7b55b05 100644 --- a/server/include/lbs_dbus_server.h +++ b/server/include/lbs_dbus_server.h @@ -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 diff --git a/server/src/lbs_dbus_server.c b/server/src/lbs_dbus_server.c index cf32b7f..9bf0b3f 100644 --- a/server/src/lbs_dbus_server.c +++ b/server/src/lbs_dbus_server.c @@ -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