Refactor sensor list in SensorService
Refactor sensor lists management logic in sensorservice:
* Factor all sensor list management code into a separate class.
* Remove error-prone repeated sensor lists.
* Solve synchronization issue when sensor is added or removed during runtime.
* Switch to STL containers.
Bug: b/27911774
Change-Id: I94d5571e1fa3166dbe893ffac2a2a7584be6349c
diff --git a/libs/gui/Sensor.cpp b/libs/gui/Sensor.cpp
index 0b2b942..4b9a2ab 100644
--- a/libs/gui/Sensor.cpp
+++ b/libs/gui/Sensor.cpp
@@ -35,8 +35,8 @@
namespace android {
// ----------------------------------------------------------------------------
-Sensor::Sensor()
- : mHandle(0), mType(0),
+Sensor::Sensor(const char * name)
+ : mName(name), mHandle(0), mType(0),
mMinValue(0), mMaxValue(0), mResolution(0),
mPower(0), mMinDelay(0), mVersion(0), mFifoReservedEventCount(0),
mFifoMaxEventCount(0), mRequiredAppOp(0),
@@ -390,6 +390,10 @@
return mFlags & SENSOR_FLAG_WAKE_UP;
}
+bool Sensor::isDynamicSensor() const {
+ return mFlags & SENSOR_FLAG_DYNAMIC_SENSOR;
+}
+
int32_t Sensor::getReportingMode() const {
return ((mFlags & REPORTING_MODE_MASK) >> REPORTING_MODE_SHIFT);
}