Skip to content

Commit

Permalink
Remove RandR output options.
Browse files Browse the repository at this point in the history
RandR output options are now expected to be handled by properties instead.
  • Loading branch information
Keith Packard committed Nov 16, 2006
1 parent ae9375e commit 8b2a7e9
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 89 deletions.
6 changes: 1 addition & 5 deletions randr/mirandr.c
Expand Up @@ -52,7 +52,7 @@ miRRCrtcSet (ScreenPtr pScreen,
int y,
Rotation rotation,
int numOutput,
RROutputConfigPtr outputs)
RROutputPtr *outputs)
{
return TRUE;
}
Expand Down Expand Up @@ -137,10 +137,6 @@ miRandRInit (ScreenPtr pScreen)
return FALSE;
if (!RROutputSetCrtcs (output, &crtc, 1))
return FALSE;
if (!RROutputSetPossibleOptions (output, 0))
return FALSE;
if (!RROutputSetCurrentOptions (output, 0))
return FALSE;
if (!RROutputSetConnection (output, RR_Connected))
return FALSE;
RRCrtcNotify (crtc, mode, 0, 0, RR_Rotate_0, 1, &output);
Expand Down
24 changes: 3 additions & 21 deletions randr/randrstr.h
Expand Up @@ -72,7 +72,6 @@ extern int (*SProcRandrVector[RRNumberRequests])(ClientPtr);
typedef struct _rrMode RRModeRec, *RRModePtr;
typedef struct _rrCrtc RRCrtcRec, *RRCrtcPtr;
typedef struct _rrOutput RROutputRec, *RROutputPtr;
typedef struct _rrOutputConfig RROutputConfigRec, *RROutputConfigPtr;

struct _rrMode {
int refcnt;
Expand Down Expand Up @@ -109,8 +108,6 @@ struct _rrOutput {
int mmWidth;
int mmHeight;
RRCrtcPtr crtc;
CARD32 currentOptions;
CARD32 possibleOptions;
int numCrtcs;
RRCrtcPtr *crtcs;
int numClones;
Expand All @@ -123,11 +120,6 @@ struct _rrOutput {
void *devPrivate;
};

struct _rrOutputConfig {
RROutputPtr output;
CARD32 options;
};

#if RANDR_12_INTERFACE
typedef Bool (*RRScreenSetSizeProcPtr) (ScreenPtr pScreen,
CARD16 width,
Expand All @@ -142,7 +134,7 @@ typedef Bool (*RRCrtcSetProcPtr) (ScreenPtr pScreen,
int y,
Rotation rotation,
int numOutputs,
RROutputConfigPtr outputs);
RROutputPtr *outputs);

typedef Bool (*RRCrtcSetGammaProcPtr) (ScreenPtr pScreen,
RRCrtcPtr crtc);
Expand Down Expand Up @@ -369,7 +361,7 @@ miRRCrtcSet (ScreenPtr pScreen,
int y,
Rotation rotation,
int numOutput,
RROutputConfigPtr outputs);
RROutputPtr *outputs);

/* randr.c */
/*
Expand Down Expand Up @@ -490,7 +482,7 @@ RRCrtcSet (RRCrtcPtr crtc,
int y,
Rotation rotation,
int numOutput,
RROutputConfigPtr outputs);
RROutputPtr *outputs);

/*
* Request that the Crtc gamma be changed
Expand Down Expand Up @@ -641,10 +633,6 @@ RROutputSetCrtcs (RROutputPtr output,
RRCrtcPtr *crtcs,
int numCrtcs);

Bool
RROutputSetPossibleOptions (RROutputPtr output,
CARD32 possibleOptions);

void
RROutputSetCrtc (RROutputPtr output, RRCrtcPtr crtc);

Expand All @@ -656,10 +644,6 @@ Bool
RROutputSetSubpixelOrder (RROutputPtr output,
int subpixelOrder);

Bool
RROutputSetCurrentOptions (RROutputPtr output,
CARD32 currentOptions);

Bool
RROutputSetPhysicalSize (RROutputPtr output,
int mmWidth,
Expand Down Expand Up @@ -739,8 +723,6 @@ Query state:
RRScreenSetSizeRange
RROutputSetCrtcs
RROutputSetCrtc
RROutputSetPossibleOptions
RRSetCurrentOptions
RRModeGet
RROutputSetModes
RROutputSetConnection
Expand Down
46 changes: 19 additions & 27 deletions randr/rrcrtc.c
Expand Up @@ -257,7 +257,7 @@ RRCrtcSet (RRCrtcPtr crtc,
int y,
Rotation rotation,
int numOutputs,
RROutputConfigPtr outputs)
RROutputPtr *outputs)
{
ScreenPtr pScreen = crtc->pScreen;

Expand Down Expand Up @@ -290,10 +290,10 @@ RRCrtcSet (RRCrtcPtr crtc,

size.width = mode->mode.width;
size.height = mode->mode.height;
if (outputs[0].output->mmWidth && outputs[0].output->mmHeight)
if (outputs[0]->mmWidth && outputs[0]->mmHeight)
{
size.mmWidth = outputs[0].output->mmWidth;
size.mmHeight = outputs[0].output->mmHeight;
size.mmWidth = outputs[0]->mmWidth;
size.mmHeight = outputs[0]->mmHeight;
}
else
{
Expand All @@ -308,7 +308,7 @@ RRCrtcSet (RRCrtcPtr crtc,
* Old 1.0 interface tied screen size to mode size
*/
if (ret)
RRCrtcNotify (crtc, mode, x, y, rotation, 1, &outputs[0].output);
RRCrtcNotify (crtc, mode, x, y, rotation, 1, outputs);
return ret;
}
#endif
Expand Down Expand Up @@ -554,15 +554,15 @@ ProcRRSetCrtcConfig (ClientPtr client)
RRCrtcPtr crtc;
RRModePtr mode;
int numOutputs;
RROutputConfigPtr outputs = NULL;
xRROutputConfig *outputConfigs;
RROutputPtr *outputs = NULL;
RROutput *outputIds;
TimeStamp configTime;
TimeStamp time;
Rotation rotation;
int i, j;

