From 9da89b25ac424daad86f82ed0a2ea30b74af9f7c Mon Sep 17 00:00:00 2001 From: Brian Stack Date: Mon, 14 Jan 2019 12:15:58 -0800 Subject: [PATCH 1/2] 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 --- native/android/sensor.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/native/android/sensor.cpp b/native/android/sensor.cpp index c3b2e2526ea82..63082fd70bc6a 100644 --- a/native/android/sensor.cpp +++ b/native/android/sensor.cpp @@ -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(queue.get()); @@ -274,11 +275,19 @@ ssize_t ASensorEventQueue_getEvents(ASensorEventQueue* queue, ASensorEvent* even return android::BAD_VALUE; } - ssize_t actual = static_cast(queue)->read(events, count); + SensorEventQueue* sensorQueue = static_cast(queue); + ssize_t actual = sensorQueue->read(events, count); if (actual > 0) { - static_cast(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; } /*****************************************************************************/ From ea2cb0c72f33a91bae3bce6d60e1f80f29c329e6 Mon Sep 17 00:00:00 2001 From: Brian Stack Date: Mon, 14 Jan 2019 16:10:06 -0800 Subject: [PATCH 2/2] Export ASensorEventQueue_requestAdditionalInfoEvents Bug: 77276247 Test: Builds Change-Id: Ifa65a67aa136dcec884b16241c99a3349d1de2dc --- native/android/libandroid.map.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/native/android/libandroid.map.txt b/native/android/libandroid.map.txt index 8be8eda06a591..8ae6b6f276944 100644 --- a/native/android/libandroid.map.txt +++ b/native/android/libandroid.map.txt @@ -172,6 +172,7 @@ LIBANDROID { ASensorEventQueue_hasEvents; ASensorEventQueue_registerSensor; # introduced=26 ASensorEventQueue_setEventRate; + ASensorEventQueue_requestAdditionalInfoEvents; # introduced=29 ASensorManager_configureDirectReport; # introduced=26 ASensorManager_createEventQueue; ASensorManager_createHardwareBufferDirectChannel; # introduced=26