summaryrefslogtreecommitdiff
path: root/modules/sensors/dynamic_sensor/DummyDynamicAccelDaemon.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/sensors/dynamic_sensor/DummyDynamicAccelDaemon.cpp')
-rw-r--r--modules/sensors/dynamic_sensor/DummyDynamicAccelDaemon.cpp26
1 files changed, 17 insertions, 9 deletions
diff --git a/modules/sensors/dynamic_sensor/DummyDynamicAccelDaemon.cpp b/modules/sensors/dynamic_sensor/DummyDynamicAccelDaemon.cpp
index 19779678..a1a47e81 100644
--- a/modules/sensors/dynamic_sensor/DummyDynamicAccelDaemon.cpp
+++ b/modules/sensors/dynamic_sensor/DummyDynamicAccelDaemon.cpp
@@ -51,23 +51,30 @@ DummyDynamicAccelDaemon::DummyDynamicAccelDaemon(DynamicSensorManager& manager)
}
}
-BaseSensorObject * DummyDynamicAccelDaemon::createSensor(const std::string &deviceKey) {
+BaseSensorVector DummyDynamicAccelDaemon::createSensor(const std::string &deviceKey) {
+ BaseSensorVector ret;
if (deviceKey.compare(0, 1, "/") == 0) {
// file detector result, deviceKey is file absolute path
- size_t start = std::max(static_cast<size_t>(0),
- deviceKey.length() - (::strlen(FILE_NAME_BASE) + 1));
- return new DummySensor(deviceKey.substr(start));
-
+ const size_t len = ::strlen(FILE_NAME_BASE) + 1; // +1 for number
+ if (deviceKey.length() < len) {
+ ALOGE("illegal file device key %s", deviceKey.c_str());
+ } else {
+ size_t start = deviceKey.length() - len;
+ ret.emplace_back(new DummySensor(deviceKey.substr(start)));
+ }
} else if (deviceKey.compare(0, ::strlen("socket:"), "socket:") == 0) {
- return new DummySensor(deviceKey);
+ ret.emplace_back(new DummySensor(deviceKey));
} else {
// unknown deviceKey
- return nullptr;
+ ALOGE("unknown deviceKey: %s", deviceKey.c_str());
}
+ return ret;
}
-DummyDynamicAccelDaemon::DummySensor::DummySensor(const std::string &name) : mRunState(false) {
+DummyDynamicAccelDaemon::DummySensor::DummySensor(const std::string &name)
+ : Thread(false /*canCallJava*/), mRunState(false) {
mSensorName = "Dummy Accel - " + name;
+ // fake sensor information for dummy sensor
mSensor = (struct sensor_t) {
mSensorName.c_str(),
"DemoSense, Inc.",
@@ -120,7 +127,8 @@ int DummyDynamicAccelDaemon::DummySensor::enable(bool enable) {
return 0;
}
-int DummyDynamicAccelDaemon::DummySensor::batch(nsecs_t, nsecs_t) {
+int DummyDynamicAccelDaemon::DummySensor::batch(int64_t /*samplePeriod*/, int64_t /*batchPeriod*/) {
+ // Dummy sensor does not support changing rate and batching. But return successful anyway.
return 0;
}