_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
},
{
"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,