X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fapp.hpp;h=74361a2ef7c6914494adbe6f48e2d89667c782e0;hb=6d805fcec8891d85c92936881f962af3deee324e;hp=4d079c141ce652980eb4d7f182381346875645c5;hpb=358f8b12f6d858473b0bfbd6ed9b191cd94f7b02;p=apps%2Fagl-service-windowmanager.git diff --git a/src/app.hpp b/src/app.hpp index 4d079c1..74361a2 100644 --- a/src/app.hpp +++ b/src/app.hpp @@ -33,6 +33,7 @@ #include "wayland_ivi_wm.hpp" #include "hmi-debug.h" #include "request.hpp" +#include "wm_error.hpp" namespace wl { @@ -158,7 +159,9 @@ struct App Event_SyncDraw, Event_FlushDraw, - Event_Val_Max = Event_FlushDraw, + Event_Error, + + Event_Val_Max = Event_Error, }; const std::vector kListEventName{ @@ -167,7 +170,8 @@ struct App "visible", "invisible", "syncdraw", - "flushdraw"}; + "flushdraw", + "error"}; struct controller_hooks chooks; @@ -229,11 +233,11 @@ struct App void surface_created(uint32_t surface_id); void surface_removed(uint32_t surface_id); + void removeClient(const std::string &appid); + 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); @@ -253,17 +257,28 @@ struct App 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_syncdraw(const std::string &role, const std::string &area); 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); - bool do_transition(unsigned sequence_number); + WMError setRequest(const std::string &appid, const std::string &role, const std::string &area, + Task task, unsigned *req_num); + 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); + + void setTimer(); + void stopTimer(); + void processNextRequest(); - void do_enddraw(unsigned sequence_number); - void process_request(); - void set_timer(); - void stop_timer(); const char *check_surface_exist(const char *drawing_name); void activate(int id); @@ -277,10 +292,10 @@ struct App // The following function is temporary. // Then will be removed when layermanager is finished - void lm_layout_change(const char *drawing_name); - bool lm_layout_change(const struct WMAction &action); - bool lm_release(const struct WMAction &action); - void lm_enddraw(const char *drawing_name); + WMError lm_release(const struct WMAction &action); + + private: + std::unordered_map area2size; }; } // namespace wm