4 #include "ivi-compositor.h"
5 #include "agl-shell-policy-server-protocol.h"
12 struct wl_list link; /* ivi_policy::states or ivi_policy::events */
16 struct ivi_policy *policy;
22 struct ivi_output *output;
23 struct wl_event_source *timer;
25 struct wl_list link; /* ivi_policy::ivi_policies */
28 struct ivi_policy_api {
31 bool (*surface_create)(struct ivi_surface *surf, void *user_data);
32 bool (*surface_commited)(struct ivi_surface *surf, void *user_data);
33 bool (*surface_activate)(struct ivi_surface *surf, void *user_data);
35 bool (*policy_rule_allow_to_add)(void *user_data);
36 void (*policy_rule_try_event)(struct ivi_a_policy *a_policy);
40 struct ivi_compositor *ivi;
41 struct ivi_policy_api api;
44 /* used to inject policies back to the compositor */
45 struct wl_global *policy_shell;
46 struct wl_resource *resource;
47 struct wl_list policies; /* ivi_policy_inject::link */
49 uint32_t current_state;
50 uint32_t previous_state;
51 bool state_change_in_progress;
53 struct wl_list states; /* state_event::link */
54 struct wl_list events; /* state_event::link */
56 struct wl_listener listener_check_policies;
57 struct wl_signal signal_state_change;
62 ivi_policy_create(struct ivi_compositor *compositor,
63 const struct ivi_policy_api *api, void *user_data);
65 ivi_policy_destroy(struct ivi_policy *ivi_policy);
68 ivi_policy_init(struct ivi_compositor *ivi);