tizen 2.3 release
[apps/livebox/data-provider-master.git] / include / buffer_handler.h
1 /*
2  * Copyright 2013  Samsung Electronics Co., Ltd
3  *
4  * Licensed under the Flora License, Version 1.1 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://floralicense.org/license/
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 struct buffer_info;
18 struct inst_info;
19 struct buffer;
20
21 #include <dynamicbox_buffer.h>
22
23 /*!
24  * \brief
25  * \param[in] type
26  * \param[in] w
27  * \param[in] h
28  * \param[in] pixel_size
29  * \return buffer_info
30  */
31 extern struct buffer_info *buffer_handler_create(struct inst_info *inst, enum dynamicbox_fb_type type, int w, int h, int pixel_size);
32
33 /*!
34  * \brief
35  * \param[in] info
36  * \return int
37  */
38 extern int buffer_handler_destroy(struct buffer_info *info);
39
40 /*!
41  * \brief
42  * \param[in] info
43  * \return int
44  */
45 extern int buffer_handler_load(struct buffer_info *info);
46
47 /*!
48  * \brief
49  * \param[in] info
50  * \return int
51  */
52 extern int buffer_handler_unload(struct buffer_info *info);
53
54 /*!
55  * \brief
56  * \param[in] info
57  * \return int
58  */
59 extern int buffer_handler_is_loaded(const struct buffer_info *info);
60
61 /*!
62  * \brief Reallocate buffer
63  * \param[in] info
64  * \param[in] w
65  * \param[in] h
66  * \return int
67  */
68 extern int buffer_handler_resize(struct buffer_info *info, int w, int h);
69
70 /*!
71  * \brief Only update the size information
72  * \param[in] info
73  * \param[in] w
74  * \param[in] h
75  * \return void
76  */
77 extern void buffer_handler_update_size(struct buffer_info *info, int w, int h);
78
79 /*!
80  * \brief
81  * \param[in] info
82  * \return const char *
83  */
84 extern const char *buffer_handler_id(const struct buffer_info *info);
85
86 /*!
87  * \param[in] info
88  * \return dynamicbox_fb_type
89  */
90 extern enum dynamicbox_fb_type buffer_handler_type(const struct buffer_info *info);
91
92 /*!
93  * \brief This API is not supported for Pixmap.
94  * \param[in] info
95  * \return void*
96  */
97 extern void *buffer_handler_fb(struct buffer_info *info);
98
99 /*!
100  * \brief
101  * \param[in] info
102  * \param[out] w
103  * \param[out] h
104  * \return int
105  */
106 extern int buffer_handler_get_size(struct buffer_info *info, int *w, int *h);
107
108 /*!
109  * \brief This API only can be used for file type buffer
110  * \param[in] info
111  * \return void
112  */
113 extern void buffer_handler_flush(struct buffer_info *info);
114
115 /*!
116  * \brief
117  * \param[in] info
118  * \return 0 if fails. Return value should be casted to Pixmap type
119  */
120 extern int buffer_handler_pixmap(const struct buffer_info *info);
121
122 /*!
123  * \brief
124  * \param[in] info
125  * \return buffer
126  */
127 extern void *buffer_handler_pixmap_acquire_buffer(struct buffer_info *info);
128
129 /*!
130  * \brief
131  * \param[in] info
132  * \return int
133  */
134 extern int buffer_handler_pixmap_release_buffer(void *canvas);
135
136 /*!
137  * \brief
138  * \param[in] info
139  * \return int
140  */
141 extern int buffer_handler_stride(struct buffer_info *info);
142
143 /*!
144  * \brief
145  * \param[in] info
146  * \return int
147  */
148 extern int buffer_handler_pixels(struct buffer_info *info);
149
150 /*!
151  * \brief
152  * \param[in] info
153  * \return int
154  */
155 extern int buffer_handler_auto_align(void);
156
157 /*!
158  * \brief
159  * \return int
160  */
161 extern int buffer_handler_init(void);
162
163 /*!
164  * \brief
165  * \details
166  * \remarks
167  * \return int
168  * \retval
169  * \pre
170  * \post
171  * \sa
172  */
173 extern int buffer_handler_fini(void);
174
175 /*!
176  * \brief
177  * \details
178  * \remarks
179  * \param[in] info
180  * \return void *
181  * \retval NULL
182  * \retval address
183  * \pre
184  * \post
185  * \sa
186  */
187 extern void *buffer_handler_pixmap_ref(struct buffer_info *info);
188
189 /*!
190  * \brief
191  * \details
192  * \remarks
193  * \param[in] buffer_ptr
194  * \return int
195  * \retval 
196  * \pre
197  * \post
198  * \sa
199  */
200 extern int buffer_handler_pixmap_unref(void *buffer_ptr);
201
202 /*!
203  * \brief
204  * \details
205  * \remarks
206  * \param[in] pixmap
207  * \return void *
208  * \retval
209  * \pre
210  * \post
211  * \sa
212  */
213 extern void *buffer_handler_pixmap_find(int pixmap);
214
215 /*!
216  * \brief
217  * \details
218  * \remarks
219  * \param[in] info
220  * \return void *
221  * \retval
222  * \pre
223  * \post
224  * \sa
225  */
226 extern void *buffer_handler_pixmap_buffer(struct buffer_info *info);
227
228 /*!
229  * \brief
230  * \details
231  * \remarks
232  * \param[in] info
233  * \return struct inst_info *
234  * \retval
235  * \pre
236  * \post
237  * \sa
238  */
239 extern struct inst_info *buffer_handler_instance(struct buffer_info *info);
240
241 /*!
242  * \brief
243  * \details
244  * \remarks
245  * \param[in] type
246  * \param[in] resource
247  * \return dynamicbox_fb_t 
248  * \retval NULL
249  * \retval address
250  * \pre
251  * \post
252  * \sa
253  */
254 extern dynamicbox_fb_t buffer_handler_raw_open(enum dynamicbox_fb_type type, void *resource);
255
256 /*!
257  * \brief
258  * \details
259  * \remarks
260  * \param[in] buffer
261  * \return int
262  * \retval
263  * \pre
264  * \post
265  * \sa
266  */
267 extern int buffer_handler_raw_close(dynamicbox_fb_t buffer);
268
269 /*!
270  * \brief
271  * \details
272  * \remarks
273  * \param[in] buffer
274  * \return void *
275  * \retval NULL
276  * \pre
277  * \post
278  * \sa
279  */
280 extern void *buffer_handler_raw_data(dynamicbox_fb_t buffer);
281
282 /*!
283  * \brief
284  * \details
285  * \remarks
286  * \param[in] buffer
287  * \return int
288  * \retval
289  * \pre
290  * \post
291  * \sa
292  */
293 extern int buffer_handler_raw_size(dynamicbox_fb_t buffer);
294
295 /*!
296  * \brief
297  * \details
298  * \remarks
299  * \param[in] buffer
300  * \return int
301  * \retval
302  * \pre
303  * \post
304  * \sa
305  */
306 extern int buffer_handler_lock(struct buffer_info *buffer);
307
308 /*!
309  * \brief
310  * \details
311  * \remarks
312  * \param[in] buffer
313  * \return int
314  * \retval
315  * \pre
316  * \post
317  * \sa
318  */
319 extern int buffer_handler_unlock(struct buffer_info *buffer);
320
321 /*!
322  * \brief
323  * \details
324  * \remarks
325  * \param[in] buffer
326  * \param[in] data
327  * \return int
328  * \retval
329  * \pre
330  * \post
331  * \sa
332  */
333 extern int buffer_handler_set_data(struct buffer_info *buffer, void *data);
334
335 /*!
336  * \brief
337  * \details
338  * \remarks
339  * \param[in] buffer
340  * \return void *
341  * \retval NULL
342  * \retval address
343  * \pre
344  * \post
345  * \sa
346  */
347 extern void *buffer_handler_data(struct buffer_info *buffer);
348 /* End of a file */