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

Commit 9da89b25 authored by Brian Stack's avatar Brian Stack
Browse files

Add ASensorEventQueue_requestAdditionalInfoEvents

Implements the ASensorEventQueue_requestAdditionalInfoEvents which
allows for a client to request additional information sensor events.

Bug: 77276247
Test: Verified additional information events are only delivered to NDK
      clients that have explicitly requested them through the
      ASensorEventQueue_requestAdditionalInfoEvents function

Change-Id: I304ba73908e5dd3eec61360d26e5321d442c6077
parent d46c3e29
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -115,6 +115,7 @@ ASensorEventQueue* ASensorManager_createEventQueue(ASensorManager* manager,
    if (queue != 0) {
        ALooper_addFd(looper, queue->getFd(), ident, ALOOPER_EVENT_INPUT, callback, data);
        queue->looper = looper;
        queue->requestAdditionalInfo = false;
        queue->incStrong(manager);
    }
    return static_cast<ASensorEventQueue*>(queue.get());
@@ -274,11 +275,19 @@ ssize_t ASensorEventQueue_getEvents(ASensorEventQueue* queue, ASensorEvent* even
        return android::BAD_VALUE;
    }

    ssize_t actual = static_cast<SensorEventQueue*>(queue)->read(events, count);
    SensorEventQueue* sensorQueue = static_cast<SensorEventQueue*>(queue);
    ssize_t actual = sensorQueue->read(events, count);
    if (actual > 0) {
        static_cast<SensorEventQueue*>(queue)->sendAck(events, actual);
        sensorQueue->sendAck(events, actual);
    }
    return actual;

    return sensorQueue->filterEvents(events, actual);
}

int ASensorEventQueue_requestAdditionalInfoEvents(ASensorEventQueue* queue, bool enable) {
    RETURN_IF_QUEUE_IS_NULL(android::BAD_VALUE);
    queue->requestAdditionalInfo = enable;
    return android::OK;
}

/*****************************************************************************/