E_OUTPUT_INTERCEPT_HOOK_LAST
} E_Output_Intercept_Hook_Point;
+struct _E_Output
+{
+ int index;
+ char *id; // string id which is "name/edid";
+ struct {
+ char *screen; // name of the screen device attached
+ char *name; // name of the output itself
+ char *edid; // full edid data
+ Eina_Bool connected : 1; // some screen is plugged in or not
+ Eina_List *modes; // available screen modes here
+ struct {
+ int w, h; // physical width and height in mm
+ } size;
+ } info;
+ struct {
+ Eina_Rectangle geom; // the geometry that is set (as a result)
+ E_Output_Mode mode; // screen res/refresh to use
+ int rotation; // 0, 90, 180, 270
+ int priority; // larger num == more important
+ Eina_Bool enabled : 1; // should this monitor be enabled?
+ } config;
+
+ E_Zone *zone;
+
+ tdm_output *toutput;
+ tdm_output_type toutput_type;
+
+ E_OUTPUT_DPMS dpms;
+ E_OUTPUT_DPMS set_dpms;
+ Eina_Bool dpms_async;
+
+ struct {
+ int min_w, min_h;
+ int max_w, max_h;
+ int preferred_align;
+ } cursor_available;
+
+ Eina_Bool zoom_set;
+ struct
+ {
+ double zoomx;
+ double zoomy;
+ int init_cx;
+ int init_cy;
+ int adjusted_cx;
+ int adjusted_cy;
+ int init_angle;
+ int current_angle;
+ int init_screen_rotation;
+ int current_screen_rotation;
+ Eina_Rectangle rect;
+ Eina_Rectangle rect_touch;
+ Eina_Bool need_touch_set;
+ Eina_Bool unset_skip;
+ } zoom_conf;
+ Ecore_Event_Filter *touch_up_handler;
+
+ struct
+ {
+ tdm_capture *tcapture;
+ Eina_Bool start;
+ Eina_List *data;
+ Eina_Bool possible_tdm_capture;
+ Ecore_Timer *timer;
+ Eina_Bool wait_vblank;
+ Eina_Bool auto_rotate;
+ int current_angle;
+ } stream_capture;
+
+ /* output hwc */
+ E_Hwc *hwc;
+ Eina_Bool tdm_hwc;
+
+ /* external */
+ Eina_Bool external_set;
+ Eina_Bool tdm_mirror;
+ E_Output *mirror_src_output;
+ E_Output_Display_Mode display_mode;
+ tdm_layer *overlay_layer;
+ Eina_Bool need_overlay_pp;
+ E_Client *presentation_ec;
+
+ Eina_Bool force_render;
+
+ Eina_Bool fake_config;
+};
+
struct _E_Output_Hook
{
EINA_INLIST;
const tdm_output_mode *tmode;
};
-struct _E_Output
-{
- int index;
- char *id; // string id which is "name/edid";
- struct {
- char *screen; // name of the screen device attached
- char *name; // name of the output itself
- char *edid; // full edid data
- Eina_Bool connected : 1; // some screen is plugged in or not
- Eina_List *modes; // available screen modes here
- struct {
- int w, h; // physical width and height in mm
- } size;
- } info;
- struct {
- Eina_Rectangle geom; // the geometry that is set (as a result)
- E_Output_Mode mode; // screen res/refresh to use
- int rotation; // 0, 90, 180, 270
- int priority; // larger num == more important
- Eina_Bool enabled : 1; // should this monitor be enabled?
- } config;
-
- E_Zone *zone;
-
- tdm_output *toutput;
- tdm_output_type toutput_type;
-
- E_OUTPUT_DPMS dpms;
- E_OUTPUT_DPMS set_dpms;
- Eina_Bool dpms_async;
-
- struct {
- int min_w, min_h;
- int max_w, max_h;
- int preferred_align;
- } cursor_available;
-
- Eina_Bool zoom_set;
- struct
- {
- double zoomx;
- double zoomy;
- int init_cx;
- int init_cy;
- int adjusted_cx;
- int adjusted_cy;
- int init_angle;
- int current_angle;
- int init_screen_rotation;
- int current_screen_rotation;
- Eina_Rectangle rect;
- Eina_Rectangle rect_touch;
- Eina_Bool need_touch_set;
- Eina_Bool unset_skip;
- } zoom_conf;
- Ecore_Event_Filter *touch_up_handler;
-
- struct
- {
- tdm_capture *tcapture;
- Eina_Bool start;
- Eina_List *data;
- Eina_Bool possible_tdm_capture;
- Ecore_Timer *timer;
- Eina_Bool wait_vblank;
- Eina_Bool auto_rotate;
- int current_angle;
- } stream_capture;
-
- /* output hwc */
- E_Hwc *hwc;
- Eina_Bool tdm_hwc;
-
- /* external */
- Eina_Bool external_set;
- Eina_Bool tdm_mirror;
- E_Output *mirror_src_output;
- E_Output_Display_Mode display_mode;
- tdm_layer *overlay_layer;
- Eina_Bool need_overlay_pp;
- E_Client *presentation_ec;
-
- Eina_Bool force_render;
-
- Eina_Bool fake_config;
-};
-
/*brief The output prop value union */
typedef union {
void *ptr;