diff options
Diffstat (limited to 'gnss/aidl/default/GnssMeasurementInterface.h')
-rw-r--r-- | gnss/aidl/default/GnssMeasurementInterface.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gnss/aidl/default/GnssMeasurementInterface.h b/gnss/aidl/default/GnssMeasurementInterface.h index bf77806acb..bb08027568 100644 --- a/gnss/aidl/default/GnssMeasurementInterface.h +++ b/gnss/aidl/default/GnssMeasurementInterface.h @@ -19,8 +19,10 @@ #include <aidl/android/hardware/gnss/BnGnssMeasurementCallback.h> #include <aidl/android/hardware/gnss/BnGnssMeasurementInterface.h> #include <atomic> +#include <future> #include <mutex> #include <thread> +#include "Utils.h" namespace aidl::android::hardware::gnss { @@ -35,15 +37,22 @@ struct GnssMeasurementInterface : public BnGnssMeasurementInterface { ndk::ScopedAStatus setCallbackWithOptions( const std::shared_ptr<IGnssMeasurementCallback>& callback, const Options& options) override; + void setLocationInterval(const int intervalMs); + void setLocationEnabled(const bool enabled); private: void start(const bool enableCorrVecOutputs); void stop(); void reportMeasurement(const GnssData&); + void waitForStoppingThreads(); - std::atomic<long> mMinIntervalMillis; + std::atomic<long> mIntervalMs; + std::atomic<long> mLocationIntervalMs; std::atomic<bool> mIsActive; + std::atomic<bool> mLocationEnabled; std::thread mThread; + std::vector<std::future<void>> mFutures; + ::android::hardware::gnss::common::ThreadBlocker mThreadBlocker; // Guarded by mMutex static std::shared_ptr<IGnssMeasurementCallback> sCallback; |