#ifndef _RANDRSTR_H_
#define _RANDRSTR_H_
#include "randr.h"
typedef struct _rrScreenRate {
int rate;
Bool referenced;
Bool oldReferenced;
} RRScreenRate, *RRScreenRatePtr;
typedef struct _rrScreenSize {
int id;
short width, height;
short mmWidth, mmHeight;
RRScreenRatePtr pRates;
int nRates;
int nRatesInUse;
Bool referenced;
Bool oldReferenced;
} RRScreenSize, *RRScreenSizePtr;
typedef Bool (*RRSetConfigProcPtr) (ScreenPtr pScreen,
Rotation rotation,
int rate,
RRScreenSizePtr pSize);
typedef Bool (*RRGetInfoProcPtr) (ScreenPtr pScreen, Rotation *rotations);
typedef Bool (*RRCloseScreenProcPtr) ( int i, ScreenPtr pscreen);
typedef struct _rrScrPriv {
RRSetConfigProcPtr rrSetConfig;
RRGetInfoProcPtr rrGetInfo;
TimeStamp lastSetTime;
TimeStamp lastConfigTime;
RRCloseScreenProcPtr CloseScreen;
Rotation rotations;
int nSizes;
int nSizesInUse;
RRScreenSizePtr pSizes;
Rotation rotation;
int size;
int rate;
} rrScrPrivRec, *rrScrPrivPtr;
extern int rrPrivIndex;
#define rrGetScrPriv(pScr) ((rrScrPrivPtr) (pScr)->devPrivates[rrPrivIndex].ptr)
#define rrScrPriv(pScr) rrScrPrivPtr pScrPriv = rrGetScrPriv(pScr)
#define SetRRScreen(s,p) ((s)->devPrivates[rrPrivIndex].ptr = (pointer) (p))
void
RRExtensionInit (void);
RRScreenSizePtr
RRRegisterSize (ScreenPtr pScreen,
short width,
short height,
short mmWidth,
short mmHeight);
Bool RRRegisterRate (ScreenPtr pScreen,
RRScreenSizePtr pSize,
int rate);
void
RRSetCurrentConfig (ScreenPtr pScreen,
Rotation rotation,
int rate,
RRScreenSizePtr pSize);
Bool RRScreenInit(ScreenPtr pScreen);
Bool
miRandRInit (ScreenPtr pScreen);
Bool
miRRGetInfo (ScreenPtr pScreen, Rotation *rotations);
Bool
miRRSetConfig (ScreenPtr pScreen,
Rotation rotation,
int rate,
RRScreenSizePtr size);
Bool
miRRGetScreenInfo (ScreenPtr pScreen);
#endif