From: Sangjin Lee Date: Fri, 30 Jun 2017 03:37:30 +0000 (+0900) Subject: e_info: add dpms to output_mode X-Git-Tag: submit/tizen_3.0/20170705.085031~25 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=288f8fa1794ea76dba5ec2cef4c7f1cc08440c91;p=platform%2Fupstream%2Fenlightenment.git e_info: add dpms to output_mode Change-Id: I3df21f87b21bcdde8c56ca3a3285918e7c087bca --- diff --git a/src/bin/e_info_client.c b/src/bin/e_info_client.c index 40cafff0b6..f79ca8c90f 100644 --- a/src/bin/e_info_client.c +++ b/src/bin/e_info_client.c @@ -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, - ¤t, &output, &connect, &gl); + ¤t, &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; } } diff --git a/src/bin/e_info_server.c b/src/bin/e_info_server.c index 9be30ac66e..127fbca1ad 100644 --- a/src/bin/e_info_server.c +++ b/src/bin/e_info_server.c @@ -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); } } diff --git a/src/bin/e_info_shared_types.h b/src/bin/e_info_shared_types.h index d13dcc25fd..763051a063 100644 --- a/src/bin/e_info_shared_types.h +++ b/src/bin/e_info_shared_types.h @@ -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 */