renew pui prototype again
[platform/core/uifw/libpui.git] / src / PUI_internal.h
similarity index 53%
rename from include/PUI_internal.h
rename to src/PUI_internal.h
index 098d7a5..7d78fc9 100644 (file)
@@ -1,30 +1,19 @@
 #ifndef _LIBPUI_INTERNAL_H_
 #define _LIBPUI_INTERNAL_H_
 
-#include "PUI.h"
-#include "PUI_backend.h"
+#define EFL_BETA_API_SUPPORT
+
+#include <stdint.h>
+#include <Ecore_Wl2.h>
+#include <Eina.h>
+#include <wayland-tbm-client.h>
+#include <tbm_surface_internal.h>
+#include "PUI_common.h"
 
 #ifndef PATH_MAX
 #define PATH_MAX 4096
 #endif
 
-enum {
-       PUI_INT_ERROR_NONE,
-       PUI_INT_ERROR_INVALID_HANDLE,
-       PUI_INT_ERROR_INVALID_SURFACE,
-       PUI_INT_ERROR_INVALID_BUFFER,
-       PUI_INT_ERROR_ID_NOT_SUPPORTED,
-       PUI_INT_ERROR_INVALID_BACKEND_MGR,
-       PUI_NIT_ERROR_NO__ANI_AVAILABLE,
-       PUI_INT_ERROR_BACKEND_FUNC_ERROR,
-} pui_int_error;
-
-typedef struct _PUI_Event_Animation_Status
-{
-   unsigned int win;
-   pui_ani_status status;
-};
-
 struct _pui_ani_control_buffer
 {
        unsigned char *ptr;
@@ -34,32 +23,32 @@ struct _pui_ani_control_buffer
 struct _pui_ani
 {
        pui_h pui_handle;
-       pui_ani_mgr *ani_mgr;
+       pui_ani_t *ani;
 
        Eina_Array *ecore_event_hdls;
-       Ecore_Wl2_Frame_Cb_Handle *frame_cb;
+       Ecore_Wl2_Frame_Cb_Handle *frame_done_cb;
 
        pui_id id;
-       pui_ani_cmd cmd;
-       pui_ani_opt opt;
-       pui_ani_status status;
 };
 
-struct _pui_ani_mgr
+struct _pui_ani_t
 {
        pui_ani_h ani_h;
 
        pui_id id;
+       pui_ani_cmd cmd;
+       int repeat;
        pui_ani_status status;
 
-       pui_ani_control_buffer *buffer
+       int serial;
+       pui_ani_control_buffer *buffer;
 
        Eina_Bool (*frame_cb)(void *data);
+       pui_bool (*backend_frame_cb)(void *data, int serial);
        void *frame_cb_data;
-       double expire;
+       double frame_interval;
        Ecore_Timer *frame_cb_timer;
 
-       pui_backend_ani_func *ani_func;
        pui_backend_ani_data *ani_data;
 };
 
@@ -93,13 +82,28 @@ extern "C" {
 #endif
 
 pui_ani_control_buffer *
-get_buffer(pui_ani_h handle);
+pui_ani_get_buffer(pui_ani_h ani_h);
 
 pui_int_error
-set_buffer(pui_ani_h handle, pui_ani_control_buffer *buffer);
+pui_ani_set_buffer(pui_ani_h ani_h, pui_ani_control_buffer *buffer);
 
 pui_int_error
-pui_ani_update(pui_ani_h handle);
+pui_ani_update(pui_ani_h ani_h);
+
+void
+pui_ani_add_frame_cb(pui_ani_t *ani, pui_bool (*frame_cb)(void *data, int serial), double frame_interval);
+
+void
+pui_ani_remove_frame_cb(pui_ani_t *ani);
+
+void
+pui_ani_status_update(pui_ani_t *ani, pui_ani_status status);
+
+pui_ani_status
+pui_ani_status_get(pui_ani_t *ani);
+
+pui_backend_ani_data *
+pui_ani_get_ani_data(pui_ani_t *ani);
 
 #ifdef __cplusplus
 }