/* * $XFree86: xc/lib/Xrandr/Xrandrint.h,v 1.2 2001/06/07 15:33:43 keithp Exp $ * * * Copyright © 2000, Compaq Computer Corporation, * Copyright © 2002, Hewlett Packard, Inc. * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of Compaq or HP not be used in advertising * or publicity pertaining to distribution of the software without specific, * written prior permission. HP makes no representations about the * suitability of this software for any purpose. It is provided "as is" * without express or implied warranty. * * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HP * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * Author: Jim Gettys, HP Labs, Hewlett-Packard, Inc. */ #ifndef _XRANDRINT_H_ #define _XRANDRINT_H_ #define NEED_EVENTS #define NEED_REPLIES #include #include #include #include #include "Xrandr.h" #include #include extern XExtensionInfo XrandrExtensionInfo; extern char XrandrExtensionName[]; #define RRCheckExtension(dpy,i,val) \ XextCheckExtension (dpy, i, XRRExtensionName, val) #define RRSimpleCheckExtension(dpy,i) \ XextSimpleCheckExtension (dpy, i, XRRExtensionName) XExtDisplayInfo *XRRFindDisplay (Display *dpy); /* deliberately opaque internal data structure; can be extended, but not reordered */ struct _XRRScreenConfiguration { Screen *screen; /* the root window in GetScreenInfo */ XRRScreenSize *sizes; Rotation rotations; Rotation current_rotation; int nsizes; int current_size; short current_rate; Time timestamp; Time config_timestamp; int subpixel_order; /* introduced in randr v0.1 */ short *rates; /* introduced in randr v1.1 */ int nrates; }; /* * if a configure notify on the root is recieved, or * an XRRScreenChangeNotify is recieved, * XRRUpdateConfiguration should be called to update the X library's * view of the screen configuration; it will also invalidate the cache * provided by XRRScreenConfig and XRRConfig, and force a round trip * when next used. Returns invalid status if not an event type * the library routine understand. */ /* we cache one screen configuration/screen */ typedef struct _XRandRInfo { XRRScreenConfiguration **config; int major_version, minor_version; /* major_version = -1 means we don't know */ Bool has_rates; /* Server supports refresh rates */ } XRandRInfo; typedef struct _randrVersionState { unsigned long version_seq; Bool error; int major_version; int minor_version; } _XRRVersionState; extern char XRRExtensionName[]; Bool _XRRVersionHandler (Display *dpy, xReply *rep, char *buf, int len, XPointer data); #endif /* _XRANDRINT_H_ */