Add new roles and remove unnecessary role definition
[apps/agl-service-windowmanager.git] / src / app.cpp
index bbb14c0..1e7a617 100644 (file)
@@ -95,7 +95,7 @@ struct result<layer_map> load_layer_map(char const *filename) {
 
 namespace rm {
 App *context;
-const char *g_new_role; // TODO: workaround
+std::string g_new_role; // TODO: workaround
 static void eventHandler(json_object* json_out) {
     context->updateWindowResource(json_out);
 }
@@ -103,7 +103,7 @@ static void eventHandler(json_object* json_out) {
 
 
 void App::updateWindowResource(json_object* json_out) {
-    HMI_DEBUG("wm", "role:%s", rm::g_new_role);
+    HMI_DEBUG("wm", "role:%s", rm::g_new_role.c_str());
 
     // Check parking brake state
     json_object* json_parking_brake;
@@ -246,14 +246,12 @@ void App::updateWindowResource(json_object* json_out) {
     // Get category
     const char* category = nullptr;
     std::string str_category;
-    if (nullptr != rm::g_new_role) {
-        str_category = this->pm_.roleToCategory(rm::g_new_role);
-        category = str_category.c_str();
-        HMI_DEBUG("wm", "role:%s category:%s", rm::g_new_role, category);
-    }
+    str_category = this->pm_.roleToCategory(rm::g_new_role.c_str());
+    category = str_category.c_str();
+    HMI_DEBUG("wm", "role:%s category:%s", rm::g_new_role.c_str(), category);
 
     // Update layout
-    if (this->lm_.updateLayout(json_out, rm::g_new_role, category)) {
+    if (this->lm_.updateLayout(json_out, rm::g_new_role.c_str(), category)) {
         HMI_DEBUG("wm", "Layer is changed!!");
 
         // Allocate surface
@@ -525,7 +523,7 @@ void App::allocateWindowResource(char const *event, char const *drawing_name,
     if (nullptr != new_area) {
         json_object_object_add(json_in, "area", json_object_new_string(new_area));
     }
-    rm::g_new_role = new_role;  // TODO: workaround
+    rm::g_new_role = std::string(new_role);  // TODO: workaround
     this->pm_.inputEvent(json_in);
 
     // Release json_object
@@ -727,6 +725,7 @@ void App::emitCarRun() {
 result<int> App::api_request_surface(char const *drawing_name) {
    // Convert drawing_name to role
    const char* role = this->convertDrawingNameToRole(drawing_name);
+
    auto lid = this->layers.get_layer_id(std::string(role));
    if (!lid) {
       /**
@@ -768,8 +767,10 @@ result<int> App::api_request_surface(char const *drawing_name) {
 char const *App::api_request_surface(char const *drawing_name,
                                      char const *ivi_id) {
    ST();
+   // Convert drawing_name to role
+   const char* role = this->convertDrawingNameToRole(drawing_name);
 
-   auto lid = this->layers.get_layer_id(std::string(drawing_name));
+   auto lid = this->layers.get_layer_id(std::string(role));
    unsigned sid = std::stol(ivi_id);
 
    if (!lid) {
@@ -783,14 +784,14 @@ char const *App::api_request_surface(char const *drawing_name,
       }
    }
 
-   auto rname = this->lookup_id(drawing_name);
+   auto rname = this->lookup_id(role);
 
    if (rname) {
        return "Surface already present";
    }
 
    // register pair drawing_name and ivi_id
-   this->id_alloc.register_name_id(drawing_name, sid);
+   this->id_alloc.register_name_id(role, sid);
    this->layers.add_surface(sid, *lid);
 
    // this surface is already created