3 #include "e_mod_main.h"
4 #include "e_mod_scrnconf.h"
5 #include "scrnconf_devicemgr.h"
11 #define _MAKE_ATOM(a, s) \
13 a = ecore_x_atom_get (s); \
15 SLOG(LOG_DEBUG, "DEVICEMGR", \
16 "[E-devmgr] ##s creation failed.\n"); \
19 #define STR_XRR_DISPLAY_MODE_PROPERTY "XRR_PROPERTY_DISPLAY_MODE"
24 XRR_OUTPUT_DISPLAY_MODE_NULL, /* null */
25 XRR_OUTPUT_DISPLAY_MODE_WB_CLONE, /* write-back */
26 } XRROutputPropDisplayMode;
28 /* screen conf dialog */
29 static E_Dialog *g_dia = NULL;
31 /* screen configuration info */
34 SC_EXT_OUTPUT sc_output;
35 Utilx_Scrnconf_Dispmode sc_dispmode;
36 Utilx_Scrnconf_Status sc_stat;
41 UTILX_SCRNCONF_DISPMODE_NULL,
42 UTILX_SCRNCONF_STATUS_NULL,
51 Ecore_X_Randr_Mode_Info * mode_info;
54 {SC_EXT_RES_1920X1080, 0.0, NULL},
55 {SC_EXT_RES_1280X720, 0.0, NULL},
56 {SC_EXT_RES_720X480, 0.0, NULL},
57 {SC_EXT_RES_720X576, 0.0, NULL},
60 static char *str_output[3] = {
66 static char *str_dispmode[3] = {
72 static char *str_stat[3] = {
78 static char *str_resolution[5] = {
86 /* Calculates the vertical refresh rate of a mode. */
88 _cal_vrefresh(Ecore_X_Randr_Mode_Info *mode_info)
91 double dots = mode_info->hTotal * mode_info->vTotal;
94 refresh = (mode_info->dotClock + dots/2) / dots;
103 _get_str_output(int output)
109 case SC_EXT_OUTPUT_HDMI:
112 case SC_EXT_OUTPUT_VIRTUAL:
124 _get_str_dispmode(int dispmode)
130 case UTILX_SCRNCONF_DISPMODE_CLONE:
131 str = str_dispmode[1];
133 case UTILX_SCRNCONF_DISPMODE_EXTENDED:
134 str = str_dispmode[2];
137 str = str_dispmode[0];
144 _get_str_stat(int stat)
150 case UTILX_SCRNCONF_STATUS_CONNECT:
153 case UTILX_SCRNCONF_STATUS_ACTIVE:
156 case UTILX_SCRNCONF_STATUS_NULL:
168 _get_str_resolution(int resolution)
174 case SC_EXT_RES_1920X1080:
175 str = str_resolution[1];
177 case SC_EXT_RES_1280X720:
178 str = str_resolution[2];
180 case SC_EXT_RES_720X480:
181 str = str_resolution[3];
183 case SC_EXT_RES_720X576:
184 str = str_resolution[4];
187 str = str_resolution[0];
195 _get_resolution_str (char *res_name)
197 int resolution = SC_EXT_RES_NULL;
199 if (!strcmp (res_name, str_resolution[1]))
200 resolution = SC_EXT_RES_1920X1080;
201 else if (!strcmp (res_name, str_resolution[2]))
202 resolution = SC_EXT_RES_1280X720;
203 else if (!strcmp (res_name, str_resolution[3]))
204 resolution = SC_EXT_RES_720X480;
205 else if (!strcmp (res_name, str_resolution[4]))
206 resolution = SC_EXT_RES_720X576;
208 resolution = SC_EXT_RES_NULL;
216 _debug_possible_crtc (E_Randr_Output_Info *output_info)
218 E_Randr_Crtc_Info *crtc_info = NULL;
219 E_Randr_Output_Info *t_o = NULL;
220 Ecore_X_Randr_Mode_Info *t_m = NULL;
221 Eina_List *t_l, *l_crtc;
223 EINA_LIST_FOREACH (output_info->possible_crtcs, l_crtc, crtc_info)
225 if (crtc_info == NULL)
228 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: possible crtc = %d\n", crtc_info->xid);
230 EINA_LIST_FOREACH (crtc_info->outputs, t_l, t_o)
232 SLOG(LOG_DEBUG, "DEVICEMGR", " output : %s\n", t_o->name);
235 EINA_LIST_FOREACH (crtc_info->possible_outputs, t_l, t_o)
237 SLOG(LOG_DEBUG, "DEVICEMGR", " possible output : %s\n", t_o->name);
240 EINA_LIST_FOREACH (crtc_info->outputs_common_modes, t_l, t_m)
244 SLOG(LOG_DEBUG, "DEVICEMGR", " outputs common modes : %s\n", t_m->name);
247 if (!crtc_info->current_mode)
249 SLOG(LOG_DEBUG, "DEVICEMGR", " no current mode \n");
250 crtc_xid = crtc_info->xid;
251 SLOG(LOG_DEBUG, "DEVICEMGR", " crtc_id : %d\n", crtc_info->xid);
255 SLOG(LOG_DEBUG, "DEVICEMGR", " current set mode : %s\n", crtc_info->current_mode->name);
256 SLOG(LOG_DEBUG, "DEVICEMGR", " crtc_id : %d\n", crtc_info->xid);
262 static E_Randr_Output_Info *
263 _scrnconf_external_get_output_info_from_output_xid (Ecore_X_Randr_Output output_xid)
265 E_Randr_Output_Info *output_info = NULL;
268 EINA_LIST_FOREACH (e_randr_screen_info.rrvd_info.randr_info_12->outputs, iter, output_info)
270 if (output_info == NULL)
273 if (output_info->xid == output_xid)
280 static E_Randr_Output_Info *
281 _scrnconf_external_get_output_info_from_output (int output)
283 E_Randr_Output_Info *output_info = NULL;
286 EINA_LIST_FOREACH (e_randr_screen_info.rrvd_info.randr_info_12->outputs, iter, output_info)
288 if (output_info == NULL)
291 if (!strcmp(output_info->name, _get_str_output(output)))
299 _scrnconf_external_get_output (E_Randr_Output_Info *output_info)
301 int output = SC_EXT_OUTPUT_NULL;
303 if (!strcmp (output_info->name, "HDMI1"))
304 output = SC_EXT_OUTPUT_HDMI;
305 else if (!strcmp (output_info->name, "Virtual1"))
306 output = SC_EXT_OUTPUT_VIRTUAL;
308 output = SC_EXT_OUTPUT_NULL;
314 _scrnconf_external_set_modes (int sc_output, int num_res, int *resolutions)
316 E_Randr_Output_Info *output_info = NULL;
317 Ecore_X_Randr_Mode_Info *mode_info = NULL;
319 int res = SC_EXT_RES_NULL;
320 double refresh = 0.0;
323 output_info = _scrnconf_external_get_output_info_from_output (sc_output);
326 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to find output_info from sc_output\n");
330 EINA_LIST_FOREACH (output_info->monitor->modes, l_mode, mode_info)
332 if (mode_info == NULL)
336 SLOG(LOG_DEBUG, "DEVICEMGR", "%s(%d): mode_info->name, %s, vrefresh, %f\n"
337 , __func__, __LINE__, mode_info->name, _cal_vrefresh(mode_info));
339 res = _get_resolution_str (mode_info->name);
340 if (res == SC_EXT_RES_NULL)
343 for (i = 0; i < num_res; i++)
345 if (sc_ext_mode[i].sc_res == res)
347 refresh = _cal_vrefresh (mode_info);
348 if (refresh > sc_ext_mode[i].refresh)
350 sc_ext_mode[i].refresh = refresh;
351 sc_ext_mode[i].mode_info = mode_info;
357 for (i = 0; i < num_res; i++)
359 resolutions[i] = sc_ext_mode[i].sc_res;
363 for (i = 0; i < num_res; i++)
365 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: res info:: (%d): %s, %f, %p\n"
366 , i, _get_str_resolution(sc_ext_mode[i].sc_res), sc_ext_mode[i].refresh, sc_ext_mode[i].mode_info);
375 _scrnconf_external_get_setting_info (int output, int resolution, Ecore_X_Randr_Output *output_xid,
376 Ecore_X_Randr_Crtc *crtc_xid, Ecore_X_Randr_Mode *mode_xid, int *output_w, int *output_h)
378 E_Randr_Output_Info *output_info = NULL;
379 E_Randr_Crtc_Info *crtc_info = NULL;
380 Ecore_X_Randr_Mode_Info *mode_info = NULL;
382 Eina_Bool found_output = EINA_FALSE;
386 output_info = _scrnconf_external_get_output_info_from_output (output);
387 if (output_info == NULL)
389 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: fail to get output_info from sc_output\n");
393 output_xid[0] = output_info->xid;
395 num_res = sizeof (sc_ext_mode) / sizeof (sc_ext_mode[0]);
398 for (i = 0; i < num_res; i++)
400 if (sc_ext_mode[i].sc_res == resolution)
402 mode_info = sc_ext_mode[i].mode_info;
407 if (mode_info == NULL)
409 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: fail to get mode_info from sc_output\n");
413 *output_w = mode_info->width;
414 *output_h = mode_info->height;
415 *mode_xid = mode_info->xid;
416 found_output = EINA_TRUE;
419 _debug_possible_crtc (output_info);
422 EINA_LIST_FOREACH (output_info->possible_crtcs, l_crtc, crtc_info)
424 if (crtc_info == NULL)
427 if (!crtc_info->current_mode)
429 *crtc_xid = crtc_info->xid;
433 if (output_info->crtc && (!*crtc_xid))
434 *crtc_xid = output_info->crtc->xid;
444 _scrnconf_external_set_extended (int output, int resolution)
446 E_Randr_Output_Info *output_info = NULL;
448 int lvds_x = 0, lvds_y = 0, lvds_w = 0, lvds_h = 0;
449 int output_x = 0, output_y = 0, output_w = 0, output_h = 0;
450 int resize_w = 0, resize_h = 0;
451 Ecore_X_Randr_Crtc crtc_xid = 0;
452 Ecore_X_Randr_Output output_xid[1] = {0};
453 Ecore_X_Randr_Mode mode_xid = 0;
455 /* get lvds information */
456 EINA_LIST_FOREACH (e_randr_screen_info.rrvd_info.randr_info_12->outputs, l_output, output_info)
459 if (output_info == NULL)
462 if (!strcmp (output_info->name, "LVDS1"))
464 lvds_x = output_info->crtc->geometry.x;
465 lvds_y = output_info->crtc->geometry.y;
466 lvds_w = output_info->crtc->current_mode->width;
467 lvds_h = output_info->crtc->current_mode->height;
472 if (!_scrnconf_external_get_setting_info (output, resolution, output_xid, &crtc_xid, &mode_xid, &output_w, &output_h))
478 /* set the output is right-of lvds output */
481 resize_w = lvds_w + output_w;
483 if (lvds_h > output_h)
490 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: set screen resize (%d,%d)\n", resize_w, resize_h);
491 if (!ecore_x_randr_screen_current_size_set (e_randr_screen_info.root, resize_w, resize_h, 0, 0))
493 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: fail to resize the screen\n");
497 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: set crtc_id, %d output_id, %d mode_id, %d)!\n", crtc_xid, output_xid[0], mode_xid);
498 if (!ecore_x_randr_crtc_settings_set (e_randr_screen_info.root, crtc_xid, output_xid, 1, output_x,
499 output_y, mode_xid, ECORE_X_RANDR_ORIENTATION_ROT_0))
501 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: fail to set x=%d, y=%d, w=%d, h=%d mode_id=%d, crtc_id=%d\n",
502 output_x, output_y, output_w, output_h, mode_xid, crtc_xid);
506 e_mod_scrnconf_container_bg_canvas_visible_set(EINA_TRUE);
513 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: %s fail to set the extended mode\n", _get_str_output(output));
520 _scrnconf_external_set_clone (int output, int resolution)
522 E_Randr_Output_Info *output_info = NULL;
524 int output_w = 0, output_h = 0;
525 int lvds_x = 0, lvds_y = 0, lvds_w = 0, lvds_h = 0;
526 int resize_w = 0, resize_h = 0;
527 Ecore_X_Randr_Crtc crtc_xid = 0;
528 Ecore_X_Randr_Output output_xid[1] = {0};
529 Ecore_X_Randr_Mode mode_xid = 0;
530 Ecore_X_Atom dispmode;
533 /* get lvds information */
534 EINA_LIST_FOREACH (e_randr_screen_info.rrvd_info.randr_info_12->outputs, l_output, output_info)
537 if (output_info == NULL)
540 if (!strcmp (output_info->name, "LVDS1"))
542 lvds_x = output_info->crtc->geometry.x;
543 lvds_y = output_info->crtc->geometry.y;
544 lvds_w = output_info->crtc->current_mode->width;
545 lvds_h = output_info->crtc->current_mode->height;
553 if (!_scrnconf_external_get_setting_info (output, resolution, output_xid, &crtc_xid, &mode_xid, &output_w, &output_h))
558 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: set screen resize (%d,%d)\n", resize_w, resize_h);
559 if (!ecore_x_randr_screen_current_size_set (e_randr_screen_info.root, resize_w, resize_h, 0, 0))
561 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: fail to resize the screen\n");
565 _MAKE_ATOM (dispmode, STR_XRR_DISPLAY_MODE_PROPERTY);
567 value[0] = XRR_OUTPUT_DISPLAY_MODE_WB_CLONE;
570 /* no ecore x API for XRRChangeOutputProperty */
571 XRRChangeOutputProperty (ecore_x_display_get (), output_xid[0], dispmode, XA_INTEGER, 32,
572 PropModeReplace, (unsigned char *)&value, 2);
574 e_mod_scrnconf_container_bg_canvas_visible_set(EINA_FALSE);
583 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr]: %s fail to set the clone mode\n", _get_str_output(output));
590 _dialog_extended_btn_cb (void *data, E_Dialog *g_dia)
592 E_Randr_Output_Info *output_info = (E_Randr_Output_Info *)data;
593 int sc_output = SC_EXT_OUTPUT_NULL;
594 int sc_res = SC_EXT_RES_NULL;
596 int *resolutions = NULL;
598 sc_output = _scrnconf_external_get_output (output_info);
599 if (sc_output == SC_EXT_OUTPUT_NULL)
601 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to find sc_output from output_info\n");
605 num_res = sizeof (sc_ext_mode) / sizeof (sc_ext_mode[0]);
607 resolutions = calloc (num_res, sizeof (int));
610 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to allocate resolutions\n");
614 if (!_scrnconf_external_set_modes (sc_output, num_res, resolutions))
616 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to set modes\n");
620 sc_res = resolutions[0];
622 if (!_scrnconf_external_set_extended (sc_output, sc_res))
624 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to set modes\n");
628 /* set display mode */
629 sc_ext.sc_dispmode = UTILX_SCRNCONF_DISPMODE_EXTENDED;
631 e_mod_scrnconf_external_send_current_status ();
637 e_mod_scrnconf_external_dialog_free ();
645 e_mod_scrnconf_external_dialog_free ();
649 _dialog_clone_btn_cb (void *data, E_Dialog *g_dia)
651 E_Randr_Output_Info *output_info = (E_Randr_Output_Info *)data;
652 int sc_output = SC_EXT_OUTPUT_NULL;
653 int sc_res = SC_EXT_RES_NULL;
655 int *resolutions = NULL;
657 sc_output = _scrnconf_external_get_output (output_info);
658 if (sc_output == SC_EXT_OUTPUT_NULL)
660 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to find sc_output from output_info\n");
664 num_res = sizeof (sc_ext_mode) / sizeof (sc_ext_mode[0]);
666 resolutions = calloc (num_res, sizeof (int));
669 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to allocate resolutions\n");
673 if (!_scrnconf_external_set_modes (sc_output, num_res, resolutions))
675 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to set modes\n");
679 sc_res = resolutions[0];
681 if (!_scrnconf_external_set_clone (sc_output, sc_res))
683 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to set clone\n");
687 /* set display mode */
688 sc_ext.sc_dispmode = UTILX_SCRNCONF_DISPMODE_EXTENDED;
690 e_mod_scrnconf_external_send_current_status ();
696 e_mod_scrnconf_external_dialog_free ();
704 e_mod_scrnconf_external_dialog_free ();
708 _dialog_cancle_btn_cb (void *data, E_Dialog *g_dia)
711 e_mod_scrnconf_external_dialog_free ();
715 e_mod_scrnconf_external_init ()
717 /* init scrn conf get property */
718 scrnconf_ext_update_get_perperty(ecore_x_display_get (), "null", "null", "null", "null");
722 e_mod_scrnconf_external_deinit ()
727 e_mod_scrnconf_external_dialog_new (int output)
731 E_Randr_Output_Info *output_info = NULL;
733 if (output == SC_EXT_OUTPUT_NULL)
735 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : Unknown output is not supported \n");
739 output_info = _scrnconf_external_get_output_info_from_output (output);
742 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to get output from xid\n");
746 /* set to be null, if dialog already exists */
748 e_mod_scrnconf_external_dialog_free ();
750 man = e_manager_current_get ();
751 con = e_container_current_get (man);
753 if (output == SC_EXT_OUTPUT_HDMI)
755 g_dia = e_dialog_new (con, "E", "hdmi mode");
756 e_dialog_title_set (g_dia, "\nHDMI Connected !!\n");
757 e_dialog_text_set (g_dia, "<hilight>HDMI Connected<hilight><br>Select the screen configuration mode<br>");
759 else if (output == SC_EXT_OUTPUT_VIRTUAL)
761 g_dia = e_dialog_new (con, "E", "virtual mode");
762 e_dialog_title_set (g_dia, "\nVirtual Connected !!\n");
763 e_dialog_text_set (g_dia, "<hilight>Virtual Connected<hilight><br>Select the screen configuration mode<br>");
766 e_dialog_button_add (g_dia, "CLONE", NULL, _dialog_clone_btn_cb, (void *)output_info);
767 e_dialog_button_add (g_dia, "EXTENDED", NULL, _dialog_extended_btn_cb, (void *)output_info);
768 e_dialog_button_add (g_dia, "CANCLE", NULL, _dialog_cancle_btn_cb, (void *)output_info);
770 e_dialog_resizable_set (g_dia, 1);
771 e_win_centered_set (g_dia->win, 1);
772 e_dialog_show (g_dia);
778 e_mod_scrnconf_external_dialog_free ()
782 e_util_defer_object_del (E_OBJECT (g_dia));
790 e_mod_scrnconf_external_get_output_from_xid (Ecore_X_Randr_Output output_xid)
792 E_Randr_Output_Info *output_info = NULL;
793 int output = SC_EXT_OUTPUT_NULL;
795 output_info = _scrnconf_external_get_output_info_from_output_xid (output_xid);
798 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to get output from xid\n");
799 return SC_EXT_OUTPUT_NULL;
802 output = _scrnconf_external_get_output (output_info);
803 if (output == SC_EXT_OUTPUT_NULL)
805 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : Unknown output is not supported \n");
806 return SC_EXT_OUTPUT_NULL;
813 e_mod_scrnconf_external_get_default_res (int sc_output, int preferred_w, int preferred_h)
815 int sc_res = SC_EXT_RES_NULL;
817 int *resolutions = NULL;
818 Ecore_X_Randr_Mode_Info * mode_info = NULL;
821 if (sc_output == SC_EXT_OUTPUT_NULL)
823 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : sc_output is unknown\n");
827 num_res = sizeof (sc_ext_mode) / sizeof (sc_ext_mode[0]);
829 resolutions = calloc (num_res, sizeof (int));
832 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to allocate resolutions\n");
836 if (!_scrnconf_external_set_modes (sc_output, num_res, resolutions))
838 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to set modes\n");
842 /* find the preferred resolution of the virtual output */
843 if (preferred_w > 0 && preferred_h > 0)
845 for (i = 0; i < num_res; i++)
847 mode_info = sc_ext_mode[i].mode_info;
852 if (sc_ext_mode[i].mode_info->width == preferred_w &&
853 sc_ext_mode[i].mode_info->height == preferred_h)
855 sc_res = sc_ext_mode[i].sc_res;
862 for (i = 0; i < num_res; i++)
864 mode_info = sc_ext_mode[i].mode_info;
869 sc_res = sc_ext_mode[i].sc_res;
876 if (sc_res == SC_EXT_RES_NULL)
877 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : default resolution is NULL\n");
880 if (sc_output == SC_EXT_OUTPUT_VIRTUAL)
881 sc_res = SC_EXT_RES_1280X720;
889 return SC_EXT_RES_NULL;
893 e_mod_scrnconf_external_get_output (void)
895 return sc_ext.sc_output;
899 e_mod_scrnconf_external_set_output (int sc_output)
901 sc_ext.sc_output = sc_output;
907 e_mod_scrnconf_external_get_res (void)
909 return sc_ext.sc_res;
913 e_mod_scrnconf_external_set_res (int sc_res)
915 sc_ext.sc_res = sc_res;
921 e_mod_scrnconf_external_get_status (void)
923 return sc_ext.sc_stat;
927 e_mod_scrnconf_external_set_status (int sc_stat)
929 sc_ext.sc_stat = sc_stat;
935 e_mod_scrnconf_external_set_dispmode (int sc_output, int sc_dispmode, int sc_res)
937 /* set display mode */
940 case UTILX_SCRNCONF_DISPMODE_CLONE:
941 if (!_scrnconf_external_set_clone (sc_output, sc_res))
943 sc_ext.sc_dispmode = UTILX_SCRNCONF_DISPMODE_CLONE;
945 case UTILX_SCRNCONF_DISPMODE_EXTENDED:
946 if (!_scrnconf_external_set_extended (sc_output, sc_res))
948 sc_ext.sc_dispmode = UTILX_SCRNCONF_DISPMODE_EXTENDED;
957 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to set display mode (%d)\n", sc_dispmode);
962 e_mod_scrnconf_external_get_dispmode (void)
964 return sc_ext.sc_dispmode;
968 e_mod_scrnconf_external_send_current_status (void)
970 char * str_output = _get_str_output (sc_ext.sc_output);
971 char * str_stat = _get_str_stat (sc_ext.sc_stat);
972 char * str_res = _get_str_resolution (sc_ext.sc_res);
973 char * str_dispmode = _get_str_dispmode (sc_ext.sc_dispmode);
975 if (!scrnconf_ext_update_get_perperty(ecore_x_display_get (), str_output, str_stat, str_res, str_dispmode))
977 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to update get property \n");
981 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : SEND CLIENT MESSAGES..(%s,%s,%s,%s) \n", str_output, str_stat, str_res, str_dispmode);
983 if (!scrnconf_ext_send_status (ecore_x_display_get (), sc_ext.sc_stat, sc_ext.sc_dispmode))
985 SLOG(LOG_DEBUG, "DEVICEMGR", "[DeviceMgr] : fail to send current status \n");
993 e_mod_scrnconf_external_reset (int sc_output)
998 if (sc_output != sc_ext.sc_output ||
999 sc_ext.sc_output == SC_EXT_OUTPUT_NULL)
1002 /* reset scrn conf of a external monitor */
1003 sc_ext.sc_output = SC_EXT_OUTPUT_NULL;
1004 sc_ext.sc_dispmode = UTILX_SCRNCONF_DISPMODE_NULL;
1005 sc_ext.sc_stat = UTILX_SCRNCONF_STATUS_NULL;
1006 sc_ext.sc_res = SC_EXT_RES_NULL;
1008 num_res = sizeof (sc_ext_mode) / sizeof (sc_ext_mode[0]);
1010 /* reset mode list of a external monitor */
1011 for (i = 0; i < num_res; i++)
1013 sc_ext_mode[i].refresh = 0.0;
1014 sc_ext_mode[i].mode_info = NULL;
1020 e_mod_scrnconf_container_bg_canvas_visible_set(Eina_Bool visible)
1022 E_Manager *man = NULL;
1023 E_Container *con = NULL;
1026 EINA_LIST_FOREACH(e_manager_list(), m, man)
1028 EINA_LIST_FOREACH(man->containers, c, con)
1031 ecore_evas_show(con->bg_ecore_evas);
1033 ecore_evas_hide(con->bg_ecore_evas);