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);
+int lbs_client_stop(lbs_client_dbus_h lbs_client, unsigned int interval);
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);
int lbs_client_get_nmea(lbs_client_dbus_h lbs_client, int *timestamp, char **nmea);
-int lbs_client_set_position_update_interval(lbs_client_dbus_h lbs_client, unsigned int interval);
+int lbs_client_set_position_update_interval(lbs_client_dbus_h lbs_client, unsigned int interval, unsigned int prev_interval);
/* Tizen 3.0 */
int lbs_client_set_mock_location_async(lbs_client_dbus_h lbs_client,
int batch_evt_id;
int nmea_evt_id;
int privacy_evt_id;
+ unsigned int interval;
lbs_client_cb user_cb;
lbs_client_cb batch_cb;
void *user_data;
g_free(pkg_id);
g_free(privacy_id);
- if (lbs_client_stop(handle) != LBS_CLIENT_ERROR_NONE)
+ if (lbs_client_stop(handle, handle->interval) != LBS_CLIENT_ERROR_NONE)
LBS_CLIENT_LOGE("lbs_client_stop is fail");
if (handle->user_cb)
}
EXPORT_API int
-lbs_client_set_position_update_interval(lbs_client_dbus_h lbs_client, unsigned int interval)
+lbs_client_set_position_update_interval(lbs_client_dbus_h lbs_client, unsigned int interval, unsigned int prev_interval)
{
LBS_CLIENT_LOGD("lbs_client_set_position_update_interval");
lbs_client_dbus_s *handle = (lbs_client_dbus_s *)lbs_client;
LBS_CLIENT_LOGD("LBS signal subscribe Object Path [%s]", signal_path);
g_free(signal_path);
- LBS_CLIENT_LOGD("SET option INTERVAL_UPDATE:[%u], method:[%d]", interval, method);
+ LBS_CLIENT_LOGD("SET option INTERVAL_UPDATE:[%u -> %u], method:[%d]", prev_interval, interval, method);
builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
g_variant_builder_add(builder, "{sv}", "CMD", g_variant_new_string("SET:OPT"));
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));
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));
lbs_client_privacy_signal_subcribe(handle);
handle->is_started = TRUE;
+ handle->interval = interval;
return LBS_CLIENT_ERROR_NONE;
}
EXPORT_API int
-lbs_client_stop(lbs_client_dbus_h lbs_client)
+lbs_client_stop(lbs_client_dbus_h lbs_client, unsigned int interval)
{
- LBS_CLIENT_LOGD("lbs_client_stop");
+ LBS_CLIENT_LOGD("lbs_client_stop [interval: %d]", interval);
lbs_client_dbus_s *handle = (lbs_client_dbus_s *)lbs_client;
g_return_val_if_fail(handle, LBS_CLIENT_ERROR_PARAMETER);
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));
if (__lbs_get_appid(&app_id)) {
LBS_CLIENT_LOGD("[%s] Request STOP", app_id);
LBS_SERVER_INTERVAL_REMOVE,
LBS_SERVER_INTERVAL_UPDATE,
} lbs_server_interval_manipulation_type;
-typedef gboolean(*LbsDbusUpdateIntervalCB)(lbs_server_interval_manipulation_type type, const gchar *client, int method, guint interval, gpointer userdata);
+typedef gboolean(*LbsDbusUpdateIntervalCB)(lbs_server_interval_manipulation_type type, const gchar *client, int method, guint interval, guint prev_interval, gpointer userdata);
typedef void (*LbsDbusRequestChangeIntervalCB)(int method, gpointer userdata);
typedef void (*LbsDbusGetNmeaCB)(int *timestamp, gchar **nmea_data, gpointer userdata);
if (ctx->update_interval_cb) {
gboolean is_needed_change_interval = FALSE;
for (index = 0; index < LBS_SERVER_METHOD_SIZE ; index++) {
- is_needed_change_interval = ctx->update_interval_cb(LBS_SERVER_INTERVAL_REMOVE, client, index, 0, ctx->userdata);
+ is_needed_change_interval = ctx->update_interval_cb(LBS_SERVER_INTERVAL_REMOVE, client, index, 0, 0, ctx->userdata);
if (is_needed_change_interval) {
is_needed_change_interval = FALSE;
if (ctx->request_change_interval_cb)