sensord: declare sensor types by using macro for converting type to
[platform/core/system/sensord.git] / src / shared / sensor_types.h
1 /*
2  * sensord
3  *
4  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 #ifndef _SENSOR_TYPES_H_
21 #define _SENSOR_TYPES_H_
22
23 #include "enum_factory.h"
24
25 #ifdef __cplusplus
26 extern "C"
27 {
28 #endif
29
30 #define SENSOR_TYPE(DEF_SENSOR, DEF_SENSOR_VALUE) \
31         DEF_SENSOR_VALUE(UNKNOWN_SENSOR, -2) \
32         DEF_SENSOR_VALUE(ALL_SENSOR, -1) \
33         DEF_SENSOR_VALUE(ACCELEROMETER_SENSOR, 0) \
34         DEF_SENSOR(GRAVITY_SENSOR) \
35         DEF_SENSOR(LINEAR_ACCEL_SENSOR) \
36         DEF_SENSOR(GEOMAGNETIC_SENSOR) \
37         DEF_SENSOR(ROTATION_VECTOR_SENSOR) \
38         DEF_SENSOR(ORIENTATION_SENSOR) \
39         DEF_SENSOR(GYROSCOPE_SENSOR) \
40         DEF_SENSOR(LIGHT_SENSOR) \
41         DEF_SENSOR(PROXIMITY_SENSOR) \
42         DEF_SENSOR(PRESSURE_SENSOR) \
43         DEF_SENSOR(ULTRAVIOLET_SENSOR) \
44         DEF_SENSOR(TEMPERATURE_SENSOR) \
45         DEF_SENSOR(HUMIDITY_SENSOR) \
46         DEF_SENSOR(HRM_SENSOR) \
47         DEF_SENSOR(HRM_LED_GREEN_SENSOR) \
48         DEF_SENSOR(HRM_LED_IR_SENSOR) \
49         DEF_SENSOR(HRM_LED_RED_SENSOR) \
50         DEF_SENSOR(GYROSCOPE_UNCAL_SENSOR) \
51         DEF_SENSOR(GEOMAGNETIC_UNCAL_SENSOR) \
52         DEF_SENSOR(GYROSCOPE_RV_SENSOR) \
53         DEF_SENSOR(GEOMAGNETIC_RV_SENSOR) \
54         \
55         DEF_SENSOR_VALUE(HUMAN_PEDOMETER_SENSOR, 0x300) \
56         DEF_SENSOR(HUMAN_SLEEP_MONITOR_SENSOR) \
57         \
58         DEF_SENSOR_VALUE(FUSION_SENSOR, 0x900) \
59         DEF_SENSOR(AUTO_ROTATION_SENSOR) \
60         DEF_SENSOR(AUTO_BRIGHTNESS_SENSOR) \
61         \
62         DEF_SENSOR_VALUE(CONTEXT_SENSOR, 0x1000) \
63         DEF_SENSOR(MOTION_SENSOR) \
64         DEF_SENSOR(PIR_SENSOR) \
65         DEF_SENSOR(PIR_LONG_SENSOR) \
66         DEF_SENSOR(DUST_SENSOR) \
67         DEF_SENSOR(THERMOMETER_SENSOR) \
68         DEF_SENSOR(PEDOMETER_SENSOR) \
69         DEF_SENSOR(FLAT_SENSOR) \
70         DEF_SENSOR(HRM_RAW_SENSOR) \
71         DEF_SENSOR(TILT_SENSOR) \
72         DEF_SENSOR(RV_RAW_SENSOR) \
73         DEF_SENSOR(EXERCISE_SENSOR) \
74         \
75         DEF_SENSOR_VALUE(GESTURE_MOVEMENT_SENSOR, 0x1200) \
76         DEF_SENSOR(GESTURE_WRIST_UP_SENSOR) \
77         DEF_SENSOR(GESTURE_WRIST_DOWN_SENSOR) \
78         DEF_SENSOR(GESTURE_MOVEMENT_STATE_SENSOR) \
79         \
80         DEF_SENSOR_VALUE(WEAR_STATUS_SENSOR, 0x1A00) \
81         DEF_SENSOR(WEAR_ON_MONITOR_SENSOR) \
82         DEF_SENSOR(GPS_BATCH_SENSOR) \
83         DEF_SENSOR(ACTIVITY_TRACKER_SENSOR) \
84         DEF_SENSOR(SLEEP_DETECTOR_SENSOR) \
85
86 #define BIO_HRM_SENSOR                  HRM_SENSOR
87 #define BIO_LED_GREEN_SENSOR    HRM_LED_GREEN_SENSOR
88 #define BIO_LED_IR_SENSOR               HRM_LED_IR_SENSOR
89 #define BIO_LED_RED_SENSOR              HRM_LED_RED_SENSOR
90 #define BIO_SENSOR                              HRM_RAW_SENSOR
91
92 DECLARE_SENSOR_ENUM(sensor_type_t, SENSOR_TYPE)
93
94 // Sensor Event Types
95 enum event_types_t {
96         ACCELEROMETER_RAW_DATA_EVENT                                    = (ACCELEROMETER_SENSOR << 16) | 0x0001,
97         ACCELEROMETER_UNPROCESSED_DATA_EVENT                    = (ACCELEROMETER_SENSOR << 16) | 0x0002,
98
99         GYROSCOPE_RAW_DATA_EVENT        = (GYROSCOPE_SENSOR << 16) | 0x0001,
100         GYROSCOPE_UNPROCESSED_DATA_EVENT        = (GYROSCOPE_SENSOR << 16) | 0x0002,
101
102         GEOMAGNETIC_RAW_DATA_EVENT      = (GEOMAGNETIC_SENSOR << 16) | 0x0001,
103         GEOMAGNETIC_UNPROCESSED_DATA_EVENT      = (GEOMAGNETIC_SENSOR << 16) | 0x0002,
104
105         PROXIMITY_CHANGE_STATE_EVENT    = (PROXIMITY_SENSOR << 16) | 0x0001,
106         PROXIMITY_STATE_EVENT   = (PROXIMITY_SENSOR << 16) | 0x0002,
107         PROXIMITY_DISTANCE_DATA_EVENT   = (PROXIMITY_SENSOR << 16) | 0x0003,
108
109         PRESSURE_RAW_DATA_EVENT         = (PRESSURE_SENSOR << 16) | 0x0001,
110
111         TEMPERATURE_RAW_DATA_EVENT      = (TEMPERATURE_SENSOR << 16) | 0x0001,
112
113         LIGHT_LUX_DATA_EVENT    = (LIGHT_SENSOR << 16) | 0x0001,
114         LIGHT_LEVEL_DATA_EVENT  = (LIGHT_SENSOR << 16) | 0x0002,
115         LIGHT_CHANGE_LEVEL_EVENT        = (LIGHT_SENSOR << 16) | 0x0003,
116
117         ROTATION_VECTOR_RAW_DATA_EVENT  = (ROTATION_VECTOR_SENSOR << 16) | 0x0001,
118
119         RV_RAW_RAW_DATA_EVENT   = (RV_RAW_SENSOR << 16) | 0x0001,
120
121         ULTRAVIOLET_RAW_DATA_EVENT      = (ULTRAVIOLET_SENSOR << 16) | 0x0001,
122
123         AUTO_ROTATION_CHANGE_STATE_EVENT = (AUTO_ROTATION_SENSOR << 16) | 0x0001,
124
125         BIO_LED_RED_RAW_DATA_EVENT      = (BIO_LED_RED_SENSOR << 16) | 0x0001,
126
127         GAMING_RV_RAW_DATA_EVENT        = (GYROSCOPE_RV_SENSOR << 16) | 0x0001,
128
129         GEOMAGNETIC_RV_RAW_DATA_EVENT   = (GEOMAGNETIC_RV_SENSOR << 16) | 0x0001,
130
131         GRAVITY_RAW_DATA_EVENT  = (GRAVITY_SENSOR << 16) | 0x0001,
132
133         LINEAR_ACCEL_RAW_DATA_EVENT     = (LINEAR_ACCEL_SENSOR << 16) | 0x0001,
134
135         MOTION_ENGINE_EVENT_SNAP                                = (MOTION_SENSOR << 16) | 0x0001,
136         MOTION_ENGINE_EVENT_SHAKE                               = (MOTION_SENSOR << 16) | 0x0002,
137         MOTION_ENGINE_EVENT_DOUBLETAP                   = (MOTION_SENSOR << 16) | 0x0004,
138         MOTION_ENGINE_EVENT_PANNING                             = (MOTION_SENSOR << 16) | 0x0008,
139         MOTION_ENGINE_EVENT_TOP_TO_BOTTOM               = (MOTION_SENSOR << 16) | 0x0010,
140         MOTION_ENGINE_EVENT_DIRECT_CALL                 = (MOTION_SENSOR << 16) | 0x0020,
141         MOTION_ENGINE_EVENT_TILT_TO_UNLOCK              = (MOTION_SENSOR << 16) | 0x0040,
142         MOTION_ENGINE_EVENT_LOCK_EXECUTE_CAMERA = (MOTION_SENSOR << 16) | 0x0080,
143         MOTION_ENGINE_EVENT_SMART_ALERT                 = (MOTION_SENSOR << 16) | 0x0100,
144         MOTION_ENGINE_EVENT_TILT                                = (MOTION_SENSOR << 16) | 0x0200,
145         MOTION_ENGINE_EVENT_PANNING_BROWSE              = (MOTION_SENSOR << 16) | 0x0400,
146         MOTION_ENGINE_EVENT_NO_MOVE                             = (MOTION_SENSOR << 16) | 0x0800,
147         MOTION_ENGINE_EVENT_SHAKE_ALWAYS_ON     = (MOTION_SENSOR << 16) | 0x1000,
148         MOTION_ENGINE_EVENT_SMART_RELAY         = (MOTION_SENSOR << 16) | 0x2000,
149
150         ORIENTATION_RAW_DATA_EVENT      = (ORIENTATION_SENSOR << 16) | 0x0001,
151
152         TILT_RAW_DATA_EVENT     = (TILT_SENSOR << 16) | 0x0001,
153
154         GYROSCOPE_UNCAL_RAW_DATA_EVENT  = (GYROSCOPE_UNCAL_SENSOR << 16) | 0x0001,
155
156         FUSION_EVENT = (FUSION_SENSOR << 16) | 0x0001,
157         FUSION_GYROSCOPE_UNCAL_EVENT = (FUSION_SENSOR << 16) | 0x0002,
158         FUSION_CALIBRATION_NEEDED_EVENT = (FUSION_SENSOR << 16) | 0x0003,
159         FUSION_ORIENTATION_ENABLED = (FUSION_SENSOR << 16) | 0x0004,
160         FUSION_ROTATION_VECTOR_ENABLED = (FUSION_SENSOR << 16) | 0x0005,
161         FUSION_GAMING_ROTATION_VECTOR_ENABLED = (FUSION_SENSOR << 16) | 0x0006,
162         FUSION_GEOMAGNETIC_ROTATION_VECTOR_ENABLED = (FUSION_SENSOR << 16) | 0x0007,
163         FUSION_TILT_ENABLED = (FUSION_SENSOR << 16) | 0x0008,
164         FUSION_GYROSCOPE_UNCAL_ENABLED = (FUSION_SENSOR << 16) | 0x0009,
165 };
166
167 enum proxi_change_state {
168         PROXIMITY_STATE_NEAR    = 0,
169         PROXIMITY_STATE_FAR     = 1,
170 };
171
172 enum auto_rotation_state {
173         AUTO_ROTATION_DEGREE_UNKNOWN = 0,
174         AUTO_ROTATION_DEGREE_0,
175         AUTO_ROTATION_DEGREE_90,
176         AUTO_ROTATION_DEGREE_180,
177         AUTO_ROTATION_DEGREE_270,
178 };
179
180 enum motion_snap_event {
181         MOTION_ENGIEN_SNAP_NONE                 = 0,
182         MOTION_ENGIEN_NEGATIVE_SNAP_X   = 1,
183         MOTION_ENGIEN_POSITIVE_SNAP_X   = 2,
184         MOTION_ENGIEN_NEGATIVE_SNAP_Y   = 3,
185         MOTION_ENGIEN_POSITIVE_SNAP_Y   = 4,
186         MOTION_ENGIEN_NEGATIVE_SNAP_Z   = 5,
187         MOTION_ENGIEN_POSITIVE_SNAP_Z   = 6,
188         MOTION_ENGIEN_SNAP_LEFT                 = MOTION_ENGIEN_NEGATIVE_SNAP_X,
189         MOTION_ENGIEN_SNAP_RIGHT                = MOTION_ENGIEN_POSITIVE_SNAP_X,
190         MOTION_ENGINE_SNAP_NONE                 = 0,
191         MOTION_ENGINE_NEGATIVE_SNAP_X   = 1,
192         MOTION_ENGINE_POSITIVE_SNAP_X   = 2,
193         MOTION_ENGINE_NEGATIVE_SNAP_Y   = 3,
194         MOTION_ENGINE_POSITIVE_SNAP_Y   = 4,
195         MOTION_ENGINE_NEGATIVE_SNAP_Z   = 5,
196         MOTION_ENGINE_POSITIVE_SNAP_Z   = 6,
197         MOTION_ENGINE_SNAP_LEFT                 = MOTION_ENGINE_NEGATIVE_SNAP_X,
198         MOTION_ENGINE_SNAP_RIGHT                = MOTION_ENGINE_POSITIVE_SNAP_X,
199 };
200
201 enum motion_shake_event {
202         MOTION_ENGIEN_SHAKE_NONE                = 0,
203         MOTION_ENGIEN_SHAKE_DETECTION   = 1,
204         MOTION_ENGIEN_SHAKE_CONTINUING  = 2,
205         MOTION_ENGIEN_SHAKE_FINISH              = 3,
206         MOTION_ENGINE_SHAKE_BREAK               = 4,
207         MOTION_ENGINE_SHAKE_NONE                = 0,
208         MOTION_ENGINE_SHAKE_DETECTION   = 1,
209         MOTION_ENGINE_SHAKE_CONTINUING  = 2,
210         MOTION_ENGINE_SHAKE_FINISH              = 3,
211 };
212
213 enum motion_doubletap_event {
214         MOTION_ENGIEN_DOUBLTAP_NONE                     = 0,
215         MOTION_ENGIEN_DOUBLTAP_DETECTION        = 1,
216         MOTION_ENGINE_DOUBLTAP_NONE                     = 0,
217         MOTION_ENGINE_DOUBLTAP_DETECTION        = 1,
218 };
219
220 enum motion_top_to_bottom_event {
221         MOTION_ENGIEN_TOP_TO_BOTTOM_NONE                = 0,
222         MOTION_ENGIEN_TOP_TO_BOTTOM_WAIT                = 1,
223         MOTION_ENGIEN_TOP_TO_BOTTOM_DETECTION   = 2,
224         MOTION_ENGINE_TOP_TO_BOTTOM_NONE                = 0,
225         MOTION_ENGINE_TOP_TO_BOTTOM_WAIT                = 1,
226         MOTION_ENGINE_TOP_TO_BOTTOM_DETECTION   = 2,
227 };
228
229 enum motion_direct_call_event_t {
230         MOTION_ENGINE_DIRECT_CALL_NONE,
231         MOTION_ENGINE_DIRECT_CALL_DETECTION,
232 };
233
234 enum motion_smart_relay_event_t {
235         MOTION_ENGINE_SMART_RELAY_NONE,
236         MOTION_ENGINE_SMART_RELAY_DETECTION,
237 };
238
239 enum motion_tilt_to_unlock_event_t {
240         MOTION_ENGINE_TILT_TO_UNLOCK_NONE,
241         MOTION_ENGINE_TILT_TO_UNLOCK_DETECTION,
242 };
243
244 enum motion_lock_execute_camera_event_t {
245         MOTION_ENGINE_LOCK_EXECUTE_CAMERA_NONE,
246         MOTION_ENGINE_LOCK_EXECUTE_CAMERA_L_DETECTION,
247         MOTION_ENGINE_LOCK_EXECUTE_CAMERA_R_DETECTION,
248 };
249
250 enum motion_smart_alert_t {
251         MOTION_ENGINE_SMART_ALERT_NONE,
252         MOTION_ENGINE_SMART_ALERT_DETECTION,
253 };
254
255 enum motion_no_move_t {
256         MOTION_ENGINE_NO_MOVE_NONE,
257     MOTION_ENGINE_NO_MOVE_DETECTION,
258 };
259
260 enum motion_property_id {
261         MOTION_PROPERTY_UNKNOWN = 0,
262         MOTION_PROPERTY_CHECK_ACCEL_SENSOR,
263         MOTION_PROPERTY_CHECK_GYRO_SENSOR,
264         MOTION_PROPERTY_CHECK_GEO_SENSOR,
265         MOTION_PROPERTY_CHECK_PRIXI_SENSOR,
266         MOTION_PROPERTY_CHECK_LIGHT_SENSOR,
267         MOTION_PROPERTY_CHECK_BARO_SENSOR,
268         MOTION_PROPERTY_LCD_TOUCH_ON,
269         MOTION_PROPERTY_LCD_TOUCH_OFF,
270         MOTION_PROPERTY_CHECK_GYRO_CAL_STATUS,
271 };
272
273 #ifdef __cplusplus
274 }
275 #endif
276
277 #ifdef __cplusplus
278 DECLARE_SENSOR_ENUM_UTIL_NS(sensor_type_t)
279 #endif
280
281 #include <sensor_deprecated.h>
282
283 #endif /* _SENSOR_TYPES_H_ */