diff options
Diffstat (limited to 'android/hal/GnssConfiguration.cpp')
-rw-r--r-- | android/hal/GnssConfiguration.cpp | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/android/hal/GnssConfiguration.cpp b/android/hal/GnssConfiguration.cpp new file mode 100644 index 00000000..2717571c --- /dev/null +++ b/android/hal/GnssConfiguration.cpp @@ -0,0 +1,84 @@ +#define LOG_TAG "GnssConfiguration" + +#include "GnssConfiguration.h" +#include <log/log.h> + +namespace android { +namespace hardware { +namespace gnss { +namespace V1_1 { +namespace implementation { + +// Methods from ::android::hardware::gnss::V1_0::IGnssConfiguration follow. +Return<bool> GnssConfiguration::setSuplEs(bool) { + // TODO implement + return bool{}; +} + +Return<bool> GnssConfiguration::setSuplVersion(uint32_t) { + // TODO implement + return bool{}; +} + +Return<bool> GnssConfiguration::setSuplMode(hidl_bitfield<SuplMode>) { + // TODO implement + return bool{}; +} + +Return<bool> GnssConfiguration::setGpsLock(hidl_bitfield<GpsLock>) { + // TODO implement + return bool{}; +} + +Return<bool> GnssConfiguration::setLppProfile(hidl_bitfield<LppProfile>) { + // TODO implement + return bool{}; +} + +Return<bool> GnssConfiguration::setGlonassPositioningProtocol(hidl_bitfield<GlonassPosProtocol>) { + // TODO implement + return bool{}; +} + +Return<bool> GnssConfiguration::setEmergencySuplPdn(bool) { + // TODO implement + return bool{}; +} + +// Methods from ::android::hardware::gnss::V1_1::IGnssConfiguration follow. +Return<bool> GnssConfiguration::setBlacklist(const hidl_vec<BlacklistedSource>& sourceList) { + std::unique_lock<std::recursive_mutex> lock(mMutex); + mBlacklistedConstellationSet.clear(); + mBlacklistedSourceSet.clear(); + for (auto source : sourceList) { + if (source.svid == 0) { + // Wildcard blacklist, i.e., blacklist entire constellation. + mBlacklistedConstellationSet.insert(source.constellation); + } else { + mBlacklistedSourceSet.insert(source); + } + } + return true; +} + +Return<bool> GnssConfiguration::isBlacklisted(const GnssSvInfo& gnssSvInfo) const { + std::unique_lock<std::recursive_mutex> lock(mMutex); + if (mBlacklistedConstellationSet.find(gnssSvInfo.constellation) != + mBlacklistedConstellationSet.end()) { + return true; + } + BlacklistedSource source = {.constellation = gnssSvInfo.constellation, .svid = gnssSvInfo.svid}; + return (mBlacklistedSourceSet.find(source) != mBlacklistedSourceSet.end()); +} + +std::recursive_mutex& GnssConfiguration::getMutex() const { + return mMutex; +} + +// Methods from ::android::hidl::base::V1_0::IBase follow. + +} // namespace implementation +} // namespace V1_1 +} // namespace gnss +} // namespace hardware +} // namespace android |