upload tizen1.0 source
[framework/location/gps-manager.git] / gps-manager / server.c
index 4fc3cd4..31c12dd 100644 (file)
@@ -76,7 +76,7 @@ gps_server_param_t g_gps_params;
 pos_data_t *gps_pos_data = NULL;
 sv_data_t *gps_sv_data = NULL;
 nmea_data_t *gps_nmea_data = NULL;
-last_pos_t *gps_last_pos = NULL;
+pos_data_t *gps_last_pos = NULL;
 
 int g_dnet_used = 0;
 
@@ -276,12 +276,12 @@ static gboolean _initialize_data()
        }
 
        if (gps_last_pos == NULL) {
-               gps_last_pos = (last_pos_t *) malloc(sizeof(last_pos_t));
+               gps_last_pos = (pos_data_t *) malloc(sizeof(pos_data_t));
                if (gps_last_pos == NULL) {
                        LOG_GPS(DBG_ERR, "Failed to alloc gps_last_pos");
                        result = FALSE;
                } else {
-                       memset(gps_last_pos, 0x00, sizeof(last_pos_t));
+                       memset(gps_last_pos, 0x00, sizeof(pos_data_t));
                }
        }
        return result;
@@ -348,10 +348,17 @@ static void _gps_plugin_handler_init(char *module_name)
        g_gps_plugin.handle = NULL;
        g_gps_plugin.name = (char *)malloc(strlen(module_name) + 1);
        snprintf(g_gps_plugin.name, strlen(module_name) + 1, "%s", module_name);
+       if (strcmp(REPLAY_MODULE, g_gps_plugin.name) == 0) {
+               setting_set_int(REPLAY_ENABLED, 1);
+       } else {
+               setting_set_int(REPLAY_ENABLED, 0);
+       }
 }
 
 static void _gps_plugin_handler_deinit()
 {
+       setting_set_int(REPLAY_ENABLED, 0);
+
        if (g_gps_plugin.handle != NULL) {
                g_gps_plugin.handle = NULL;
        }
@@ -369,13 +376,13 @@ static void _gps_read_params()
 
        if (setting_get_int(GPS_SESSION, &int_val) == FALSE) {
                LOG_GPS(DBG_ERR, "//ERROR!! GPS_SESSION setting get failed");
-               int_val = GPS_SESSION_TRACKING_MODE;    //set to default
+               int_val = GPS_SESSION_TRACKING_MODE;
        }
        g_gps_params.session_type = int_val;
 
        if (setting_get_int(GPS_OPERATION, &int_val) == FALSE) {
                LOG_GPS(DBG_ERR, "//ERROR!! GPS_OPERATION setting get failed");
-               int_val = GPS_OPERATION_STANDALONE;     //set to default
+               int_val = GPS_OPERATION_STANDALONE;
        }
        g_gps_params.operation_mode = int_val;
 
@@ -481,11 +488,11 @@ static void _gps_server_start_event()
        }
 
        if (gps_last_pos == NULL) {
-               gps_last_pos = (last_pos_t *) malloc(sizeof(last_pos_t));
+               gps_last_pos = (pos_data_t *) malloc(sizeof(pos_data_t));
                if (gps_last_pos == NULL) {
                        LOG_GPS(DBG_WARN, "//callback: gps_last_pos re-malloc Failed!!");
                } else {
-                       memset(gps_last_pos, 0x00, sizeof(last_pos_t));
+                       memset(gps_last_pos, 0x00, sizeof(pos_data_t));
                        gps_manager_get_last_position(gps_last_pos);
                }
        }
@@ -529,10 +536,9 @@ static void _report_pos_event(gps_event_info_t * gps_event)
 {
        if (gps_pos_data != NULL) {
                memcpy(gps_pos_data, &(gps_event->event_data.pos_ind.pos), sizeof(pos_data_t));
+               memcpy(gps_last_pos, gps_pos_data, sizeof(pos_data_t));
                g_update_cb.pos_cb(gps_pos_data, gps_event->event_data.pos_ind.error, g_user_data);
-               if (gps_manager_distance_to_last_position(gps_pos_data, gps_last_pos) != -1) {
-                       gps_manager_update_last_position(gps_pos_data, gps_last_pos);
-               }
+               gps_manager_set_last_position(gps_last_pos);
                memset(gps_pos_data, 0x00, sizeof(pos_data_t));
        } else {
                LOG_GPS(DBG_ERR, "gps_sv_data is NULL");