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/GravitySensor.cpp b/services/sensorservice/GravitySensor.cpp
index 0e80f16..9d8add1 100644
--- a/services/sensorservice/GravitySensor.cpp
+++ b/services/sensorservice/GravitySensor.cpp
@@ -29,10 +29,7 @@
namespace android {
// ---------------------------------------------------------------------------
-GravitySensor::GravitySensor(sensor_t const* list, size_t count)
- : mSensorDevice(SensorDevice::getInstance()),
- mSensorFusion(SensorFusion::getInstance())
-{
+GravitySensor::GravitySensor(sensor_t const* list, size_t count) {
for (size_t i=0 ; i<count ; i++) {
if (list[i].type == SENSOR_TYPE_ACCELEROMETER) {
mAccelerometer = Sensor(list + i);
@@ -40,17 +37,18 @@
}
}
- sensor_t hwSensor;
- hwSensor.name = "Gravity Sensor";
- hwSensor.vendor = "AOSP";
- hwSensor.version = 3;
- hwSensor.handle = '_grv';
- hwSensor.type = SENSOR_TYPE_GRAVITY;
- hwSensor.maxRange = GRAVITY_EARTH * 2;
- hwSensor.resolution = mAccelerometer.getResolution();
- hwSensor.power = mSensorFusion.getPowerUsage();
- hwSensor.minDelay = mSensorFusion.getMinDelay();
- mSensor = Sensor(&hwSensor);
+ const sensor_t sensor = {
+ .name = "Gravity Sensor",
+ .vendor = "AOSP",
+ .version = 3,
+ .handle = '_grv',
+ .type = SENSOR_TYPE_GRAVITY,
+ .maxRange = GRAVITY_EARTH * 2,
+ .resolution = mAccelerometer.getResolution(),
+ .power = mSensorFusion.getPowerUsage(),
+ .minDelay = mSensorFusion.getMinDelay(),
+ };
+ mSensor = Sensor(&sensor);
}
bool GravitySensor::process(sensors_event_t* outEvent,
@@ -85,10 +83,6 @@
return mSensorFusion.setDelay(FUSION_NOMAG, ident, ns);
}
-const Sensor& GravitySensor::getSensor() const {
- return mSensor;
-}
-
// ---------------------------------------------------------------------------
}; // namespace android