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#define LOG_NDDEBUG 0 30e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define LOG_TAG "LocSvc_LocAdapterBase" 31e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 32e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <dlfcn.h> 33e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <LocAdapterBase.h> 34e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <loc_target.h> 35e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <log_util.h> 36e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <LocAdapterProxyBase.h> 37e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 38e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletinamespace loc_core { 39e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 40e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti// This is the top level class, so the constructor will 41e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti// always gets called. Here we prepare for the default. 42e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti// But if getLocApi(targetEnumType target) is overriden, 43e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti// the right locApi should get created. 44e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiLocAdapterBase::LocAdapterBase(const LOC_API_ADAPTER_EVENT_MASK_T mask, 45e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti ContextBase* context, LocAdapterProxyBase *adapterProxyBase) : 46e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti mEvtMask(mask), mContext(context), 47e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti mLocApi(context->getLocApi()), mLocAdapterProxyBase(adapterProxyBase), 48e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti mMsgTask(context->getMsgTask()) 49e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{ 50e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti mLocApi->addAdapter(this); 51e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 52e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 53e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocAdapterBase::handleEngineUpEvent() 54e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{ 55e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti if (mLocAdapterProxyBase) { 56e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti mLocAdapterProxyBase->handleEngineUpEvent(); 57e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 58e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 59e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 60e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocAdapterBase::handleEngineDownEvent() 61e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti{ 62e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti if (mLocAdapterProxyBase) { 63e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti mLocAdapterProxyBase->handleEngineDownEvent(); 64e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 65e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 66e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 67e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocAdapterBase:: 68e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti reportPosition(UlpLocation &location, 69e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsLocationExtended &locationExtended, 70e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void* locationExt, 71e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti enum loc_sess_status status, 72e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti LocPosTechMask loc_technology_mask) { 73e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti if (mLocAdapterProxyBase == NULL || 74e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti !mLocAdapterProxyBase->reportPosition(location, 75e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti locationExtended, 76e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti status, 77e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti loc_technology_mask)) { 78e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti DEFAULT_IMPL() 79e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti } 80e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} 81e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 82e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocAdapterBase:: 8364efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar reportSv(GnssSvStatus &svStatus, 84e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti GpsLocationExtended &locationExtended, 85e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti void* svExt) 86e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL() 87e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 88e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 89e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocAdapterBase:: 90e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti reportStatus(GpsStatusValue status) 91e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL() 92e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 93e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 94e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocAdapterBase:: 95e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti reportNmea(const char* nmea, int length) 96e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL() 97e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 98e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocAdapterBase:: 99e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti reportXtraServer(const char* url1, const char* url2, 100e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti const char* url3, const int maxlength) 101e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(false) 102e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 103e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocAdapterBase:: 104e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti requestXtraData() 105e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(false) 106e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 107e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocAdapterBase:: 108e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti requestTime() 109e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(false) 110e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 111e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocAdapterBase:: 112e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti requestLocation() 113e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(false) 114e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 115e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocAdapterBase:: 116e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti requestATL(int connHandle, AGpsType agps_type) 117e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(false) 118e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 119e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocAdapterBase:: 120e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti releaseATL(int connHandle) 121e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(false) 122e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 123e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocAdapterBase:: 124e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti requestSuplES(int connHandle) 125e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(false) 126e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 127e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocAdapterBase:: 128e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti reportDataCallOpened() 129e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(false) 130e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 131e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocAdapterBase:: 132e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti reportDataCallClosed() 133e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(false) 134e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 135e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletibool LocAdapterBase:: 136e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti requestNiNotify(GpsNiNotification ¬ify, const void* data) 137e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL(false) 138e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti 139e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletivoid LocAdapterBase:: 14064efbd901d2142e100b2f16f4879baedb7de6efeAjit Kumar reportGnssMeasurementData(GnssData &gnssMeasurementData) 141e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore PasupuletiDEFAULT_IMPL() 142e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} // namespace loc_core 143