aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/app.cpp69
-rw-r--r--src/app.hpp6
-rw-r--r--src/main.cpp20
3 files changed, 39 insertions, 56 deletions
diff --git a/src/app.cpp b/src/app.cpp
index 18bc15e..e9af748 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -269,32 +269,38 @@ void App::layout_commit() {
this->display->flush();
}
+const char* App::convertDrawingNameToRole(char const *drawing_name) {
+ const char* role;
+
+ if (this->drawingname2role_.find(drawing_name) != this->drawingname2role_.end()) {
+ // drawing_name is old role. So convert to new role.
+ role = this->drawingname2role_[drawing_name].c_str();
+ }
+ else {
+ // drawing_name is new role.
+ role = drawing_name;
+ }
+ HMI_DEBUG("wm", "drawing_name:%s -> role: %s", drawing_name, role);
+
+ return role;
+}
+
void App::allocateWindowResource(char const *event, char const *drawing_name,
- char const *drawing_area, char const *role,
- const reply_func &reply) {
+ char const *drawing_area, const reply_func &reply) {
const char* new_role = nullptr;
const char* new_area = nullptr;
- if (0 == strcmp("activate", event)) {
- // TODO:
- // This process will be removed
- // because the applications will specify role instead of drawing_name
- {
- if ((nullptr == role) || (0 == strcmp("", role))) {
- HMI_DEBUG("wm", "Role is not specified, so get by using app name");
- new_role = this->app2role_[drawing_name].c_str();
- }
- else {
- new_role = role;
- }
- HMI_DEBUG("wm", "drawing_name:%s, new_role: %s", drawing_name, new_role);
- }
+ // Convert old role to new role
+ if ((nullptr != drawing_name) && (0 != strcmp("", drawing_name))) {
+ new_role = this->convertDrawingNameToRole(drawing_name);
+ }
+ if (0 == strcmp("activate", event)) {
// TODO:
// This process will be removed
// because the area "normal.full" and "normalfull" will be prohibited
{
- if (0 == strcmp("Restriction", drawing_name)) {
+ if (0 == strcmp("restriction", new_role)) {
new_area = drawing_area;
}
else {
@@ -319,19 +325,6 @@ void App::allocateWindowResource(char const *event, char const *drawing_name,
}
}
else if (0 == strcmp("deactivate", event)) {
- // TODO:
- // This process will be removed
- // because the applications will specify role instead of drawing_name
- {
- if ((nullptr == role) || (0 == strcmp("", role))) {
- HMI_DEBUG("wm", "Role is not specified, so get by using app name");
- new_role = this->app2role_[drawing_name].c_str();
- }
- else {
- new_role = role;
- }
- HMI_DEBUG("wm", "drawing_name:%s, new_role: %s", drawing_name, new_role);
- }
new_area = "";
}
@@ -641,8 +634,8 @@ void App::surface_removed(uint32_t surface_id) {
} else {
auto drawing_name = this->lookup_name(surface_id);
if (drawing_name) {
- this->allocateWindowResource("deactivate", drawing_name->c_str(),
- nullptr, nullptr,
+ this->allocateWindowResource("deactivate",
+ drawing_name->c_str(), nullptr,
[](const char*){});
}
}
@@ -754,7 +747,7 @@ result<int> App::api_request_surface(char const *drawing_name) {
#endif
// Set map of (role, surface_id)
- std::string role = this->app2role_[std::string(drawing_name)];
+ const char* role = this->convertDrawingNameToRole(drawing_name);
this->role2surfaceid_[role] = id;
// Set map of (role, app)
@@ -994,8 +987,8 @@ void App::deactivate(std::string role) {
void App::deactivate_main_surface() {
this->layers.main_surface = -1;
- this->allocateWindowResource("deactivate", this->layers.main_surface_name.c_str(),
- nullptr, nullptr,
+ this->allocateWindowResource("deactivate",
+ this->layers.main_surface_name.c_str(), nullptr,
[](const char*){});
}
@@ -1236,12 +1229,12 @@ int App::loadAppDb() {
}
HMI_DEBUG("wm", "> role:%s", role);
- this->app2role_[app] = std::string(role);
+ this->drawingname2role_[app] = std::string(role);
}
// Check
- for(auto itr = this->app2role_.begin();
- itr != this->app2role_.end(); ++itr) {
+ for(auto itr = this->drawingname2role_.begin();
+ itr != this->drawingname2role_.end(); ++itr) {
HMI_DEBUG("wm", "app:%s role:%s",
itr->first.c_str(), itr->second.c_str());
}
diff --git a/src/app.hpp b/src/app.hpp
index 590b23a..2cc6fa8 100644
--- a/src/app.hpp
+++ b/src/app.hpp
@@ -234,8 +234,7 @@ struct App {
result<int> api_request_surface(char const *drawing_name);
char const *api_request_surface(char const *drawing_name, char const *ivi_id);
void allocateWindowResource(char const *event, char const *drawing_name,
- char const *role, char const *drawing_area,
- const reply_func &reply);
+ char const *drawing_area, 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);
@@ -255,7 +254,7 @@ private:
PolicyManager pm_;
LayoutManager lm_;
std::unordered_map<std::string, int> role2surfaceid_;
- std::unordered_map<std::string, std::string> app2role_;
+ std::unordered_map<std::string, std::string> drawingname2role_;
std::unordered_map<std::string, std::string> role2app_;
std::unordered_map<int, int> appid2role_;
CarInfo crr_car_info_;
@@ -263,6 +262,7 @@ private:
int allocateSurface();
void setSurfaceSize(const char* role, const char* area);
int loadAppDb();
+ const char* convertDrawingNameToRole(char const *drawing_name);
#if 0
struct id_allocator app_id_alloc_;
diff --git a/src/main.cpp b/src/main.cpp
index 07baf2a..52a2ed4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -304,13 +304,8 @@ void windowmanager_activatesurface(afb_req req) noexcept {
return;
}
- const char* a_role = afb_req_value(req, "role");
- if(!a_role){
- a_role = "";
- }
-
- g_afb_instance->app.allocateWindowResource("activate", a_drawing_name,
- a_drawing_area, a_role,
+ g_afb_instance->app.allocateWindowResource("activate",
+ a_drawing_name, a_drawing_area,
[&req](const char* errmsg){
if (errmsg != nullptr) {
HMI_ERROR("wm", errmsg);
@@ -344,13 +339,8 @@ void windowmanager_deactivatesurface(afb_req req) noexcept {
return;
}
- const char* a_role = afb_req_value(req, "role");
- if(!a_role){
- a_role = "";
- }
-
- g_afb_instance->app.allocateWindowResource("deactivate", a_drawing_name,
- nullptr, a_role,
+ g_afb_instance->app.allocateWindowResource("deactivate",
+ a_drawing_name, nullptr,
[&req](const char* errmsg){
if (errmsg != nullptr) {
HMI_ERROR("wm", errmsg);
@@ -759,7 +749,7 @@ void on_event(const char *event, struct json_object *object){
// Allocate window resource
if (nullptr != can_event) {
- g_afb_instance->app.allocateWindowResource(can_event, nullptr,
+ g_afb_instance->app.allocateWindowResource(can_event,
nullptr, nullptr,
[](const char* errmsg){
if (errmsg != nullptr) {