Add Window screen mode apis with wayland
[platform/core/api/efl-util.git] / src / tizen_window_screen-client-protocol.h
1 #ifndef TIZEN_WINDOW_SCREEN_CLIENT_PROTOCOL_H
2 #define TIZEN_WINDOW_SCREEN_CLIENT_PROTOCOL_H
3
4 #ifdef  __cplusplus
5 extern "C" {
6 #endif
7
8 #include <stdint.h>
9 #include <stddef.h>
10 #include "wayland-client.h"
11
12 struct wl_client;
13 struct wl_resource;
14
15 struct tizen_window_screen;
16
17 extern const struct wl_interface tizen_window_screen_interface;
18
19 #ifndef TIZEN_WINDOW_SCREEN_MODE_ENUM
20 #define TIZEN_WINDOW_SCREEN_MODE_ENUM
21 enum tizen_window_screen_mode {
22         TIZEN_WINDOW_SCREEN_MODE_DEFAULT = 0,
23         TIZEN_WINDOW_SCREEN_MODE_ALWAYS_ON = 1,
24 };
25 #endif /* TIZEN_WINDOW_SCREEN_MODE_ENUM */
26
27 #ifndef TIZEN_WINDOW_SCREEN_ERROR_STATE_ENUM
28 #define TIZEN_WINDOW_SCREEN_ERROR_STATE_ENUM
29 enum tizen_window_screen_error_state {
30         TIZEN_WINDOW_SCREEN_ERROR_STATE_NONE = 0,
31         TIZEN_WINDOW_SCREEN_ERROR_STATE_PERMISSION_DENIED = 1,
32 };
33 #endif /* TIZEN_WINDOW_SCREEN_ERROR_STATE_ENUM */
34
35 struct tizen_window_screen_listener {
36         /**
37          * done - (none)
38          * @surface: (none)
39          * @mode: (none)
40          * @error_state: (none)
41          */
42         void (*done)(void *data,
43                      struct tizen_window_screen *tizen_window_screen,
44                      struct wl_surface *surface,
45                      uint32_t mode,
46                      uint32_t error_state);
47 };
48
49 static inline int
50 tizen_window_screen_add_listener(struct tizen_window_screen *tizen_window_screen,
51                                  const struct tizen_window_screen_listener *listener, void *data)
52 {
53         return wl_proxy_add_listener((struct wl_proxy *) tizen_window_screen,
54                                      (void (**)(void)) listener, data);
55 }
56
57 #define TIZEN_WINDOW_SCREEN_SET_MODE    0
58
59 static inline void
60 tizen_window_screen_set_user_data(struct tizen_window_screen *tizen_window_screen, void *user_data)
61 {
62         wl_proxy_set_user_data((struct wl_proxy *) tizen_window_screen, user_data);
63 }
64
65 static inline void *
66 tizen_window_screen_get_user_data(struct tizen_window_screen *tizen_window_screen)
67 {
68         return wl_proxy_get_user_data((struct wl_proxy *) tizen_window_screen);
69 }
70
71 static inline void
72 tizen_window_screen_destroy(struct tizen_window_screen *tizen_window_screen)
73 {
74         wl_proxy_destroy((struct wl_proxy *) tizen_window_screen);
75 }
76
77 static inline void
78 tizen_window_screen_set_mode(struct tizen_window_screen *tizen_window_screen, struct wl_surface *surface, uint32_t mode)
79 {
80         wl_proxy_marshal((struct wl_proxy *) tizen_window_screen,
81                          TIZEN_WINDOW_SCREEN_SET_MODE, surface, mode);
82 }
83
84 #ifdef  __cplusplus
85 }
86 #endif
87
88 #endif