From 7656285551870fc982e17ee300e3ba57b7cafe8d Mon Sep 17 00:00:00 2001 From: Davide Garberi Date: Wed, 10 Oct 2018 16:48:02 +0200 Subject: msm8996-common: gps: Update from LA.UM.7.2.r1-04000-sdm660.0 * The vendor blobs from LA.UM.7.2.r1-04000-sdm660.0 - B2N_sprout:9/PPR1.180610.011/00WW_3_22C * Update gnsspps from CAF's location repo Change-Id: I6afc29a05459bf6d1951cb36b746d8cc781bc48f Signed-off-by: Davide Garberi --- gps/android/GnssMeasurement.cpp | 42 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) (limited to 'gps/android/GnssMeasurement.cpp') diff --git a/gps/android/GnssMeasurement.cpp b/gps/android/GnssMeasurement.cpp index 8cbfabd..2578a85 100644 --- a/gps/android/GnssMeasurement.cpp +++ b/gps/android/GnssMeasurement.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Not a Contribution */ /* @@ -27,7 +27,7 @@ namespace android { namespace hardware { namespace gnss { -namespace V1_0 { +namespace V1_1 { namespace implementation { void GnssMeasurement::GnssMeasurementDeathRecipient::serviceDied( @@ -52,8 +52,9 @@ GnssMeasurement::~GnssMeasurement() { } // Methods from ::android::hardware::gnss::V1_0::IGnssMeasurement follow. + Return GnssMeasurement::setCallback( - const sp& callback) { + const sp& callback) { Return ret = IGnssMeasurement::GnssMeasurementStatus::ERROR_GENERIC; @@ -72,9 +73,10 @@ Return GnssMeasurement::setCallback( } mGnssMeasurementCbIface = callback; - mGnssMeasurementCbIface->linkToDeath(mGnssMeasurementDeathRecipient, 0 /*cookie*/); + mGnssMeasurementCbIface->linkToDeath(mGnssMeasurementDeathRecipient, 0); return mApi->measurementSetCallback(callback); + } Return GnssMeasurement::close() { @@ -87,13 +89,43 @@ Return GnssMeasurement::close() { mGnssMeasurementCbIface->unlinkToDeath(mGnssMeasurementDeathRecipient); mGnssMeasurementCbIface = nullptr; } + if (mGnssMeasurementCbIface_1_1 != nullptr) { + mGnssMeasurementCbIface_1_1->unlinkToDeath(mGnssMeasurementDeathRecipient); + mGnssMeasurementCbIface_1_1 = nullptr; + } mApi->measurementClose(); return Void(); } +// Methods from ::android::hardware::gnss::V1_1::IGnssMeasurement follow. +Return GnssMeasurement::setCallback_1_1( + const sp& callback, bool /*enableFullTracking*/) { + + Return ret = + IGnssMeasurement::GnssMeasurementStatus::ERROR_GENERIC; + if (mGnssMeasurementCbIface_1_1 != nullptr) { + LOC_LOGE("%s]: GnssMeasurementCallback is already set", __FUNCTION__); + return IGnssMeasurement::GnssMeasurementStatus::ERROR_ALREADY_INIT; + } + + if (callback == nullptr) { + LOC_LOGE("%s]: callback is nullptr", __FUNCTION__); + return ret; + } + if (mApi == nullptr) { + LOC_LOGE("%s]: mApi is nullptr", __FUNCTION__); + return ret; + } + + mGnssMeasurementCbIface_1_1 = callback; + mGnssMeasurementCbIface_1_1->linkToDeath(mGnssMeasurementDeathRecipient, 0); + + return mApi->measurementSetCallback_1_1(callback); +} + } // namespace implementation -} // namespace V1_0 +} // namespace V1_1 } // namespace gnss } // namespace hardware } // namespace android -- cgit v1.2.3