From 7b2b32f2e761a919deb6f82d978b379429f77b05 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Thu, 14 Jul 2011 16:39:46 -0700 Subject: [PATCH] sensorservice: be more robust when there are no sensor h/w Bug: 5030108 Change-Id: I45b85b3c492b9268cb0ae44d2e5fc8c708b6e66e --- services/sensorservice/SensorFusion.cpp | 32 ++++---- services/sensorservice/SensorService.cpp | 123 ++++++++++++++++--------------- 2 files changed, 80 insertions(+), 75 deletions(-) diff --git a/services/sensorservice/SensorFusion.cpp b/services/sensorservice/SensorFusion.cpp index 4ec0c8cbd2..518a1bb759 100644 --- a/services/sensorservice/SensorFusion.cpp +++ b/services/sensorservice/SensorFusion.cpp @@ -28,23 +28,25 @@ SensorFusion::SensorFusion() mEnabled(false), mGyroTime(0) { sensor_t const* list; - size_t count = mSensorDevice.getSensorList(&list); - for (size_t i=0 ; i 0) { + for (size_t i=0 ; i 0) { + ssize_t orientationIndex = -1; + bool hasGyro = false; + uint32_t virtualSensorsNeeds = + (1<= 0) { - mUserSensorList.removeItemsAt(orientationIndex); + // build the sensor list returned to users + mUserSensorList = mSensorList; + if (hasGyro && + (virtualSensorsNeeds & (1<= 0) { + mUserSensorList.removeItemsAt(orientationIndex); + } } - } - run("SensorService", PRIORITY_URGENT_DISPLAY); - mInitCheck = NO_ERROR; + run("SensorService", PRIORITY_URGENT_DISPLAY); + mInitCheck = NO_ERROR; + } } } -- 2.11.0