diff options
Diffstat (limited to 'native/include/android/sensor.h')
-rw-r--r-- | native/include/android/sensor.h | 256 |
1 files changed, 0 insertions, 256 deletions
diff --git a/native/include/android/sensor.h b/native/include/android/sensor.h deleted file mode 100644 index f163f18ca615..000000000000 --- a/native/include/android/sensor.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef ANDROID_SENSOR_H -#define ANDROID_SENSOR_H - -/****************************************************************** - * - * IMPORTANT NOTICE: - * - * This file is part of Android's set of stable system headers - * exposed by the Android NDK (Native Development Kit). - * - * Third-party source AND binary code relies on the definitions - * here to be FROZEN ON ALL UPCOMING PLATFORM RELEASES. - * - * - DO NOT MODIFY ENUMS (EXCEPT IF YOU ADD NEW 32-BIT VALUES) - * - DO NOT MODIFY CONSTANTS OR FUNCTIONAL MACROS - * - DO NOT CHANGE THE SIGNATURE OF FUNCTIONS IN ANY WAY - * - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES - */ - -/* - * Structures and functions to receive and process sensor events in - * native code. - * - */ - -#include <sys/types.h> - -#include <android/looper.h> - -#ifdef __cplusplus -extern "C" { -#endif - - -/* - * Sensor types - * (keep in sync with hardware/sensor.h) - */ - -enum { - ASENSOR_TYPE_ACCELEROMETER = 1, - ASENSOR_TYPE_MAGNETIC_FIELD = 2, - ASENSOR_TYPE_GYROSCOPE = 4, - ASENSOR_TYPE_LIGHT = 5, - ASENSOR_TYPE_PROXIMITY = 8 -}; - -/* - * Sensor accuracy measure - */ -enum { - ASENSOR_STATUS_UNRELIABLE = 0, - ASENSOR_STATUS_ACCURACY_LOW = 1, - ASENSOR_STATUS_ACCURACY_MEDIUM = 2, - ASENSOR_STATUS_ACCURACY_HIGH = 3 -}; - -/* - * A few useful constants - */ - -/* Earth's gravity in m/s^2 */ -#define ASENSOR_STANDARD_GRAVITY (9.80665f) -/* Maximum magnetic field on Earth's surface in uT */ -#define ASENSOR_MAGNETIC_FIELD_EARTH_MAX (60.0f) -/* Minimum magnetic field on Earth's surface in uT*/ -#define ASENSOR_MAGNETIC_FIELD_EARTH_MIN (30.0f) - -/* - * A sensor event. - */ - -/* NOTE: Must match hardware/sensors.h */ -typedef struct ASensorVector { - union { - float v[3]; - struct { - float x; - float y; - float z; - }; - struct { - float azimuth; - float pitch; - float roll; - }; - }; - int8_t status; - uint8_t reserved[3]; -} ASensorVector; - -/* NOTE: Must match hardware/sensors.h */ -typedef struct ASensorEvent { - int32_t version; /* sizeof(struct ASensorEvent) */ - int32_t sensor; - int32_t type; - int32_t reserved0; - int64_t timestamp; - union { - float data[16]; - ASensorVector vector; - ASensorVector acceleration; - ASensorVector magnetic; - float temperature; - float distance; - float light; - float pressure; - }; - int32_t reserved1[4]; -} ASensorEvent; - - -struct ASensorManager; -typedef struct ASensorManager ASensorManager; - -struct ASensorEventQueue; -typedef struct ASensorEventQueue ASensorEventQueue; - -struct ASensor; -typedef struct ASensor ASensor; -typedef ASensor const* ASensorRef; -typedef ASensorRef const* ASensorList; - -/*****************************************************************************/ - -/* - * Get a reference to the sensor manager. ASensorManager is a singleton. - * - * Example: - * - * ASensorManager* sensorManager = ASensorManager_getInstance(); - * - */ -ASensorManager* ASensorManager_getInstance(); - - -/* - * Returns the list of available sensors. - */ -int ASensorManager_getSensorList(ASensorManager* manager, ASensorList* list); - -/* - * Returns the default sensor for the given type, or NULL if no sensor - * of that type exist. - */ -ASensor const* ASensorManager_getDefaultSensor(ASensorManager* manager, int type); - -/* - * Creates a new sensor event queue and associate it with a looper. - */ -ASensorEventQueue* ASensorManager_createEventQueue(ASensorManager* manager, - ALooper* looper, int ident, ALooper_callbackFunc callback, void* data); - -/* - * Destroys the event queue and free all resources associated to it. - */ -int ASensorManager_destroyEventQueue(ASensorManager* manager, ASensorEventQueue* queue); - - -/*****************************************************************************/ - -/* - * Enable the selected sensor. Returns a negative error code on failure. - */ -int ASensorEventQueue_enableSensor(ASensorEventQueue* queue, ASensor const* sensor); - -/* - * Disable the selected sensor. Returns a negative error code on failure. - */ -int ASensorEventQueue_disableSensor(ASensorEventQueue* queue, ASensor const* sensor); - -/* - * Sets the delivery rate of events in microseconds for the given sensor. - * Note that this is a hint only, generally event will arrive at a higher - * rate. It is an error to set a rate inferior to the value returned by - * ASensor_getMinDelay(). - * Returns a negative error code on failure. - */ -int ASensorEventQueue_setEventRate(ASensorEventQueue* queue, ASensor const* sensor, int32_t usec); - -/* - * Returns true if there are one or more events available in the - * sensor queue. Returns 1 if the queue has events; 0 if - * it does not have events; and a negative value if there is an error. - */ -int ASensorEventQueue_hasEvents(ASensorEventQueue* queue); - -/* - * Returns the next available events from the queue. Returns a negative - * value if no events are available or an error has occurred, otherwise - * the number of events returned. - * - * Examples: - * ASensorEvent event; - * ssize_t numEvent = ASensorEventQueue_getEvents(queue, &event, 1); - * - * ASensorEvent eventBuffer[8]; - * ssize_t numEvent = ASensorEventQueue_getEvents(queue, eventBuffer, 8); - * - */ -ssize_t ASensorEventQueue_getEvents(ASensorEventQueue* queue, - ASensorEvent* events, size_t count); - - -/*****************************************************************************/ - -/* - * Returns this sensor's name (non localized) - */ -const char* ASensor_getName(ASensor const* sensor); - -/* - * Returns this sensor's vendor's name (non localized) - */ -const char* ASensor_getVendor(ASensor const* sensor); - -/* - * Return this sensor's type - */ -int ASensor_getType(ASensor const* sensor); - -/* - * Returns this sensors's resolution - */ -float ASensor_getResolution(ASensor const* sensor); - -/* - * Returns the minimum delay allowed between events in microseconds. - * A value of zero means that this sensor doesn't report events at a - * constant rate, but rather only when a new data is available. - */ -int ASensor_getMinDelay(ASensor const* sensor); - - -#ifdef __cplusplus -}; -#endif - -#endif // ANDROID_SENSOR_H |