change wl_signal_emit_mutable into wl_signal_emit
[platform/core/uifw/libds-tizen.git] / examples / tinyds-tdm.h
1 #ifndef TINYDS_TDM_H
2 #define TINYDS_TDM_H
3
4 #include "tinyds-common.h"
5
6 #ifdef USE_TDM_BUFFER_QUEUE
7 #include "pixman-tbm-helper.h"
8 #include "tinyds-renderer.h"
9 #else
10 #include <libds/swapchain.h>
11 #endif
12
13 #include "pixman-helper.h"
14 #include "protocol-trace.h"
15 #include "tinyds-policy.h"
16 #include "tinyds-dpms.h"
17 #include "tinyds-launch.h"
18 #include "tinyds-input-devicemgr.h"
19
20 struct tinyds_keyboard;
21 struct tinyds_pointer;
22
23 struct tinyds_server
24 {
25     struct ds_tbm_server *tbm_server;
26
27     struct wl_display *display;
28
29     struct ds_backend *backend;
30     struct ds_backend *input_backend;
31     struct ds_compositor *compositor;
32     struct ds_xdg_shell *xdg_shell;
33     struct ds_seat *seat;
34     uint32_t seat_caps;
35     double output_x, output_y;
36
37     struct tinyds_output *output;
38     struct tinyds_dpms *dpms;
39     struct tinyds_policy *policy;
40     struct tinyds_launch *launch;
41     struct tinyds_input_devicemgr *input_devicemgr;
42
43     struct wl_event_source *stdin_source;
44
45     struct wl_list views;
46
47     struct wl_listener new_output;
48     struct wl_listener new_input;
49     struct wl_listener new_xdg_surface;
50
51     struct wl_list keyboards;
52     struct wl_list pointers;
53
54     struct tinyds_text_input *text_input;
55     struct tinyds_input_method *input_method;
56 };
57
58 struct tinyds_view
59 {
60     struct tinyds_server *server;
61
62     struct tinyds_texture *texture;
63     struct ds_xdg_surface *xdg_surface;
64
65     struct wl_listener xdg_surface_map;
66     struct wl_listener xdg_surface_unmap;
67     struct wl_listener xdg_surface_destroy;
68     struct wl_listener surface_commit;
69     struct wl_list link; // tinyds_server::views
70
71     struct ds_tdm_output_hwc_window *hwc_window;
72
73     int x, y;
74     bool mapped;
75
76     pid_t pid;
77     int effect_type;
78 };
79
80 struct tinyds_view *tinyds_server_view_at(struct tinyds_server *server,
81         double lx, double ly, double *sx, double *sy);
82 struct tinyds_view *tinyds_server_get_focused_view(struct tinyds_server *server);
83 void tinyds_server_get_output_size(struct tinyds_server *server,
84         int *output_w, int *output_h);
85
86 #endif