1 /* dstep -I/path/to/ndk-r9d/platforms/android-9/arch-x86/usr/include -I/path/to/ndk-r9d/toolchains/llvm-3.4/prebuilt/linux-x86/lib/clang/3.4/include /path/to/ndk-r9d/platforms/android-9/arch-x86/usr/include/android/sensor.h -o sensor.d*/
2
3 module android.sensor;
4
5 import core.sys.posix.sys.types;
6 import android.looper;
7
8 version (Android):
9 extern (C):
10 @system:
11 nothrow:
12 @nogc:
13
14 enum
15 {
16 ASENSOR_TYPE_ACCELEROMETER = 1,
17 ASENSOR_TYPE_MAGNETIC_FIELD = 2,
18 ASENSOR_TYPE_GYROSCOPE = 4,
19 ASENSOR_TYPE_LIGHT = 5,
20 ASENSOR_TYPE_PROXIMITY = 8
21 }
22
23 enum
24 {
25 ASENSOR_STATUS_UNRELIABLE = 0,
26 ASENSOR_STATUS_ACCURACY_LOW = 1,
27 ASENSOR_STATUS_ACCURACY_MEDIUM = 2,
28 ASENSOR_STATUS_ACCURACY_HIGH = 3
29 }
30
31 enum ASENSOR_STANDARD_GRAVITY = 9.80665f;
32 enum ASENSOR_MAGNETIC_FIELD_EARTH_MAX = 60.0f;
33 enum ASENSOR_MAGNETIC_FIELD_EARTH_MIN = 30.0f;
34
35 struct ASensorVector
36 {
37 union
38 {
39 float[3] v;
40 struct
41 {
42 float x;
43 float y;
44 float z;
45 }
46 struct
47 {
48 float azimuth;
49 float pitch;
50 float roll;
51 }
52 }
53 byte status;
54 ubyte[3] reserved;
55 }
56
57 struct ASensorEvent
58 {
59 int version_;
60 int sensor;
61 int type;
62 int reserved0;
63 long timestamp;
64 union
65 {
66 float[16] data;
67 ASensorVector vector;
68 ASensorVector acceleration;
69 ASensorVector magnetic;
70 float temperature;
71 float distance;
72 float light;
73 float pressure;
74 }
75 int[4] reserved1;
76 }
77
78 struct ASensorManager;
79 struct ASensorEventQueue;
80 struct ASensor;
81 alias const(ASensor)* ASensorRef;
82 alias const(ASensorRef)* ASensorList;
83
84 ASensorManager* ASensorManager_getInstance();
85 int ASensorManager_getSensorList(ASensorManager* manager, ASensorList* list);
86 const(ASensor)* ASensorManager_getDefaultSensor(ASensorManager* manager, int type);
87 ASensorEventQueue* ASensorManager_createEventQueue(ASensorManager* manager, ALooper* looper, int ident, ALooper_callbackFunc callback, void* data);
88 int ASensorManager_destroyEventQueue(ASensorManager* manager, ASensorEventQueue* queue);
89 int ASensorEventQueue_enableSensor(ASensorEventQueue* queue, const(ASensor)* sensor);
90 int ASensorEventQueue_disableSensor(ASensorEventQueue* queue, const(ASensor)* sensor);
91 int ASensorEventQueue_setEventRate(ASensorEventQueue* queue, const(ASensor)* sensor, int usec);
92 int ASensorEventQueue_hasEvents(ASensorEventQueue* queue);
93 ssize_t ASensorEventQueue_getEvents(ASensorEventQueue* queue, ASensorEvent* events, size_t count);
94 const(char)* ASensor_getName(const(ASensor)* sensor);
95 const(char)* ASensor_getVendor(const(ASensor)* sensor);
96 int ASensor_getType(const(ASensor)* sensor);
97 float ASensor_getResolution(const(ASensor)* sensor);
98 int ASensor_getMinDelay(const(ASensor)* sensor);