Loading libs/gui/Sensor.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -272,6 +272,11 @@ Sensor::Sensor(struct sensor_t const* hwSensor, int halVersion) break; } // Set DYNAMIC_SENSOR_MASK and ADDITIONAL_INFO_MASK flag here. Compatible with HAL 1_3. if (halVersion >= SENSORS_DEVICE_API_VERSION_1_3) { mFlags |= (hwSensor->flags & (DYNAMIC_SENSOR_MASK | ADDITIONAL_INFO_MASK)); } // Set DATA_INJECTION flag here. Defined in HAL 1_4. if (halVersion >= SENSORS_DEVICE_API_VERSION_1_4) { mFlags |= (hwSensor->flags & DATA_INJECTION_MASK); Loading services/sensorservice/CorrectedGyroSensor.cpp +13 −18 Original line number Diff line number Diff line Loading @@ -30,9 +30,7 @@ namespace android { // --------------------------------------------------------------------------- CorrectedGyroSensor::CorrectedGyroSensor(sensor_t const* list, size_t count) : mSensorDevice(SensorDevice::getInstance()), mSensorFusion(SensorFusion::getInstance()) { : VirtualSensor() { for (size_t i=0 ; i<count ; i++) { if (list[i].type == SENSOR_TYPE_GYROSCOPE) { mGyro = Sensor(list + i); Loading @@ -40,17 +38,18 @@ CorrectedGyroSensor::CorrectedGyroSensor(sensor_t const* list, size_t count) } } sensor_t hwSensor; hwSensor.name = "Corrected Gyroscope Sensor"; hwSensor.vendor = "AOSP"; hwSensor.version = 1; hwSensor.handle = '_cgy'; hwSensor.type = SENSOR_TYPE_GYROSCOPE; hwSensor.maxRange = mGyro.getMaxValue(); hwSensor.resolution = mGyro.getResolution(); hwSensor.power = mSensorFusion.getPowerUsage(); hwSensor.minDelay = mGyro.getMinDelay(); mSensor = Sensor(&hwSensor); const sensor_t sensor = { .name = "Corrected Gyroscope Sensor", .vendor = "AOSP", .version = 1, .handle = '_cgy', .type = SENSOR_TYPE_GYROSCOPE, .maxRange = mGyro.getMaxValue(), .resolution = mGyro.getResolution(), .power = mSensorFusion.getPowerUsage(), .minDelay = mGyro.getMinDelay(), }; mSensor = Sensor(&sensor); } bool CorrectedGyroSensor::process(sensors_event_t* outEvent, Loading Loading @@ -78,10 +77,6 @@ status_t CorrectedGyroSensor::setDelay(void* ident, int /*handle*/, int64_t ns) return mSensorFusion.setDelay(FUSION_9AXIS, ident, ns); } const Sensor& CorrectedGyroSensor::getSensor() const { return mSensor; } // --------------------------------------------------------------------------- }; // namespace android services/sensorservice/CorrectedGyroSensor.h +1 −6 Original line number Diff line number Diff line Loading @@ -31,19 +31,14 @@ namespace android { class SensorDevice; class SensorFusion; class CorrectedGyroSensor : public SensorInterface { SensorDevice& mSensorDevice; SensorFusion& mSensorFusion; class CorrectedGyroSensor : public VirtualSensor { Sensor mGyro; Sensor mSensor; public: CorrectedGyroSensor(sensor_t const* list, size_t count); virtual bool process(sensors_event_t* outEvent, const sensors_event_t& event) override; virtual status_t activate(void* ident, bool enabled) override; virtual status_t setDelay(void* ident, int handle, int64_t ns) override; virtual const Sensor& getSensor() const override; virtual bool isVirtual() const override { return true; } }; // --------------------------------------------------------------------------- Loading services/sensorservice/GravitySensor.cpp +13 −19 Original line number Diff line number Diff line Loading @@ -29,10 +29,7 @@ namespace android { // --------------------------------------------------------------------------- GravitySensor::GravitySensor(sensor_t const* list, size_t count) : mSensorDevice(SensorDevice::getInstance()), mSensorFusion(SensorFusion::getInstance()) { GravitySensor::GravitySensor(sensor_t const* list, size_t count) { for (size_t i=0 ; i<count ; i++) { if (list[i].type == SENSOR_TYPE_ACCELEROMETER) { mAccelerometer = Sensor(list + i); Loading @@ -40,17 +37,18 @@ GravitySensor::GravitySensor(sensor_t const* list, size_t count) } } sensor_t hwSensor; hwSensor.name = "Gravity Sensor"; hwSensor.vendor = "AOSP"; hwSensor.version = 3; hwSensor.handle = '_grv'; hwSensor.type = SENSOR_TYPE_GRAVITY; hwSensor.maxRange = GRAVITY_EARTH * 2; hwSensor.resolution = mAccelerometer.getResolution(); hwSensor.power = mSensorFusion.getPowerUsage(); hwSensor.minDelay = mSensorFusion.getMinDelay(); mSensor = Sensor(&hwSensor); const sensor_t sensor = { .name = "Gravity Sensor", .vendor = "AOSP", .version = 3, .handle = '_grv', .type = SENSOR_TYPE_GRAVITY, .maxRange = GRAVITY_EARTH * 2, .resolution = mAccelerometer.getResolution(), .power = mSensorFusion.getPowerUsage(), .minDelay = mSensorFusion.getMinDelay(), }; mSensor = Sensor(&sensor); } bool GravitySensor::process(sensors_event_t* outEvent, Loading Loading @@ -85,10 +83,6 @@ status_t GravitySensor::setDelay(void* ident, int /*handle*/, int64_t ns) { return mSensorFusion.setDelay(FUSION_NOMAG, ident, ns); } const Sensor& GravitySensor::getSensor() const { return mSensor; } // --------------------------------------------------------------------------- }; // namespace android services/sensorservice/GravitySensor.h +1 −6 Original line number Diff line number Diff line Loading @@ -31,19 +31,14 @@ namespace android { class SensorDevice; class SensorFusion; class GravitySensor : public SensorInterface { SensorDevice& mSensorDevice; SensorFusion& mSensorFusion; class GravitySensor : public VirtualSensor { Sensor mAccelerometer; Sensor mSensor; public: GravitySensor(sensor_t const* list, size_t count); virtual bool process(sensors_event_t* outEvent, const sensors_event_t& event) override; virtual status_t activate(void* ident, bool enabled) override; virtual status_t setDelay(void* ident, int handle, int64_t ns) override; virtual const Sensor& getSensor() const override; virtual bool isVirtual() const override { return true; } }; // --------------------------------------------------------------------------- Loading Loading
libs/gui/Sensor.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -272,6 +272,11 @@ Sensor::Sensor(struct sensor_t const* hwSensor, int halVersion) break; } // Set DYNAMIC_SENSOR_MASK and ADDITIONAL_INFO_MASK flag here. Compatible with HAL 1_3. if (halVersion >= SENSORS_DEVICE_API_VERSION_1_3) { mFlags |= (hwSensor->flags & (DYNAMIC_SENSOR_MASK | ADDITIONAL_INFO_MASK)); } // Set DATA_INJECTION flag here. Defined in HAL 1_4. if (halVersion >= SENSORS_DEVICE_API_VERSION_1_4) { mFlags |= (hwSensor->flags & DATA_INJECTION_MASK); Loading
services/sensorservice/CorrectedGyroSensor.cpp +13 −18 Original line number Diff line number Diff line Loading @@ -30,9 +30,7 @@ namespace android { // --------------------------------------------------------------------------- CorrectedGyroSensor::CorrectedGyroSensor(sensor_t const* list, size_t count) : mSensorDevice(SensorDevice::getInstance()), mSensorFusion(SensorFusion::getInstance()) { : VirtualSensor() { for (size_t i=0 ; i<count ; i++) { if (list[i].type == SENSOR_TYPE_GYROSCOPE) { mGyro = Sensor(list + i); Loading @@ -40,17 +38,18 @@ CorrectedGyroSensor::CorrectedGyroSensor(sensor_t const* list, size_t count) } } sensor_t hwSensor; hwSensor.name = "Corrected Gyroscope Sensor"; hwSensor.vendor = "AOSP"; hwSensor.version = 1; hwSensor.handle = '_cgy'; hwSensor.type = SENSOR_TYPE_GYROSCOPE; hwSensor.maxRange = mGyro.getMaxValue(); hwSensor.resolution = mGyro.getResolution(); hwSensor.power = mSensorFusion.getPowerUsage(); hwSensor.minDelay = mGyro.getMinDelay(); mSensor = Sensor(&hwSensor); const sensor_t sensor = { .name = "Corrected Gyroscope Sensor", .vendor = "AOSP", .version = 1, .handle = '_cgy', .type = SENSOR_TYPE_GYROSCOPE, .maxRange = mGyro.getMaxValue(), .resolution = mGyro.getResolution(), .power = mSensorFusion.getPowerUsage(), .minDelay = mGyro.getMinDelay(), }; mSensor = Sensor(&sensor); } bool CorrectedGyroSensor::process(sensors_event_t* outEvent, Loading Loading @@ -78,10 +77,6 @@ status_t CorrectedGyroSensor::setDelay(void* ident, int /*handle*/, int64_t ns) return mSensorFusion.setDelay(FUSION_9AXIS, ident, ns); } const Sensor& CorrectedGyroSensor::getSensor() const { return mSensor; } // --------------------------------------------------------------------------- }; // namespace android
services/sensorservice/CorrectedGyroSensor.h +1 −6 Original line number Diff line number Diff line Loading @@ -31,19 +31,14 @@ namespace android { class SensorDevice; class SensorFusion; class CorrectedGyroSensor : public SensorInterface { SensorDevice& mSensorDevice; SensorFusion& mSensorFusion; class CorrectedGyroSensor : public VirtualSensor { Sensor mGyro; Sensor mSensor; public: CorrectedGyroSensor(sensor_t const* list, size_t count); virtual bool process(sensors_event_t* outEvent, const sensors_event_t& event) override; virtual status_t activate(void* ident, bool enabled) override; virtual status_t setDelay(void* ident, int handle, int64_t ns) override; virtual const Sensor& getSensor() const override; virtual bool isVirtual() const override { return true; } }; // --------------------------------------------------------------------------- Loading
services/sensorservice/GravitySensor.cpp +13 −19 Original line number Diff line number Diff line Loading @@ -29,10 +29,7 @@ namespace android { // --------------------------------------------------------------------------- GravitySensor::GravitySensor(sensor_t const* list, size_t count) : mSensorDevice(SensorDevice::getInstance()), mSensorFusion(SensorFusion::getInstance()) { GravitySensor::GravitySensor(sensor_t const* list, size_t count) { for (size_t i=0 ; i<count ; i++) { if (list[i].type == SENSOR_TYPE_ACCELEROMETER) { mAccelerometer = Sensor(list + i); Loading @@ -40,17 +37,18 @@ GravitySensor::GravitySensor(sensor_t const* list, size_t count) } } sensor_t hwSensor; hwSensor.name = "Gravity Sensor"; hwSensor.vendor = "AOSP"; hwSensor.version = 3; hwSensor.handle = '_grv'; hwSensor.type = SENSOR_TYPE_GRAVITY; hwSensor.maxRange = GRAVITY_EARTH * 2; hwSensor.resolution = mAccelerometer.getResolution(); hwSensor.power = mSensorFusion.getPowerUsage(); hwSensor.minDelay = mSensorFusion.getMinDelay(); mSensor = Sensor(&hwSensor); const sensor_t sensor = { .name = "Gravity Sensor", .vendor = "AOSP", .version = 3, .handle = '_grv', .type = SENSOR_TYPE_GRAVITY, .maxRange = GRAVITY_EARTH * 2, .resolution = mAccelerometer.getResolution(), .power = mSensorFusion.getPowerUsage(), .minDelay = mSensorFusion.getMinDelay(), }; mSensor = Sensor(&sensor); } bool GravitySensor::process(sensors_event_t* outEvent, Loading Loading @@ -85,10 +83,6 @@ status_t GravitySensor::setDelay(void* ident, int /*handle*/, int64_t ns) { return mSensorFusion.setDelay(FUSION_NOMAG, ident, ns); } const Sensor& GravitySensor::getSensor() const { return mSensor; } // --------------------------------------------------------------------------- }; // namespace android
services/sensorservice/GravitySensor.h +1 −6 Original line number Diff line number Diff line Loading @@ -31,19 +31,14 @@ namespace android { class SensorDevice; class SensorFusion; class GravitySensor : public SensorInterface { SensorDevice& mSensorDevice; SensorFusion& mSensorFusion; class GravitySensor : public VirtualSensor { Sensor mAccelerometer; Sensor mSensor; public: GravitySensor(sensor_t const* list, size_t count); virtual bool process(sensors_event_t* outEvent, const sensors_event_t& event) override; virtual status_t activate(void* ident, bool enabled) override; virtual status_t setDelay(void* ident, int handle, int64_t ns) override; virtual const Sensor& getSensor() const override; virtual bool isVirtual() const override { return true; } }; // --------------------------------------------------------------------------- Loading