upload tizen1.0 source
[framework/uifw/e17.git] / src / bin / e_randr.h
index 7f04d02..d015823 100644 (file)
@@ -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