164efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar/* Copyright (c) 2011-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#ifndef LOC_API_BASE_H 30e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define LOC_API_BASE_H 31e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 32e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <stddef.h> 33e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <ctype.h> 34e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <gps_extended.h> 35e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <MsgTask.h> 36e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <log_util.h> 37e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 38e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletinamespace loc_core { 39e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleticlass ContextBase; 40e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 41e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint hexcode(char *hexstring, int string_size, 42e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const char *data, int data_size); 43e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint decodeAddress(char *addr_string, int string_size, 44e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const char *data, int data_size); 45e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 46e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define MAX_ADAPTERS 10 47e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 48e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define TO_ALL_ADAPTERS(adapters, call) \ 49e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti for (int i = 0; i < MAX_ADAPTERS && NULL != (adapters)[i]; i++) { \ 50e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti call; \ 51e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 52e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 53e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define TO_1ST_HANDLING_ADAPTER(adapters, call) \ 54e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti for (int i = 0; i <MAX_ADAPTERS && NULL != (adapters)[i] && !(call); i++); 55e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 56e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum xtra_version_check { 57e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti DISABLED, 58e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti AUTO, 59e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti XTRA2, 60e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti XTRA3 61e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}; 62e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 63e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleticlass LocAdapterBase; 64e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct LocSsrMsg; 65e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct LocOpenMsg; 66e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 67e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleticlass LocApiProxyBase { 68e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletipublic: 69e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti inline LocApiProxyBase() {} 70e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti inline virtual ~LocApiProxyBase() {} 71e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti inline virtual void* getSibling2() { return NULL; } 72e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}; 73e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 74e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleticlass LocApiBase { 75e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti friend struct LocSsrMsg; 76e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti //LocOpenMsg calls open() which makes it necessary to declare 77e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti //it as a friend 78e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti friend struct LocOpenMsg; 79e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti friend class ContextBase; 80e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const MsgTask* mMsgTask; 81e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti ContextBase *mContext; 82e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LocAdapterBase* mLocAdapters[MAX_ADAPTERS]; 83e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti uint64_t mSupportedMsg; 84e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 85e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiprotected: 86e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 87e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti open(LOC_API_ADAPTER_EVENT_MASK_T mask); 88e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 89e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti close(); 90e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_API_ADAPTER_EVENT_MASK_T getEvtMask(); 91e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_API_ADAPTER_EVENT_MASK_T mMask; 92e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LocApiBase(const MsgTask* msgTask, 93e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_API_ADAPTER_EVENT_MASK_T excludedMask, 94e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti ContextBase* context = NULL); 95e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti inline virtual ~LocApiBase() { close(); } 96e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti bool isInSession(); 97e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const LOC_API_ADAPTER_EVENT_MASK_T mExcludedMask; 98e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 99e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletipublic: 100e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti inline void sendMsg(const LocMsg* msg) const { 101e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti mMsgTask->sendMsg(msg); 102e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 103e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 104e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void addAdapter(LocAdapterBase* adapter); 105e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void removeAdapter(LocAdapterBase* adapter); 106e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 107e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti // upward calls 108e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void handleEngineUpEvent(); 109e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void handleEngineDownEvent(); 110e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void reportPosition(UlpLocation &location, 111e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsLocationExtended &locationExtended, 112e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void* locationExt, 113e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti enum loc_sess_status status, 114e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LocPosTechMask loc_technology_mask = 115e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_POS_TECH_MASK_DEFAULT); 11664efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar void reportSv(GnssSvStatus &svStatus, 117e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsLocationExtended &locationExtended, 118e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void* svExt); 119e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void reportStatus(GpsStatusValue status); 120e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void reportNmea(const char* nmea, int length); 121e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void reportXtraServer(const char* url1, const char* url2, 122e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const char* url3, const int maxlength); 123e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void requestXtraData(); 124e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void requestTime(); 125e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void requestLocation(); 126e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void requestATL(int connHandle, AGpsType agps_type); 127e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void releaseATL(int connHandle); 128e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void requestSuplES(int connHandle); 129e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void reportDataCallOpened(); 130e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void reportDataCallClosed(); 131e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void requestNiNotify(GpsNiNotification ¬ify, const void* data); 132e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void saveSupportedMsgList(uint64_t supportedMsgList); 13364efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar void reportGnssMeasurementData(GnssData &gnssMeasurementData); 134e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 135e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti // downward calls 136e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti // All below functions are to be defined by adapter specific modules: 137e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti // RPC, QMI, etc. The default implementation is empty. 138e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 139e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual void* getSibling(); 140e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual LocApiProxyBase* getLocApiProxy(); 141e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 142e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti startFix(const LocPosMode& posMode); 143e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 144e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti stopFix(); 145e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 146e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti deleteAidingData(GpsAidingData f); 147e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 148e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti enableData(int enable); 149e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 150e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setAPN(char* apn, int len); 151e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 152e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti injectPosition(double latitude, double longitude, float accuracy); 153e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 154e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setTime(GpsUtcTime time, int64_t timeReference, int uncertainty); 155e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 156e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setXtraData(char* data, int length); 157e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 158e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti requestXtraServer(); 159e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 160e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti atlOpenStatus(int handle, int is_succ, char* apn, AGpsBearerType bear, AGpsType agpsType); 161e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 162e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti atlCloseStatus(int handle, int is_succ); 163e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 164e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setPositionMode(const LocPosMode& posMode); 165e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 166e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setServer(const char* url, int len); 167e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 168e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setServer(unsigned int ip, int port, 169e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LocServerType type); 170e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 171e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti informNiResponse(GpsUserResponseType userResponse, const void* passThroughData); 172e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 173e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setSUPLVersion(uint32_t version); 174e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 175e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setLPPConfig(uint32_t profile); 176e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 177e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setSensorControlConfig(int sensorUsage, int sensorProvider); 178e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 179e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setSensorProperties(bool gyroBiasVarianceRandomWalk_valid, 180e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti float gyroBiasVarianceRandomWalk, 181e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti bool accelBiasVarianceRandomWalk_valid, 182e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti float accelBiasVarianceRandomWalk, 183e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti bool angleBiasVarianceRandomWalk_valid, 184e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti float angleBiasVarianceRandomWalk, 185e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti bool rateBiasVarianceRandomWalk_valid, 186e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti float rateBiasVarianceRandomWalk, 187e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti bool velocityBiasVarianceRandomWalk_valid, 188e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti float velocityBiasVarianceRandomWalk); 189e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 190e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setSensorPerfControlConfig(int controlMode, 191e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int accelSamplesPerBatch, 192e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int accelBatchesPerSec, 193e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int gyroSamplesPerBatch, 194e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int gyroBatchesPerSec, 195e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int accelSamplesPerBatchHigh, 196e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int accelBatchesPerSecHigh, 197e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int gyroSamplesPerBatchHigh, 198e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int gyroBatchesPerSecHigh, 199e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti int algorithmConfig); 200e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 201e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setExtPowerConfig(int isBatteryCharging); 202e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 203e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti setAGLONASSProtocol(unsigned long aGlonassProtocol); 204e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 205e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti getWwanZppFix(GpsLocation & zppLoc); 206e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 207e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti getBestAvailableZppFix(GpsLocation & zppLoc); 208e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err 209e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti getBestAvailableZppFix(GpsLocation & zppLoc, LocPosTechMask & tech_mask); 210e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual int initDataServiceClient(); 211e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual int openAndStartDataCall(); 212e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual void stopDataCall(); 213e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual void closeDataCall(); 214e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual void installAGpsCert(const DerEncodedCertificate* pData, 215e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti size_t length, 216e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti uint32_t slotBitMask); 2179e34f5b67a41416858c95e17ab0124fcc12b37ccAjit Kumar inline virtual void setInSession(bool /* inSession */) {} 218e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti inline bool isMessageSupported (LocCheckingMessagesID msgID) const { 2199e34f5b67a41416858c95e17ab0124fcc12b37ccAjit Kumar if (msgID > LOC_API_ADAPTER_MESSAGE_MAX) { 220e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return false; 221e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } else { 222e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti uint32_t messageChecker = 1 << msgID; 223e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti return (messageChecker & mSupportedMsg) == messageChecker; 224e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 225e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 226e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void updateEvtMask(); 227e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 228e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti /*Values for lock 229e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 1 = Do not lock any position sessions 230e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 2 = Lock MI position sessions 231e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 3 = Lock MT position sessions 232e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 4 = Lock all position sessions 233e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti */ 234e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual int setGpsLock(LOC_GPS_LOCK_MASK lock); 235e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti /* 236e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti Returns 237e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti Current value of GPS Lock on success 238e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti -1 on failure 239e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti */ 240e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual int getGpsLock(void); 241e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 242e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual enum loc_api_adapter_err setXtraVersionCheck(enum xtra_version_check check); 243e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 244e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti /* 245e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti Update gps reporting events 246e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti */ 247e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual int updateRegistrationMask(LOC_API_ADAPTER_EVENT_MASK_T event, 248e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti loc_registration_mask_status isEnabled); 249e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti /* 250e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti Check if the modem support the service 251e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti */ 252e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti virtual bool gnssConstellationConfig(); 253e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti}; 254e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 255e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletitypedef LocApiBase* (getLocApi_t)(const MsgTask* msgTask, 256e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LOC_API_ADAPTER_EVENT_MASK_T exMask, 257e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti ContextBase *context); 258e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 259e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} // namespace loc_core 260e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 261e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif //LOC_API_BASE_H 262