summaryrefslogtreecommitdiff
path: root/native/android
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-01-22 20:47:43 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-01-22 20:47:43 +0000
commitd3ea060251d0f5775f8c412e0f04cd086bf466fe (patch)
treef3f8c9f6f1c33f237ce4f810b485896620cba921 /native/android
parent0bec8721ab6fdca0a9e98bb8f228f2298fa0c968 (diff)
parentea2cb0c72f33a91bae3bce6d60e1f80f29c329e6 (diff)
Merge changes from topic "sensors_ndk_filter"
* changes: Export ASensorEventQueue_requestAdditionalInfoEvents Add ASensorEventQueue_requestAdditionalInfoEvents
Diffstat (limited to 'native/android')
-rw-r--r--native/android/libandroid.map.txt1
-rw-r--r--native/android/sensor.cpp15
2 files changed, 13 insertions, 3 deletions
diff --git a/native/android/libandroid.map.txt b/native/android/libandroid.map.txt
index 736e59f3d577..97ebe3879925 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
diff --git a/native/android/sensor.cpp b/native/android/sensor.cpp
index c3b2e2526ea8..63082fd70bc6 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<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;
}
/*****************************************************************************/