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/LinearAccelerationSensor.cpp b/services/sensorservice/LinearAccelerationSensor.cpp
index 04beced..d1cd732 100644
--- a/services/sensorservice/LinearAccelerationSensor.cpp
+++ b/services/sensorservice/LinearAccelerationSensor.cpp
@@ -29,22 +29,21 @@
namespace android {
// ---------------------------------------------------------------------------
-LinearAccelerationSensor::LinearAccelerationSensor(sensor_t const* list, size_t count)
- : mSensorDevice(SensorDevice::getInstance()),
- mGravitySensor(list, count)
-{
+LinearAccelerationSensor::LinearAccelerationSensor(sensor_t const* list, size_t count) :
+ mGravitySensor(list, count) {
const Sensor &gsensor = mGravitySensor.getSensor();
- sensor_t hwSensor;
- hwSensor.name = "Linear Acceleration Sensor";
- hwSensor.vendor = "AOSP";
- hwSensor.version = gsensor.getVersion();
- hwSensor.handle = '_lin';
- hwSensor.type = SENSOR_TYPE_LINEAR_ACCELERATION;
- hwSensor.maxRange = gsensor.getMaxValue();
- hwSensor.resolution = gsensor.getResolution();
- hwSensor.power = gsensor.getPowerUsage();
- hwSensor.minDelay = gsensor.getMinDelay();
- mSensor = Sensor(&hwSensor);
+ const sensor_t sensor = {
+ .name = "Linear Acceleration Sensor",
+ .vendor = "AOSP",
+ .version = gsensor.getVersion(),
+ .handle = '_lin',
+ .type = SENSOR_TYPE_LINEAR_ACCELERATION,
+ .maxRange = gsensor.getMaxValue(),
+ .resolution = gsensor.getResolution(),
+ .power = gsensor.getPowerUsage(),
+ .minDelay = gsensor.getMinDelay(),
+ };
+ mSensor = Sensor(&sensor);
}
bool LinearAccelerationSensor::process(sensors_event_t* outEvent,
@@ -70,10 +69,6 @@
return mGravitySensor.setDelay(ident, handle, ns);
}
-const Sensor& LinearAccelerationSensor::getSensor() const {
- return mSensor;
-}
-
// ---------------------------------------------------------------------------
}; // namespace android