cfe16e84589e1dbe9098b0e9ce739d918ea96c7e
[platform/core/api/efl-util.git] / src / tizen_notification-client-protocol.h
1 #ifndef TIZEN_NOTIFICATION_CLIENT_PROTOCOL_H
2 #define TIZEN_NOTIFICATION_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_notification;
16
17 extern const struct wl_interface tizen_notification_interface;
18
19 #ifndef TIZEN_NOTIFICATION_LEVEL_ENUM
20 #define TIZEN_NOTIFICATION_LEVEL_ENUM
21 enum tizen_notification_level {
22         TIZEN_NOTIFICATION_LEVEL_1 = 0,
23         TIZEN_NOTIFICATION_LEVEL_2 = 1,
24         TIZEN_NOTIFICATION_LEVEL_3 = 2,
25 };
26 #endif /* TIZEN_NOTIFICATION_LEVEL_ENUM */
27
28 #ifndef TIZEN_NOTIFICATION_ERROR_STATE_ENUM
29 #define TIZEN_NOTIFICATION_ERROR_STATE_ENUM
30 enum tizen_notification_error_state {
31         TIZEN_NOTIFICATION_ERROR_STATE_NONE = 0,
32         TIZEN_NOTIFICATION_ERROR_STATE_INVALID_PARAMETER = 1,
33         TIZEN_NOTIFICATION_ERROR_STATE_OUT_OF_MEMORY = 2,
34         TIZEN_NOTIFICATION_ERROR_STATE_PERMISSION_DENIED = 3,
35         TIZEN_NOTIFICATION_ERROR_STATE_NOT_SUPPORTED_WINDOW_TYPE = 4,
36 };
37 #endif /* TIZEN_NOTIFICATION_ERROR_STATE_ENUM */
38
39 struct tizen_notification_listener {
40         /**
41          * done - (none)
42          * @surface: (none)
43          * @level: (none)
44          * @error_state: (none)
45          */
46         void (*done)(void *data,
47                      struct tizen_notification *tizen_notification,
48                      struct wl_surface *surface,
49                      uint32_t level,
50                      uint32_t error_state);
51 };
52
53 static inline int
54 tizen_notification_add_listener(struct tizen_notification *tizen_notification,
55                                 const struct tizen_notification_listener *listener, void *data)
56 {
57         return wl_proxy_add_listener((struct wl_proxy *) tizen_notification,
58                                      (void (**)(void)) listener, data);
59 }
60
61 #define TIZEN_NOTIFICATION_SET_LEVEL    0
62
63 static inline void
64 tizen_notification_set_user_data(struct tizen_notification *tizen_notification, void *user_data)
65 {
66         wl_proxy_set_user_data((struct wl_proxy *) tizen_notification, user_data);
67 }
68
69 static inline void *
70 tizen_notification_get_user_data(struct tizen_notification *tizen_notification)
71 {
72         return wl_proxy_get_user_data((struct wl_proxy *) tizen_notification);
73 }
74
75 static inline void
76 tizen_notification_destroy(struct tizen_notification *tizen_notification)
77 {
78         wl_proxy_destroy((struct wl_proxy *) tizen_notification);
79 }
80
81 static inline void
82 tizen_notification_set_level(struct tizen_notification *tizen_notification, struct wl_surface *surface, uint32_t level)
83 {
84         wl_proxy_marshal((struct wl_proxy *) tizen_notification,
85                          TIZEN_NOTIFICATION_SET_LEVEL, surface, level);
86 }
87
88 #ifdef  __cplusplus
89 }
90 #endif
91
92 #endif