static void __cb_location_updated(GObject *self, int error, gpointer position, gpointer velocity, gpointer accuracy, gpointer userdata)
{
- LOCATIONS_LOGD("Callback function has been invoked. ");
int converted_err = __convert_error_code(error);
location_manager_s *handle = (location_manager_s *) userdata;
LocationPosition *pos = (LocationPosition *) position;
LocationVelocity *vel = (LocationVelocity *) velocity;
- LOCATIONS_LOGD("Current position: timestamp : %d", pos->timestamp);
+ LOCATIONS_LOGD("Callback function[TYPE_LOCATION: single] timestamp : %d, error : %d", pos->timestamp, error);
if (handle->user_cb[_LOCATIONS_EVENT_TYPE_LOCATION]) {
((location_updated_cb) handle->user_cb[_LOCATIONS_EVENT_TYPE_LOCATION])(converted_err, pos->latitude, pos->longitude, pos->altitude,
- pos->timestamp, vel->speed, vel->climb, vel->direction, handle->user_data[_LOCATIONS_EVENT_TYPE_LOCATION]);
+ pos->timestamp, vel->speed, vel->direction, vel->climb, handle->user_data[_LOCATIONS_EVENT_TYPE_LOCATION]);
+ }
+
+ if (error != LOCATION_ERROR_NONE) {
+ location_position_free(pos);
+ location_velocity_free(vel);
}
}