4 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
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
10 * http://www.apache.org/licenses/LICENSE-2.0
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.
20 #ifndef __SENSOR_COMMON_H__
21 #define __SENSOR_COMMON_H__
24 #define DEPRECATED __attribute__((deprecated))
33 * @defgroup SENSOR_FRAMEWORK SensorFW
34 * To support the unified API for the various sensors
38 * @defgroup SENSOR_FRAMEWORK_COMMON Sensor Framework Common API
39 * @ingroup SENSOR_FRAMEWORK
41 * These APIs are used to control the sensors.
65 ROTATION_VECTOR_SENSOR,
66 GEOMAGNETIC_RV_SENSOR,
80 UNCAL_GYROSCOPE_SENSOR,
81 UNCAL_GEOMAGNETIC_SENSOR
84 typedef unsigned int sensor_id_t;
86 typedef void *sensor_t;
89 SENSOR_PRIVILEGE_PUBLIC,
90 SENSOR_PRIVILEGE_INTERNAL,
94 #define SENSOR_DATA_VALUE_SIZE 16
97 * When modifying it, check copy_sensor_data()
99 typedef struct sensor_data_t {
101 * Use "accuracy" instead of "data_accuracy"
102 * which is going to be removed soon
106 int data_accuracy; //deprecated
110 unsigned long long timestamp;
111 unsigned long long time_stamp; //deprecated
115 * Use "value_count" instead of "values_num"
116 * which is going to be removed soon
120 int values_num; //deprecated
123 float values[SENSOR_DATA_VALUE_SIZE];
126 #define SENSOR_HUB_DATA_SIZE 4096
128 typedef struct sensorhub_data_t {
133 unsigned long long timestamp;
134 char hub_data[SENSOR_HUB_DATA_SIZE];
138 enum sensor_accuracy_t {
139 SENSOR_ACCURACY_UNDEFINED = -1,
140 SENSOR_ACCURACY_BAD = 0,
141 SENSOR_ACCURACY_NORMAL =1,
142 SENSOR_ACCURACY_GOOD = 2,
143 SENSOR_ACCURACY_VERYGOOD = 3
147 * To prevent naming confliction as using same enums as sensor CAPI use
150 enum sensor_option_t {
151 SENSOR_OPTION_DEFAULT = 0,
152 SENSOR_OPTION_ON_IN_SCREEN_OFF = 1,
153 SENSOR_OPTION_ON_IN_POWERSAVE_MODE = 2,
154 SENSOR_OPTION_ALWAYS_ON = SENSOR_OPTION_ON_IN_SCREEN_OFF | SENSOR_OPTION_ON_IN_POWERSAVE_MODE,
158 typedef enum sensor_option_t sensor_option_e;
161 enum sensor_interval_t {
162 SENSOR_INTERVAL_FASTEST = 0,
163 SENSOR_INTERVAL_NORMAL = 200,
170 CONDITION_GREAT_THAN,