2010-08-16 07:02:21 -07:00
|
|
|
#ifdef E_TYPEDEFS
|
|
|
|
|
|
|
|
typedef struct _E_Randr_Crtc_Info E_Randr_Crtc_Info;
|
2011-11-05 23:41:39 -07:00
|
|
|
typedef struct _E_Randr_Edid_Hash E_Randr_Edid_Hash;
|
2012-02-18 08:49:07 -08:00
|
|
|
typedef struct _E_Randr_Monitor_Info E_Randr_Monitor_Info;
|
2010-08-16 07:02:21 -07:00
|
|
|
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;
|
|
|
|
typedef union _E_Randr_Screen_RRVD_Info E_Randr_Screen_RRVD_Info;
|
|
|
|
typedef struct _E_Randr_Screen_Info E_Randr_Screen_Info;
|
2011-11-05 23:41:39 -07:00
|
|
|
typedef struct _E_Randr_Serialized_Output_Policy E_Randr_Serialized_Output_Policy;
|
|
|
|
typedef struct _E_Randr_Serialized_Output E_Randr_Serialized_Output;
|
|
|
|
typedef struct _E_Randr_Serialized_Crtc E_Randr_Serialized_Crtc;
|
|
|
|
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;
|
|
|
|
|
2011-12-14 09:37:33 -08:00
|
|
|
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;
|
|
|
|
|
2012-02-18 08:49:07 -08:00
|
|
|
EAPI void e_randr_store_configuration(E_Randr_Configuration_Store_Modifier modifier);
|
2010-08-16 07:02:21 -07:00
|
|
|
|
|
|
|
#else
|
2010-08-14 03:21:03 -07:00
|
|
|
#ifndef E_RANDR_H
|
|
|
|
#define E_RANDR_H
|
|
|
|
|
2011-11-05 23:41:39 -07:00
|
|
|
struct _E_Randr_Crtc_Info
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
|
|
|
Ecore_X_ID xid;
|
|
|
|
Eina_Rectangle geometry;
|
|
|
|
Eina_Rectangle panning;
|
|
|
|
Eina_Rectangle tracking;
|
|
|
|
Eina_Rectangle border;
|
|
|
|
Ecore_X_Randr_Orientation current_orientation;
|
|
|
|
Ecore_X_Randr_Orientation orientations;
|
|
|
|
Ecore_X_Randr_Crtc_Gamma **gamma_ramps;
|
|
|
|
int gamma_ramp_size;
|
|
|
|
Eina_List *outputs;
|
|
|
|
Eina_List *possible_outputs;
|
2011-03-17 16:02:02 -07:00
|
|
|
Eina_List *outputs_common_modes;
|
2010-08-16 05:47:44 -07:00
|
|
|
Ecore_X_Randr_Mode_Info *current_mode;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
2011-11-05 23:41:39 -07:00
|
|
|
struct _E_Randr_Edid_Hash
|
|
|
|
{
|
|
|
|
int hash;
|
|
|
|
};
|
|
|
|
|
2012-02-18 08:49:07 -08:00
|
|
|
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;
|
|
|
|
};
|
|
|
|
|
2011-11-05 23:41:39 -07:00
|
|
|
struct _E_Randr_Output_Info
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
|
|
|
Ecore_X_ID xid;
|
|
|
|
char *name;
|
|
|
|
int name_length;
|
|
|
|
E_Randr_Crtc_Info *crtc;
|
|
|
|
Eina_List *wired_clones;
|
|
|
|
Ecore_X_Randr_Signal_Format signalformats;
|
|
|
|
Ecore_X_Randr_Signal_Format signalformat;
|
|
|
|
int connector_number;
|
|
|
|
Ecore_X_Randr_Connector_Type connector_type;
|
|
|
|
Ecore_X_Randr_Connection_Status connection_status;
|
2011-11-05 23:41:39 -07:00
|
|
|
Ecore_X_Randr_Output_Policy policy;
|
2012-02-18 08:49:07 -08:00
|
|
|
Eina_List *possible_crtcs;
|
|
|
|
Eina_List *compatibility_list;
|
|
|
|
Ecore_X_Render_Subpixel_Order subpixel_order;
|
2010-08-16 05:47:44 -07:00
|
|
|
/*
|
|
|
|
* Attached Monitor specific:
|
|
|
|
*/
|
2012-02-18 08:49:07 -08:00
|
|
|
E_Randr_Monitor_Info *monitor;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
2010-08-21 20:49:34 -07:00
|
|
|
struct _E_Randr_Screen_Info_11
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
|
|
|
//List of Ecore_X_Randr_Screen_Size_MM*
|
|
|
|
Eina_List *sizes;
|
|
|
|
int csize_index;
|
|
|
|
Ecore_X_Randr_Orientation corientation;
|
|
|
|
Ecore_X_Randr_Orientation orientations;
|
|
|
|
//List of Ecore_X_Randr_Refresh_Rate*
|
|
|
|
Eina_List *rates;
|
|
|
|
Ecore_X_Randr_Refresh_Rate current_rate;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
2011-11-05 23:41:39 -07:00
|
|
|
struct _E_Randr_Screen_Info_12
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
|
|
|
Ecore_X_Randr_Screen_Size min_size;
|
|
|
|
Ecore_X_Randr_Screen_Size max_size;
|
|
|
|
Ecore_X_Randr_Screen_Size current_size;
|
|
|
|
Eina_List *modes;
|
|
|
|
Eina_List *crtcs;
|
|
|
|
Eina_List *outputs;
|
|
|
|
E_Randr_Output_Info *primary_output;
|
|
|
|
Ecore_X_Randr_Relative_Alignment alignment;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
|
|
|
//RRVD == RandR(R) Version Depended
|
2011-11-05 23:41:39 -07:00
|
|
|
union _E_Randr_Screen_RRVD_Info
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
|
|
|
E_Randr_Screen_Info_11 *randr_info_11;
|
|
|
|
E_Randr_Screen_Info_12 *randr_info_12;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
2011-11-05 23:41:39 -07:00
|
|
|
struct _E_Randr_Screen_Info
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
|
|
|
Ecore_X_Window root;
|
|
|
|
int randr_version;
|
|
|
|
E_Randr_Screen_RRVD_Info rrvd_info;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
|
|
|
//Following stuff is just for configuration purposes
|
2010-08-21 20:49:34 -07:00
|
|
|
|
2011-11-05 23:41:39 -07:00
|
|
|
struct _E_Randr_Serialized_Output_Policy
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
2011-11-05 23:41:39 -07:00
|
|
|
char *name;
|
|
|
|
Ecore_X_Randr_Output_Policy policy;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
2011-11-05 23:41:39 -07:00
|
|
|
struct _E_Randr_Serialized_Output
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
2011-11-05 23:41:39 -07:00
|
|
|
char *name;
|
|
|
|
double backlight_level;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
2011-11-05 23:41:39 -07:00
|
|
|
struct _E_Randr_Serialized_Crtc
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
2012-02-18 08:49:07 -08:00
|
|
|
int index;
|
2011-11-05 23:41:39 -07:00
|
|
|
//List of E_Randr_Serialized_Output objects that were used on the same output
|
2012-02-18 08:49:07 -08:00
|
|
|
Eina_List *outputs;
|
2011-11-05 23:41:39 -07:00
|
|
|
Evas_Coord_Point pos;
|
2010-08-16 05:47:44 -07:00
|
|
|
Ecore_X_Randr_Orientation orientation;
|
2012-02-18 08:49:07 -08:00
|
|
|
//the serialized mode_info
|
|
|
|
Ecore_X_Randr_Mode_Info mode_info;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
2011-11-05 23:41:39 -07:00
|
|
|
struct _E_Randr_Serialized_Setup_12
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
2011-11-05 23:41:39 -07:00
|
|
|
double timestamp;
|
|
|
|
//List of E_Randr_Serialized_Crtc objects
|
2012-02-18 08:49:07 -08:00
|
|
|
Eina_List *crtcs;
|
2011-11-05 23:41:39 -07:00
|
|
|
/*
|
2012-02-18 08:49:07 -08:00
|
|
|
* List of E_Randr_Edid_Hash elements of all connected monitors
|
2011-11-05 23:41:39 -07:00
|
|
|
*/
|
2012-02-18 08:49:07 -08:00
|
|
|
Eina_List *edid_hashes;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
2011-11-05 23:41:39 -07:00
|
|
|
struct _E_Randr_Serialized_Setup_11
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
2011-11-05 23:41:39 -07:00
|
|
|
Ecore_X_Randr_Screen_Size_MM size;
|
|
|
|
Ecore_X_Randr_Refresh_Rate refresh_rate;
|
|
|
|
Ecore_X_Randr_Orientation orientation;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
2011-11-05 23:41:39 -07:00
|
|
|
struct _E_Randr_Serialized_Setup
|
2010-08-16 05:47:44 -07:00
|
|
|
{
|
2011-11-05 23:41:39 -07:00
|
|
|
E_Randr_Serialized_Setup_11 *serialized_setup_11;
|
|
|
|
//List of E_Randr_Serialized_Setup_12 objects
|
|
|
|
Eina_List *serialized_setups_12;
|
|
|
|
//List of E_Randr_Serialized_Output_Policy objects
|
2012-02-18 08:49:07 -08:00
|
|
|
Eina_List *outputs_policies;
|
2010-08-16 07:02:21 -07:00
|
|
|
};
|
2010-08-14 03:21:03 -07:00
|
|
|
|
2010-11-22 07:21:32 -08:00
|
|
|
EINTERN Eina_Bool e_randr_init(void);
|
2012-02-18 08:49:07 -08:00
|
|
|
EAPI void e_randr_screen_info_refresh(void);
|
2010-11-22 07:21:32 -08:00
|
|
|
EINTERN int e_randr_shutdown(void);
|
2012-02-18 08:49:07 -08:00
|
|
|
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);
|
2010-08-14 03:21:03 -07:00
|
|
|
|
2012-02-18 08:49:07 -08:00
|
|
|
EAPI extern E_Randr_Screen_Info e_randr_screen_info;
|
2010-08-14 03:21:03 -07:00
|
|
|
|
|
|
|
#endif
|
2010-08-16 07:02:21 -07:00
|
|
|
#endif
|