diff options
Diffstat (limited to 'services/sensorservice/SensorFusion.cpp')
-rw-r--r-- | services/sensorservice/SensorFusion.cpp | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/services/sensorservice/SensorFusion.cpp b/services/sensorservice/SensorFusion.cpp index bb97286..6d93009 100644 --- a/services/sensorservice/SensorFusion.cpp +++ b/services/sensorservice/SensorFusion.cpp @@ -102,15 +102,6 @@ status_t SensorFusion::activate(void* ident, bool enabled) { } } - if (enabled) { - ALOGD_IF(DEBUG_CONNECTIONS, "SensorFusion calling batch ident=%p ", ident); - // Activating a sensor in continuous mode is equivalent to calling batch with the default - // period and timeout equal to ZERO, followed by a call to activate. - mSensorDevice.batch(ident, mAcc.getHandle(), 0, DEFAULT_EVENTS_PERIOD, 0); - mSensorDevice.batch(ident, mMag.getHandle(), 0, DEFAULT_EVENTS_PERIOD, 0); - mSensorDevice.batch(ident, mGyro.getHandle(), 0, DEFAULT_EVENTS_PERIOD, 0); - } - mSensorDevice.activate(ident, mAcc.getHandle(), enabled); mSensorDevice.activate(ident, mMag.getHandle(), enabled); mSensorDevice.activate(ident, mGyro.getHandle(), enabled); @@ -127,9 +118,10 @@ status_t SensorFusion::activate(void* ident, bool enabled) { } status_t SensorFusion::setDelay(void* ident, int64_t ns) { - mSensorDevice.setDelay(ident, mAcc.getHandle(), ns); - mSensorDevice.setDelay(ident, mMag.getHandle(), ms2ns(20)); - mSensorDevice.setDelay(ident, mGyro.getHandle(), mTargetDelayNs); + // Call batch with timeout zero instead of setDelay(). + mSensorDevice.batch(ident, mAcc.getHandle(), 0, ns, 0); + mSensorDevice.batch(ident, mMag.getHandle(), 0, ms2ns(20), 0); + mSensorDevice.batch(ident, mGyro.getHandle(), 0, mTargetDelayNs, 0); return NO_ERROR; } |