2013-02-19 02:54:39 -08:00
|
|
|
#ifdef E_TYPEDEFS
|
|
|
|
|
|
|
|
typedef struct _E_Randr_Output_Config E_Randr_Output_Config;
|
|
|
|
typedef struct _E_Randr_Crtc_Config E_Randr_Crtc_Config;
|
|
|
|
typedef struct _E_Randr_Config E_Randr_Config;
|
|
|
|
|
|
|
|
#else
|
|
|
|
# ifndef E_RANDR_H
|
|
|
|
# define E_RANDR_H
|
|
|
|
|
2013-02-19 02:54:49 -08:00
|
|
|
#define E_RANDR_VERSION_1_1 ((1 << 16) | 1)
|
|
|
|
#define E_RANDR_VERSION_1_2 ((1 << 16) | 2)
|
|
|
|
#define E_RANDR_VERSION_1_3 ((1 << 16) | 3)
|
|
|
|
#define E_RANDR_VERSION_1_4 ((1 << 16) | 4)
|
|
|
|
|
2013-09-26 04:12:45 -07:00
|
|
|
#define E_RANDR_CONFIG_FILE_EPOCH 2
|
2013-05-24 05:04:58 -07:00
|
|
|
#define E_RANDR_CONFIG_FILE_GENERATION 3
|
2013-02-19 02:54:39 -08:00
|
|
|
#define E_RANDR_CONFIG_FILE_VERSION \
|
|
|
|
((E_RANDR_CONFIG_FILE_EPOCH * 1000000) + E_RANDR_CONFIG_FILE_GENERATION)
|
|
|
|
|
|
|
|
struct _E_Randr_Output_Config
|
|
|
|
{
|
|
|
|
unsigned int xid; // ecore_x_randr output id (xid)
|
|
|
|
unsigned int crtc; // ecore_x_randr crtc id (xid)
|
|
|
|
unsigned int policy; // value of the ecore_x_randr_output_policy
|
|
|
|
unsigned char primary; // flag to indicate if primary output
|
|
|
|
unsigned long edid_count; // monitor's edid length
|
|
|
|
unsigned char *edid; // monitor's edid
|
2013-02-19 02:59:28 -08:00
|
|
|
unsigned int *clones; // array of clones (each element of type ecore_x_randr output id (xid)
|
|
|
|
unsigned long clone_count; // number of clones
|
2013-02-19 03:00:53 -08:00
|
|
|
unsigned char connected; // connection status 0 == connected, 1 == disconnected
|
2013-02-19 03:01:23 -08:00
|
|
|
unsigned char exists; // is this output present in X ?
|
2013-02-19 02:54:39 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
struct _E_Randr_Crtc_Config
|
|
|
|
{
|
|
|
|
unsigned int xid; // ecore_x_randr crtc id (xid)
|
|
|
|
int x, y, width, height; // geometry
|
|
|
|
unsigned int orient; // value of the ecore_x_randr_orientation
|
|
|
|
unsigned int mode; // ecore_x_randr mode id (xid)
|
2013-02-19 03:01:23 -08:00
|
|
|
unsigned char exists; // is this crtc present in X ?
|
2013-02-19 02:54:39 -08:00
|
|
|
Eina_List *outputs; // list of outputs for this crtc
|
|
|
|
};
|
|
|
|
|
|
|
|
struct _E_Randr_Config
|
|
|
|
{
|
|
|
|
int version; // INTERNAL CONFIG VERSION
|
|
|
|
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
int width, height; // geometry
|
|
|
|
} screen;
|
|
|
|
|
|
|
|
Eina_List *crtcs;
|
2013-02-19 03:00:53 -08:00
|
|
|
|
2013-02-19 03:01:02 -08:00
|
|
|
int poll_interval;
|
2013-02-19 03:00:53 -08:00
|
|
|
unsigned char restore;
|
2013-05-18 08:19:10 -07:00
|
|
|
unsigned long config_timestamp;
|
2013-05-24 05:04:58 -07:00
|
|
|
int primary;
|
2013-02-19 02:54:39 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
EINTERN Eina_Bool e_randr_init(void);
|
|
|
|
EINTERN int e_randr_shutdown(void);
|
|
|
|
|
|
|
|
EAPI Eina_Bool e_randr_config_save(void);
|
|
|
|
|
|
|
|
extern EAPI E_Randr_Config *e_randr_cfg;
|
|
|
|
|
|
|
|
# endif
|
|
|
|
#endif
|