Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2927ab7e authored by Brian Stack's avatar Brian Stack
Browse files

Register default accelerometer sensor

Registers a default accelerometer with the Sensors HAL.

Bug: 111070257
Test: Builds, a_sns_test receives accel events
Change-Id: I2f016eb74b9b729854e771264f4c2f1adf025c09
parent 237abc6c
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ namespace sensors {
namespace V2_0 {
namespace implementation {

using ::android::hardware::sensors::V1_0::SensorFlagBits;
using ::android::hardware::sensors::V1_0::SensorStatus;

Sensor::Sensor(ISensorsEventCallback* callback)
@@ -106,6 +107,24 @@ std::vector<Event> Sensor::readEvents() {
    return events;
}

AccelSensor::AccelSensor(int32_t sensorHandle, ISensorsEventCallback* callback) : Sensor(callback) {
    mSensorInfo.sensorHandle = sensorHandle;
    mSensorInfo.name = "Accel Sensor";
    mSensorInfo.vendor = "Vendor String";
    mSensorInfo.version = 1;
    mSensorInfo.type = SensorType::ACCELEROMETER;
    mSensorInfo.typeAsString = "";
    mSensorInfo.maxRange = 78.4f;  // +/- 8g
    mSensorInfo.resolution = 1.52e-5;
    mSensorInfo.power = 0.001f;          // mA
    mSensorInfo.minDelay = 20 * 1000;    // microseconds
    mSensorInfo.maxDelay = 1000 * 1000;  // microseconds
    mSensorInfo.fifoReservedEventCount = 0;
    mSensorInfo.fifoMaxEventCount = 0;
    mSensorInfo.requiredPermission = "";
    mSensorInfo.flags = static_cast<uint32_t>(SensorFlagBits::WAKE_UP);
};

}  // namespace implementation
}  // namespace V2_0
}  // namespace sensors
+5 −0
Original line number Diff line number Diff line
@@ -66,6 +66,11 @@ class Sensor {
    ISensorsEventCallback* mCallback;
};

class AccelSensor : public Sensor {
   public:
    AccelSensor(int32_t sensorHandle, ISensorsEventCallback* callback);
};

}  // namespace implementation
}  // namespace V2_0
}  // namespace sensors
+5 −1
Original line number Diff line number Diff line
@@ -31,7 +31,11 @@ using ::android::hardware::sensors::V1_0::RateLevel;
using ::android::hardware::sensors::V1_0::Result;
using ::android::hardware::sensors::V1_0::SharedMemInfo;

Sensors::Sensors() : mEventQueueFlag(nullptr) {}
Sensors::Sensors() : mEventQueueFlag(nullptr) {
    std::shared_ptr<AccelSensor> accel =
        std::make_shared<AccelSensor>(1 /* sensorHandle */, this /* callback */);
    mSensors[accel->getSensorInfo().sensorHandle] = accel;
}

Sensors::~Sensors() {
    deleteEventFlag();