#define TMCAGLWM_APP_HPP
#include <json-c/json.h>
+#include <memory>
+#include "afb_binding_api.hpp"
#include "result.hpp"
-#include "afb_api.hpp"
+#include "wayland.hpp"
namespace wl {
- struct display;
+struct display;
}
+
namespace genivi {
- struct controller;
+struct controller;
}
namespace wm {
- struct App {
- struct binding_api api;
- struct wl::display *display;
- struct genivi::controller *controller;
+struct App {
+ struct binding_api api;
+
+ // This is the one thing, we do not own.
+ struct wl::display *display;
+
+ std::unique_ptr<struct genivi::controller> controller;
+ std::vector<std::unique_ptr<struct wl::output>> outputs;
+
+ App(wl::display *d);
+ ~App();
+
+ App(App const &) = delete;
+ App &operator=(App const &) = delete;
- App();
- };
+ int init();
+ int dispatch_events();
+ int init_layout();
+};
-} // namespace wm
+} // namespace wm
-#endif //TMCAGLWM_APP_HPP
+#endif // TMCAGLWM_APP_HPP