summaryrefslogtreecommitdiff
path: root/loc_api/libloc_api_50001/LocEngAdapter.cpp
diff options
context:
space:
mode:
authorDante Russo <drusso@codeaurora.org>2015-05-01 18:29:28 -0700
committerVineeta Srivastava <vsrivastava@google.com>2015-05-02 08:36:08 -0700
commitbfff6343845ad9ff062c5fd97bb3b9be1053340e (patch)
treec57816aa1dfbf8ba546621a1abfd0282ee74ff1e /loc_api/libloc_api_50001/LocEngAdapter.cpp
parent51025d58ad3a60bd2c5caed17869a9bb360ccaaf (diff)
downloadgps-bfff6343845ad9ff062c5fd97bb3b9be1053340e.tar.gz
gps: upgrade GPS HAL to latest
Change-Id: Idd560ad408ad4e9265d212ab42990b8683548599
Diffstat (limited to 'loc_api/libloc_api_50001/LocEngAdapter.cpp')
-rw-r--r--loc_api/libloc_api_50001/LocEngAdapter.cpp48
1 files changed, 47 insertions, 1 deletions
diff --git a/loc_api/libloc_api_50001/LocEngAdapter.cpp b/loc_api/libloc_api_50001/LocEngAdapter.cpp
index 16a150d..2f025af 100644
--- a/loc_api/libloc_api_50001/LocEngAdapter.cpp
+++ b/loc_api/libloc_api_50001/LocEngAdapter.cpp
@@ -70,7 +70,9 @@ LocEngAdapter::LocEngAdapter(LOC_API_ADAPTER_EVENT_MASK_T mask,
mOwner(owner), mInternalAdapter(new LocInternalAdapter(this)),
mUlp(new UlpProxyBase()), mNavigating(false),
mSupportsAgpsRequests(false),
- mSupportsPositionInjection(false), mPowerVote(0)
+ mSupportsPositionInjection(false),
+ mSupportsTimeInjection(false),
+ mPowerVote(0)
{
memset(&mFixCriteria, 0, sizeof(mFixCriteria));
mFixCriteria.mode = LOC_POSITION_MODE_INVALID;
@@ -346,6 +348,50 @@ void LocEngAdapter::handleEngineUpEvent()
sendMsg(new LocEngUp(mOwner));
}
+enum loc_api_adapter_err LocEngAdapter::setTime(GpsUtcTime time,
+ int64_t timeReference,
+ int uncertainty)
+{
+ loc_api_adapter_err result = LOC_API_ADAPTER_ERR_SUCCESS;
+
+ LOC_LOGD("%s:%d]: mSupportsTimeInjection is %d",
+ __func__, __LINE__, mSupportsTimeInjection);
+
+ if (mSupportsTimeInjection) {
+ LOC_LOGD("%s:%d]: Injecting time", __func__, __LINE__);
+ result = mLocApi->setTime(time, timeReference, uncertainty);
+ } else {
+ mSupportsTimeInjection = true;
+ }
+ return result;
+}
+
+enum loc_api_adapter_err LocEngAdapter::setXtraVersionCheck(int check)
+{
+ enum loc_api_adapter_err ret;
+ ENTRY_LOG();
+ enum xtra_version_check eCheck;
+ switch (check) {
+ case 0:
+ eCheck = DISABLED;
+ break;
+ case 1:
+ eCheck = AUTO;
+ break;
+ case 2:
+ eCheck = XTRA2;
+ break;
+ case 3:
+ eCheck = XTRA3;
+ break;
+ default:
+ eCheck = DISABLED;
+ }
+ ret = mLocApi->setXtraVersionCheck(eCheck);
+ EXIT_LOG(%d, ret);
+ return ret;
+}
+
void LocEngAdapter::reportGpsMeasurementData(GpsData &gpsMeasurementData)
{
sendMsg(new LocEngReportGpsMeasurement(mOwner,