sensord: add/change enums and types for avoiding build-break
[platform/core/system/sensord.git] / src / geo / geo_sensor_hal.h
1 /*
2  * geo_sensor_hal
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 _GEO_SENSOR_HAL_H_
21 #define _GEO_SENSOR_HAL_H_
22
23 #include <sensor_hal.h>
24 #include <string>
25
26 #define X_RAW_VAL_NODE  "in_magn_x_raw"
27 #define Y_RAW_VAL_NODE  "in_magn_y_raw"
28 #define Z_RAW_VAL_NODE  "in_magn_z_raw"
29 #define X_SCALE_NODE    "in_magn_x_scale"
30 #define Y_SCALE_NODE    "in_magn_y_scale"
31 #define Z_SCALE_NODE    "in_magn_z_scale"
32
33 using std::string;
34
35 class geo_sensor_hal : public sensor_hal
36 {
37 public:
38         geo_sensor_hal();
39         virtual ~geo_sensor_hal();
40         string get_model_id(void);
41         sensor_type_t get_type(void);
42         bool enable(void);
43         bool disable(void);
44         bool set_interval(unsigned long val);
45         bool is_data_ready(bool wait);
46         virtual int get_sensor_data(sensor_data_t &data);
47         bool get_properties(sensor_properties_s &properties);
48 private:
49         string m_model_id;
50         string m_vendor;
51         string m_chip_name;
52
53         float m_min_range;
54         float m_max_range;
55         float m_raw_data_unit;
56
57         unsigned long m_polling_interval;
58
59         double m_x;
60         double m_y;
61         double m_z;
62         double m_x_scale;
63         double m_y_scale;
64         double m_z_scale;
65
66         int m_hdst;
67
68         unsigned long long m_fired_time;
69         int m_node_handle;
70
71         string m_enable_node;
72
73         /*For Input Method*/
74         string m_data_node;
75         string m_interval_node;
76
77         /*For IIO method*/
78         string m_geo_dir;
79         string m_x_node;
80         string m_y_node;
81         string m_z_node;
82         string m_x_scale_node;
83         string m_y_scale_node;
84         string m_z_scale_node;
85
86         bool m_sensorhub_controlled;
87
88         cmutex m_value_mutex;
89
90         bool update_value(void);
91         bool init_resources(void);
92 };
93 #endif /*_GEO_SENSOR_HAL_H_*/