Tizen 2.0 Release
[profile/ivi/ecore.git] / src / lib / ecore_fb / Ecore_Fb.h
1 #ifndef _ECORE_FB_H
2 #define _ECORE_FB_H
3
4 #include <Eina.h>
5
6 #ifdef EAPI
7 # undef EAPI
8 #endif
9
10 #ifdef __GNUC__
11 # if __GNUC__ >= 4
12 #  define EAPI __attribute__ ((visibility("default")))
13 # else
14 #  define EAPI
15 # endif
16 #else
17 # define EAPI
18 #endif
19
20 /* FIXME:
21  * maybe a new module?
22  * - code to get battery info
23  * - code to get thermal info
24  * ecore evas fb isn't good enough for weird things, like multiple fb's, same happens here.
25  * backlight support using new kernel interface
26  * absolute axis
27  * joystick
28  * ecore_fb_li_device_close_all ? or a shutdown of the subsystem?
29  *
30  */
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 /**
37  * @defgroup Ecore_FB_Group Ecore_FB - Frame buffer convenience functions.
38  *
39  * Functions used to set up and shut down the Ecore_Framebuffer functions.
40  *
41  * @{
42  */
43
44 /**
45  * @typedef Ecore_Fb_Input_Device
46  * Input device handler.
47  */
48 typedef struct _Ecore_Fb_Input_Device Ecore_Fb_Input_Device;
49
50 /**
51  * @enum _Ecore_Fb_Input_Device_Cap
52  * Device capabilities.
53  */
54 enum _Ecore_Fb_Input_Device_Cap
55 {
56    ECORE_FB_INPUT_DEVICE_CAP_NONE            = 0x00000000,
57    ECORE_FB_INPUT_DEVICE_CAP_RELATIVE        = 0x00000001,
58    ECORE_FB_INPUT_DEVICE_CAP_ABSOLUTE        = 0x00000002,
59    ECORE_FB_INPUT_DEVICE_CAP_KEYS_OR_BUTTONS = 0x00000004
60 };
61
62 /**
63  * @typedef Ecore_Fb_Input_Device_Cap
64  * Device capabilities.
65  */
66 typedef enum   _Ecore_Fb_Input_Device_Cap Ecore_Fb_Input_Device_Cap;
67
68 /* ecore_fb_vt.c */
69 EAPI void                      ecore_fb_callback_gain_set(void (*func) (void *data), void *data);
70 EAPI void                      ecore_fb_callback_lose_set(void (*func) (void *data), void *data);
71
72 /* ecore_fb_li.c */
73 EAPI Ecore_Fb_Input_Device    *ecore_fb_input_device_open(const char *dev);
74 EAPI void                      ecore_fb_input_device_close(Ecore_Fb_Input_Device *dev);
75 EAPI void                      ecore_fb_input_device_listen(Ecore_Fb_Input_Device *dev, Eina_Bool listen);
76 EAPI const char               *ecore_fb_input_device_name_get(Ecore_Fb_Input_Device *dev);
77 EAPI Ecore_Fb_Input_Device_Cap ecore_fb_input_device_cap_get(Ecore_Fb_Input_Device *dev);
78 EAPI void                      ecore_fb_input_device_axis_size_set(Ecore_Fb_Input_Device *dev, int w, int h);
79 EAPI void                      ecore_fb_input_threshold_click_set(Ecore_Fb_Input_Device *dev, double threshold);
80 EAPI double                    ecore_fb_input_threshold_click_get(Ecore_Fb_Input_Device *dev);
81 EAPI void                      ecore_fb_input_device_window_set(Ecore_Fb_Input_Device *dev, void *window);
82
83 /* ecore_fb.c */
84
85 EAPI int                       ecore_fb_init(const char *name);
86 EAPI int                       ecore_fb_shutdown(void);
87 EAPI void                      ecore_fb_size_get(int *w, int *h);
88
89 EAPI void                      ecore_fb_touch_screen_calibrate_set(int xscale, int xtrans, int yscale, int ytrans, int xyswap);
90 EAPI void                      ecore_fb_touch_screen_calibrate_get(int *xscale, int *xtrans, int *yscale, int *ytrans, int *xyswap);
91
92 /**
93  * @}
94  */
95
96 #ifdef __cplusplus
97 }
98 #endif
99
100 #endif