+WMError LayerControl::updateAreaList(const ChangeAreaReq& req)
+{
+ // error check
+ for(const auto& elem : req.area_req)
+ {
+ if(this->area2size.find(elem.first) == this->area2size.end())
+ {
+ HMI_ERROR("requested area %s is not registered in area list", elem.first.c_str());
+ return WMError::NOT_REGISTERED;
+ }
+ }
+ // update list
+ for(const auto& elem : req.area_req)
+ {
+ this->area2size[elem.first] = elem.second;
+ }
+ if(req.save)
+ {
+ HMI_NOTICE("Not implemented");
+ // TODO
+ }
+ return WMError::SUCCESS;
+}
+
+WMError LayerControl::getUpdateAreaList(ChangeAreaReq *req)
+{
+ for(const auto& wm_layer : this->wm_layers)
+ {
+ // get area name and compare it with elem
+ for(const auto& area : req->area_req)
+ {
+ string app = wm_layer->attachedApp(area.first);
+ if(!app.empty())
+ {
+ HMI_INFO("app %s changes area %s", app.c_str(), area.first.c_str());
+ req->update_app2area[app] = area.first;
+ }
+ }
+ }
+ return WMError::SUCCESS;
+}
+