e_info: add zone's angle information in topvwins 65/291465/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Mon, 17 Apr 2023 06:16:43 +0000 (15:16 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 17 Apr 2023 07:37:22 +0000 (16:37 +0900)
Change-Id: I6b669405289521fcb5ffc9c4cb865b901ccab981

src/bin/e_info_client.c
src/bin/e_info_server.c

index 32c9f1f..8230628 100644 (file)
@@ -45,6 +45,8 @@ typedef struct _E_Zone_Info
    int display_state;
    int x, y, w, h;
    Eina_Bool is_current;
+   int angle_cur;
+   int angle_active;
 } E_Zone_Info;
 
 typedef struct _E_Win_Info
@@ -102,7 +104,7 @@ typedef struct _E_Fps_Info
    double fps;
 } E_Fps_Info;
 
-#define VALUE_TYPE_FOR_ZONE "iiiiiib"
+#define VALUE_TYPE_FOR_ZONE "iiiiiibii"
 #define VALUE_TYPE_FOR_TOPVWINS "uuisiiiiibbbiibibbiiiusbbii"
 #define VALUE_TYPE_REQUEST_RESLIST "ui"
 #define VALUE_TYPE_REPLY_RESLIST "ssu"
@@ -384,7 +386,7 @@ _e_get_windows(int mode, char *value)
 }
 
 static E_Zone_Info *
-_e_zone_info_new(int id, int display_state, int x, int y, int w, int h, Eina_Bool is_current)
+_e_zone_info_new(int id, int display_state, int x, int y, int w, int h, Eina_Bool is_current, int angle_cur, int angle_active)
 {
    E_Zone_Info *zone_info = NULL;
 
@@ -398,6 +400,8 @@ _e_zone_info_new(int id, int display_state, int x, int y, int w, int h, Eina_Boo
    zone_info->w = w;
    zone_info->h = h;
    zone_info->is_current = is_current;
+   zone_info->angle_cur = angle_cur;
+   zone_info->angle_active = angle_active;
 
    return zone_info;
 }
@@ -415,14 +419,17 @@ _e_zone_info_make_array(Eldbus_Message_Iter *zone_array)
         int display_state;
                int x, y, w, h;
         Eina_Bool is_current;
-        res = eldbus_message_iter_arguments_get(zone, VALUE_TYPE_FOR_ZONE, &id, &display_state, &x, &y, &w, &h, &is_current);
+        int angle_cur;
+        int angle_active;
+
+        res = eldbus_message_iter_arguments_get(zone, VALUE_TYPE_FOR_ZONE, &id, &display_state, &x, &y, &w, &h, &is_current, &angle_cur, &angle_active);
         if (!res)
           {
              printf("Failed to get win info\n");
              continue;
           }
 
-        zone_info = _e_zone_info_new(id, display_state, x, y, w, h, is_current);
+        zone_info = _e_zone_info_new(id, display_state, x, y, w, h, is_current, angle_cur, angle_active);
         e_info_client.zone_list = eina_list_append(e_info_client.zone_list, zone_info);
      }
 
@@ -1277,6 +1284,7 @@ _e_info_client_proc_topvwins_info(int argc, char **argv)
           printf("Display State: %s\n", "On");
         else
           printf("Display State: %s\n", "Unknown");
+        printf("Angle: Cur(%d), Active(%d)\n", zone_info->angle_cur, zone_info->angle_active);
         printf("------------------------------------------------------------------------------------------------------------------------------------\n");
 
         printf("%d Top level windows in evas object list\n", eina_list_count(e_info_client.win_list));
index 7e7b3a3..3e3647b 100644 (file)
@@ -80,7 +80,7 @@ static Eina_List *module_hook = NULL;
    str_r -= str_l; \
 } while(0)
 
-#define VALUE_TYPE_FOR_ZONE "iiiiiib"
+#define VALUE_TYPE_FOR_ZONE "iiiiiibii"
 #define VALUE_TYPE_FOR_TOPVWINS "uuisiiiiibbbiibibbiiiusbbii"
 #define VALUE_TYPE_REQUEST_RESLIST "ui"
 #define VALUE_TYPE_REPLY_RESLIST "ssu"
@@ -245,6 +245,8 @@ _e_info_server_cb_zone_info_get(const Eldbus_Service_Interface *iface EINA_UNUSE
    int zone_id = -1;
    int disp_state = -1;
    Eina_Bool is_current_zone = EINA_FALSE;
+   int angle_cur = 0;
+   int angle_active = 0;
 
    eldbus_message_iter_arguments_append(iter, "("VALUE_TYPE_FOR_ZONE")", &array_of_zone);
 
@@ -259,8 +261,11 @@ _e_info_server_cb_zone_info_get(const Eldbus_Service_Interface *iface EINA_UNUSE
         else
           is_current_zone = EINA_FALSE;
 
+        angle_cur = zone->rot.curr;
+        angle_active = zone->rot.act;
+
         eldbus_message_iter_arguments_append(array_of_zone, "("VALUE_TYPE_FOR_ZONE")", &struct_of_zone);
-        eldbus_message_iter_arguments_append(struct_of_zone, VALUE_TYPE_FOR_ZONE, zone_id, disp_state, zone->x, zone->y, zone->w, zone->h, is_current_zone);
+        eldbus_message_iter_arguments_append(struct_of_zone, VALUE_TYPE_FOR_ZONE, zone_id, disp_state, zone->x, zone->y, zone->w, zone->h, is_current_zone, angle_cur, angle_active);
 
         eldbus_message_iter_container_close(array_of_zone, struct_of_zone);
      }