summaryrefslogtreecommitdiff
path: root/randr/randrstr.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@neko.keithp.com>2006-11-21 01:15:26 -0800
committerEric Anholt <eric@anholt.net>2006-11-28 11:13:43 -0800
commit24abce8032940e96bb2ccf9e463a7fff6f36283a (patch)
tree4f41479e14760470e9da45e5f06c065bf829c8c5 /randr/randrstr.h
parentf62ac3ec39c6593df476985c630e499864c19c72 (diff)
Change RandR property datatype to include pending/valid values.
This patch tracks the protocol changes which introduce more complex semantics for RandR output properties including pending and valid value information. (cherry picked from commit af55c65bea40669fdc038aa34c6a1ec9ecb33e87)
Diffstat (limited to 'randr/randrstr.h')
-rw-r--r--randr/randrstr.h57
1 files changed, 50 insertions, 7 deletions
diff --git a/randr/randrstr.h b/randr/randrstr.h
index 19af9b979..27ede9226 100644
--- a/randr/randrstr.h
+++ b/randr/randrstr.h
@@ -69,9 +69,11 @@ extern int (*SProcRandrVector[RRNumberRequests])(ClientPtr);
*/
#define RRModeName(pMode) ((char *) (pMode + 1))
-typedef struct _rrMode RRModeRec, *RRModePtr;
-typedef struct _rrCrtc RRCrtcRec, *RRCrtcPtr;
-typedef struct _rrOutput RROutputRec, *RROutputPtr;
+typedef struct _rrMode RRModeRec, *RRModePtr;
+typedef struct _rrPropertyValue RRPropertyValueRec, *RRPropertyValuePtr;
+typedef struct _rrProperty RRPropertyRec, *RRPropertyPtr;
+typedef struct _rrCrtc RRCrtcRec, *RRCrtcPtr;
+typedef struct _rrOutput RROutputRec, *RROutputPtr;
struct _rrMode {
int refcnt;
@@ -81,6 +83,24 @@ struct _rrMode {
Bool userDefined;
};
+struct _rrPropertyValue {
+ Atom type; /* ignored by server */
+ short format; /* format of data for swapping - 8,16,32 */
+ long size; /* size of data in (format/8) bytes */
+ pointer data; /* private to client */
+};
+
+struct _rrProperty {
+ RRPropertyPtr next;
+ ATOM propertyName;
+ Bool is_pending;
+ Bool range;
+ Bool immutable;
+ int num_valid;
+ INT32 *valid_values;
+ RRPropertyValueRec current, pending;
+};
+
struct _rrCrtc {
RRCrtc id;
ScreenPtr pScreen;
@@ -116,7 +136,7 @@ struct _rrOutput {
int numPreferred;
RRModePtr *modes;
Bool changed;
- PropertyPtr properties;
+ RRPropertyPtr properties;
void *devPrivate;
};
@@ -139,9 +159,10 @@ typedef Bool (*RRCrtcSetProcPtr) (ScreenPtr pScreen,
typedef Bool (*RRCrtcSetGammaProcPtr) (ScreenPtr pScreen,
RRCrtcPtr crtc);
-typedef Bool (*RROutputSetPropertyProcPtr) (ScreenPtr pScreen,
- RROutputPtr output,
- Atom property);
+typedef Bool (*RROutputSetPropertyProcPtr) (ScreenPtr pScreen,
+ RROutputPtr output,
+ Atom property,
+ RRPropertyValuePtr value);
#endif
@@ -363,6 +384,12 @@ miRRCrtcSet (ScreenPtr pScreen,
int numOutput,
RROutputPtr *outputs);
+Bool
+miRROutputSetProperty (ScreenPtr pScreen,
+ RROutputPtr output,
+ Atom property,
+ RRPropertyValuePtr value);
+
/* randr.c */
/*
* Send all pending events
@@ -676,6 +703,12 @@ RRPointerScreenConfigured (ScreenPtr pScreen);
void
RRDeleteAllOutputProperties (RROutputPtr output);
+RRPropertyValuePtr
+RRGetOutputProperty (RROutputPtr output, Atom property, Bool pending);
+
+RRPropertyPtr
+RRQueryOutputProperty (RROutputPtr output, Atom property);
+
void
RRDeleteOutputProperty (RROutputPtr output, Atom property);
@@ -685,6 +718,10 @@ RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type,
pointer value, Bool sendevent);
int
+RRConfigureOutputProperty (RROutputPtr output, Atom property,
+ Bool pending, Bool range, Bool immutable,
+ int num_values, INT32 *values);
+int
ProcRRChangeOutputProperty (ClientPtr client);
int
@@ -694,6 +731,12 @@ int
ProcRRListOutputProperties (ClientPtr client);
int
+ProcRRQueryOutputProperty (ClientPtr client);
+
+int
+ProcRRConfigureOutputProperty (ClientPtr client);
+
+int
ProcRRDeleteOutputProperty (ClientPtr client);
/* rrxinerama.c */