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/SensorInterface.cpp b/services/sensorservice/SensorInterface.cpp
index bb2a8a2..cb24229 100644
--- a/services/sensorservice/SensorInterface.cpp
+++ b/services/sensorservice/SensorInterface.cpp
@@ -14,24 +14,30 @@
* limitations under the License.
*/
+#include "SensorInterface.h"
+#include "SensorDevice.h"
+#include "SensorFusion.h"
+
#include <stdint.h>
#include <sys/types.h>
-#include "SensorInterface.h"
-
namespace android {
// ---------------------------------------------------------------------------
-SensorInterface::~SensorInterface()
-{
+namespace {
+const sensor_t DUMMY_SENSOR = {
+ .name = "", .vendor = "", .stringType = "", .requiredPermission = ""};
+} //unnamed namespace
+
+BaseSensor::BaseSensor(const sensor_t& sensor) :
+ mSensorDevice(SensorDevice::getInstance()),
+ mSensor(&sensor, mSensorDevice.getHalDeviceVersion()) {
}
// ---------------------------------------------------------------------------
-HardwareSensor::HardwareSensor(const sensor_t& sensor)
- : mSensorDevice(SensorDevice::getInstance()),
- mSensor(&sensor, mSensorDevice.getHalDeviceVersion())
-{
+HardwareSensor::HardwareSensor(const sensor_t& sensor):
+ BaseSensor(sensor) {
}
HardwareSensor::~HardwareSensor() {
@@ -65,10 +71,9 @@
mSensorDevice.autoDisable(ident, handle);
}
-const Sensor& HardwareSensor::getSensor() const {
- return mSensor;
+VirtualSensor::VirtualSensor() :
+ BaseSensor(DUMMY_SENSOR), mSensorFusion(SensorFusion::getInstance()) {
}
-
// ---------------------------------------------------------------------------
}; // namespace android