Home | History | Annotate | Line # | Download | only in src
      1 /*
      2  * Copyright  2000, Compaq Computer Corporation,
      3  * Copyright  2002, Hewlett Packard, Inc.
      4  *
      5  * Permission to use, copy, modify, distribute, and sell this software and its
      6  * documentation for any purpose is hereby granted without fee, provided that
      7  * the above copyright notice appear in all copies and that both that
      8  * copyright notice and this permission notice appear in supporting
      9  * documentation, and that the name of Compaq or HP not be used in advertising
     10  * or publicity pertaining to distribution of the software without specific,
     11  * written prior permission.  HP makes no representations about the
     12  * suitability of this software for any purpose.  It is provided "as is"
     13  * without express or implied warranty.
     14  *
     15  * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
     16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HP
     17  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     18  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
     19  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
     20  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     21  *
     22  * Author:  Jim Gettys, HP Labs, Hewlett-Packard, Inc.
     23  */
     24 
     25 #ifndef _XRANDRINT_H_
     26 #define _XRANDRINT_H_
     27 
     28 #include <X11/Xlibint.h>
     29 #include <X11/Xutil.h>
     30 #include <X11/extensions/Xext.h>
     31 #include <X11/extensions/extutil.h>
     32 #include "Xrandr.h"
     33 #include <X11/extensions/randr.h>
     34 #include <X11/extensions/randrproto.h>
     35 
     36 extern char XRRExtensionName[];
     37 
     38 #define RRCheckExtension(dpy,i,val) \
     39   XextCheckExtension (dpy, i, XRRExtensionName, val)
     40 #define RRSimpleCheckExtension(dpy,i) \
     41   XextSimpleCheckExtension (dpy, i, XRRExtensionName)
     42 
     43 XExtDisplayInfo *XRRFindDisplay (Display *dpy);
     44 
     45 /* deliberately opaque internal data structure; can be extended,
     46    but not reordered */
     47 struct _XRRScreenConfiguration {
     48   Screen *screen;	/* the root window in GetScreenInfo */
     49   XRRScreenSize *sizes;
     50   Rotation rotations;
     51   Rotation current_rotation;
     52   int nsizes;
     53   int current_size;
     54   short current_rate;
     55   Time timestamp;
     56   Time config_timestamp;
     57   int subpixel_order;	/* introduced in randr v0.1 */
     58   short *rates;		/* introduced in randr v1.1 */
     59   int nrates;
     60 };
     61 
     62 /*
     63  * if a configure notify on the root is received, or
     64  * an XRRScreenChangeNotify is received,
     65  * XRRUpdateConfiguration should be called to update the X library's
     66  * view of the screen configuration; it will also invalidate the cache
     67  * provided by XRRScreenConfig and XRRConfig, and force a round trip
     68  * when next used.  Returns invalid status if not an event type
     69  * the library routine understand.
     70  */
     71 
     72 /* we cache one screen configuration/screen */
     73 
     74 typedef struct _XRandRInfo {
     75   XRRScreenConfiguration **config;
     76   int major_version, minor_version;	/* major_version = -1 means we don't know */
     77   Bool has_rates;			/* Server supports refresh rates */
     78 } XRandRInfo;
     79 
     80 typedef struct _randrVersionState {
     81     unsigned long   version_seq;
     82     Bool	    error;
     83     int		    major_version;
     84     int		    minor_version;
     85 } _XRRVersionState;
     86 
     87 Bool
     88 _XRRVersionHandler (Display	*dpy,
     89 		    xReply	*rep,
     90 		    char	*buf,
     91 		    int		len,
     92 		    XPointer    data);
     93 
     94 _X_HIDDEN Bool
     95 _XRRHasRates (int major, int minor);
     96 
     97 #endif /* _XRANDRINT_H_ */
     98