summaryrefslogtreecommitdiff
path: root/randr/mirandr.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@neko.keithp.com>2006-07-01 19:46:38 -0700
committerKeith Packard <keithp@neko.keithp.com>2006-09-17 23:08:11 -0700
commitd95c758630f4aacec339a7ec80d2c4a9d7de1e4a (patch)
tree89bab93b900b7aa1501f24cc82449a596ff9e455 /randr/mirandr.c
parentf057de4f73fa593fa3fc5f05f65b89e76273b158 (diff)
Preliminary RandR 1.2 work
Diffstat (limited to 'randr/mirandr.c')
-rw-r--r--randr/mirandr.c85
1 files changed, 47 insertions, 38 deletions
diff --git a/randr/mirandr.c b/randr/mirandr.c
index 0954028d1..7bef02d29 100644
--- a/randr/mirandr.c
+++ b/randr/mirandr.c
@@ -1,36 +1,36 @@
/*
- *
- * Copyright © 2000, Compaq Computer Corporation,
- * Copyright © 2002, Hewlett Packard, Inc.
+ * Copyright © 2000 Compaq Computer Corporation
+ * Copyright © 2002 Hewlett-Packard Company
+ * Copyright © 2006 Intel Corporation
*
* 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.
+ * 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 the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. The copyright holders make 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.
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS 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.
+ * Author: Jim Gettys, Hewlett-Packard Company, Inc.
+ * Keith Packard, Intel Corporation
*/
-
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
#include "scrnintstr.h"
#include "mi.h"
-#include <X11/extensions/randr.h>
#include "randrstr.h"
#include <stdio.h>
@@ -48,26 +48,35 @@ miRRGetInfo (ScreenPtr pScreen, Rotation *rotations)
{
int i;
Bool setConfig = FALSE;
+ RRMonitorPtr pMonitor;
- *rotations = RR_Rotate_0;
+ pMonitor = RRRegisterMonitor (pScreen, NULL, RR_Rotate_0);
for (i = 0; i < pScreen->numDepths; i++)
{
if (pScreen->allowedDepths[i].numVids)
{
- RRScreenSizePtr pSize;
+ xRRMonitorMode rrMode;
+ RRModePtr pMode;
+ char name[64];
- pSize = RRRegisterSize (pScreen,
- pScreen->width,
- pScreen->height,
- pScreen->mmWidth,
- pScreen->mmHeight);
- if (!pSize)
- return FALSE;
- if (!setConfig)
- {
- RRSetCurrentConfig (pScreen, RR_Rotate_0, 0, pSize);
- setConfig = TRUE;
- }
+ sprintf (name, "%dx%d", pScreen->width, pScreen->height);
+ memset (&rrMode, '\0', sizeof (rrMode));
+ rrMode.width = pScreen->width;
+ rrMode.height = pScreen->height;
+ rrMode.widthInMillimeters = pScreen->mmWidth;
+ rrMode.heightInMillimeters = pScreen->mmHeight;
+ pMonitor = RRRegisterMonitor (pScreen, RR_Rotate_0);
+ pMode = RRRegisterMode (pMonitor,
+ &rrMode,
+ name,
+ strlen (name));
+ if (!pMode)
+ return FALSE;
+ if (!setConfig)
+ {
+ RRSetCurrentMode (pMonitor, pMode, 0, 0, RR_Rotate_0);
+ setConfig = TRUE;
+ }
}
}
return TRUE;
@@ -78,10 +87,10 @@ miRRGetInfo (ScreenPtr pScreen, Rotation *rotations)
* different here
*/
Bool
-miRRSetConfig (ScreenPtr pScreen,
- Rotation rotation,
- int rate,
- RRScreenSizePtr pSize)
+miRRSetMode (ScreenPtr pScreen,
+ int monitor,
+ RRModePtr pMode,
+ Rotation rotation)
{
return TRUE;
}
@@ -96,6 +105,6 @@ miRandRInit (ScreenPtr pScreen)
return FALSE;
rp = rrGetScrPriv(pScreen);
rp->rrGetInfo = miRRGetInfo;
- rp->rrSetConfig = miRRSetConfig;
+ rp->rrSetMode = miRRSetMode;
return TRUE;
}