Add ASensorEventQueue_registerSensor and default error value

ASensorEventQueue_registerSensor is new function created in 2016 but
is never exported at NDK level. In this CL the function signature is
formalized and the function name is added to NDK function export
table. Internal class SensorEventQueue is also changed to adapt.

Default error values are also defined.

Test: cts-tradefed run cts --module CtsSensorTestCases \
          --test android.hardware.cts.SensorNativeTest
Change-Id: I74dc72e50ea4bae6d2d8944ce6d2e191ed2f495e
diff --git a/include/android/sensor.h b/include/android/sensor.h
index a5e5c05..d9998ba 100644
--- a/include/android/sensor.h
+++ b/include/android/sensor.h
@@ -48,16 +48,22 @@
  *
  */
 
-#include <sys/types.h>
-
 #include <android/looper.h>
 
+#include <sys/types.h>
+#include <math.h>
+#include <stdint.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 typedef struct AHardwareBuffer AHardwareBuffer;
 
+#define ASENSOR_RESOLUTION_INVALID     (nanf(""))
+#define ASENSOR_FIFO_COUNT_INVALID     (-1)
+#define ASENSOR_DELAY_INVALID          INT32_MIN
+
 /**
  * Sensor types.
  * (keep in sync with hardware/sensors.h)
@@ -112,7 +118,11 @@
      *  All values are in SI units (m/s^2) and measure the acceleration of the
      *  device not including the force of gravity.
      */
-    ASENSOR_TYPE_LINEAR_ACCELERATION = 10
+    ASENSOR_TYPE_LINEAR_ACCELERATION = 10,
+    /**
+     * Invalid sensor type. Returned by {@link ASensor_getType} as error value.
+     */
+    ASENSOR_TYPE_INVALID = -1
 };
 
 /**
@@ -142,7 +152,9 @@
     /** on shot reporting */
     AREPORTING_MODE_ONE_SHOT = 2,
     /** special trigger reporting */
-    AREPORTING_MODE_SPECIAL_TRIGGER = 3
+    AREPORTING_MODE_SPECIAL_TRIGGER = 3,
+    /** invalid reporting mode */
+    AREPORTING_MODE_INVALID = -1
 };
 
 /**
@@ -397,8 +409,7 @@
  * Returns the default sensor with the given type and wakeUp properties or NULL if no sensor
  * of this type and wakeUp properties exists.
  */
-ASensor const* ASensorManager_getDefaultSensorEx(ASensorManager* manager, int type,
-        bool wakeUp);
+ASensor const* ASensorManager_getDefaultSensorEx(ASensorManager* manager, int type, bool wakeUp);
 #endif
 
 /**
@@ -516,7 +527,7 @@
  * Note: To disable the selected sensor, use ASensorEventQueue_disableSensor() same as before.
  */
 int ASensorEventQueue_registerSensor(ASensorEventQueue* queue, ASensor const* sensor,
-        int32_t samplingPeriodUs, int maxBatchReportLatencyUs);
+        int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs);
 
 /**
  * Enable the selected sensor. Returns a negative error code on failure.
@@ -557,8 +568,7 @@
  *   ssize_t numEvent = ASensorEventQueue_getEvents(queue, eventBuffer, 8);
  *
  */
-ssize_t ASensorEventQueue_getEvents(ASensorEventQueue* queue,
-                ASensorEvent* events, size_t count);
+ssize_t ASensorEventQueue_getEvents(ASensorEventQueue* queue, ASensorEvent* events, size_t count);
 
 
 /*****************************************************************************/