X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fapp.hpp;h=af7cd8f4b632fb47d6356dc72035fa23f8cddb06;hb=5562332f0f7e916d4da13eab5e2b01ccdfb184ac;hp=9f53f8433ce97c282f9acf71afde9615afa15210;hpb=237be6f894c56cc32042c9dee16b6445bbae92f7;p=apps%2Fagl-service-windowmanager.git diff --git a/src/app.hpp b/src/app.hpp index 9f53f84..af7cd8f 100644 --- a/src/app.hpp +++ b/src/app.hpp @@ -22,14 +22,10 @@ #include #include #include -#include #include -#include "config.hpp" #include "controller_hooks.hpp" #include "layers.hpp" #include "layout.hpp" -#include "policy.hpp" -#include "result.hpp" #include "wayland_ivi_wm.hpp" #include "hmi-debug.h" #include "request.hpp" @@ -76,7 +72,6 @@ struct id_allocator // Surfaces that where requested but not yet created std::unordered_map id2name; - // std::unordered_set pending_surfaces; std::unordered_map name2id; id_allocator(id_allocator const &) = delete; @@ -89,7 +84,6 @@ struct id_allocator { 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; @@ -181,8 +175,6 @@ struct App std::unique_ptr controller; std::vector> outputs; - struct config config; - // track current layouts separately layer_map layers; @@ -192,10 +184,6 @@ struct App // Set by AFB API when wayland events need to be dispatched std::atomic pending_events; - std::vector pending_end_draw; - - Policy policy; - std::map map_afb_event; // Surface are info (x, y, w, h) @@ -233,11 +221,12 @@ struct App void surface_created(uint32_t surface_id); void surface_removed(uint32_t surface_id); + void removeClient(const std::string &appid); + void exeptionProcessForTransition(); + bool subscribeEventForApp(const std::string &appid, afb_req req, const std::string &evname); // Do not use this function //static int processTimerHandler(sd_event_source *s, uint64_t usec, void *userdata); void timerHandler(); - void removeClient(const std::string &appid); - bool subscribeEventForApp(const std::string &appid, afb_req req, const std::string &evname); private: optional lookup_id(char const *name); @@ -245,12 +234,9 @@ struct App bool pop_pending_events(); - void enqueue_flushdraw(int surface_id); - void check_flushdraw(int surface_id); - int init_layers(); - void surface_set_layout(int surface_id, optional sub_surface_id = nullopt); + void surface_set_layout(int surface_id, const std::string& area = ""); void layout_commit(); // TMC WM Events to clients @@ -268,29 +254,27 @@ struct App WMError doTransition(unsigned sequence_number); WMError checkPolicy(unsigned req_num); WMError startTransition(unsigned req_num); + WMError setInvisibleTask(const std::string &role, bool split); + + WMError doEndDraw(unsigned req_num); + WMError layoutChange(const WMAction &action); + WMError visibilityChange(const WMAction &action); + WMError setSurfaceSize(unsigned surface, const std::string& area); + WMError changeCurrentState(unsigned req_num); void setTimer(); void stopTimer(); - void processRequest(); - void do_enddraw(unsigned req_num); + void processNextRequest(); + const char *check_surface_exist(const char *drawing_name); 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 apply); - - // The following function is temporary. - // Then will be removed when layermanager is finished - void lm_layout_change(const char *drawing_name); - WMError lm_layout_change(const struct WMAction &action); - WMError lm_release(const struct WMAction &action); - void lm_enddraw(const char *drawing_name); - void lm_get_area_info(const std::string &area); + + private: + std::unordered_map area2size; }; } // namespace wm