tdm_monitor: add dpms get method 62/250762/1
authorJunkyeong Kim <jk0430.kim@samsung.com>
Mon, 4 Jan 2021 09:37:11 +0000 (18:37 +0900)
committerJunkyeong Kim <jk0430.kim@samsung.com>
Mon, 4 Jan 2021 09:37:15 +0000 (18:37 +0900)
Change-Id: I2d4e33e68fda506f4ea9f9e644c32089ac7a2a1b
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/tdm_monitor_server.c

index a68ce21..0e8431a 100644 (file)
@@ -67,33 +67,52 @@ static void
 _tdm_monitor_server_dpms(unsigned int pid, char *cwd, int argc, char *argv[], char *reply, int *len, tdm_display *dpy)
 {
        tdm_output *output;
-       int output_idx, dpms_value;
+       int output_idx, set, dpms_value = 0;
+       tdm_output_dpms dpms = TDM_OUTPUT_DPMS_ON;
        char *arg;
        char *end;
        tdm_error ret;
 
-       if (argc < 3) {
+       if (argc < 4) {
                _tdm_monitor_server_usage(argv[0], reply, len);
                return;
        }
 
-       arg = argv[2];
-       output_idx = strtol(arg, &end, 10);
-       if (*end != ':') {
-               TDM_SNPRINTF(reply, len, "failed: no onoff value\n");
+       set = strtol(argv[2], &end, 10);
+       if (!(set == 0 || set ==1)) {
+               _tdm_monitor_server_usage(argv[0], reply, len);
                return;
        }
 
-       arg = end + 1;
-       dpms_value = strtol(arg, &end, 10);
+       if (set == 1) {
+               arg = argv[3];
+               output_idx = strtol(arg, &end, 10);
+               if (*end != ':') {
+                       TDM_SNPRINTF(reply, len, "failed: no onoff value\n");
+                       return;
+               }
 
-       output = tdm_display_get_output(dpy, output_idx, &ret);
-       TDM_DBG_RETURN_IF_FAIL(ret == TDM_ERROR_NONE && output != NULL);
+               arg = end + 1;
+               dpms_value = strtol(arg, &end, 10);
 
-       ret = tdm_output_set_dpms(output, dpms_value);
-       TDM_DBG_RETURN_IF_FAIL(ret == TDM_ERROR_NONE);
+               output = tdm_display_get_output(dpy, output_idx, &ret);
+               TDM_DBG_RETURN_IF_FAIL(ret == TDM_ERROR_NONE && output != NULL);
+
+               ret = tdm_output_set_dpms(output, dpms_value);
+               TDM_DBG_RETURN_IF_FAIL(ret == TDM_ERROR_NONE);
+
+               TDM_SNPRINTF(reply, len, "done: DPMS set %s\n", tdm_dpms_str(dpms_value));
+       } else {
+               output_idx = strtol(argv[3], &end, 10);
+
+               output = tdm_display_get_output(dpy, output_idx, &ret);
+               TDM_DBG_RETURN_IF_FAIL(ret == TDM_ERROR_NONE && output != NULL);
 
-       TDM_SNPRINTF(reply, len, "done: DPMS %s\n", tdm_dpms_str(dpms_value));
+               ret = tdm_output_get_dpms(output, &dpms);
+               TDM_DBG_RETURN_IF_FAIL(ret == TDM_ERROR_NONE);
+
+               TDM_SNPRINTF(reply, len, "done: DPMS get %s\n", tdm_dpms_str(dpms));
+       }
 }
 
 static void
@@ -496,7 +515,9 @@ static struct {
        },
        {
                "dpms", _tdm_monitor_server_dpms,
-               "set output dpms", "<output_idx>:<dpms>", "0:3 or 0:0"
+               "set/get output dpms",
+               "<set/get> <output_idx>:<dpms>",
+               "0 0 (get) or 1 0:3 (set off) or 1 0:0 (set on)"
        },
        {
                "ttrace", _tdm_monitor_server_ttrace,