e_info: add dpms to output_mode
authorSangjin Lee <lsj119@samsung.com>
Fri, 30 Jun 2017 03:37:30 +0000 (12:37 +0900)
committerBoram Park <boram1288.park@samsung.com>
Wed, 5 Jul 2017 03:02:09 +0000 (12:02 +0900)
Change-Id: I3df21f87b21bcdde8c56ca3a3285918e7c087bca

src/bin/e_info_client.c
src/bin/e_info_server.c
src/bin/e_info_shared_types.h

index 40cafff0b65953be4300e7a61a8598f5de287831..f79ca8c90f76b9f98b040ab83708890deb5b11cd 100644 (file)
@@ -54,7 +54,7 @@ typedef struct output_mode_info
    unsigned int vdisplay, vsync_start, vsync_end, vtotal;
    unsigned int refresh, vscan, clock;
    unsigned int flags;
-   int current, output, connect;
+   int current, output, connect, dpms;
    const char *name;
 } E_Info_Output_Mode;
 
@@ -2392,7 +2392,7 @@ static E_Info_Output_Mode *
 _e_output_mode_info_new(uint32_t h, uint32_t hsync_start, uint32_t hsync_end, uint32_t htotal,
                         uint32_t v, uint32_t vsync_start, uint32_t vsync_end, uint32_t vtotal,
                         uint32_t refresh, uint32_t vscan, uint32_t clock, uint32_t flags,
-                        int current, int output, int connect, const char *name)
+                        int current, int output, int connect, const char *name, int dpms)
 {
    E_Info_Output_Mode *mode = NULL;
 
@@ -2415,6 +2415,7 @@ _e_output_mode_info_new(uint32_t h, uint32_t hsync_start, uint32_t hsync_end, ui
    mode->output = output;
    mode->connect = connect;
    mode->name = eina_stringshare_add(name);
+   mode->dpms = dpms;
 
    return mode;
 }
@@ -2449,7 +2450,7 @@ _cb_output_mode_info(const Eldbus_Message *msg)
         uint32_t h, hsync_start, hsync_end, htotal;
         uint32_t v, vsync_start, vsync_end, vtotal;
         uint32_t refresh, vscan, clock, flag;
-        int current, output, connect;
+        int current, output, connect, dpms;
         const char *name;
         E_Info_Output_Mode *mode = NULL;
         res = eldbus_message_iter_arguments_get(ec,
@@ -2457,7 +2458,7 @@ _cb_output_mode_info(const Eldbus_Message *msg)
                                                 &h, &hsync_start, &hsync_end, &htotal,
                                                 &v, &vsync_start, &vsync_end, &vtotal,
                                                 &refresh, &vscan, &clock, &flag, &name,
-                                                &current, &output, &connect, &gl);
+                                                &current, &output, &connect, &gl, &dpms);
         if (!res)
           {
              printf("Failed to get output mode info\n");
@@ -2467,7 +2468,7 @@ _cb_output_mode_info(const Eldbus_Message *msg)
         mode = _e_output_mode_info_new(h, hsync_start, hsync_end, htotal,
                                        v, vsync_start, vsync_end, vtotal,
                                        refresh, vscan, clock, flag,
-                                       current, output, connect, name);
+                                       current, output, connect, name, dpms);
         e_info_client.mode_list = eina_list_append(e_info_client.mode_list, mode);
      }
    e_info_client.gl = gl;
@@ -2487,6 +2488,12 @@ _e_info_client_proc_output_mode(int argc, char **argv)
    int output = 0;
    int idx = 0;
    char curr;
+   const char *str_dpms[] = {
+      "on",
+      "standby",
+      "suspend",
+      "off"
+   };
 
    if (!_e_info_client_eldbus_message_with_args("output_mode", _cb_output_mode_info,
                                                 SIGNATURE_OUTPUT_MODE_CLIENT, E_INFO_CMD_OUTPUT_MODE_GET, 0))
@@ -2524,10 +2531,10 @@ _e_info_client_proc_output_mode(int argc, char **argv)
              idx = 0;
 
              if (mode->connect == 1)
