diff options
author | Dante Russo <drusso@codeaurora.org> | 2015-05-01 18:29:28 -0700 |
---|---|---|
committer | Vineeta Srivastava <vsrivastava@google.com> | 2015-05-02 08:36:08 -0700 |
commit | bfff6343845ad9ff062c5fd97bb3b9be1053340e (patch) | |
tree | c57816aa1dfbf8ba546621a1abfd0282ee74ff1e /loc_api/libloc_api_50001/LocEngAdapter.cpp | |
parent | 51025d58ad3a60bd2c5caed17869a9bb360ccaaf (diff) | |
download | gps-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.cpp | 48 |
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, |