X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fbin%2Fe_randr.h;h=d0158230ea837d7b710fd6ba286e5b33a88573db;hb=ac8fa492451a1268eec649ea98e67184842f11a0;hp=7f04d028308f60235dfca631d55368ca5757ea6b;hpb=71de741809b2c23779657ecda17a4ef900af62e1;p=framework%2Fuifw%2Fe17.git diff --git a/src/bin/e_randr.h b/src/bin/e_randr.h index 7f04d02..d015823 100644 --- a/src/bin/e_randr.h +++ b/src/bin/e_randr.h @@ -2,6 +2,7 @@ typedef struct _E_Randr_Crtc_Info E_Randr_Crtc_Info; typedef struct _E_Randr_Edid_Hash E_Randr_Edid_Hash; +typedef struct _E_Randr_Monitor_Info E_Randr_Monitor_Info; typedef struct _E_Randr_Output_Info E_Randr_Output_Info; typedef struct _E_Randr_Screen_Info_11 E_Randr_Screen_Info_11; typedef struct _E_Randr_Screen_Info_12 E_Randr_Screen_Info_12; @@ -14,7 +15,20 @@ typedef struct _E_Randr_Serialized_Setup_11 E_Randr_Serialized_Setup_11; typedef struct _E_Randr_Serialized_Setup_12 E_Randr_Serialized_Setup_12; typedef struct _E_Randr_Serialized_Setup E_Randr_Serialized_Setup; -EAPI void e_randr_store_configuration(E_Randr_Screen_Info *screen_info); +typedef enum _E_Randr_Configuration_Store_Modifier +{ + E_RANDR_CONFIGURATION_STORE_POLICIES = (1 << 0), + E_RANDR_CONFIGURATION_STORE_RESOLUTIONS = (1 << 1), + E_RANDR_CONFIGURATION_STORE_ARRANGEMENT = (1 << 2), + E_RANDR_CONFIGURATION_STORE_ORIENTATIONS = (1 << 3), + E_RANDR_CONFIGURATION_STORE_ALL = ( + E_RANDR_CONFIGURATION_STORE_POLICIES + | E_RANDR_CONFIGURATION_STORE_RESOLUTIONS + | E_RANDR_CONFIGURATION_STORE_ARRANGEMENT + | E_RANDR_CONFIGURATION_STORE_ORIENTATIONS) +} E_Randr_Configuration_Store_Modifier; + +EAPI void e_randr_store_configuration(E_Randr_Configuration_Store_Modifier modifier); #else #ifndef E_RANDR_H @@ -42,6 +56,18 @@ struct _E_Randr_Edid_Hash int hash; }; +struct _E_Randr_Monitor_Info +{ + Eina_List *modes; + Eina_List *preferred_modes; + Ecore_X_Randr_Screen_Size size_mm; + unsigned char *edid; + unsigned long edid_length; + E_Randr_Edid_Hash edid_hash; + int max_backlight; + double backlight_level; +}; + struct _E_Randr_Output_Info { Ecore_X_ID xid; @@ -55,21 +81,13 @@ struct _E_Randr_Output_Info Ecore_X_Randr_Connector_Type connector_type; Ecore_X_Randr_Connection_Status connection_status; Ecore_X_Randr_Output_Policy policy; + Eina_List *possible_crtcs; + Eina_List *compatibility_list; + Ecore_X_Render_Subpixel_Order subpixel_order; /* * Attached Monitor specific: */ - Eina_List *modes; - Eina_List *preferred_modes; - Eina_List *clones; - Eina_List *possible_crtcs; - Ecore_X_Randr_Screen_Size size_mm; - unsigned char *edid; - unsigned long edid_length; - E_Randr_Edid_Hash edid_hash; - int max_backlight; - double backlight_level; - Ecore_X_Render_Subpixel_Order subpixel_order; - Eina_List *compatible_outputs; + E_Randr_Monitor_Info *monitor; }; struct _E_Randr_Screen_Info_11 @@ -115,41 +133,35 @@ struct _E_Randr_Screen_Info struct _E_Randr_Serialized_Output_Policy { char *name; - int name_length; Ecore_X_Randr_Output_Policy policy; }; struct _E_Randr_Serialized_Output { char *name; - int name_length; - E_Randr_Edid_Hash edid_hash; double backlight_level; }; struct _E_Randr_Serialized_Crtc { + int index; //List of E_Randr_Serialized_Output objects that were used on the same output - Eina_List *serialized_outputs; - //the serialized mode_info misses its xid value - Ecore_X_Randr_Mode_Info mode_info; + Eina_List *outputs; Evas_Coord_Point pos; - //List of all possible outputs' names - //e.g. "LVDS", "CRT-0", "VGA" - Eina_List *possible_outputs_names; Ecore_X_Randr_Orientation orientation; + //the serialized mode_info + Ecore_X_Randr_Mode_Info *mode_info; }; struct _E_Randr_Serialized_Setup_12 { double timestamp; //List of E_Randr_Serialized_Crtc objects - Eina_List *serialized_crtcs; + Eina_List *crtcs; /* - * List of E_Randr_Edid_Hash elements of monitors, - * that were enabled, when the setup was stored + * List of E_Randr_Edid_Hash elements of all connected monitors */ - Eina_List *serialized_edid_hashes; + Eina_List *edid_hashes; }; struct _E_Randr_Serialized_Setup_11 @@ -165,13 +177,18 @@ struct _E_Randr_Serialized_Setup //List of E_Randr_Serialized_Setup_12 objects Eina_List *serialized_setups_12; //List of E_Randr_Serialized_Output_Policy objects - Eina_List *serialized_outputs_policies; + Eina_List *outputs_policies; }; EINTERN Eina_Bool e_randr_init(void); +EAPI Eina_Bool e_randr_screen_info_refresh(void); EINTERN int e_randr_shutdown(void); +EINTERN void e_randr_serialized_setup_free(E_Randr_Serialized_Setup *ss); +EINTERN void e_randr_11_serialized_setup_free(E_Randr_Serialized_Setup_11 *ss_11); +EINTERN void e_randr_12_serialized_setup_free(E_Randr_Serialized_Setup_12 *ss_12); +EINTERN void e_randr_12_serialized_output_policy_free(E_Randr_Serialized_Output_Policy *policy); -EAPI extern E_Randr_Screen_Info *e_randr_screen_info; +EAPI extern E_Randr_Screen_Info e_randr_screen_info; #endif #endif