7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/*
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * Copyright © 2000 Compaq Computer Corporation
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * Copyright © 2002 Hewlett Packard Company
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * Copyright © 2006 Intel Corporation
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * Copyright © 2008 Red Hat, Inc.
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync *
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * documentation for any purpose is hereby granted without fee, provided that
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * the above copyright notice appear in all copies and that both that copyright
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * notice and this permission notice appear in supporting documentation, and
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * that the name of the copyright holders not be used in advertising or
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * publicity pertaining to distribution of the software without specific,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * written prior permission. The copyright holders make no representations
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * about the suitability of this software for any purpose. It is provided "as
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * is" without express or implied warranty.
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync *
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * OF THIS SOFTWARE.
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync *
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * Author: Jim Gettys, HP Labs, Hewlett-Packard, Inc.
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync * Keith Packard, Intel Corporation
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#ifndef _RANDR_H_
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define _RANDR_H_
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef unsigned short Rotation;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef unsigned short SizeID;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef unsigned short SubpixelOrder;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef unsigned short Connection;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef unsigned short XRandrRotation;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef unsigned short XRandrSizeID;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef unsigned short XRandrSubpixelOrder;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsynctypedef unsigned long XRandrModeFlags;
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RANDR_NAME "RANDR"
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RANDR_MAJOR 1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RANDR_MINOR 3
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRNumberErrors 3
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRNumberEvents 2
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRNumberRequests 32
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRQueryVersion 0
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* we skip 1 to make old clients fail pretty immediately */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RROldGetScreenInfo 1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RR1_0SetScreenConfig 2
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* V1.0 apps share the same set screen config request id */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRSetScreenConfig 2
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RROldScreenChangeSelectInput 3
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* 3 used to be ScreenChangeSelectInput; deprecated */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRSelectInput 4
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetScreenInfo 5
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* V1.2 additions */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetScreenSizeRange 6
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRSetScreenSize 7
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetScreenResources 8
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetOutputInfo 9
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRListOutputProperties 10
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRQueryOutputProperty 11
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRConfigureOutputProperty 12
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRChangeOutputProperty 13
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRDeleteOutputProperty 14
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetOutputProperty 15
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRCreateMode 16
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRDestroyMode 17
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRAddOutputMode 18
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRDeleteOutputMode 19
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetCrtcInfo 20
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRSetCrtcConfig 21
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetCrtcGammaSize 22
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetCrtcGamma 23
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRSetCrtcGamma 24
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* V1.3 additions */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetScreenResourcesCurrent 25
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRSetCrtcTransform 26
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetCrtcTransform 27
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetPanning 28
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRSetPanning 29
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRSetOutputPrimary 30
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define X_RRGetOutputPrimary 31
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRTransformUnit (1L << 0)
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRTransformScaleUp (1L << 1)
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRTransformScaleDown (1L << 2)
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRTransformProjective (1L << 3)
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* Event selection bits */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRScreenChangeNotifyMask (1L << 0)
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* V1.2 additions */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRCrtcChangeNotifyMask (1L << 1)
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RROutputChangeNotifyMask (1L << 2)
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RROutputPropertyNotifyMask (1L << 3)
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* Event codes */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRScreenChangeNotify 0
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* V1.2 additions */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRNotify 1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* RRNotify Subcodes */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRNotify_CrtcChange 0
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRNotify_OutputChange 1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRNotify_OutputProperty 2
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* used in the rotation field; rotation and reflection in 0.1 proto. */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_Rotate_0 1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_Rotate_90 2
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_Rotate_180 4
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_Rotate_270 8
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* new in 1.0 protocol, to allow reflection of screen */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_Reflect_X 16
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_Reflect_Y 32
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRSetConfigSuccess 0
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRSetConfigInvalidConfigTime 1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRSetConfigInvalidTime 2
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RRSetConfigFailed 3
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* new in 1.2 protocol */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_HSyncPositive 0x00000001
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_HSyncNegative 0x00000002
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_VSyncPositive 0x00000004
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_VSyncNegative 0x00000008
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_Interlace 0x00000010
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_DoubleScan 0x00000020
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_CSync 0x00000040
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_CSyncPositive 0x00000080
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_CSyncNegative 0x00000100
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_HSkewPresent 0x00000200
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_BCast 0x00000400
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_PixelMultiplex 0x00000800
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_DoubleClock 0x00001000
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_ClockDivideBy2 0x00002000
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_Connected 0
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_Disconnected 1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_UnknownConnection 2
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define BadRROutput 0
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define BadRRCrtc 1
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define BadRRMode 2
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync/* Conventional RandR output properties */
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_PROPERTY_RANDR_EDID "EDID"
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_PROPERTY_SIGNAL_FORMAT "SignalFormat"
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_PROPERTY_SIGNAL_PROPERTIES "SignalProperties"
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_PROPERTY_CONNECTOR_TYPE "ConnectorType"
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_PROPERTY_CONNECTOR_NUMBER "ConnectorNumber"
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_PROPERTY_COMPATIBILITY_LIST "CompatibilityList"
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#define RR_PROPERTY_CLONE_LIST "CloneList"
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync
7a0d67332f33bc21290d63bc7c8150b0cf0a4b21vboxsync#endif /* _RANDR_H_ */