Implement infrared obstacle avoidance sensor
[apps/native/gear-racing-car.git] / inc / resource_internal.h
1 /*
2  * Copyright (c) 2017 Samsung Electronics Co., Ltd.
3  *
4  * Contact: Jin Yoon <jinny.yoon@samsung.com>
5  *          Geunsun Lee <gs86.lee@samsung.com>
6  *          Eunyoung Lee <ey928.lee@samsung.com>
7  *          Junkyu Han <junkyu.han@samsung.com>
8  *
9  * Licensed under the Flora License, Version 1.1 (the License);
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://floralicense.org/license/
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an AS IS BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */
21
22 #ifndef __POSITION_FINDER_RESOURCE_INTERNAL_H__
23 #define __POSITION_FINDER_RESOURCE_INTERNAL_H__
24
25 #include <peripheral_io.h>
26 #include <stdint.h>
27
28 #define PIN_MAX 40
29
30 typedef void (*resource_read_cb)(double value, void *data);
31
32 typedef struct _resource_read_cb_s {
33         resource_read_cb cb;
34         void *data;
35         int pin_num;
36 } resource_read_s;
37
38 typedef void (*resource_changed_cb)(unsigned int value, void *data);
39
40 typedef struct _resource_changed_s {
41         resource_changed_cb cb;
42         void *data;
43         int pin_num;
44 } resource_changed_s;
45
46 typedef struct _resource_s {
47         int opened;
48         peripheral_gpio_h sensor_h;
49         void (*close) (int);
50         /*FIXME*/
51         resource_changed_s *resource_changed_info;
52 } resource_s;
53
54
55 extern resource_s *resource_get_info(int pin_num);
56 extern void resource_close_all(void);
57
58 #endif /* __POSITION_FINDER_RESOURCE_INTERNAL_H__ */