2 #include <PUI_backend.h>
4 pui_backend_ani_func *ani_func = NULL;
16 typedef struct _default_ani_data default_ani_data;
17 struct _default_ani_data
20 pui_ani_status status;
21 pui_ani_control_buffer *buffer;
24 unsigned int key_frame_idx;
25 unsigned int num_key_frames;
27 pui_effect_func effect_func;
29 Eina_Bool (*frame_cb)(void *data);
34 Ecore_Timer *frame_cb_timer;
39 _start_frame(pui_ani_mgr *ani_mgr)
49 //pui_backend_ani_get_buffer();
50 //pui_backend_ani_update();
54 get_ani_data_from_collection(default_ani_data *data, pui_id id)
56 pui_int_error e = PUI_INT_ERROR_NONE;
60 //ex> data->interval = 30;
65 pui_backend_ani_data *
66 _ani_create(pui_ani_mgr *ani_mgr, pui_id id)
68 pui_int_error e = PUI_INT_ERROR_NONE;
69 default_ani_data *data = (default_ani_data *)calloc(1, sizeof(default_ani_data));
73 pui_err("Failed to allocate memory !\n");
77 e = get_ani_data_from_collection(data, id);
79 if (PUI_INT_ERROR_NONE != e)
81 pui_err("Failed to get ani data from collection !\n");
85 return (pui_backend_ani_data *)default_ani_data;
95 _ani_start(pui_ani_mgr *ani_mgr, int repeat)
97 pui_int_error e = PUI_INT_ERROR_NONE;
99 default_ani_data *data = (default_ani_data *)ani_mgr->ani_data;
102 //start_frame(ani_mgr);
103 //pui_backend_ani_add_frame_cb(data->frame_cb);
109 _ani_stop(pui_ani_mgr *ani_mgr)
111 pui_int_error e = PUI_INT_ERROR_NONE;
113 default_ani_data *data = (default_ani_data *)ani_mgr->ani_data;
116 //pui_backend_ani_remove_frame_cb(data->frame_cb);
122 _create_ani_collection(void)
124 pui_int_error e = PUI_INT_ERROR_NONE;
132 _is_ani_supported(pui_id id)
134 pui_int_error e = PUI_INT_ERROR_NONE;
137 /* if the given id is not supported, return PUI_INT_ERROR_ID_NOT_SUPPORTED. */
142 pui_backend_ani_func *
143 _get_ani_func(pui_id id)
148 ani_func = pui_backend_ani_alloc_ani_func();
152 pui_err("Failed to allocate memory !\n");
156 /* Assign each function pointer that corresponds to the given id */
157 ani_func->ani_create = _ani_create;
158 ani_func->ani_start = _ani_start;
159 ani_func->ani_stop = _ani_stop;
161 ani_func->reserved1 = NULL;
162 ani_func->reserved2 = NULL;
163 ani_func->reserved3 = NULL;
164 ani_func->reserved4 = NULL;
165 ani_func->reserved5 = NULL;
166 ani_func->reserved6 = NULL;
167 ani_func->reserved7 = NULL;
168 ani_func->reserved8 = NULL;
169 ani_func->reserved9 = NULL;
170 ani_func->reserved10 = NULL;
175 static pui_backend_module_data *
176 pui_default_backend_init(void)
178 pui_backend_module_data *backend_data = NULL;
180 backend_data = (pui_backend_module_data *)calloc(1, sizeof(pui_backend_module_data));
184 pui_err("Failed to allocate memory for pui backend module data !\n");
188 /* Allocate backend specific data if needed. Now it will be empty. */
189 backend_data->data = NULL;
191 backend_data->create_ani_collection = _create_ani_collection;
192 backend_data->is_ani_supported = _is_ani_supported;
193 backend_data->get_ani_func = _get_ani_func;
200 if (backend_data->data)
202 free(backend_data->data);
212 pui_default_backend_deinit(pui_backend_module_data *backend_data)
217 if (backend_data->data)
219 //TODO : free variables of backend_data
221 free(backend_data->data);
224 if (backend_data->get_ani_func && ani_func)
226 pui_backend_ani_free_ani_func(ani_func);
230 backend_data->get_ani_func = NULL;
231 backend_data->create_ani_collection = NULL;
232 backend_data->is_ani_supported = NULL;
238 pui_backend_module pui_backend_module_info = {
241 PUI_BACKEND_SET_ABI_VERSION(1, 0),
242 pui_default_backend_init,
243 pui_default_backend_deinit