164efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar/* Copyright (c) 2009-2014,2016, The Linux Foundation. All rights reserved. 2e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * 3e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * Redistribution and use in source and binary forms, with or without 4e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * modification, are permitted provided that the following conditions are 5e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * met: 6e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * * Redistributions of source code must retain the above copyright 7e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * notice, this list of conditions and the following disclaimer. 8e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * * Redistributions in binary form must reproduce the above 9e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * copyright notice, this list of conditions and the following 10e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * disclaimer in the documentation and/or other materials provided 11e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * with the distribution. 12e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * * Neither the name of The Linux Foundation, nor the names of its 13e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * contributors may be used to endorse or promote products derived 14e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * from this software without specific prior written permission. 15e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * 16e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * 28e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti */ 29e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 30e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#ifndef LOC_ENG_H 31e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define LOC_ENG_H 32e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 33e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#ifdef __cplusplus 34e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiextern "C" { 35e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif /* __cplusplus */ 36e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 37e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti// Uncomment to keep all LOG messages (LOGD, LOGI, LOGV, etc.) 38e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define MAX_NUM_ATL_CONNECTIONS 2 39e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 40e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti// Define boolean type to be used by libgps on loc api module 41e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletitypedef unsigned char boolean; 42e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 43e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#ifndef TRUE 44e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define TRUE 1 45e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif 46e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 47e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#ifndef FALSE 48e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define FALSE 0 49e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif 50e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 51e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <loc.h> 52e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <loc_eng_xtra.h> 53e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <loc_eng_ni.h> 54e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <loc_eng_agps.h> 55e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <loc_cfg.h> 56e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <loc_log.h> 57e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <log_util.h> 58e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <loc_eng_agps.h> 59e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <LocEngAdapter.h> 60e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 61e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti// The data connection minimal open time 62e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define DATA_OPEN_MIN_TIME 1 /* sec */ 63e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 64e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti// The system sees GPS engine turns off after inactive for this period of time 65e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define GPS_AUTO_OFF_TIME 2 /* secs */ 66e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define SUCCESS TRUE 67e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define FAILURE FALSE 68e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define INVALID_ATL_CONNECTION_HANDLE -1 69e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 70da16d7831ac9c02ff31a7baa1b1c112d6a38d7b6Dante Russo#define gps_conf ContextBase::mGps_conf 71da16d7831ac9c02ff31a7baa1b1c112d6a38d7b6Dante Russo#define sap_conf ContextBase::mSap_conf 72e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 73e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_nmea_provider_e_type { 74e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti NMEA_PROVIDER_AP = 0, // Application Processor Provider of NMEA 75e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti NMEA_PROVIDER_MP // Modem Processor Provider of NMEA 76e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}; 77e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 78e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum loc_mute_session_e_type { 79e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_MUTE_SESS_NONE = 0, 80e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_MUTE_SESS_WAIT, 81e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_MUTE_SESS_IN_SESSION 82e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}; 83e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 84e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti// Module data 85e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletitypedef struct loc_eng_data_s 86e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{ 87e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LocEngAdapter *adapter; 88e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti loc_location_cb_ext location_cb; 89e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti gps_status_callback status_cb; 90e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti loc_sv_status_cb_ext sv_status_cb; 91e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti agps_status_extended agps_status_cb; 92e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti gps_nmea_callback nmea_cb; 93e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti gps_ni_notify_callback ni_notify_cb; 94e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti gps_set_capabilities set_capabilities_cb; 95e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti gps_acquire_wakelock acquire_wakelock_cb; 96e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti gps_release_wakelock release_wakelock_cb; 97e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti gps_request_utc_time request_utc_time_cb; 9864efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar gnss_set_system_info set_system_info_cb; 9964efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar gnss_sv_status_callback gnss_sv_status_cb; 10064efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar gnss_measurement_callback gnss_measurement_cb; 101e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti boolean intermediateFix; 102e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti AGpsStatusValue agps_status; 103e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti loc_eng_xtra_data_s_type xtra_module_data; 104e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti loc_eng_ni_data_s_type loc_eng_ni_data; 105e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 106e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti // AGPS state machines 107e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti AgpsStateMachine* agnss_nif; 108e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti AgpsStateMachine* internet_nif; 109e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti AgpsStateMachine* wifi_nif; 110e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti //State machine for Data Services 111e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti AgpsStateMachine* ds_nif; 112e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 113e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti // GPS engine status 114e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsStatusValue engine_status; 115e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsStatusValue fix_session_status; 116e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 117e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti // Aiding data information to be deleted, aiding data can only be deleted when GPS engine is off 118e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsAidingData aiding_data_for_deletion; 119e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 120e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti // For muting session broadcast 121e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti loc_mute_session_e_type mute_session_state; 122e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 123e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti // For nmea generation 124e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti boolean generateNmea; 125e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti uint32_t sv_used_mask; 126e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti float hdop; 127e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti float pdop; 128e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti float vdop; 129e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 130e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti // Address buffers, for addressing setting before init 131e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int supl_host_set; 132e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti char supl_host_buf[101]; 133e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int supl_port_buf; 134e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int c2k_host_set; 135e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti char c2k_host_buf[101]; 136e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int c2k_port_buf; 137e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int mpc_host_set; 138e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti char mpc_host_buf[101]; 139e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int mpc_port_buf; 140e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 141e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti loc_ext_parser location_ext_parser; 142e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti loc_ext_parser sv_ext_parser; 143e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} loc_eng_data_s_type; 144e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 145e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti//loc_eng functions 146e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_init(loc_eng_data_s_type &loc_eng_data, 147e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LocCallbacks* callbacks, 148e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_API_ADAPTER_EVENT_MASK_T event, 149e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti ContextBase* context); 150e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_start(loc_eng_data_s_type &loc_eng_data); 151e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_stop(loc_eng_data_s_type &loc_eng_data); 152e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid loc_eng_cleanup(loc_eng_data_s_type &loc_eng_data); 153e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_inject_time(loc_eng_data_s_type &loc_eng_data, 154e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsUtcTime time, int64_t timeReference, 155e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int uncertainty); 156e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_inject_location(loc_eng_data_s_type &loc_eng_data, 157e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti double latitude, double longitude, 158e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti float accuracy); 159e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid loc_eng_delete_aiding_data(loc_eng_data_s_type &loc_eng_data, 160e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsAidingData f); 161e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_set_position_mode(loc_eng_data_s_type &loc_eng_data, 162e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LocPosMode ¶ms); 163e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleticonst void* loc_eng_get_extension(loc_eng_data_s_type &loc_eng_data, 164e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const char* name); 165e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_set_server_proxy(loc_eng_data_s_type &loc_eng_data, 166e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LocServerType type, const char *hostname, int port); 167e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid loc_eng_mute_one_session(loc_eng_data_s_type &loc_eng_data); 168e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_read_config(void); 169e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 170e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti//loc_eng_agps functions 171e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid loc_eng_agps_init(loc_eng_data_s_type &loc_eng_data, 172e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti AGpsExtCallbacks* callbacks); 173e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_agps_open(loc_eng_data_s_type &loc_eng_data, AGpsExtType agpsType, 174e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const char* apn, AGpsBearerType bearerType); 175e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_agps_closed(loc_eng_data_s_type &loc_eng_data, AGpsExtType agpsType); 176e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_agps_open_failed(loc_eng_data_s_type &loc_eng_data, AGpsExtType agpsType); 177e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid loc_eng_agps_ril_update_network_availability(loc_eng_data_s_type &loc_eng_data, 178e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int avaiable, const char* apn); 179e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_agps_install_certificates(loc_eng_data_s_type &loc_eng_data, 180e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const DerEncodedCertificate* certificates, 181e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti size_t length); 182e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 183e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti//loc_eng_xtra functions 184e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_xtra_init (loc_eng_data_s_type &loc_eng_data, 185e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsXtraExtCallbacks* callbacks); 186e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_xtra_inject_data(loc_eng_data_s_type &loc_eng_data, 187e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti char* data, int length); 188e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_xtra_request_server(loc_eng_data_s_type &loc_eng_data); 189e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid loc_eng_xtra_version_check(loc_eng_data_s_type &loc_eng_data, int check); 190e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 191e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti//loc_eng_ni functions 192e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiextern void loc_eng_ni_init(loc_eng_data_s_type &loc_eng_data, 193e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsNiExtCallbacks *callbacks); 194e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiextern void loc_eng_ni_respond(loc_eng_data_s_type &loc_eng_data, 195e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int notif_id, GpsUserResponseType user_response); 196e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiextern void loc_eng_ni_request_handler(loc_eng_data_s_type &loc_eng_data, 197e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const GpsNiNotification *notif, 198e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const void* passThrough); 199e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiextern void loc_eng_ni_reset_on_engine_restart(loc_eng_data_s_type &loc_eng_data); 200e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 201e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid loc_eng_configuration_update (loc_eng_data_s_type &loc_eng_data, 202e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const char* config_data, int32_t length); 203e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_gps_measurement_init(loc_eng_data_s_type &loc_eng_data, 204e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsMeasurementCallbacks* callbacks); 205e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid loc_eng_gps_measurement_close(loc_eng_data_s_type &loc_eng_data); 206e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 207e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#ifdef __cplusplus 208e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 209e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif /* __cplusplus */ 210e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 211e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif // LOC_ENG_H 212