REQUEST_AT_LEAST_SIZE(xRRSetCrtcConfigReq);
numOutputs = (stuff->length - (SIZEOF (xRRSetCrtcConfigReq) >> 2)) >> 1;
numOutputs = (stuff->length - (SIZEOF (xRRSetCrtcConfigReq) >> 2));

crtc = LookupIDByType (stuff->crtc, RRCrtcType);
if (!crtc)
Expand All @@ -589,47 +589,39 @@ ProcRRSetCrtcConfig (ClientPtr client)
}
if (numOutputs)
{
outputs = xalloc (numOutputs * sizeof (RROutputConfigRec));
outputs = xalloc (numOutputs * sizeof (RROutputPtr));
if (!outputs)
return BadAlloc;
}
else
outputs = NULL;

outputConfigs = (xRROutputConfig *) (stuff + 1);
outputIds = (RROutput *) (stuff + 1);
for (i = 0; i < numOutputs; i++)
{
outputs[i].output = LookupIDByType (outputConfigs[i].output, RROutputType);
if (!outputs[i].output)
outputs[i] = (RROutputPtr) LookupIDByType (outputIds[i], RROutputType);
if (!outputs[i])
{
client->errorValue = outputConfigs[i].output;
client->errorValue = outputIds[i];
if (outputs)
xfree (outputs);
return RRErrorBase + BadRROutput;
}
outputs[i].options = outputConfigs[i].options;
if (outputs[i].options & ~outputs[i].output->possibleOptions)
{
client->errorValue = outputConfigs[i].options;
if (outputs)
xfree (outputs);
return BadMatch;
}
/* validate crtc for this output */
for (j = 0; j < outputs[i].output->numCrtcs; j++)
if (outputs[i].output->crtcs[j] == crtc)
for (j = 0; j < outputs[i]->numCrtcs; j++)
if (outputs[i]->crtcs[j] == crtc)
break;
if (j == outputs[i].output->numCrtcs)
if (j == outputs[i]->numCrtcs)
{
if (outputs)
xfree (outputs);
return BadMatch;
}
/* validate mode for this output */
for (j = 0; j < outputs[i].output->numModes; j++)
if (outputs[i].output->modes[j] == mode)
for (j = 0; j < outputs[i]->numModes; j++)
if (outputs[i]->modes[j] == mode)
break;
if (j == outputs[i].output->numModes)
if (j == outputs[i]->numModes)
{
if (outputs)
xfree (outputs);
Expand Down
29 changes: 0 additions & 29 deletions randr/rroutput.c
Expand Up @@ -65,8 +65,6 @@ RROutputCreate (const char *name,
output->mmWidth = 0;
output->mmHeight = 0;
output->crtc = NULL;
output->currentOptions = 0;
output->possibleOptions = 0;
output->numCrtcs = 0;
output->crtcs = NULL;
output->numClones = 0;
Expand Down Expand Up @@ -223,17 +221,6 @@ RROutputSetCrtcs (RROutputPtr output,
return TRUE;
}

Bool
RROutputSetPossibleOptions (RROutputPtr output,
CARD32 possibleOptions)
{
if (output->possibleOptions == possibleOptions)
return TRUE;
output->possibleOptions = possibleOptions;
RROutputChanged (output);
return TRUE;
}

void
RROutputSetCrtc (RROutputPtr output, RRCrtcPtr crtc)
{
Expand Down Expand Up @@ -266,17 +253,6 @@ RROutputSetSubpixelOrder (RROutputPtr output,
return TRUE;
}

Bool
RROutputSetCurrentOptions (RROutputPtr output,
CARD32 currentOptions)
{
if (output->currentOptions == currentOptions)
return TRUE;
output->currentOptions = currentOptions;
RROutputChanged (output);
return TRUE;
}

Bool
RROutputSetPhysicalSize (RROutputPtr output,
int mmWidth,
Expand Down Expand Up @@ -413,7 +389,6 @@ ProcRRGetOutputInfo (ClientPtr client)
rep.length = OutputInfoExtra >> 2;
rep.timestamp = pScrPriv->lastSetTime.milliseconds;
rep.crtc = output->crtc ? output->crtc->id : None;
rep.currentOptions = output->currentOptions;
rep.mmWidth = output->mmWidth;
rep.mmHeight = output->mmHeight;
rep.connection = output->connection;
Expand All @@ -423,7 +398,6 @@ ProcRRGetOutputInfo (ClientPtr client)
rep.nPreferred = output->numPreferred;
rep.nClones = output->numClones;
rep.nameLength = output->nameLength;
rep.possibleOptions = output->possibleOptions;

extraLen = ((output->numCrtcs +
output->numModes +
Expand Down Expand Up @@ -469,15 +443,12 @@ ProcRRGetOutputInfo (ClientPtr client)
swapl(&rep.length, n);
swapl(&rep.timestamp, n);
swapl(&rep.crtc, n);
swapl(&rep.currentOptions, n);
swapl(&rep.mmWidth, n);
swapl(&rep.mmHeight, n);
swaps(&rep.nCrtcs, n);
swaps(&rep.nModes, n);
swaps(&rep.nClones, n);
swapl(&rep.possibleOptions, n);
swaps(&rep.nameLength, n);
swapl(&rep.possibleOptions, n);
}
WriteToClient(client, sizeof(xRRGetOutputInfoReply), (char *)&rep);
if (extraLen)
Expand Down
13 changes: 6 additions & 7 deletions randr/rrscreen.c
Expand Up @@ -712,7 +712,7 @@ ProcRRSetScreenConfig (ClientPtr client)
Rotation rotation;
int rate;
Bool has_rate;
RROutputConfigRec output;
RROutputPtr output;
RRModePtr mode;
RR10DataPtr pData = NULL;
RRScreenSizePtr pSize;
Expand Down Expand Up @@ -749,14 +749,13 @@ ProcRRSetScreenConfig (ClientPtr client)
if (!RRGetInfo (pScreen))
return BadAlloc;

output.output = RRFirstOutput (pScreen);
if (!output.output)
output = RRFirstOutput (pScreen);
if (!output)
{
time = currentTime;
rep.status = RRSetConfigFailed;
goto sendReply;
}
output.options = output.output->currentOptions;

/*
* if the client's config timestamp is not the same as the last config
Expand All @@ -769,7 +768,7 @@ ProcRRSetScreenConfig (ClientPtr client)
goto sendReply;
}

pData = RR10GetData (pScreen, output.output);
pData = RR10GetData (pScreen, output);
if (!pData)
return BadAlloc;

Expand Down Expand Up @@ -805,7 +804,7 @@ ProcRRSetScreenConfig (ClientPtr client)
return BadValue;
}

if ((~output.output->crtc->rotations) & rotation)
if ((~output->crtc->rotations) & rotation)
{
/*
* requested rotation or reflection not supported by screen
Expand Down Expand Up @@ -878,7 +877,7 @@ ProcRRSetScreenConfig (ClientPtr client)
}
}

rep.status = RRCrtcSet (output.output->crtc, mode, 0, 0, stuff->rotation,
rep.status = RRCrtcSet (output->crtc, mode, 0, 0, stuff->rotation,
1, &output);

/*
Expand Down

0 comments on commit 8b2a7e9

Please sign in to comment.