1 #ifndef LIBDS_TIZEN_REMOTE_SURFACE_H
2 #define LIBDS_TIZEN_REMOTE_SURFACE_H
5 #include <wayland-server.h>
6 #include <libds/surface.h>
12 enum ds_tizen_remote_surface_visibility_type {
13 DS_TIZEN_REMOTE_SURFACE_VISIBILITY_TYPE_INVISIBLE = 0,
14 DS_TIZEN_REMOTE_SURFACE_VISIBILITY_TYPE_VISIBLE = 1,
17 enum ds_tizen_remote_surface_input_event_type {
18 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_NONE = 0,
19 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_MOUSE_DOWN = 1,
20 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_MOUSE_UP = 2,
21 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_MOUSE_MOVE = 3,
22 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_TOUCH_DOWN = 4,
23 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_TOUCH_UP = 5,
24 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_TOUCH_MOVE = 6,
25 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_KEY_DOWN = 7,
26 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_KEY_UP = 8,
27 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_MOUSE_IN = 9,
28 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_MOUSE_OUT = 10,
29 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_TYPE_KEY_CANCEL = 11,
32 enum ds_tizen_remote_surface_input_event_filter {
33 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_NONE = 0x00000001,
34 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_UP_DOWN = 0x00000002,
35 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_MOVE_X = 0x00000003,
36 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_MOVE_Y = 0x00000004,
37 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_MOVE_X_Y = 0x00000005,
38 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_UP_DOWN_MOVE_X = 0x00000006,
39 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_UP_DOWN_MOVE_Y = 0x00000007,
40 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_UP_DOWN_MOVE_X_Y = 0x00000008,
41 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_ALL = 0x0000000e,
42 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_FLAG = 0x0000000f,
43 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_WHEEL_NONE = 0x00000010,
44 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_WHEEL_ALL = 0x000000e0,
45 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_MOUSE_WHEEL_FLAG = 0x000000f0,
46 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_NONE = 0x00000100,
47 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_UP_DOWN = 0x00000200,
48 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_MOVE_X = 0x00000300,
49 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_MOVE_Y = 0x00000400,
50 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_MOVE_X_Y = 0x00000500,
51 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_UP_DOWN_MOVE_X = 0x00000600,
52 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_UP_DOWN_MOVE_Y = 0x00000700,
53 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_UP_DOWN_MOVE_X_Y = 0x00000800,
54 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_ALL = 0x00000e00,
55 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_FLAG = 0x00000f00,
56 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_CANCEL_NONE = 0x00001000,
57 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_CANCEL_ALL = 0x0000e000,
58 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_TOUCH_CANCEL_FLAG = 0x0000f000,
59 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_KEY_NONE = 0x00010000,
60 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_KEY_ALL = 0x000e0000,
61 DS_TIZEN_REMOTE_SURFACE_INPUT_EVENT_FILITER_KEY_FLAG = 0x000f0000,
64 enum ds_tizen_remote_surface_buffer_type {
65 DS_TIZEN_REMOTE_SURFACE_BUFFER_TYPE_TBM = 0,
66 DS_TIZEN_REMOTE_SURFACE_BUFFER_TYPE_IMAGE_FILE = 1,
69 enum ds_tizen_remote_surface_changed_buffer_event_filter {
70 DS_TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_NONE = 0x00000000,
71 DS_TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_TBM = 0x00000001,
72 DS_TIZEN_REMOTE_SURFACE_CHANGED_BUFFER_EVENT_FILTER_IMAGE_FILE = 0x00000002,
75 struct ds_tizen_remote_surface_manager_bind_surface_event {
76 struct ds_tizen_remote_surface *remote_surface;
77 struct ds_surface *surface;
80 struct ds_tizen_remote_surface_transfer_mouse_event {
81 struct ds_tizen_remote_surface *remote_surface;
82 enum ds_tizen_remote_surface_input_event_type event_type;
93 const char *identifier;
97 struct ds_tizen_remote_surface_transfer_mouse_wheel_event {
98 struct ds_tizen_remote_surface *remote_surface;
103 const char *identifier;
107 struct ds_tizen_remote_surface_transfer_touch_event {
108 struct ds_tizen_remote_surface *remote_surface;
109 enum ds_tizen_remote_surface_input_event_type event_type;
120 const char *identifier;
124 struct ds_tizen_remote_surface_transfer_touch_cancel_event {
125 struct ds_tizen_remote_surface *remote_surface;
128 struct ds_tizen_remote_surface_transfer_key_event {
129 struct ds_tizen_remote_surface *remote_surface;
130 enum ds_tizen_remote_surface_input_event_type event_type;
134 const char *identifier;
138 struct ds_tizen_remote_surface_transfer_visibility_event {
139 struct ds_tizen_remote_surface *remote_surface;
140 enum ds_tizen_remote_surface_visibility_type visibility;
143 struct ds_tizen_remote_surface_buffer_release_event {
144 struct ds_tizen_remote_surface *remote_surface;
145 struct ds_buffer *buffer;
148 struct ds_tizen_remote_surface_current_buffer_event {
149 struct ds_tizen_remote_surface *remote_surface;
150 enum ds_tizen_remote_surface_buffer_type buffer_type;
151 uint32_t request_serial;
154 struct ds_tizen_remote_surface_manager;
156 struct ds_tizen_remote_surface_provider;
158 struct ds_tizen_remote_surface;
160 struct ds_tizen_remote_surface_region;
162 struct ds_tizen_remote_surface_manager *
163 ds_tizen_remote_surface_manager_create(struct wl_display *display);
166 ds_tizen_remote_surface_manager_add_destroy_listener(
167 struct ds_tizen_remote_surface_manager *remote_manager,
168 struct wl_listener *listener);
171 ds_tizen_remote_surface_manager_add_new_provider_listener(
172 struct ds_tizen_remote_surface_manager *remote_manager,
173 struct wl_listener *listener);
176 ds_tizen_remote_surface_manager_add_new_surface_listener(
177 struct ds_tizen_remote_surface_manager *remote_manager,
178 struct wl_listener *listener);
181 ds_tizen_remote_surface_manager_add_bind_surface_listener(
182 struct ds_tizen_remote_surface_manager *remote_manager,
183 struct wl_listener *listener);
186 ds_tizen_remote_surface_provider_add_destroy_listener(
187 struct ds_tizen_remote_surface_provider *remote_provider,
188 struct wl_listener *listener);
191 ds_tizen_remote_surface_provider_add_set_offscreen_listener(
192 struct ds_tizen_remote_surface_provider *remote_provider,
193 struct wl_listener *listener);
196 ds_tizen_remote_surface_provider_add_set_input_event_filter_listener(
197 struct ds_tizen_remote_surface_provider *remote_provider,
198 struct wl_listener *listener);
201 ds_tizen_remote_surface_provider_get_offscreen(
202 struct ds_tizen_remote_surface_provider *remote_provider);
205 ds_tizen_remote_surface_provider_get_input_event_filter(
206 struct ds_tizen_remote_surface_provider *remote_provider);
209 ds_tizen_remote_surface_provider_send_visibility(
210 struct ds_tizen_remote_surface_provider *remote_provider,
211 enum ds_tizen_remote_surface_visibility_type visibility);
214 ds_tizen_remote_surface_add_destroy_listener(
215 struct ds_tizen_remote_surface *remote_surface,
216 struct wl_listener *listener);
219 ds_tizen_remote_surface_get_wl_tbm_resource(
220 struct ds_tizen_remote_surface *remote_surface);
223 ds_tizen_remote_surface_add_set_redirect_listener(
224 struct ds_tizen_remote_surface *remote_surface,
225 struct wl_listener *listener);
228 ds_tizen_remote_surface_get_redirect(
229 struct ds_tizen_remote_surface *remote_surface);
232 ds_tizen_remote_surface_add_set_owner_listener(
233 struct ds_tizen_remote_surface *remote_surface,
234 struct wl_listener *listener);
237 ds_tizen_remote_surface_get_owner(
238 struct ds_tizen_remote_surface *remote_surface);
241 ds_tizen_remote_surface_add_buffer_release_listener(
242 struct ds_tizen_remote_surface *remote_surface,
243 struct wl_listener *listener);
246 ds_tizen_remote_surface_add_set_remote_render_listener(
247 struct ds_tizen_remote_surface *remote_surface,
248 struct wl_listener *listener);
251 ds_tizen_remote_surface_get_remote_render(
252 struct ds_tizen_remote_surface *remote_surface);
255 ds_tizen_remote_surface_add_set_changed_buffer_event_filter_listener(
256 struct ds_tizen_remote_surface *remote_surface,
257 struct wl_listener *listener);
260 ds_tizen_remote_surface_get_changed_buffer_event_filter(
261 struct ds_tizen_remote_surface *remote_surface,
262 struct wl_listener *listener);
265 ds_tizen_remote_surface_add_get_current_buffer_listener(
266 struct ds_tizen_remote_surface *remote_surface,
267 struct wl_listener *listener);
270 ds_tizen_remote_surface_send_changed_buffer(
271 struct ds_tizen_remote_surface *remote_surface,
272 struct ds_buffer *buffer,
274 struct wl_array *options);
277 ds_tizen_remote_surface_send_changed_buffer_image_file(
278 struct ds_tizen_remote_surface *remote_surface,
282 struct wl_array *options);
285 ds_tizen_remote_surface_send_missing(
286 struct ds_tizen_remote_surface *remote_surface);
289 ds_tizen_remote_surface_send_input_event_filter(
290 struct ds_tizen_remote_surface *remote_surface,
291 uint32_t input_event_filter);
294 ds_tizen_remote_surface_add_new_region_listener(
295 struct ds_tizen_remote_surface *remote_surface,
296 struct wl_listener *listener);
299 ds_tizen_remote_surface_region_add_destroy_listener(
300 struct ds_tizen_remote_surface_region *remote_region,
301 struct wl_listener *listener);
304 ds_tizen_remote_surface_region_add_set_geometry_listener(
305 struct ds_tizen_remote_surface_region *remote_region,
306 struct wl_listener *listener);
309 ds_tizen_remote_surface_region_get_geometry(
310 struct ds_tizen_remote_surface_region *remote_region,
311 int32_t *x,int32_t *y, int32_t *w, int32_t *h);