48346aca7a4b7a91a8eb67a498f58f83b46df18e
[platform/core/system/sensord.git] / src / shared / sensor_common.h
1 /*
2  * libsensord-share
3  *
4  * Copyright (c) 2014 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_COMMON_H__
21 #define __SENSOR_COMMON_H__
22
23 #ifndef DEPRECATED
24 #define DEPRECATED __attribute__((deprecated))
25 #endif
26
27 #ifdef __cplusplus
28 extern "C"
29 {
30 #endif
31
32 /**
33  * @defgroup SENSOR_FRAMEWORK SensorFW
34  * To support the unified API for the various sensors
35  */
36
37 /**
38  * @defgroup SENSOR_FRAMEWORK_COMMON Sensor Framework Common API
39  * @ingroup SENSOR_FRAMEWORK
40  *
41  * These APIs are used to control the sensors.
42  * @{
43  */
44
45 typedef enum {
46         ALL_SENSOR = -1,
47         UNKNOWN_SENSOR = 0,
48         ACCELEROMETER_SENSOR,
49         GEOMAGNETIC_SENSOR,
50         LIGHT_SENSOR,
51         PROXIMITY_SENSOR,
52         THERMOMETER_SENSOR,
53         GYROSCOPE_SENSOR,
54         PRESSURE_SENSOR,
55         MOTION_SENSOR,
56         FUSION_SENSOR,
57         PEDOMETER_SENSOR,
58         CONTEXT_SENSOR,
59         FLAT_SENSOR,
60         BIO_SENSOR,
61         BIO_HRM_SENSOR,
62         AUTO_ROTATION_SENSOR,
63         GRAVITY_SENSOR,
64         LINEAR_ACCEL_SENSOR,
65         ROTATION_VECTOR_SENSOR,
66         GEOMAGNETIC_RV_SENSOR,
67         GAMING_RV_SENSOR,
68         ORIENTATION_SENSOR,
69         PIR_SENSOR,
70         PIR_LONG_SENSOR,
71         TEMPERATURE_SENSOR,
72         HUMIDITY_SENSOR,
73         ULTRAVIOLET_SENSOR,
74         DUST_SENSOR,
75         BIO_LED_GREEN_SENSOR,
76         BIO_LED_IR_SENSOR,
77         BIO_LED_RED_SENSOR,
78         RV_RAW_SENSOR,
79         UNCAL_GYROSCOPE_SENSOR,
80         UNCAL_GEOMAGNETIC_SENSOR
81 } sensor_type_t;
82
83 typedef unsigned int sensor_id_t;
84
85 typedef void *sensor_t;
86
87 typedef enum {
88         SENSOR_PRIVILEGE_PUBLIC,
89         SENSOR_PRIVILEGE_INTERNAL,
90 } sensor_privilege_t;
91
92
93 #define SENSOR_DATA_VALUE_SIZE 16
94
95 /*
96  *      When modifying it, check copy_sensor_data()
97  */
98 typedef struct sensor_data_t {
99 /*
100  *      Use "accuracy" instead of "data_accuracy"
101  *      which is going to be removed soon
102  */
103         union {
104                 int accuracy;
105                 int data_accuracy; //deprecated
106         };
107
108         union {
109                 unsigned long long timestamp;
110                 unsigned long long time_stamp; //deprecated
111         };
112
113 /*
114  *      Use "value_count" instead of "values_num"
115  *      which is going to be removed soon
116  */
117         union {
118                 int value_count;
119                 int values_num; //deprecated
120         };
121
122         float values[SENSOR_DATA_VALUE_SIZE];
123 } sensor_data_t;
124
125 #define SENSOR_HUB_DATA_SIZE    4096
126
127 typedef struct sensorhub_data_t {
128     int version;
129     int sensorhub;
130     int type;
131     int hub_data_size;
132     unsigned long long timestamp;
133     char hub_data[SENSOR_HUB_DATA_SIZE];
134     float data[16];
135 } sensorhub_data_t;
136
137 enum sensor_accuracy_t {
138         SENSOR_ACCURACY_UNDEFINED = -1,
139         SENSOR_ACCURACY_BAD = 0,
140         SENSOR_ACCURACY_NORMAL =1,
141         SENSOR_ACCURACY_GOOD = 2,
142         SENSOR_ACCURACY_VERYGOOD = 3
143 };
144
145 /*
146  *      To prevent naming confliction as using same enums as sensor CAPI use
147  */
148 #ifndef __SENSOR_H__
149 enum sensor_option_t {
150         SENSOR_OPTION_DEFAULT = 0,
151         SENSOR_OPTION_ON_IN_SCREEN_OFF = 1,
152         SENSOR_OPTION_ON_IN_POWERSAVE_MODE = 2,
153         SENSOR_OPTION_ALWAYS_ON = SENSOR_OPTION_ON_IN_SCREEN_OFF | SENSOR_OPTION_ON_IN_POWERSAVE_MODE,
154         SENSOR_OPTION_END
155 };
156
157 typedef enum sensor_option_t sensor_option_e;
158 #endif
159
160 enum sensor_interval_t {
161         SENSOR_INTERVAL_FASTEST = 0,
162         SENSOR_INTERVAL_NORMAL = 200,
163 };
164
165
166 typedef enum {
167         CONDITION_NO_OP,
168         CONDITION_EQUAL,
169         CONDITION_GREAT_THAN,
170         CONDITION_LESS_THAN,
171 } condition_op_t;
172
173 #ifdef __cplusplus
174 }
175 #endif
176
177
178 #endif
179 //! End of a file