-               printf("%s\n", "connected");
+               printf("%s, %s\n", "connected", str_dpms[mode->dpms]);
              else
                {
-                  printf("%s\n", "disconnected");
+                  printf("%s, %s\n", "disconnected", str_dpms[mode->dpms]);
                   continue;
                }
           }
index 9be30ac66eb8b2271635dbc1fa4dc7c707394c88..127fbca1ad727f4995ee036e4f77ed12b4505d3b 100644 (file)
@@ -3780,6 +3780,7 @@ _output_mode_msg_clients_append(Eldbus_Message_Iter *iter, E_Comp_Screen *e_comp
    tdm_error ret = TDM_ERROR_NONE;
    int i, j, count, mode_count, current;
    unsigned int preferred;
+   tdm_output_dpms dpms;
 
    eldbus_message_iter_arguments_append(iter, "a("SIGNATURE_OUTPUT_MODE_SERVER")",
                                         &array_of_mode);
@@ -3790,7 +3791,7 @@ _output_mode_msg_clients_append(Eldbus_Message_Iter *iter, E_Comp_Screen *e_comp
                                              &struct_of_mode);
         eldbus_message_iter_arguments_append(struct_of_mode, SIGNATURE_OUTPUT_MODE_SERVER,
                                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "none",
-                                             0, 0, 0, 0);
+                                             0, 0, 0, 0, 0);
         eldbus_message_iter_container_close(array_of_mode, struct_of_mode);
 
         eldbus_message_iter_container_close(iter, array_of_mode);
@@ -3817,7 +3818,7 @@ _output_mode_msg_clients_append(Eldbus_Message_Iter *iter, E_Comp_Screen *e_comp
                                                   &struct_of_mode);
              eldbus_message_iter_arguments_append(struct_of_mode, SIGNATURE_OUTPUT_MODE_SERVER,
                                                   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "none",
-                                                  0, i, 0, 1);
+                                                  0, i, 0, 1, 0);
              eldbus_message_iter_container_close(array_of_mode, struct_of_mode);
 
              continue;
@@ -3831,6 +3832,10 @@ _output_mode_msg_clients_append(Eldbus_Message_Iter *iter, E_Comp_Screen *e_comp
         if (ret != TDM_ERROR_NONE)
           continue;
 
+        ret = tdm_output_get_dpms(output, &dpms);
+        if (ret != TDM_ERROR_NONE)
+          continue;
+
         for (j = 0; j < mode_count; j++)
           {
              eldbus_message_iter_arguments_append(array_of_mode, "("SIGNATURE_OUTPUT_MODE_SERVER")",
@@ -3845,7 +3850,7 @@ _output_mode_msg_clients_append(Eldbus_Message_Iter *iter, E_Comp_Screen *e_comp
                                                   modes[j].hdisplay, modes[j].hsync_start, modes[j].hsync_end, modes[j].htotal,
                                                   modes[j].vdisplay, modes[j].vsync_start, modes[j].vsync_end, modes[j].vtotal,
                                                   modes[j].vrefresh, modes[j].vscan, modes[j].clock, preferred, modes[j].name,
-                                                  current, i, 1, 1);
+                                                  current, i, 1, 1, dpms);
              eldbus_message_iter_container_close(array_of_mode, struct_of_mode);
           }
      }
index d13dcc25fdff7d4465131b32b58763483922cd85..763051a0636ba5a68de6ee00cb710fcb98265d8c 100644 (file)
@@ -99,7 +99,7 @@ typedef enum _E_Info_Cmd_Output_Mode
 #define SIGNATURE_OUTPUT_MODE_CLIENT "ii" /* i: E_Info_Cmd_Output_Mode
                                            * i: mode number
                                            */
-#define SIGNATURE_OUTPUT_MODE_SERVER "uuuuuuuuuuuusiiii" /* u: h value of outputmode
+#define SIGNATURE_OUTPUT_MODE_SERVER "uuuuuuuuuuuusiiiii" /* u: h value of outputmode
                                                           * u: hsync_start value of outputmode
                                                           * u: hsync_end value of outputmode
                                                           * u: htotal value of outputmode
@@ -116,6 +116,7 @@ typedef enum _E_Info_Cmd_Output_Mode
                                                           * i: output id
                                                           * i: check flag for output connection
                                                           * i: check flag for gl support
+                                                          * i: DPMS
                                                           */