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

Commit e7643e43 authored by Aravind Akella's avatar Aravind Akella Committed by Android Git Automerger
Browse files

am 8ae7c02e: am ffac23b2: am 4b84704b: Ignore flush complete events when...

am 8ae7c02e: am ffac23b2: am 4b84704b: Ignore flush complete events when recording last value for a sensor.

* commit '8ae7c02e':
  Ignore flush complete events when recording last value for a sensor.
parents 1d84e256 8ae7c02e
Loading
Loading
Loading
Loading
+12 −11
Original line number Diff line number Diff line
@@ -426,20 +426,21 @@ bool SensorService::threadLoop()
}

void SensorService::recordLastValue(
        sensors_event_t const * buffer, size_t count)
{
        const sensors_event_t* buffer, size_t count) {
    Mutex::Autolock _l(mLock);
    // record the last event for each sensor
    int32_t prev = buffer[0].sensor;
    for (size_t i=1 ; i<count ; i++) {
        // record the last event of each sensor type in this buffer
        int32_t curr = buffer[i].sensor;
        if (curr != prev) {
            mLastEventSeen.editValueFor(prev) = buffer[i-1];
            prev = curr;
    const sensors_event_t* last = NULL;
    for (size_t i = 0; i < count; i++) {
        const sensors_event_t* event = &buffer[i];
        if (event->type != SENSOR_TYPE_META_DATA) {
            if (last && event->sensor != last->sensor) {
                mLastEventSeen.editValueFor(last->sensor) = *last;
            }
            last = event;
        }
    }
    if (last) {
        mLastEventSeen.editValueFor(last->sensor) = *last;
    }
    mLastEventSeen.editValueFor(prev) = buffer[count-1];
}

void SensorService::sortEventBuffer(sensors_event_t* buffer, size_t count)
+1 −1
Original line number Diff line number Diff line
@@ -131,7 +131,7 @@ class SensorService :

    String8 getSensorName(int handle) const;
    bool isVirtualSensor(int handle) const;
    void recordLastValue(sensors_event_t const * buffer, size_t count);
    void recordLastValue(const sensors_event_t* buffer, size_t count);
    static void sortEventBuffer(sensors_event_t* buffer, size_t count);
    Sensor registerSensor(SensorInterface* sensor);
    Sensor registerVirtualSensor(SensorInterface* sensor);