// // Created by mfritzsc on 7/11/17. // #ifndef TMCAGLWM_APP_HPP #define TMCAGLWM_APP_HPP #include #include #include "afb_binding_api.hpp" #include "controller_hooks.hpp" #include "layers.hpp" #include "layout.hpp" #include "result.hpp" #include "wayland.hpp" namespace wl { struct display; } namespace genivi { struct controller; } namespace wm { struct App { struct binding_api api; struct controller_hooks chooks; // This is the one thing, we do not own. struct wl::display *display; std::unique_ptr controller; std::vector> outputs; layouts_type layouts; surface_id_to_layer_map surface2layer; App(wl::display *d); ~App(); App(App const &) = delete; App &operator=(App const &) = delete; int init(); int dispatch_events(); int init_layout(); void surface_created(uint32_t surface_id); void surface_removed(uint32_t surface_id); }; } // namespace wm #endif // TMCAGLWM_APP_HPP