home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-07-26 | 35.7 KB | 2,013 lines |
- \&
- .sp 1
- .XS
- Appendix A \- Input Extension Protocol Encoding
- .XE
- .ce 2
- .ps 11
- .nr PS 11
- .ps +2
- \fBAppendix A\fP
-
- \fBInput Extension Protocol Encoding\fP
- .ps
- .sp 2
- .LP
- .ps 9
- .nr PS 9
- .vs 10
- .nr VS 10
- .\"The sections in this appendix correspond to their number counterparts
- .\"in the protocol document.
- .ps +2
- \fBSyntactic Conventions\fP
- .ps -3
- .LP
- All numbers are in decimal,
- unless prefixed with #x, in which case they are in hexadecimal (base 16).
- .LP
- The general syntax used to describe requests, replies, errors, events, and
- compound types is:
- .LP
- .DS I
- \fBNameofThing\fP
- encode-form
- ...
- encode-form
- .DE
- Each encode-form describes a single component.
- .LP
- For components described in the protocol as:
- .LP
- .DS I
- name: TYPE
- .DE
- the encode-form is:
- .LP
- .DS I
- .TA 1i 1.5i 2.5i
- .ta 1i 1.5i 2.5i
- N TYPE name
- .DE
- N is the number of bytes occupied in the data stream,
- and TYPE is the interpretation of those bytes.
- For example,
- .LP
- .DS I
- .TA 1i 1.5i
- .ta 1i 1.5i
- depth: CARD8
- .DE
- becomes:
- .LP
- .DS I
- .TA 1i 1.5i 2.5i
- .ta 1i 1.5i 2.5i
- 1 CARD8 depth
- .DE
- For components with a static numeric value the encode-form is:
- .LP
- .DS I
- .TA 1i 1.5i 2.5i
- .ta 1i 1.5i 2.5i
- N value name
- .DE
- The value is always interpreted as an N-byte unsigned integer.
- For example,
- the first two bytes of a Window error are always zero (indicating an
- error in general) and three (indicating the Window error in particular):
- .LP
- .DS I
- .TA 1i 1.5i 2.5i
- .ta 1i 1.5i 2.5i
- 1 0 Error
- 1 3 code
- .DE
- For components described in the protocol as:
- .LP
- .DS I
- name: \fB{Name1, ..., NameI}\fP
- .DE
- .LP
- the encode-form is:
- .LP
- .DS I
- .TA 1i 1.5i 2.5i
- .ta 1i 1.5i 2.5i
- N name
- value1 Name1
- ...
- valueI NameI
- .DE
- The value is always interpreted as an N-byte unsigned integer.
- Note that the size of N is sometimes larger than that strictly required
- to encode the values.
- For example:
- .LP
- .DS I
- class: \fB{InputOutput, InputOnly, CopyFromParent}\fP
- .DE
- .LP
- becomes:
- .LP
- .DS I
- .TA 1i 1.5i 2.5i 3i
- .ta 1i 1.5i 2.5i 3i
- 2 class
- 0 CopyFromParent
- 1 InputOutput
- 2 InputOnly
- .DE
- For components described in the protocol as:
- .DS I
- .LP
- NAME: TYPE or \fBAlternative1 ... or AlternativeI\fP
- .DE
- .LP
- the encode-form is:
- .LP
- .DS I
- .TA 1i 1.5i 2i 2.5i 3i
- .ta 1i 1.5i 2i 2.5i 3i
- N TYPE NAME
- value1 Alternative1
- ...
- valueI AlternativeI
- .DE
- The alternative values are guaranteed not to conflict with the encoding
- of TYPE.
- For example:
- .DS
- .LP
- destination: WINDOW or \fBPointerWindow\fP or \fBInputFocus\fP
- .DE
- .LP
- becomes:
- .LP
- .DS I
- .TA 1i 1.5i 2.5i
- .ta 1i 1.5i 2.5i
- 4 WINDOW destination
- 0 PointerWindow
- 1 InputFocus
- .DE
- For components described in the protocol as:
- .LP
- .DS I
- .TA 1i 1.5i
- .ta 1i 1.5i
- value-mask: BITMASK
- .DE
- the encode-form is:
- .LP
- .DS I
- .TA 1i 1.5i 2i 2.5i
- .ta 1i 1.5i 2i 2.5i
- N BITMASK value-mask
- mask1 mask-name1
- ...
- maskI mask-nameI
- .DE
- The individual bits in the mask are specified and named,
- and N is 2 or 4.
- The most-significant bit in a BITMASK is reserved for use in defining
- chained (multiword) bitmasks, as extensions augment existing core requests.
- The precise interpretation of this bit is not yet defined here,
- although a probable mechanism is that a 1-bit indicates that another N bytes
- of bitmask follows, with bits within the overall mask still interpreted
- from least-significant to most-significant with an N-byte unit, with N-byte units
- interpreted in stream order, and with the overall mask being byte-swapped
- in individual N-byte units.
- .LP
- For LISTofVALUE encodings, the request is followed by a section of the form:
- .LP
- .DS I
- .TA 1i 1.5i
- .ta 1i 1.5i
- VALUEs
- encode-form
- ...
- encode-form
- .DE
- listing an encode-form for each VALUE.
- The NAME in each encode-form keys to the corresponding BITMASK bit.
- The encoding of a VALUE always occupies four bytes,
- but the number of bytes specified in the encoding-form indicates how
- many of the least-significant bytes are actually used;
- the remaining bytes are unused and their values do not matter.
- .LP
- In various cases, the number of bytes occupied by a component will be specified
- by a lowercase single-letter variable name instead of a specific numeric
- value, and often some other component will have its value specified as a
- simple numeric expression involving these variables.
- Components specified with such expressions are always interpreted
- as unsigned integers.
- The scope of such variables is always just the enclosing request, reply,
- error, event, or compound type structure.
- For example:
- .LP
- .DS I
- .TA 1i 1.5i 2i 2.5i
- .ta 1i 1.5i 2i 2.5i
- 2 3+n request length
- 4n LISTofPOINT points
- .DE
- For unused bytes (the values of the bytes are undefined and do not matter),
- the encode-form is:
- .LP
- .DS I
- .TA 1i 1.5i 2i 2.5i
- .ta 1i 1.5i 2i 2.5i
- N unused
- .DE
- If the number of unused bytes is variable, the encode-form typically is:
- .LP
- .DS I
- .TA 1i 1.5i 2i 2.5i
- .ta 1i 1.5i 2i 2.5i
- p unused, p=pad(E)
- .DE
- where E is some expression,
- and pad(E) is the number of bytes needed to round E up to a multiple of four.
- .LP
- .DS I
- .TA 1i 1.5i 2i 2.5i
- .ta 1i 1.5i 2i 2.5i
- pad(E) = (4 - (E mod 4)) mod 4
- .DE
- .ps +2
- \fBCommon Types\fP
- .ps
- .LP
- LISTofFOO
- .IP
- In this document the LISTof notation strictly means some number of repetitions
- of the FOO encoding;
- the actual length of the list is encoded elsewhere.
- .LP
- SETofFOO
- .P 1
- A set is always represented by a bitmask, with a 1-bit indicating presence in
- the set.
- .LP
- BITMASK: CARD32
- .LP
- WINDOW: CARD32
- .LP
- BYTE: 8-bit value
- .LP
- INT8: 8-bit signed integer
- .LP
- INT16: 16-bit signed integer
- .LP
- INT32: 32-bit signed integer
- .LP
- CARD8: 8-bit unsigned integer
- .LP
- CARD16: 16-bit unsigned integer
- .LP
- CARD32: 32-bit unsigned integer
- .LP
- TIMESTAMP: CARD32
- .LP
- EVENTCLASS: CARD32
- .LP
- .DS 0
- .TA .75i 1.75i
- .ta .75i 1.75i
- INPUTCLASS
- 0 KeyClass
- 1 ButtonClass
- 2 ValuatorClass
- 3 FeedbackClass
- 4 ProximityClass
- 5 FocusClass
- 6 OtherClass
- .DE
- .LP
- .DS 0
- .TA .75i 1.75i
- .ta .75i 1.75i
- INPUTCLASS
- 0 KbdFeedbackClass
- 1 PtrFeedbackClass
- 2 StringFeedbackClass
- 3 IntegerFeedbackClass
- 4 LedFeedbackClass
- 5 BellFeedbackClass
- .DE
- .LP
- .DS 0
- .TA .75i 1.75i
- .ta .75i 1.75i
- INPUTINFO
- 0 KEYINFO
- 1 BUTTONINFO
- 2 VALUATORINFO
- .DE
- .LP
- .DS 0
- .TA .75i 1.75i
- .ta .75i 1.75i
- DEVICEMODE
- 0 Relative
- 1 Absolute
- .DE
- .LP
- .DS 0
- .TA .75i 1.75i
- .ta .75i 1.75i
- PROXIMITYSTATE
- 0 InProximity
- 1 OutOfProximity
- .DE
- .LP
- .DS 0
- .TA .75i 1.75i
- .ta .75i 1.75i
- BOOL
- 0 False
- 1 True
- .DE
- .LP
- KEYSYM: CARD32
- .LP
- KEYCODE: CARD8
- .LP
- BUTTON: CARD8
- .LP
- .DS 0
- .TA .75i 1.75i
- .ta .75i 1.75i
- SETofKEYBUTMASK
- #x0001 Shift
- #x0002 Lock
- #x0004 Control
- #x0008 Mod1
- #x0010 Mod2
- #x0020 Mod3
- #x0040 Mod4
- #x0080 Mod5
- #x0100 Button1
- #x0200 Button2
- #x0400 Button3
- #x0800 Button4
- #x1000 Button5
- #xe000 unused but must be zero
- .DE
- .LP
- .DS 0
- .TA .75i 1.75i
- .ta .75i 1.75i
- SETofKEYMASK
- encodings are the same as for SETofKEYBUTMASK, except with
- #xff00 unused but must be zero
- .DE
- .LP
- STRING8: LISTofCARD8
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- STR
- 1 n length of name in bytes
- n STRING8 name
- .DE
- .ps +2
- \fBErrors\fP
- .ps
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- Request
- 1 0 Error
- 1 1 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- Value
- 1 0 Error
- 1 2 code
- 2 CARD16 sequence number
- 4 <32-bits> bad value
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- Window
- 1 0 Error
- 1 3 code
- 2 CARD16 sequence number
- 4 CARD32 bad resource id
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- Match
- 1 0 Error
- 1 8 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- Access
- 1 0 Error
- 1 10 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- Alloc
- 1 0 Error
- 1 11 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- Name
- 1 0 Error
- 1 15 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- Device
- 1 0 Error
- 1 CARD8 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- Event
- 1 0 Error
- 1 CARD8 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- Mode
- 1 0 Error
- 1 CARD8 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- Class
- 1 0 Error
- 1 CARD8 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
- .DE
- .ps +2
- Keyboards
- .ps
- .LP
- KEYCODE values are always greater than 7 (and less than 256).
- .LP
- KEYSYM values with the bit #x10000000 set are reserved as vendor-specific.
- .LP
- The names and encodings of the standard KEYSYM values are contained in
- .\"Appendix B, Keysym Encoding.
- appendix F.
- .LP
- .ps +2
- Pointers
- .ps
- .LP
- BUTTON values are numbered starting with one.
- .LP
- .ps +2
- Requests
- .ps
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GetExtensionVersion
- 1 CARD8 input extension opcode
- 1 1 GetExtensionVersion opcode
- 2 2+(n+p)/4 request length
- 2 n length of name
- 2 unused
- n STRING8 name
- p unused, p=pad(n)
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 1 GetExtensionVersion opcode
- 2 CARD16 sequence number
- 4 0 reply length
- 2 CARD16 major version
- 2 CARD16 minor version
- 1 BOOL present
- 19 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- ListInputDevices
- 1 CARD8 input extension opcode
- 1 2 ListInputDevices opcode
- 2 1 request length
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 2 ListInputDevices opcode
- 2 CARD16 sequence number
- 4 (n+p)/4 reply length
- 1 CARD8 number of input devices
- 23 unused
- n LISTofDEVICEINFO info for each input device
- p unused, p=pad(n)
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DEVICEINFO
- 4 CARD32 device type
- 1 CARD8 device id
- 1 CARD8 number of input classes this device reports
- 1 CARD8 device use
- 0 IsXPointer
- 1 IsXKeyboard
- 2 IsXExtensionDevice
- 1 unused
- n LISTofINPUTINFO input info for each input class
- m STR name
- p unused, p=pad(m)
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- INPUTINFO KEYINFO or BUTTONINFO or VALUATORINFO
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- KEYINFO
- 1 0 class id
- 1 8 length
- 1 KEYCODE minimum keycode
- 1 KEYCODE maximum keycode
- 2 CARD16 number of keys
- 2 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- BUTTONINFO
- 1 1 class id
- 1 4 length
- 2 CARD16 number of buttons
- .DE
- .LP
- .DS 0
- .TA .2i .75i 2.0i 3.0i
- .ta .2i .75i 2.0i 3.0i
- VALUATORINFO
- 1 2 class id
- 1 8+12n length
- 1 n number of axes
- 1 SETofDEVICEMODE mode
- 4 CARD32 size of motion buffer
- 12n LISTofAXISINFO valuator limits
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- AXISINFO
- 4 CARD32 resolution
- 4 CARD32 minimum value
- 4 CARD32 maximum value
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- OpenDevice
- 1 CARD8 input extension opcode
- 1 3 OpenDevice opcode
- 2 2 request length
- 1 CARD8 device id
- 3 unused
- .DE
- .DS 0
- .TA .2i .5i 1.5i 3.5i
- .ta .2i .5i 1.5i 3.5i
- =>
- 1 1 Reply
- 1 3 OpenDevice opcode
- 2 CARD16 sequence number
- 4 (n+p)/4 reply length
- 1 CARD8 number of input classes
- 23 unused
- n LISTofINPUTCLASSINFO input class information
- p unused, p=pad(n)
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- INPUTCLASSINFO
- 1 CARD8 input class id
- 0 KEY
- 1 BUTTON
- 2 VALUATOR
- 3 FEEDBACK
- 4 PROXIMITY
- 5 FOCUS
- 6 OTHER
- 1 CARD8 event type base code for this class
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- CloseDevice
- 1 CARD8 input extension opcode
- 1 4 CloseDevice opcode
- 2 2 request length
- 1 CARD8 device id
- 3 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- SetDeviceMode
- 1 CARD8 input extension opcode
- 1 5 SetDeviceMode opcode
- 2 2 request length
- 1 CARD8 device id
- 1 CARD8 mode
- 2 unused
- .DE
- .DS 0
- .TA .2i .5i 1.5i 3.5i
- .ta .2i .5i 1.5i 3.5i
- =>
- 1 1 Reply
- 1 5 SetDeviceMode opcode
- 2 CARD16 sequence number
- 4 0 reply length
- 1 CARD8 status
- 0 Success
- 1 AlreadyGrabbed
- 3 + first_error DeviceBusy
- 23 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- SelectExtensionEvent
- 1 CARD8 input extension opcode
- 1 6 SelectExtensionEvent opcode
- 2 3+n request length
- 4 Window event window
- 2 CARD16 count
- 2 unused
- 4n LISTofEVENTCLASS desired events
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GetSelectedExtensionEvents
- 1 CARD8 input extension opcode
- 1 7 GetSelectedExtensionEvents opcode
- 2 2 request length
- 4 Window event window
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 7 GetSelecteExtensionEvents opcode
- 2 CARD16 sequence number
- 4 n + m reply length
- 2 n this client count
- 2 m all clients count
- 20 unused
- 4n LISTofEVENTCLASS this client list
- 4m LISTofEVENTCLASS all clients list
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- ChangeDeviceDontPropagateList
- 1 CARD8 input extension opcode
- 1 8 ChangeDeviceDontPropagateList opcode
- 2 3+n request length
- 4 Window event window
- 2 n count of events
- 1 mode
- 0 AddToList
- 1 DeleteFromList
- 1 unused
- 4n LISTofEVENTCLASS desired events
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GetDeviceDontPropagateList
- 1 CARD8 input extension opcode
- 1 9 GetDeviceDontPropagateList opcode
- 2 2 request length
- 4 Window event window
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 9 GetDeviceDontPropagateList opcode
- 2 CARD16 sequence number
- 4 n reply length
- 2 n count of events
- 22 unused
- 4n LISTofEVENTCLASS don't propagate list
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GetDeviceMotionEvents
- 1 CARD8 input extension opcode
- 1 10 GetDeviceMotionEvents opcode
- 2 4 request length
- 4 TIMESTAMP start
- 0 CurrentTime
- 4 TIMESTAMP stop
- 0 CurrentTime
- 1 CARD8 device id
- 3 unused
- .DE
- .DS 0
- .TA .2i .5i 1.5i 3.5i
- .ta .2i .5i 1.5i 3.5i
- =>
- 1 1 Reply
- 1 10 GetDeviceMotionEvents opcode
- 2 CARD16 sequence number
- 4 (m+1)n reply length
- 4 n number of DEVICETIMECOORDs in events
- 1 m number of valuators per event
- 1 CARD8 mode of the device
- 0 Absolute
- 1 Relative
- 18 unused
- (4m+4)n LISTofDEVICETIMECOORD events
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DEVICETIMECOORD
- 4 TIMESTAMP time
- 4m LISTofINT32 valuators
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- ChangeKeyboardDevice
- 1 CARD8 input extension opcode
- 1 11 ChangeKeyboardDevice opcode
- 2 2 request length
- 1 CARD8 device id
- 3 unused
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 11 ChangeKeyboardDevice opcode
- 2 CARD16 sequence number
- 4 0 reply length
- 1 status
- 0 Success
- 1 AlreadyGrabbed
- 2 DeviceFrozen
- 23 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- ChangePointerDevice
- 1 CARD8 input extension opcode
- 1 12 ChangePointerDevice opcode
- 2 2 request length
- 1 CARD8 x-axis
- 1 CARD8 y-axis
- 1 CARD8 device id
- 1 unused
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 12 ChangePointerDevice opcode
- 2 CARD16 sequence number
- 4 0 reply length
- 1 status
- 0 Success
- 1 AlreadyGrabbed
- 2 DeviceFrozen
- 23 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GrabDevice
- 1 CARD8 input extension opcode
- 1 13 GrabDevice opcode
- 2 5+n request length
- 4 WINDOW grab-window
- 4 TIMESTAMP time
- 0 CurrentTime
- 2 n count of events
- 1 this-device-mode
- 0 Synchronous
- 1 Asynchronous
- 1 other-devices-mode
- 0 Synchronous
- 1 Asynchronous
- 1 BOOL owner-events
- 1 CARD8 device id
- 2 unused
- 4n LISTofEVENTCLASS event list
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 13 GrabDevice opcode
- 2 CARD16 sequence number
- 4 0 reply length
- 1 status
- 0 Success
- 1 AlreadyGrabbed
- 2 InvalidTime
- 3 NotViewable
- 4 Frozen
- 23 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- UngrabDevice
- 1 CARD8 input extension opcode
- 1 14 UngrabDevice opcode
- 2 3 request length
- 4 TIMESTAMP time
- 0 CurrentTime
- 1 CARD8 device id
- 3 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GrabDeviceKey
- 1 CARD8 input extension opcode
- 1 15 GrabDeviceKey opcode
- 2 5+n request length
- 4 WINDOW grab-window
- 2 n count of events
- 2 SETofKEYMASK modifiers
- #x8000 AnyModifier
- 1 CARD8 modifier device
- #x0FF UseXKeyboard
- 1 CARD8 grabbed device
- 1 KEYCODE key
- 0 AnyKey
- 1 this-device-mode
- 0 Synchronous
- 1 Asynchronous
- 1 other-devices-mode
- 0 Synchronous
- 1 Asynchronous
- 1 BOOL owner-events
- 2 unused
- 4n LISTofEVENTCLASS event list
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- UngrabDeviceKey
- 1 CARD8 input extension opcode
- 1 16 UngrabDeviceKey opcode
- 2 4 request length
- 4 WINDOW grab-window
- 2 SETofKEYMASK modifiers
- #x8000 AnyModifier
- 1 CARD8 modifier device
- #x0FF UseXKeyboard
- 1 KEYCODE key
- 0 AnyKey
- 1 CARD8 grabbed device
- 3 unused
-
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GrabDeviceButton
- 1 CARD8 input extension opcode
- 1 17 GrabDeviceButton opcode
- 2 5+n request length
- 4 WINDOW grab-window
- 1 CARD8 grabbed device
- 1 CARD8 modifier device
- #x0FF UseXKeyboard
- 2 n count of desired events
- 2 SETofKEYMASK modifiers
- 1 this-device-mode
- 0 Synchronous
- 1 Asynchronous
- 1 other-device-mode
- 0 Synchronous
- 1 Asynchronous
- 1 BUTTON button
- 0 AnyButton
- 1 BOOL owner-events
- #x8000 AnyModifier
- 2 unused
- 4n LISTofEVENTCLASS event list
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- UngrabDeviceButton
- 1 CARD8 input extension opcode
- 1 18 UngrabDeviceButton opcode
- 2 4 request length
- 4 WINDOW grab-window
- 2 SETofKEYMASK modifiers
- #x8000 AnyModifier
- 1 CARD8 modifier device
- #x0FF UseXKeyboard
- 1 BUTTON button
- 0 AnyButton
- 1 CARD8 grabbed device
- 3 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- AllowDeviceEvents
- 1 CARD8 input extension opcode
- 1 19 AllowDeviceEvents opcode
- 2 3 request length
- 4 TIMESTAMP time
- 0 CurrentTime
- 1 mode
- 0 AsyncThisDevice
- 1 SyncThisDevice
- 2 ReplayThisDevice
- 3 AsyncOtherDevices
- 4 AsyncAll
- 5 SyncAll
- 1 CARD8 device id
- 2 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GetDeviceFocus
- 1 CARD8 input extension opcode
- 1 20 GetDeviceFocus opcode
- 2 2 request length
- 1 CARD8 device
- 3 unused
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 20 GetDeviceFocus opcode
- 2 CARD16 sequence number
- 4 0 reply length
- 4 WINDOW focus
- 0 None
- 1 PointerRoot
- 3 FollowKeyboard
- 4 TIMESTAMP focus time
- 1 revert-to
- 0 None
- 1 PointerRoot
- 2 Parent
- 3 FollowKeyboard
- 15 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- SetDeviceFocus
- 1 CARD8 input extension opcode
- 1 21 SetDeviceFocus opcode
- 2 4 request length
- 4 WINDOW focus
- 0 None
- 1 PointerRoot
- 3 FollowKeyboard
- 4 TIMESTAMP time
- 0 CurrentTime
- 1 revert-to
- 0 None
- 1 PointerRoot
- 2 Parent
- 3 FollowKeyboard
- 1 CARD8 device
- 2 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GetFeedbackControl
- 1 CARD8 input extension opcode
- 1 22 GetFeedbackControl opcode
- 2 2 request length
- 1 CARD8 device id
- 3 unused
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 22 GetFeedbackControl opcode
- 2 CARD16 sequence number
- 4 m/4 reply length
- 2 n number of feedbacks supported
- 22 unused
- m LISTofFEEDBACKSTATE feedbacks
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- FEEDBACKSTATE KBDFEEDBACKSTATE, PTRFEEDBACKSTATE, INTEGERFEEDBACKSTATE,
- STRINGFEEDBACKSTATE, BELLFEEDBACKSTATE, or LEDFEEDBACKSTATE
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- KBDFEEDBACKSTATE
- 1 0 feedback class id
- 1 CARD8 id of this feedback
- 2 20 length
- 2 CARD16 pitch
- 2 CARD16 duration
- 4 CARD32 led_mask
- 4 CARD32 led_values
- 1 global_auto_repeat
- 0 Off
- 1 On
- 1 CARD8 click
- 1 CARD8 percent
- 1 unused
- 32 LISTofCARD8 auto_repeats
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- PTRFEEDBACKSTATE
- 1 0 feedback class id
- 1 CARD8 id of this feedback
- 2 12 length
- 2 unused
- 2 CARD16 acceleration-numerator
- 2 CARD16 acceleration-denominator
- 2 CARD16 threshold
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- INTEGERFEEDBACKSTATE
- 1 0 feedback class id
- 1 CARD8 id of this feedback
- 2 16 length
- 4 CARD32 resolution
- 4 INT32 minimum value
- 4 INT32 maximum value
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- STRINGFEEDBACKSTATE
- 1 1 feedback class id
- 1 CARD8 id of this feedback
- 2 4n+8 length
- 2 CARD16 max_symbols
- 2 n number of keysyms supported
- 4n LISTofKEYSYM key symbols supported
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- BELLFEEDBACKSTATE
- 1 1 feedback class id
- 1 CARD8 id of this feedback
- 2 12 length
- 1 CARD8 percent
- 3 unused
- 2 CARD16 pitch
- 2 CARD16 duration
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- LEDFEEDBACKSTATE
- 1 1 feedback class id
- 1 CARD8 id of this feedback
- 2 12 length
- 4 CARD32 led_mask
- 4 BITMASK led_values
- #x0001 On
- #x0002 Off
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- ChangeFeedbackControl
- 1 CARD8 input extension opcode
- 1 23 ChangeFeedbackControl opcode
- 2 3+n/4 request length
- 4 BITMASK value-mask (has n bits set to 1)
- #x0001 keyclick-percent
- #x0002 bell-percent
- #x0004 bell-pitch
- #x0008 bell-duration
- #x0010 led
- #x0020 led-mode
- #x0040 key
- #x0080 auto-repeat-mode
- #x0001 string
- #x0001 integer
- #x0001 acceleration-numerator
- #x0002 acceleration-denominator
- #x0004 acceleration-threshold
- 1 CARD8 device id
- 1 CARD8 feedback class id
- 2 unused
- n FEEDBACKCLASS
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- FEEDBACKCLASS KBDFEEDBACKCTL, PTRFEEDBACKCTL, INTEGERFEEDBACKCTL,
- STRINGFEEDBACKCTL, BELLFEEDBACKCTL, or LEDFEEDBACKCTL
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- KBDFEEDBACKCTL
- 1 0 feedback class id
- 1 CARD8 id of this feedback
- 2 20 length
- 1 KEYCODE key
- 1 auto-repeat-mode
- 0 Off
- 1 On
- 2 Default
- 1 INT8 key-click-percent
- 1 INT8 bell-percent
- 2 INT16 bell-pitch
- 2 INT16 bell-duration
- 4 CARD32 led_mask
- 4 CARD32 led_values
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- PTRFEEDBACKCTL
- 1 1 feedback class id
- 1 CARD8 id of this feedback
- 2 12 length
- 2 unused
- 2 INT16 numerator
- 2 INT16 denominator
- 2 INT16 threshold
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- STRINGCTL
- 1 2 feedback class id
- 1 CARD8 id of this feedback
- 2 4n+8 length
- 2 unused
- 2 n number of keysyms to display
- 4n LISTofKEYSYM list of key symbols to display
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- INTEGERCTL
- 1 3 feedback class id
- 1 CARD8 id of this feedback
- 2 8 length
- 4 INT32 integer to display
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- LEDCTL
- 1 4 feedback class id
- 1 CARD8 id of this feedback
- 2 12 length
- 4 CARD32 led_mask
- 4 BITMASK led_values
- #x0001 On
- #x0002 Off
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- BELLCTL
- 1 5 feedback class id
- 1 CARD8 id of this feedback
- 2 8 length
- 1 INT8 percent
- 3 unused
- 2 INT16 pitch
- 2 INT16 duration
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GetDeviceKeyMapping
- 1 CARD8 input extension opcode
- 1 24 GetDeviceKeyMapping opcode
- 2 2 request length
- 1 CARD8 device
- 1 KEYCODE first-keycode
- 1 CARD8 count
- 1 unused
- .DE
- .DS 0
- .TA .2i .75i 2.0i 3.0i
- .ta .2i .75i 2.0i 3.0i
- =>
- 1 1 Reply
- 1 24 GetDeviceKeyMapping opcode
- 2 CARD16 sequence number
- 4 nm reply length (m = count field from the request)
- 1 n keysyms-per-keycode
- 23 unused
- 4nm LISTofKEYSYM keysyms
- .DE
- .LP
- .DS 0
- .TA .2i .75i 2.0i 3.0i
- .ta .2i .75i 2.0i 3.0i
- ChangeDeviceKeyMapping
- 1 CARD8 input extension opcode
- 1 25 ChangeDeviceKeyMapping opcode
- 2 2+nm request length
- 1 CARD8 device
- 1 KEYCODE first-keycode
- 1 m keysyms-per-keycode
- 1 n keycode-count
- 4nm LISTofKEYSYM keysyms
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GetDeviceModifierMapping
- 1 CARD8 input extension opcode
- 1 26 GetDeviceModifierMapping opcode
- 2 2 request length
- 1 CARD8 device
- 3 unused
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 26 GetDeviceModifierMapping opcode
- 2 CARD16 sequence number
- 4 2n reply length
- 1 n keycodes-per-modifier
- 23 unused
- 8n LISTofKEYCODE keycodes
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- SetDeviceModifierMapping
- 1 CARD8 input extension opcode
- 1 27 SetDeviceModifier opcode
- 2 2+2n request length
- 1 CARD8 device
- 1 n keycodes-per-modifier
- 2 unused
- 8n LISTofKEYCODE keycodes
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 27 SetDeviceModifierMapping opcode
- 2 CARD16 sequence number
- 4 0 reply length
- 1 status
- 0 Success
- 1 Busy
- 2 Failed
- 23 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GetDeviceButtonMapping
- 1 CARD8 input extension opcode
- 1 28 GetDeviceButtonMapping opcode
- 2 2 request length
- 1 CARD8 device
- 3 unused
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 28 GetDeviceButtonMapping opcode
- 2 CARD16 sequence number
- 4 (n+p)/4 reply length
- 1 n number of elements in map list
- 23 unused
- n LISTofCARD8 map
- p unused, p=pad(n)
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- SetDeviceButtonMapping
- 1 CARD8 input extension opcode
- 1 29 SetDeviceButtonMapping opcode
- 2 2+(n+p)/4 request length
- 1 CARD8 device
- 1 n length of map
- 2 unused
- n LISTofCARD8 map
- p unused, p=pad(n)
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 29 SetDeviceButtonMapping opcode
- 2 CARD16 sequence number
- 4 0 reply length
- 1 status
- 0 Success
- 1 Busy
- 23 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- QueryDeviceState
- 1 CARD8 input extension opcode
- 1 30 QueryDeviceState opcode
- 2 2 request length
- 1 CARD8 device
- 3 unused
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- =>
- 1 1 Reply
- 1 30 QueryDeviceState opcode
- 2 CARD16 sequence number
- 4 m/4 reply length
- 1 n number of input classes
- 23 unused
- m LISTofINPUTSTATE
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- INPUTSTATE KEYSTATE or BUTTONSTATE or VALUATORSTATE
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- KEYSTATE
- 1 CARD8 key input class id
- 1 36 length
- 1 CARD8 num_keys
- 1 unused
- 32 LISTofCARD8 status of keys
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- BUTTONSTATE
- 1 CARD8 button input class id
- 1 36 length
- 1 CARD8 num_buttons
- 1 unused
- 32 LISTofCARD8 status of buttons
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- VALUATORSTATE
- 1 CARD8 valuator input class id
- 1 4n + 4 length
- 1 n number of valuators
- 1 mode
- #x01 DeviceMode (0 = Relative, 1 = Absolute)
- #x02 ProximityState (0 = InProximity, 1 = OutOfProximity)
- 4n LISTofCARD32 status of valuators
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- SendExtensionEvent
- 1 CARD8 input extension opcode
- 1 31 SendExtensionEvent opcode
- 2 4 + 8n + m request length
- 4 WINDOW destination
- 1 CARD8 device
- 1 BOOL propagate
- 2 CARD16 eventclass count
- 1 CARD8 num_events
- 3 unused
- 32n LISTofEVENTS events to send
- 4m LISTofEVENTCLASS desired events
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceBell
- 1 CARD8 input extension opcode
- 1 32 DeviceBell opcode
- 2 2 request length
- 1 CARD8 device id
- 1 CARD8 feedback id
- 1 CARD8 feedback class
- 1 INT8 percent
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- SetDeviceValuators
- 1 CARD8 input extension opcode
- 1 33 SetDeviceValuators opcode
- 2 2 + n request length
- 1 CARD8 device id
- 1 CARD8 first valuator
- 1 n number of valuators
- 1 unused
- 4n LISTofINT32 valuator values to set
- .DE
- .DS 0
- .TA .2i .5i 1.5i 3.5i
- .ta .2i .5i 1.5i 3.5i
- =>
- 1 1 Reply
- 1 33 SetDeviceValuators opcode
- 2 CARD16 sequence number
- 4 0 reply length
- 1 CARD8 status
- 0 Success
- 1 AlreadyGrabbed
- 23 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- GetDeviceControl
- 1 CARD8 input extension opcode
- 1 34 GetDeviceControl opcode
- 2 2 request length
- 2 CARD16 device control type
- 1 CARD8 device id
- 1 unused
- .DE
- .DS 0
- .TA .2i .5i 1.5i 3.5i
- .ta .2i .5i 1.5i 3.5i
- =>
- 1 1 Reply
- 1 34 GetDeviceControl opcode
- 2 CARD16 sequence number
- 4 n/4 reply length
- 1 CARD8 status
- 0 Success
- 1 AlreadyGrabbed
- 3 + first_error DeviceBusy
- 23 unused
- n DEVICESTATE
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DEVICESTATE DEVICERESOLUTIONSTATE
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DEVICERESOLUTIONSTATE
- 2 0 control type
- 2 8 + 12n length
- 4 n num_valuators
- 4n LISTOfCARD32 resolution values
- 4n LISTOfCARD32 resolution min_values
- 4n LISTOfCARD32 resolution max_values
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- .LP
- ChangeDeviceControl
- 1 CARD8 input extension opcode
- 1 35 ChangeDeviceControl opcode
- 2 2+n/4 request length
- 2 CARD16 control type
- 1 CARD8 device id
- 1 unused
- n DEVICECONTROL
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DEVICECONTROL DEVICERESOLUTIONCTL
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DEVICERESOLUTIONCTL
- 2 0 control type
- 2 8 + 4n length
- 1 CARD8 first_valuator
- 1 n num_valuators
- 2 unused
- 4n LISTOfCARD32 resolution values
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 3.5i
- .ta .2i .5i 1.5i 3.5i
- =>
- 1 1 Reply
- 1 35 ChangeDeviceControl opcode
- 2 CARD16 sequence number
- 4 0 reply length
- 1 CARD8 status
- 0 Success
- 1 AlreadyGrabbed
- 3 + first_error DeviceBusy
- 23 unused
- .DE
- .ps +2
- Events
- .ps
- .LP
- DeviceKeyPress, DeviceKeyRelease, DeviceButtonPress, DeviceButtonRelease,
- ProximityIn, ProximityOut, and DeviceStateNotify events may be followed by
- zero or more DeviceValuator events. DeviceMotionNotify events will be
- followed by one or more DeviceValuator events.
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceValuator
- 1 CARD8 code
- 1 CARD8 device id
- 2 CARD16 sequence number
- 2 SETofKEYBUTMASK state
- 1 n number of valuators this device reports
- 1 m number of first valuator in this event
- 24 LISTofINT32 valuators
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceKeyPress
- 1 CARD8 code
- 1 KEYCODE detail
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 4 WINDOW root
- 4 WINDOW event
- 4 WINDOW child
- 0 None
- 2 INT16 root-x
- 2 INT16 root-y
- 2 INT16 event-x
- 2 INT16 event-y
- 2 SETofKEYBUTMASK state
- 1 BOOL same-screen
- 1 CARD8 device id
- #x80 MORE_EVENTS follow
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceKeyRelease
- 1 CARD8 code
- 1 KEYCODE detail
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 4 WINDOW root
- 4 WINDOW event
- 4 WINDOW child
- 0 None
- 2 INT16 root-x
- 2 INT16 root-y
- 2 INT16 event-x
- 2 INT16 event-y
- 2 SETofKEYBUTMASK state
- 1 BOOL same-screen
- 1 CARD8 device id
- #x80 MORE_EVENTS follow
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceButtonPress
- 1 CARD8 code
- 1 BUTTON detail
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 4 WINDOW root
- 4 WINDOW event
- 4 WINDOW child
- 0 None
- 2 INT16 root-x
- 2 INT16 root-y
- 2 INT16 event-x
- 2 INT16 event-y
- 2 SETofKEYBUTMASK state
- 1 BOOL same-screen
- 1 CARD8 device id
- #x80 MORE_EVENTS follow
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceButtonRelease
- 1 CARD8 code
- 1 BUTTON detail
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 4 WINDOW root
- 4 WINDOW event
- 4 WINDOW child
- 0 None
- 2 INT16 root-x
- 2 INT16 root-y
- 2 INT16 event-x
- 2 INT16 event-y
- 2 SETofKEYBUTMASK state
- 1 BOOL same-screen
- 1 CARD8 device id
- #x80 MORE_EVENTS follow
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceMotionNotify
- 1 CARD8 code
- 1 detail
- 0 Normal
- 1 Hint
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 4 WINDOW root
- 4 WINDOW event
- 4 WINDOW child
- 0 None
- 2 INT16 root-x
- 2 INT16 root-y
- 2 INT16 event-x
- 2 INT16 event-y
- 2 SETofKEYBUTMASK state
- 1 BOOL same-screen
- 1 CARD8 device id
- #x80 MORE_EVENTS follow
- .DE
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceFocusIn
- 1 CARD8 code
- 1 detail
- 0 Ancestor
- 1 Virtual
- 2 Inferior
- 3 Nonlinear
- 4 NonlinearVirtual
- 5 Pointer
- 6 PointerRoot
- 7 None
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 4 WINDOW event
- 1 mode
- 0 Normal
- 1 Grab
- 2 Ungrab
- 3 WhileGrabbed
- 1 CARD8 device id
- 18 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceFocusOut
- 1 CARD8 code
- 1 detail
- 0 Ancestor
- 1 Virtual
- 2 Inferior
- 3 Nonlinear
- 4 NonlinearVirtual
- 5 Pointer
- 6 PointerRoot
- 7 None
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 4 WINDOW event
- 1 mode
- 0 Normal
- 1 Grab
- 2 Ungrab
- 3 WhileGrabbed
- 1 CARD8 device id
- 18 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- ProximityIn
- 1 CARD8 code
- 1 unused
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 4 WINDOW root
- 4 WINDOW event
- 4 WINDOW child
- 0 None
- 2 INT16 root-x
- 2 INT16 root-y
- 2 INT16 event-x
- 2 INT16 event-y
- 2 SETofKEYBUTMASK state
- 1 BOOL same-screen
- 1 CARD8 device id
- #x80 MORE_EVENTS follow
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- ProximityOut
- 1 CARD8 code
- 1 unused
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 4 WINDOW root
- 4 WINDOW event
- 4 WINDOW child
- 0 None
- 2 INT16 root-x
- 2 INT16 root-y
- 2 INT16 event-x
- 2 INT16 event-y
- 2 SETofKEYBUTMASK state
- 1 BOOL same-screen
- 1 CARD8 device id
- #x80 MORE_EVENTS follow
- .DE
- .LP
- DeviceStateNotify events may be immediately followed by zero or one
- DeviceKeyStateNotify and/ or zero or more DeviceValuator events.
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceStateNotify
- 1 CARD8 code
- 1 CARD8 device id
- #x80 MORE_EVENTS follow
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 1 CARD8 num_keys
- 1 CARD8 num_buttons
- 1 CARD8 num_valuators
- 1 CARD8 valuator mode and input classes reported
- #x01 reporting keys
- #x02 reporting buttons
- #x04 reporting valuators
- #x40 device mode (0 = Relative, 1 = Absolute)
- #x80 proximity state (0 = InProximity, 1 = OutOfProximity)
- 4 LISTofCARD8 first 32 keys (if reported)
- 4 LISTofCARD8 first 32 buttons (if reported)
- 12 LISTofCARD32 first 3 valuators (if reported)
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceKeyStateNotify
- 1 CARD8 code
- 1 CARD8 device id
- #x80 MORE_EVENTS follow
- 2 CARD16 sequence number
- 28 LISTofCARD8 state of keys 33-255
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceButtonStateNotify
- 1 CARD8 code
- 1 CARD8 device id
- #x80 MORE_EVENTS follow
- 2 CARD16 sequence number
- 28 LISTofCARD8 state of buttons 33-255
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceValuator
- 1 CARD8 code
- 1 CARD8 device id
- 2 CARD16 sequence number
- 2 SETofKEYBUTMASK state
- 1 n number of valuators this device reports
- 1 n number of first valuator in this event
- 24 LISTofINT32 valuators
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- DeviceMappingNotify
- 1 CARD8 code
- 1 CARD8 device id
- 2 CARD16 sequence number
- 1 request
- 0 MappingModifier
- 1 MappingKeyboard
- 2 MappingPointer
- 1 KEYCODE first-keycode
- 1 CARD8 count
- 1 unused
- 4 TIMESTAMP time
- 20 unused
- .DE
- .LP
- .DS 0
- .TA .2i .5i 1.5i 2.5i
- .ta .2i .5i 1.5i 2.5i
- ChangeDeviceNotify
- 1 CARD8 code
- 1 CARD8 id of device specified on change request
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 1 request
- 0 NewPointer
- 1 NewKeyboard
- 23 unused
- .DE
- .bp
- .PX
-