Format source codes
[apps/agl-service-windowmanager-2017.git] / src / app.hpp
index d1393c0..a0da1ba 100644 (file)
 #include "wayland_ivi_wm.hpp"
 #include "hmi-debug.h"
 
-namespace wl {
+namespace wl
+{
 struct display;
 }
 
-namespace compositor {
+namespace compositor
+{
 struct controller;
 }
 
-namespace wm {
+namespace wm
+{
 
 using std::experimental::optional;
 
@@ -65,190 +68,199 @@ extern const char kKeyHeightPixel[];
 extern const char kKeyWidthMm[];
 extern const char kKeyHeightMm[];
 
-
-struct id_allocator {
-   unsigned next = 1;
-
-   // Surfaces that where requested but not yet created
-   std::unordered_map<unsigned, std::string> id2name;
-   // std::unordered_set<unsigned> pending_surfaces;
-   std::unordered_map<std::string, unsigned> name2id;
-
-   id_allocator(id_allocator const &) = delete;
-   id_allocator(id_allocator &&) = delete;
-   id_allocator &operator=(id_allocator const &);
-   id_allocator &operator=(id_allocator &&) = delete;
-
-   // Insert and return a new ID
-   unsigned generate_id(std::string const &name) {
-      unsigned sid = this->next++;
-      this->id2name[sid] = name;
-      // this->pending_surfaces.insert({sid});
-      this->name2id[name] = sid;
-      HMI_DEBUG("wm", "allocated new id %u with name %s", sid, name.c_str());
-      return sid;
-   }
-
-   // Insert a new ID which defined outside
-   void register_name_id(std::string const &name, unsigned sid) {
-      this->id2name[sid] = name;
-      this->name2id[name] = sid;
-      HMI_DEBUG("wm", "register id %u with name %s", sid, name.c_str());
-      return;
-   }
-
-   // Lookup by ID or by name
-   optional<unsigned> lookup(std::string const &name) const {
-      auto i = this->name2id.find(name);
-      return i == this->name2id.end() ? nullopt : optional<unsigned>(i->second);
-   }
-
-   optional<std::string> lookup(unsigned id) const {
-      auto i = this->id2name.find(id);
-      return i == this->id2name.end() ? nullopt
-                                       : optional<std::string>(i->second);
-   }
-
-   // Remove a surface id and name
-   void remove_id(std::string const &name) {
-      auto i = this->name2id.find(name);
-      if (i != this->name2id.end()) {
-         this->id2name.erase(i->second);
-         this->name2id.erase(i);
-      }
-   }
-
-   void remove_id(unsigned id) {
-      auto i = this->id2name.find(id);
-      if (i != this->id2name.end()) {
-         this->name2id.erase(i->second);
-         this->id2name.erase(i);
-      }
-   }
+struct id_allocator
+{
+    unsigned next = 1;
+
+    // Surfaces that where requested but not yet created
+    std::unordered_map<unsigned, std::string> id2name;
+    // std::unordered_set<unsigned> pending_surfaces;
+    std::unordered_map<std::string, unsigned> name2id;
+
+    id_allocator(id_allocator const &) = delete;
+    id_allocator(id_allocator &&) = delete;
+    id_allocator &operator=(id_allocator const &);
+    id_allocator &operator=(id_allocator &&) = delete;
+
+    // Insert and return a new ID
+    unsigned generate_id(std::string const &name)
+    {
+        unsigned sid = this->next++;
+        this->id2name[sid] = name;
+        // this->pending_surfaces.insert({sid});
+        this->name2id[name] = sid;
+        HMI_DEBUG("wm", "allocated new id %u with name %s", sid, name.c_str());
+        return sid;
+    }
+
+    // Insert a new ID which defined outside
+    void register_name_id(std::string const &name, unsigned sid)
+    {
+        this->id2name[sid] = name;
+        this->name2id[name] = sid;
+        HMI_DEBUG("wm", "register id %u with name %s", sid, name.c_str());
+        return;
+    }
+
+    // Lookup by ID or by name
+    optional<unsigned> lookup(std::string const &name) const
+    {
+        auto i = this->name2id.find(name);
+        return i == this->name2id.end() ? nullopt : optional<unsigned>(i->second);
+    }
+
+    optional<std::string> lookup(unsigned id) const
+    {
+        auto i = this->id2name.find(id);
+        return i == this->id2name.end() ? nullopt
+                                        : optional<std::string>(i->second);
+    }
+
+    // Remove a surface id and name
+    void remove_id(std::string const &name)
+    {
+        auto i = this->name2id.find(name);
+        if (i != this->name2id.end())
+        {
+            this->id2name.erase(i->second);
+            this->name2id.erase(i);
+        }
+    }
+
+    void remove_id(unsigned id)
+    {
+        auto i = this->id2name.find(id);
+        if (i != this->id2name.end())
+        {
+            this->name2id.erase(i->second);
+            this->id2name.erase(i);
+        }
+    }
 };
 
-struct App {
+struct App
+{
 
-   typedef std::unordered_map<uint32_t, struct compositor::rect> rect_map;
-   typedef std::function<void(const char* err_msg)> reply_func;
+    typedef std::unordered_map<uint32_t, struct compositor::rect> rect_map;
+    typedef std::function<void(const char *err_msg)> reply_func;
 
-   enum EventType {
-      Event_Val_Min = 0,
+    enum EventType
+    {
+        Event_Val_Min = 0,
 
-      Event_Active = Event_Val_Min,
-      Event_Inactive,
+        Event_Active = Event_Val_Min,
+        Event_Inactive,
 
-      Event_Visible,
-      Event_Invisible,
+        Event_Visible,
+        Event_Invisible,
 
-      Event_SyncDraw,
-      Event_FlushDraw,
+        Event_SyncDraw,
+        Event_FlushDraw,
 
-      Event_Val_Max = Event_FlushDraw,
-   };
+        Event_Val_Max = Event_FlushDraw,
+    };
 
-   const std::vector<const char *> kListEventName{
-     "active",
-     "inactive",
-     "visible",
-     "invisible",
-     "syncdraw",
-     "flushdraw"
-   };
+    const std::vector<const char *> kListEventName{
+        "active",
+        "inactive",
+        "visible",
+        "invisible",
+        "syncdraw",
+        "flushdraw"};
 
-   struct controller_hooks chooks;
+    struct controller_hooks chooks;
 
-   // This is the one thing, we do not own.
-   struct wl::display *display;
+    // This is the one thing, we do not own.
+    struct wl::display *display;
 
-   std::unique_ptr<struct compositor::controller> controller;
-   std::vector<std::unique_ptr<struct wl::output>> outputs;
+    std::unique_ptr<struct compositor::controller> controller;
+    std::vector<std::unique_ptr<struct wl::output>> outputs;
 
-   struct config config;
+    struct config config;
 
-   // track current layouts separately
-   layer_map layers;
+    // track current layouts separately
+    layer_map layers;
 
-   // ID allocation and proxy methods for lookup
-   struct id_allocator id_alloc;
+    // ID allocation and proxy methods for lookup
+    struct id_allocator id_alloc;
 
-   // Set by AFB API when wayland events need to be dispatched
-   std::atomic<bool> pending_events;
+    // Set by AFB API when wayland events need to be dispatched
+    std::atomic<bool> pending_events;
 
-   std::vector<int> pending_end_draw;
+    std::vector<int> pending_end_draw;
 
-   Policy policy;
+    Policy policy;
 
-   std::map<const char *, struct afb_event> map_afb_event;
+    std::map<const char *, struct afb_event> map_afb_event;
 
-   // Surface are info (x, y, w, h)
-   rect_map area_info;
+    // Surface are info (x, y, w, h)
+    rect_map area_info;
 
-   // FOR CES DEMO
-   std::vector<int> surface_bg;
+    // FOR CES DEMO
+    std::vector<int> surface_bg;
 
-   explicit App(wl::display *d);
-   ~App() = default;
+    explicit App(wl::display *d);
+    ~App() = default;
 
-   App(App const &) = delete;
-   App &operator=(App const &) = delete;
-   App(App &&) = delete;
-   App &operator=(App &&) = delete;
+    App(App const &) = delete;
+    App &operator=(App const &) = delete;
+    App(App &&) = delete;
+    App &operator=(App &&) = delete;
 
-   int init();
+    int init();
 
-   int dispatch_pending_events();
+    int dispatch_pending_events();
 
-   void set_pending_events();
+    void set_pending_events();
 
-   result<int> api_request_surface(char const *drawing_name);
-   char const *api_request_surface(char const *drawing_name, char const *ivi_id);
-   void api_activate_surface(char const *drawing_name, char const *drawing_area, const reply_func &reply);
-   void api_deactivate_surface(char const *drawing_name, const reply_func &reply);
-   void api_enddraw(char const *drawing_name);
-   result<json_object *> api_get_display_info();
-   result<json_object *> api_get_area_info(char const *drawing_name);
-   void api_ping();
-   void send_event(char const *evname, char const *label);
-   void send_event(char const *evname, char const *label, char const *area, int x, int y, int w, int h);
+    result<int> api_request_surface(char const *drawing_name);
+    char const *api_request_surface(char const *drawing_name, char const *ivi_id);
+    void api_activate_surface(char const *drawing_name, char const *drawing_area, const reply_func &reply);
+    void api_deactivate_surface(char const *drawing_name, const reply_func &reply);
+    void api_enddraw(char const *drawing_name);
+    result<json_object *> api_get_display_info();
+    result<json_object *> api_get_area_info(char const *drawing_name);
+    void api_ping();
+    void send_event(char const *evname, char const *label);
+    void send_event(char const *evname, char const *label, char const *area, int x, int y, int w, int h);
 
-   // Events from the compositor we are interested in
-   void surface_created(uint32_t surface_id);
-   void surface_removed(uint32_t surface_id);
+    // Events from the compositor we are interested in
+    void surface_created(uint32_t surface_id);
+    void surface_removed(uint32_t surface_id);
 
-private:
-   optional<int> lookup_id(char const *name);
-   optional<std::string> lookup_name(int id);
+  private:
+    optional<int> lookup_id(char const *name);
+    optional<std::string> lookup_name(int id);
 
-   bool pop_pending_events();
+    bool pop_pending_events();
 
-   void enqueue_flushdraw(int surface_id);
-   void check_flushdraw(int surface_id);
+    void enqueue_flushdraw(int surface_id);
+    void check_flushdraw(int surface_id);
 
-   int init_layers();
+    int init_layers();
 
-   void surface_set_layout(int surface_id, optional<int> sub_surface_id = nullopt);
-   void layout_commit();
+    void surface_set_layout(int surface_id, optional<int> sub_surface_id = nullopt);
+    void layout_commit();
 
-   // TMC WM Events to clients
-   void emit_activated(char const *label);
-   void emit_deactivated(char const *label);
-   void emit_syncdraw(char const *label, char const *area, int x, int y, int w, int h);
-   void emit_flushdraw(char const *label);
-   void emit_visible(char const *label, bool is_visible);
-   void emit_invisible(char const *label);
-   void emit_visible(char const *label);
+    // TMC WM Events to clients
+    void emit_activated(char const *label);
+    void emit_deactivated(char const *label);
+    void emit_syncdraw(char const *label, char const *area, int x, int y, int w, int h);
+    void emit_flushdraw(char const *label);
+    void emit_visible(char const *label, bool is_visible);
+    void emit_invisible(char const *label);
+    void emit_visible(char const *label);
 
-   void activate(int id);
-   void deactivate(int id);
-   void deactivate_main_surface();
+    void activate(int id);
+    void deactivate(int id);
+    void deactivate_main_surface();
 
-   bool can_split(struct LayoutState const &state, int new_id);
-   void try_layout(struct LayoutState &state,
-                   struct LayoutState const &new_layout,
-                   std::function<void(LayoutState const &nl)> apply);
+    bool can_split(struct LayoutState const &state, int new_id);
+    void try_layout(struct LayoutState &state,
+                    struct LayoutState const &new_layout,
+                    std::function<void(LayoutState const &nl)> apply);
 };
 
-}  // namespace wm
+} // namespace wm
 
-#endif  // TMCAGLWM_APP_HPP
+#endif // TMCAGLWM_APP_HPP