From: Kazumasa Mitsunari Date: Fri, 8 Jun 2018 03:49:57 +0000 (+0900) Subject: Merge branch 'sandbox/knimitz/format_code' into sandbox/knimitz/lock X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=5d5a780a405fdb71a85898d8d988f6ee1bf3b3e0;p=apps%2Fagl-service-windowmanager.git Merge branch 'sandbox/knimitz/format_code' into sandbox/knimitz/lock Change-Id: Ifbd46e0156ab5baf93fbb785f4fdfda963ed2af4 Signed-off-by: Kazumasa Mitsunari --- 5d5a780a405fdb71a85898d8d988f6ee1bf3b3e0 diff --cc src/app.cpp index cedf70c,08a9371..5bd597c --- a/src/app.cpp +++ b/src/app.cpp @@@ -455,11 -453,10 +453,11 @@@ void App::stop_timer( } } -bool App::lm_release(const struct WMAction &action) +WMError App::lm_release(const struct WMAction &action) { //auto const &surface_id = this->lookup_id(drawing_name); + WMError ret = WMError::LAYOUT_CHANGE_FAIL; - unsigned req_num = app_list.currentSequenceNumber(); + unsigned req_num = g_app_list.currentRequestNumber(); auto const &surface_id = this->lookup_id(action.role.c_str()); if (!surface_id) { @@@ -561,15 -558,15 +559,14 @@@ WMError App::lm_layout_change(const str TODO: emit syncDraw with application*/ if (msg) { - HMI_SEQ_DEBUG(app_list.currentSequenceNumber(), msg); - //app_list.removeRequest(req_num); + HMI_SEQ_DEBUG(g_app_list.currentRequestNumber(), msg); - //g_app_list.removeRequest(req_num); - return false; + return WMError::LAYOUT_CHANGE_FAIL; } this->lm_layout_change(action.role.c_str()); - return true; + return WMError::SUCCESS; } -bool App::do_transition(unsigned req_num) +WMError App::do_transition(unsigned req_num) { /* * Check Policy @@@ -598,10 -595,10 +595,10 @@@ { is_activate = false; } - WMError ret = app_list.setAction(req_num, trigger.appid, trigger.role, trigger.area, is_activate); - app_list.req_dump(); - bool ret = g_app_list.setAction(req_num, trigger.appid, trigger.role, trigger.area, is_activate); ++ WMError ret = g_app_list.setAction(req_num, trigger.appid, trigger.role, trigger.area, is_activate); + g_app_list.reqDump(); - if (!ret) + if (ret != WMError::SUCCESS) { HMI_SEQ_ERROR(req_num, "Failed to set action"); return ret; @@@ -622,11 -619,10 +619,11 @@@ { sync_draw_happen = true; ret = lm_layout_change(y); - if (!ret) + if (ret != WMError::SUCCESS) { - HMI_SEQ_ERROR(req_num, "Failed layout change: %s", y.appid.c_str()); + HMI_SEQ_ERROR(req_num, "%s: appid: %s, role: %s, area: %s", + errorDescription(ret), y.appid.c_str(), y.role.c_str(), y.area.c_str()); - app_list.removeRequest(req_num); + g_app_list.removeRequest(req_num); break; // TODO: if transition fails, what should we do? } @@@ -646,11 -642,11 +643,11 @@@ } } - if (!ret) + if (ret != WMError::SUCCESS) { - //this->emit_error(request_seq, 0 /*error_num*/, "error happens"); // test + //this->emit_error(req_num, 0 /*error_num*/, "error happens"); // test } - else if (ret && sync_draw_happen) + else if (sync_draw_happen) { this->set_timer(); } @@@ -1018,12 -1025,9 +1026,12 @@@ void App::do_enddraw(unsigned req_num void App::process_request() { - unsigned req = app_list.currentSequenceNumber(); + unsigned req = g_app_list.currentRequestNumber(); HMI_SEQ_DEBUG(req, "Do next request"); - do_transition(req); + WMError rc = do_transition(req); + if(rc != WMError::SUCCESS){ + HMI_SEQ_ERROR(req, errorDescription(rc)); + } } void App::api_enddraw(char const *appid, char const *drawing_name) diff --cc src/app.hpp index d13fd4d,2ee3560..7ead82e --- a/src/app.hpp +++ b/src/app.hpp @@@ -262,9 -261,9 +262,9 @@@ struct Ap void emit_invisible(char const *label); void emit_visible(char const *label); - bool do_transition(unsigned req_num); + WMError do_transition(unsigned sequence_number); - void do_enddraw(unsigned sequence_number); + void do_enddraw(unsigned req_num); void process_request(); void set_timer(); void stop_timer(); diff --cc src/applist.cpp index 6b608d0,2575849..9b06c84 --- a/src/applist.cpp +++ b/src/applist.cpp @@@ -116,23 -115,23 +115,18 @@@ unsigned AppList::addAllocateRequest(WM } else { - HMI_SEQ_DEBUG(current_seq, "real: %d", req_list.back().seq_num + 1); - req.seq_num = req_list.back().seq_num + 1; + HMI_SEQ_DEBUG(this->current_req, "add: %d", this->req_list.back().req_num + 1); + req.req_num = this->req_list.back().req_num + 1; } - req_list.push_back(req); - return req.seq_num; // return 1; if you test time_expire - } - - bool AppList::requestFinished() - { - return req_list.empty(); + this->req_list.push_back(req); + return req.req_num; // return 1; if you test time_expire } -bool AppList::requestFinished() const -{ - return this->req_list.empty(); -} - struct WMTrigger AppList::getRequest(unsigned req_num) { - for (auto &x : req_list) + for (const auto &x : this->req_list) { - if (req_num == x.seq_num) + if (req_num == x.req_num) { return x.trigger; } @@@ -150,12 -149,12 +144,12 @@@ const vector &AppList: } } -bool AppList::setAction(unsigned req_num, const struct WMAction &action) +WMError AppList::setAction(unsigned req_num, const struct WMAction &action) { - bool result = false; + WMError result = WMError::FAIL; - for (auto &x : req_list) + for (auto &x : this->req_list) { - if (req_num != x.seq_num) + if (req_num != x.req_num) { continue; } @@@ -167,19 -166,27 +161,27 @@@ return result; } + /** + * Note: + * This function set action with parameters. + * if visible is true, it means app should be visible, so enddraw_finished parameter should be false. + * otherwise (visible is false) app should be invisible. Then enddraw_finished param is set to true. + * This function doesn't support actions for focus yet. + */ -bool AppList::setAction(unsigned req_num, const string &appid, const string &role, const string &area, bool visible) +WMError AppList::setAction(unsigned req_num, const string &appid, const string &role, const string &area, bool visible) { - bool result = false; + WMError result = WMError::NOT_REGISTERED; for (auto &x : req_list) { - if (req_num != x.seq_num) + if (req_num != x.req_num) { continue; } - WMAction action{appid, role, area, visible, false}; + bool edraw_f = (visible) ? false : true; + WMAction action{appid, role, area, visible, edraw_f}; x.sync_draw_req.push_back(action); - result = true; + result = WMError::SUCCESS; break; } return result; diff --cc src/applist.hpp index 97f772b,bb80961..0f2285b --- a/src/applist.hpp +++ b/src/applist.hpp @@@ -53,9 -53,9 +53,8 @@@ class AppLis /* TODO: consider, which is better WMClient or std::string appid? if appid is key to manage resources, it is better to select std::string otherwise WMClient is better, IMO */ - bool requestFinished(); - bool requestFinished() const; - bool setAction(unsigned req_num, const struct WMAction &action); - bool setAction(unsigned req_num, const std::string &appid, const std::string &role, const std::string &area, bool visible = true); + WMError setAction(unsigned req_num, const struct WMAction &action); + WMError setAction(unsigned req_num, const std::string &appid, const std::string &role, const std::string &area, bool visible = true); bool setEndDrawFinished(unsigned req_num, const std::string &appid, const std::string &role); bool endDrawFullfilled(unsigned req_num); void removeRequest(unsigned req_num); diff --cc src/wm-error.cpp index ab1ea31,0ced0d7..4b01922 --- a/src/wm-error.cpp +++ b/src/wm-error.cpp @@@ -28,12 -28,10 +28,14 @@@ const char *errorDescription(WMError en return "Request is rejected, due to the policy rejection of the request."; case REQ_DROPPED: return "Request is dropped, because the high priority request is done"; + case NOT_REGISTERED: + return "Not registered"; case TIMEOUT_EXPIRED: return "Request is dropped, due to time out expiring"; + case LAYOUT_CHANGE_FAIL: + return "Layout change fails, due to some reasons"; + case NO_ENTRY: + return "No element"; default: return "Unknown error number. Window manager bug."; } diff --cc src/wm-error.h index ce271b3,3413c72..155d791 --- a/src/wm-error.h +++ b/src/wm-error.h @@@ -26,14 -26,12 +26,15 @@@ typedef enum WINDOWMANAGER_ERRO REQ_REJECTED, REQ_DROPPED, TIMEOUT_EXPIRED, + NOT_REGISTERED, + LAYOUT_CHANGE_FAIL, + NO_ENTRY, UNKNOWN, ERR_MAX = UNKNOWN -} WMError; +} +WMError; -static const char *errorDescription(WMError enum_error_number); +const char *errorDescription(WMError enum_error_number); } #endif // WINDOW_MANAGER_ERROR