Fixed some RPMlint errors - group name, duplicate files, etc.
[profile/ivi/ico-uxf-homescreen.git] / ico-app-framework / ico_uxf_conf_sys.c
index 517cde1..3f9f3e1 100644 (file)
@@ -173,8 +173,7 @@ reloadSysConfig(void)
     GKeyFileFlags flags;
     GError *error = NULL;
     gsize length;
-    int i;
-    int j;
+    int i, j, k;
     int zoneidx;
     GList*  idlist;
     char*   dirp;
@@ -376,6 +375,12 @@ reloadSysConfig(void)
         else if (strcasecmp(strp, "system") == 0)   {
             _ico_sys_config->kind[i].priv = ICO_UXF_PRIVILEGE_SYSTEM;
         }
+        else if (strcasecmp(strp, "system.audio") == 0)   {
+            _ico_sys_config->kind[i].priv = ICO_UXF_PRIVILEGE_SYSTEM_AUDIO;
+        }
+        else if (strcasecmp(strp, "system.visible") == 0)   {
+            _ico_sys_config->kind[i].priv = ICO_UXF_PRIVILEGE_SYSTEM_VISIBLE;
+        }
         else if (strcasecmp(strp, "maker") == 0)    {
             _ico_sys_config->kind[i].priv = ICO_UXF_PRIVILEGE_MAKER;
         }
@@ -642,6 +647,8 @@ reloadSysConfig(void)
 
         /* display layer            */
         int displayer_length;
+        gchar **layerlist;
+        gsize layersize;
         GString* layer_key = g_string_new("");
         for (displayer_length = 0;
              displayer_length < ICO_UXF_DISPLAY_LAYER_MAX; displayer_length++)  {
@@ -655,11 +662,24 @@ reloadSysConfig(void)
         for (j = 0; j < displayer_length; j++)  {
             g_string_printf(layer_key,"%s.layer.%d",key,j);
             display->layer[j].id = j;
-            display->layer[j].name =
-                    g_key_file_get_string(keyfile, g, layer_key->str, &error);
+            layerlist = g_key_file_get_string_list(keyfile, g, layer_key->str,
+                                                   &layersize, &error);
             ico_uxf_conf_checkGerror(&error);
-            apfw_trace("Display.%d Layer.%d id = %d name = %s", i, j,
-                       display->layer[j].id, display->layer[j].name);
+            if (layersize <= 0) {
+                apfw_error("Display.%d Layer.%d has no name", i, j);
+            }
+            else    {
+                display->layer[j].name = strdup((char *)layerlist[0]);
+                for (k = 1; k < (int)layersize; k++)    {
+                    if (strcasecmp((char *)layerlist[k], "menuoverlap") == 0)   {
+                        display->layer[j].menuoverlap = 1;
+                    }
+                }
+                apfw_trace("Display.%d Layer.%d id = %d name = %s overlap=%d", i, j,
+                           display->layer[j].id, display->layer[j].name,
+                           display->layer[j].menuoverlap);
+            }
+            if (layerlist)  g_strfreev(layerlist);
         }
         g_string_free(layer_key,TRUE);
 
@@ -683,7 +703,7 @@ reloadSysConfig(void)
         for (j = 0; j < dispzone_length; j++)   {
             g_string_printf(zone_key,"%s.zone.%d",key,j);
             zonelists[j] = g_key_file_get_string_list(
-                                    keyfile,g,zone_key->str,&zonesizes[j],&error);
+                                    keyfile, g, zone_key->str, &zonesizes[j], &error);
             ico_uxf_conf_checkGerror(&error);
             if ((! zonelists[j]) || (zonesizes[j] <= 0)) {
                 apfw_error("reloadSysConfig: display.%d zone.%d dose not exist",i,j);
@@ -695,6 +715,7 @@ reloadSysConfig(void)
             zone->id = j;
             zone->zoneidx = zoneidx++;
             zone->display = display;
+            zone->node = ICO_UXF_NODEDISP_2_NODEID(display->hostId, display->displayno);
 
             if (zonesizes[j] <= 0)  continue;
 
@@ -743,8 +764,8 @@ reloadSysConfig(void)
         for (j = 0; j < dispzone_length; j++)   {
             if (zonelists[j])   g_strfreev(zonelists[j]);
             zone = &(display->zone[j]);
-            apfw_trace("Disp.%d zone.%d x/y = %d/%d w/h = %d/%d over = %d.%d %d %d %d %d",
-                       i, j, zone->x, zone->y, zone->width, zone->height,
+            apfw_trace("Disp.%d zone.%d node=%x x/y=%d/%d w/h=%d/%d over=%d.%d %d %d %d %d",
+                       i, j, zone->node, zone->x, zone->y, zone->width, zone->height,
                        zone->overlapNum, zone->overlap[0], zone->overlap[1],
                        zone->overlap[2], zone->overlap[3], zone->overlap[4]);
         }
@@ -900,13 +921,18 @@ reloadSysConfig(void)
                 inputdev->inputsw[j].name = strdup((char *)swlist[0]);
                 if (swsize > 1) {
                     inputdev->inputsw[j].appid = strdup((char *)swlist[1]);
+                    if (swsize > 2) {
+                        inputdev->inputsw[j].keycode = strtol((char *)swlist[2],
+                                                              (char **)0, 0);
+                    }
                 }
             }
             g_strfreev(swlist);
-            uifw_trace("reloadSysConfig: input %s.%s app = %s",
+            uifw_trace("Input %s.%s app = %s key=%d",
                        inputdev->name,
                        inputdev->inputsw[j].name ? inputdev->inputsw[j].name : " ",
-                       inputdev->inputsw[j].appid ? inputdev->inputsw[j].appid : " ");
+                       inputdev->inputsw[j].appid ? inputdev->inputsw[j].appid : " ",
+                       inputdev->inputsw[j].keycode);
         }
         g_string_free(sw_key,TRUE);
     }