sensorservice: switch to use sp<> in sensor list
* Switch to use smart pointer in SensorList to avoid object
life cycle issue.
* Refactor HardwareSensor and various virtual sensor class.
* Change active virtual sensor map into a set of handles.
Change-Id: I674d5eb5c0038179f9ef1b6f0d576b8b605649ec
diff --git a/services/sensorservice/OrientationSensor.cpp b/services/sensorservice/OrientationSensor.cpp
index 20b49be..ea5dbc9 100644
--- a/services/sensorservice/OrientationSensor.cpp
+++ b/services/sensorservice/OrientationSensor.cpp
@@ -29,24 +29,19 @@
namespace android {
// ---------------------------------------------------------------------------
-OrientationSensor::OrientationSensor()
- : mSensorDevice(SensorDevice::getInstance()),
- mSensorFusion(SensorFusion::getInstance())
-{
- // FIXME: instead of using the SensorFusion code, we should use
- // the SENSOR_TYPE_ROTATION_VECTOR instead. This way we could use the
- // HAL's implementation.
- sensor_t hwSensor;
- hwSensor.name = "Orientation Sensor";
- hwSensor.vendor = "AOSP";
- hwSensor.version = 1;
- hwSensor.handle = '_ypr';
- hwSensor.type = SENSOR_TYPE_ORIENTATION;
- hwSensor.maxRange = 360.0f;
- hwSensor.resolution = 1.0f/256.0f; // FIXME: real value here
- hwSensor.power = mSensorFusion.getPowerUsage();
- hwSensor.minDelay = mSensorFusion.getMinDelay();
- mSensor = Sensor(&hwSensor);
+OrientationSensor::OrientationSensor() {
+ const sensor_t sensor = {
+ .name = "Orientation Sensor",
+ .vendor = "AOSP",
+ .version = 1,
+ .handle = '_ypr',
+ .type = SENSOR_TYPE_ORIENTATION,
+ .maxRange = 360.0f,
+ .resolution = 1.0f/256.0f, // FIXME: real value here
+ .power = mSensorFusion.getPowerUsage(),
+ .minDelay = mSensorFusion.getMinDelay(),
+ };
+ mSensor = Sensor(&sensor);
}
bool OrientationSensor::process(sensors_event_t* outEvent,
@@ -84,10 +79,6 @@
return mSensorFusion.setDelay(FUSION_9AXIS, ident, ns);
}
-const Sensor& OrientationSensor::getSensor() const {
- return mSensor;
-}
-
// ---------------------------------------------------------------------------
}; // namespace android