package version up to 1.7.7
[platform/core/uifw/libtdm.git] / ut / stubs / tbm_surface_queue.h
1 #ifndef _TBM_SURFACE_QUEUE_H_
2 #define _TBM_SURFACE_QUEUE_H_
3
4 #include <tbm_surface.h>
5
6 typedef enum {
7         TBM_SURFACE_QUEUE_ERROR_NONE = 0,                                         /**< Successful */
8         TBM_SURFACE_QUEUE_ERROR_INVALID_SURFACE = -1,
9         TBM_SURFACE_QUEUE_ERROR_INVALID_QUEUE = -2,
10         TBM_SURFACE_QUEUE_ERROR_EMPTY = -3,
11         TBM_SURFACE_QUEUE_ERROR_INVALID_PARAMETER = -4,
12         TBM_SURFACE_QUEUE_ERROR_SURFACE_ALLOC_FAILED = -5,
13 } tbm_surface_queue_error_e;
14
15 typedef struct _tbm_surface_queue *tbm_surface_queue_h;
16
17 typedef void (*tbm_surface_queue_notify_cb) (tbm_surface_queue_h surface_queue,
18                 void *data);
19
20 typedef tbm_surface_h (*tbm_surface_alloc_cb) (tbm_surface_queue_h surface_queue,
21                 void *data);
22
23 typedef void (*tbm_surface_free_cb) (tbm_surface_queue_h surface_queue,
24                 void *data, tbm_surface_h surface);
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 tbm_surface_queue_error_e tbm_surface_queue_enqueue(
31                 tbm_surface_queue_h surface_queue, tbm_surface_h surface);
32
33 tbm_surface_queue_error_e tbm_surface_queue_dequeue(
34                 tbm_surface_queue_h surface_queue, tbm_surface_h *surface);
35
36 tbm_surface_queue_error_e tbm_surface_queue_release(
37                 tbm_surface_queue_h surface_queue, tbm_surface_h surface);
38
39 tbm_surface_queue_error_e tbm_surface_queue_acquire(
40                 tbm_surface_queue_h surface_queue, tbm_surface_h *surface);
41
42 int tbm_surface_queue_can_dequeue(tbm_surface_queue_h surface_queue, int wait);
43
44 int tbm_surface_queue_can_acquire(tbm_surface_queue_h surface_queue, int wait);
45
46 void tbm_surface_queue_destroy(tbm_surface_queue_h surface_queue);
47
48 int tbm_surface_queue_get_width(tbm_surface_queue_h surface_queue);
49
50 int tbm_surface_queue_get_height(tbm_surface_queue_h surface_queue);
51
52 int tbm_surface_queue_get_format(tbm_surface_queue_h surface_queue);
53
54 int tbm_surface_queue_get_size(tbm_surface_queue_h surface_queue);
55
56 tbm_surface_queue_error_e tbm_surface_queue_reset(
57                 tbm_surface_queue_h surface_queue, int width, int height, int format);
58
59 tbm_surface_queue_error_e tbm_surface_queue_flush(tbm_surface_queue_h surface_queue);
60
61 tbm_surface_queue_error_e tbm_surface_queue_add_reset_cb(
62         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb reset_cb,
63         void *data);
64
65 tbm_surface_queue_error_e tbm_surface_queue_remove_reset_cb(
66         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb reset_cb,
67         void *data);
68
69 tbm_surface_queue_error_e tbm_surface_queue_add_destroy_cb(
70         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb destroy_cb,
71         void *data);
72
73 tbm_surface_queue_error_e tbm_surface_queue_remove_destroy_cb(
74         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb destroy_cb,
75         void *data);
76
77 tbm_surface_queue_error_e tbm_surface_queue_add_dequeuable_cb(
78         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb dequeuable_cb,
79         void *data);
80
81 tbm_surface_queue_error_e tbm_surface_queue_remove_dequeuable_cb(
82         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb dequeuable_cb,
83         void *data);
84
85 tbm_surface_queue_error_e tbm_surface_queue_add_acquirable_cb(
86         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb acquirable_cb,
87         void *data);
88
89 tbm_surface_queue_error_e tbm_surface_queue_remove_acquirable_cb(
90         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb acquirable_cb,
91         void *data);
92
93 tbm_surface_queue_error_e tbm_surface_queue_set_alloc_cb(
94         tbm_surface_queue_h surface_queue,
95         tbm_surface_alloc_cb alloc_cb,
96         tbm_surface_free_cb free_cb,
97         void *data);
98
99 /*The functions of queue factory*/
100 tbm_surface_queue_h tbm_surface_queue_create(int queue_size, int width,
101                 int height, int format, int flags);
102 tbm_surface_queue_h tbm_surface_queue_sequence_create(int queue_size, int width,
103                 int height, int format, int flags);
104
105
106 /*DEPRECATED apis*/
107 tbm_surface_queue_error_e tbm_surface_queue_set_destroy_cb(
108         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb destroy_cb,
109         void *data);
110
111 tbm_surface_queue_error_e tbm_surface_queue_set_dequeuable_cb(
112         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb dequeuable_cb,
113         void *data);
114
115 tbm_surface_queue_error_e tbm_surface_queue_set_acquirable_cb(
116         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb acquirable_cb,
117         void *data);
118
119 tbm_surface_queue_error_e tbm_surface_queue_set_reset_cb(
120         tbm_surface_queue_h surface_queue, tbm_surface_queue_notify_cb reset_cb,
121         void *data);
122 #ifdef __cplusplus
123 }
124 #endif
125 #endif                                                  /* _TBM_SURFACE_H_ */