1 #ifndef _LIBPUI_BACKEND_H_
2 #define _LIBPUI_BACKEND_H_
5 #include "PUI_internal.h"
7 #define PUI_BACKEND_ABI_MAJOR_MASK 0xFFFF0000
8 #define PUI_BACKEND_ABI_MINOR_MASK 0x0000FFFF
10 #define PUI_BACKEND_GET_ABI_MAJOR(m) ((m) & PUI_BACKEND_ABI_MAJOR_MASK) >> 16)
11 #define PUI_BACKEND_GET_ABI_MINOR(m) ((m) & PUI_BACKEND_ABI_MINOR_MASK)
13 #define PUI_BACKEND_SET_ABI_VERSION(major, minor) \
14 ((((major) << 16) & PUI_BACKEND_ABI_MAJOR_MASK) | ((minor) & PUI_BACKEND_ABI_MINOR_MASK))
16 #define PUI_BACKEND_ABI_VERSION_1_0 PUI_BACKEND_SET_ABI_VERSION(1, 0)
17 #define PUI_BACKEND_AB_VERSION_LAST PUI_BACKEND_ABI_VERSION_1_0
19 typedef struct _pui_ani_control_buffer pui_ani_control_buffer;
20 typedef struct _pui_ani_mgr pui_ani_mgr;
22 typedef struct _pui_backend_ani_func pui_backend_ani_func;
23 struct _pui_backend_ani_func
25 pui_error (*ani_create)(pui_ani_mgr *ani_mgr, pui_id id);
26 pui_error (*ani_start)(pui_ani_mgr *ani_mgr, int repeat);
27 pui_error (*ani_stop)(pui_ani_mgr *ani_mgr);
29 void (*reserved1)(void);
30 void (*reserved2)(void);
31 void (*reserved3)(void);
32 void (*reserved4)(void);
33 void (*reserved5)(void);
34 void (*reserved6)(void);
35 void (*reserved7)(void);
36 void (*reserved8)(void);
37 void (*reserved9)(void);
38 void (*reserved10)(void);
41 typedef struct _pui_backend_module_data pui_backend_module_data;
42 struct _pui_backend_module_data
46 pui_int_error (*create_ani_collection)(void);
47 pui_int_error (*is_ani_supported)(pui_id id);
48 pui_backend_ani_func *(*get_ani_func)(pui_id id);
51 typedef struct _pui_backend_module pui_backend_module;
52 typedef struct _pui_backend_module
54 const char *name; /**< The name of a backend module */
55 const char *vendor; /**< The vendor name of a backend module */
56 unsigned long abi_version; /**< The API version of a backend module */
58 pui_backend_module_data *(*backend_init)(void);
59 void (*backend_deinit)(pui_backend_module_data *backend_data);
62 typedef void pui_backend_ani_data;
68 pui_ani_control_buffer *
69 pui_backend_ani_get_buffer(pui_ani_mgr *ani_mgr);
72 pui_backend_ani_set_buffer(pui_ani_mgr *ani_mgr, pui_ani_control_buffer *buffer);
75 pui_backend_ani_update(pui_ani_mgr *ani_mgr);
78 pui_backend_ani_add_frame_cb(pui_ani_mgr *ani_mgr, Eina_Bool (*frame_cb)(void *data), double expire, void *data)
\r;
81 pui_backend_ani_remove_frame_cb(pui_ani_mgr *ani_mgr, void *data);
83 pui_backend_ani_func *
84 pui_backend_ani_alloc_ani_func(void);
87 pui_backend_ani_free_ani_func(pui_backend_ani_func *func);
93 #endif//_LIBPUI_BACKEND_H_