1 #ifndef GNOME_RR_PRIVATE_H 2 #define GNOME_RR_PRIVATE_H 3 4 #include <X11/Xlib.h> 5 6 #include <X11/extensions/Xrandr.h> 7 8 #define MINIMUM_LOGICAL_SCALE_FACTOR 0.74f 9 #define MAXIMUM_LOGICAL_SCALE_FACTOR 2.0f 10 #define MINIMUM_GLOBAL_SCALE_FACTOR 1 11 #define MAXIMUM_GLOBAL_SCALE_FACTOR 2 12 13 typedef struct ScreenInfo ScreenInfo; 14 15 struct ScreenInfo 16 { 17 int min_width; 18 int max_width; 19 int min_height; 20 int max_height; 21 22 XRRScreenResources *resources; 23 24 GnomeRROutput ** outputs; 25 GnomeRRCrtc ** crtcs; 26 GnomeRRMode ** modes; 27 28 GnomeRRScreen * screen; 29 30 GnomeRRMode ** clone_modes; 31 32 RROutput primary; 33 }; 34 35 struct GnomeRRScreenPrivate 36 { 37 GdkScreen * gdk_screen; 38 GdkWindow * gdk_root; 39 Display * xdisplay; 40 Screen * xscreen; 41 Window xroot; 42 ScreenInfo * info; 43 GSettings * interface_settings; 44 45 int randr_event_base; 46 int rr_major_version; 47 int rr_minor_version; 48 49 Atom connector_type_atom; 50 gboolean dpms_capable; 51 }; 52 53 struct GnomeRROutputInfoPrivate 54 { 55 char * name; 56 57 gboolean on; 58 int width; 59 int height; 60 double rate; 61 int x; 62 int y; 63 GnomeRRRotation rotation; 64 65 gboolean connected; 66 gchar vendor[4]; 67 guint product; 68 guint serial; 69 double aspect; 70 int pref_width; 71 int pref_height; 72 char * display_name; 73 gboolean primary; 74 float scale; 75 gboolean doublescan; 76 gboolean interlaced; 77 gboolean vsync; 78 }; 79 80 struct GnomeRRConfigPrivate 81 { 82 gboolean clone; 83 GnomeRRScreen *screen; 84 GnomeRROutputInfo **outputs; 85 guint base_scale; 86 gboolean auto_scale; 87 }; 88 89 gboolean _gnome_rr_output_name_is_laptop (const char *name); 90 91 #endif 92