"suspend",
"off"
};
+ int count = 0;
+
+ if (argc == 2)
+ {
+ 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))
+ {
+ printf("_e_info_client_proc_output_mode fail (%d)\n", E_INFO_CMD_OUTPUT_MODE_GET);
+ return;
+ }
+ }
+ else if (argc == 3)
+ {
+ if ((argv[2][0] < '0' || argv[2][0] > '9'))
+ {
+ printf("Error: invalid argument\n");
+ return;
+ }
- 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))
+ count = atoi(argv[2]);
+ if (!_e_info_client_eldbus_message_with_args("output_mode", _cb_output_mode_info,
+ SIGNATURE_OUTPUT_MODE_CLIENT, E_INFO_CMD_OUTPUT_MODE_SET, count))
+ {
+ printf("_e_info_client_proc_output_mode fail (%d)\n", E_INFO_CMD_OUTPUT_MODE_SET);
+ return;
+ }
+ }
+ else
{
- printf("_e_info_client_proc_output_mode fail (%d)\n", 1);
+ printf("Error: invalid argument\n");
return;
}
_e_info_client_proc_screen_shot
},
{
- "output_mode", NULL,
+ "output_mode",
+ "[mode number to set]",
"Get output mode info",
_e_info_client_proc_output_mode
},
}
static void
-_output_mode_msg_clients_append(Eldbus_Message_Iter *iter, E_Comp_Screen *e_comp_screen, int gl)
+_output_mode_msg_clients_append(Eldbus_Message_Iter *iter, E_Comp_Screen *e_comp_screen, int gl, int mode, int mode_count)
{
+ E_Output *primary_output = NULL;
Eldbus_Message_Iter *array_of_mode;
Eldbus_Message_Iter *struct_of_mode;
+ E_Output_Mode *set_mode = NULL;
int i, count;
eldbus_message_iter_arguments_append(iter, "a("SIGNATURE_OUTPUT_MODE_SERVER")",
return;
}
+ if (mode == E_INFO_CMD_OUTPUT_MODE_SET)
+ {
+ E_Output_Mode *emode = NULL;
+ Eina_List *modelist = NULL, *l = NULL;
+ int num;
+
+ primary_output = e_comp_screen_primary_output_get(e_comp->e_comp_screen);
+
+ modelist = e_output_mode_list_get(primary_output);
+ if (modelist)
+ {
+ num = eina_list_count(modelist);
+ if (mode_count >= 0 && mode_count < num)
+ {
+ count = 0;
+ EINA_LIST_FOREACH(modelist, l, emode)
+ {
+ if (count == mode_count)
+ {
+ set_mode = emode;
+ break;
+ }
+ count++;
+ }
+ }
+
+ if (set_mode)
+ e_output_mode_change(primary_output, set_mode);
+ }
+ }
+
count = e_comp_screen->num_outputs;
for (i = 0; i < count; i++)
return reply;
}
- if (mode == E_INFO_CMD_OUTPUT_MODE_GET)
+ if ((mode == E_INFO_CMD_OUTPUT_MODE_GET) ||
+ (mode == E_INFO_CMD_OUTPUT_MODE_SET))
{
e_comp_screen = e_comp->e_comp_screen;
tdpy = e_comp_screen->tdisplay;
if (tdpy != NULL)
- _output_mode_msg_clients_append(eldbus_message_iter_get(reply), e_comp_screen, 1);
+ _output_mode_msg_clients_append(eldbus_message_iter_get(reply), e_comp_screen, 1, mode, count);
else
- _output_mode_msg_clients_append(eldbus_message_iter_get(reply), e_comp_screen, 0);
+ _output_mode_msg_clients_append(eldbus_message_iter_get(reply), e_comp_screen, 0, 0, 0);
}
return reply;