aaba16dd2c7a5427fec58b940aba01719821d6ba
[apps/livebox/livebox.git] / include / livebox.h
1 /*
2  * Copyright 2012  Samsung Electronics Co., Ltd
3  *
4  * Licensed under the Flora License, Version 1.0 (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://www.tizenopensource.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 #ifndef __LIVEBOX_HELPER_H
18 #define __LIVEBOX_HELPER_H
19
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23
24 struct livebox_buffer; /* Defined by provider */
25
26 /*!
27  * \brief
28  * Return values of livebox programming interfaces.
29  */
30 extern const int DONE; /*!< Operation is successfully done */
31 extern const int OUTPUT_UPDATED; /*!< Contents is updated */
32
33 extern const int NEED_TO_SCHEDULE; /*!< Need to call the livebox_need_to_update and livebox_update_content */
34 extern const int NEED_TO_CREATE; /*!< Need to create a new instance */
35 extern const int NEED_TO_DESTROY; /*!< Need to destroy this instance */
36 extern const int NEED_TO_UPDATE;
37
38 extern const int USE_NET; /*!< Using network */
39
40 extern const int LB_SYS_EVENT_FONT_CHANGED; /*!< System font is changed */
41 extern const int LB_SYS_EVENT_LANG_CHANGED; /*!< System language is changed */
42 extern const int LB_SYS_EVENT_TIME_CHANGED; /*!< System time is changed */
43 extern const int LB_SYS_EVENT_PAUSED;
44 extern const int LB_SYS_EVENT_RESUMED;
45
46 #define LB_DESC_TYPE_COLOR "color"
47 #define LB_DESC_TYPE_TEXT "text"
48 #define LB_DESC_TYPE_IMAGE "image"
49 #define LB_DESC_TYPE_SIGNAL "signal"
50 #define LB_DESC_TYPE_INFO "info"
51 #define LB_DESC_TYPE_DRAG "drag"
52 #define LB_DESC_TYPE_SCRIPT "script"
53
54 /*!
55  * \brief
56  * Extra event informatino for livebox_content_event interface function
57  */
58 #ifndef __PROVIDER_H
59 struct event_info {
60         struct {
61                 double x;
62                 double y;
63                 int down;
64         } pointer; /*!< Down/Up state and mouse position */
65
66         struct {
67                 double sx;
68                 double sy;
69                 double ex;
70                 double ey;
71         } part; /*!< Geometry of event received part */
72 };
73 #endif
74
75 struct livebox_desc;
76
77 /*!
78  * \brief Update a description file.
79  * \param[in] filename
80  * \param[in] for_pd
81  * \return handle
82  */
83 extern struct livebox_desc *livebox_desc_open(const char *filename, int for_pd);
84
85 /*!
86  * \brief Complete the description file updating
87  * \param[in] handle
88  * \return int
89  */
90 extern int livebox_desc_close(struct livebox_desc *handle);
91
92 /*!
93  * \brief Set the category information of current description data
94  * \param[in] handle
95  * \param[in] id
96  * \param[in] category
97  * \return int
98  */
99 extern int livebox_desc_set_category(struct livebox_desc *handle, const char *id, const char *category);
100
101 /*!
102  * \brief Set the content size
103  * \param[in] handle
104  * \param[in] id
105  * \param[in] w
106  * \param[in] h
107  * \return int
108  */
109 extern int livebox_desc_set_size(struct livebox_desc *handle, const char *id, int w, int h);
110
111 /*!
112  * \breif Set the target id of given block
113  *        Only available for the script block
114  * \param[in] handle
115  * \param[in] idx
116  * \param[in] id
117  * \return ret
118  */
119 extern int livebox_desc_set_id(struct livebox_desc *handle, int idx, const char *id);
120
121 /*!
122  * \brief Add a new block
123  * \param[in] handle
124  * \param[in] id ID of source script object
125  * \param[in] type image|text|script|signal|...
126  * \param[in] part target part to update with given content(data)
127  * \param[in] data content for specified part
128  * \param[in] option option for the block. (script: group, image: option, ...)
129  * \return idx Index of current description block
130  */
131 extern int livebox_desc_add_block(struct livebox_desc *handle, const char *id, const char *type, const char *part, const char *data, const char *option);
132
133 /*!
134  * \brief Delete a added block
135  * \param[in] handle
136  * \param[in] idx Index of added block
137  * \return int
138  */
139 extern int livebox_desc_del_block(struct livebox_desc *handle, int idx);
140
141 /*!
142  * \brief Replace '\n' with '<br>'
143  * \param[in] str Source string
144  * \return char* allocated string
145  */
146 extern char *livebox_util_nl2br(const char *str);
147
148
149 /*!
150  * Interfaces for direct buffer management (Available only for the PD area)
151  */
152
153
154 #ifndef __PROVIDER_BUFFER_H
155 /*!
156  * \NOTE
157  * This enumeration value should be sync'd with provider
158  */
159 enum buffer_event {
160         BUFFER_EVENT_ENTER, /*!< */
161         BUFFER_EVENT_LEAVE, /*!< */
162         BUFFER_EVENT_DOWN, /*!< */
163         BUFFER_EVENT_MOVE, /*!< */
164         BUFFER_EVENT_UP, /*!< */
165 };
166 #endif
167
168 /*!
169  * \brief
170  * \param[in] filename
171  * \param[in] width
172  * \param[in] height
173  * \param[in] handler
174  * \param[in] data
175  * \return handler
176  */
177 extern struct livebox_buffer *livebox_acquire_buffer(const char *filename, int is_pd, int width, int height, int (*handler)(struct livebox_buffer *, enum buffer_event, double, double, double, void *), void *data);
178
179 /*!
180  * \param[in] filename
181  * \return pixmap ID
182  */
183 extern unsigned long livebox_pixmap_id(struct livebox_buffer *handle);
184
185 /*!
186  * \brief
187  * \param[in] handle
188  * \return int
189  */
190 extern int livebox_release_buffer(struct livebox_buffer *handle);
191
192 /*!
193  * \brief
194  * \param[in] handle
195  * \return void* buffer
196  */
197 extern void *livebox_ref_buffer(struct livebox_buffer *handle);
198
199 /*!
200  * \brief
201  * \param[in] buffer
202  * \return int
203  */
204 extern int livebox_unref_buffer(void *buffer);
205
206 /*!
207  * \brief
208  * \param[in] handler
209  * \return int
210  */
211 extern int livebox_sync_buffer(struct livebox_buffer *handle);
212
213 /*!
214  * \brief
215  * \param[in] filename
216  * \return int
217  */
218 extern int livebox_request_update(const char *filename);
219
220 #ifdef __cplusplus
221 }
222 #endif
223
224 #endif
225 /* End of a file */