1f1ee322dSmrg<appendix id="Input_Extension_Protocol_Encoding"> 237eb1ca1Smrg<title>Input Extension Protocol Encoding</title> 337eb1ca1Smrg<para> 437eb1ca1Smrg<function>Syntactic Conventions</function> 537eb1ca1Smrg</para> 637eb1ca1Smrg<para> 737eb1ca1Smrg<!-- .LP --> 837eb1ca1SmrgAll numbers are in decimal, 937eb1ca1Smrgunless prefixed with #x, in which case they are in hexadecimal (base 16). 1037eb1ca1Smrg</para> 1137eb1ca1Smrg<para> 1237eb1ca1Smrg<!-- .LP --> 1337eb1ca1SmrgThe general syntax used to describe requests, replies, errors, events, and 1437eb1ca1Smrgcompound types is: 1537eb1ca1Smrg</para> 1637eb1ca1Smrg<para> 1737eb1ca1Smrg<!-- .LP --> 1837eb1ca1Smrg<literallayout class="monospaced"> 1937eb1ca1Smrg<function>NameofThing</function> 2037eb1ca1Smrg encode-form 2137eb1ca1Smrg ... 2237eb1ca1Smrg encode-form 2337eb1ca1Smrg</literallayout> 2437eb1ca1SmrgEach encode-form describes a single component. 2537eb1ca1Smrg</para> 2637eb1ca1Smrg<para> 2737eb1ca1Smrg<!-- .LP --> 2837eb1ca1SmrgFor components described in the protocol as: 2937eb1ca1Smrg</para> 3037eb1ca1Smrg<para> 3137eb1ca1Smrg<!-- .LP --> 3237eb1ca1Smrg<literallayout class="monospaced"> 3337eb1ca1Smrgname: TYPE 3437eb1ca1Smrg</literallayout> 3537eb1ca1Smrgthe encode-form is: 3637eb1ca1Smrg</para> 3737eb1ca1Smrg<para> 3837eb1ca1Smrg<!-- .LP --> 3937eb1ca1Smrg<literallayout class="monospaced"> 4037eb1ca1Smrg<!-- .TA 1i 1.5i 2.5i --> 4137eb1ca1Smrg<!-- .ta 1i 1.5i 2.5i --> 4237eb1ca1SmrgN TYPE name 4337eb1ca1Smrg</literallayout> 4437eb1ca1SmrgN is the number of bytes occupied in the data stream, 4537eb1ca1Smrgand TYPE is the interpretation of those bytes. 4637eb1ca1SmrgFor example, 4737eb1ca1Smrg</para> 4837eb1ca1Smrg<para> 4937eb1ca1Smrg<!-- .LP --> 5037eb1ca1Smrg<literallayout class="monospaced"> 5137eb1ca1Smrg<!-- .TA 1i 1.5i --> 5237eb1ca1Smrg<!-- .ta 1i 1.5i --> 5337eb1ca1Smrgdepth: CARD8 5437eb1ca1Smrg</literallayout> 5537eb1ca1Smrgbecomes: 5637eb1ca1Smrg</para> 5737eb1ca1Smrg<para> 5837eb1ca1Smrg<!-- .LP --> 5937eb1ca1Smrg<literallayout class="monospaced"> 6037eb1ca1Smrg<!-- .TA 1i 1.5i 2.5i --> 6137eb1ca1Smrg<!-- .ta 1i 1.5i 2.5i --> 6237eb1ca1Smrg1 CARD8 depth 6337eb1ca1Smrg</literallayout> 6437eb1ca1SmrgFor components with a static numeric value the encode-form is: 6537eb1ca1Smrg</para> 6637eb1ca1Smrg<para> 6737eb1ca1Smrg<!-- .LP --> 6837eb1ca1Smrg<literallayout class="monospaced"> 6937eb1ca1Smrg<!-- .TA 1i 1.5i 2.5i --> 7037eb1ca1Smrg<!-- .ta 1i 1.5i 2.5i --> 7137eb1ca1SmrgN value name 7237eb1ca1Smrg</literallayout> 7337eb1ca1SmrgThe value is always interpreted as an N-byte unsigned integer. 7437eb1ca1SmrgFor example, 7537eb1ca1Smrgthe first two bytes of a Window error are always zero (indicating an 7637eb1ca1Smrgerror in general) and three (indicating the Window error in particular): 7737eb1ca1Smrg</para> 7837eb1ca1Smrg<para> 7937eb1ca1Smrg<!-- .LP --> 8037eb1ca1Smrg<literallayout class="monospaced"> 8137eb1ca1Smrg<!-- .TA 1i 1.5i 2.5i --> 8237eb1ca1Smrg<!-- .ta 1i 1.5i 2.5i --> 8337eb1ca1Smrg1 0 Error 8437eb1ca1Smrg1 3 code 8537eb1ca1Smrg</literallayout> 8637eb1ca1SmrgFor components described in the protocol as: 8737eb1ca1Smrg</para> 8837eb1ca1Smrg<para> 8937eb1ca1Smrg<!-- .LP --> 9037eb1ca1Smrg<literallayout class="monospaced"> 9137eb1ca1Smrgname: <function>{Name1, ..., NameI}</function> 9237eb1ca1Smrg</literallayout> 9337eb1ca1Smrg</para> 9437eb1ca1Smrg<para> 9537eb1ca1Smrg<!-- .LP --> 9637eb1ca1Smrgthe encode-form is: 9737eb1ca1Smrg</para> 9837eb1ca1Smrg<para> 9937eb1ca1Smrg<!-- .LP --> 10037eb1ca1Smrg<literallayout class="monospaced"> 10137eb1ca1Smrg<!-- .TA 1i 1.5i 2.5i --> 10237eb1ca1Smrg<!-- .ta 1i 1.5i 2.5i --> 10337eb1ca1SmrgN name 10437eb1ca1Smrg value1 Name1 10537eb1ca1Smrg ... 10637eb1ca1Smrg valueI NameI 10737eb1ca1Smrg</literallayout> 10837eb1ca1SmrgThe value is always interpreted as an N-byte unsigned integer. 10937eb1ca1SmrgNote that the size of N is sometimes larger than that strictly required 11037eb1ca1Smrgto encode the values. 11137eb1ca1SmrgFor example: 11237eb1ca1Smrg</para> 11337eb1ca1Smrg<para> 11437eb1ca1Smrg<!-- .LP --> 11537eb1ca1Smrg<literallayout class="monospaced"> 11637eb1ca1Smrgclass: <function>{InputOutput, InputOnly, CopyFromParent}</function> 11737eb1ca1Smrg</literallayout> 11837eb1ca1Smrg</para> 11937eb1ca1Smrg<para> 12037eb1ca1Smrg<!-- .LP --> 12137eb1ca1Smrgbecomes: 12237eb1ca1Smrg</para> 12337eb1ca1Smrg<para> 12437eb1ca1Smrg<!-- .LP --> 12537eb1ca1Smrg<literallayout class="monospaced"> 12637eb1ca1Smrg<!-- .TA 1i 1.5i 2.5i 3i --> 12737eb1ca1Smrg<!-- .ta 1i 1.5i 2.5i 3i --> 12837eb1ca1Smrg2 class 12937eb1ca1Smrg 0 CopyFromParent 13037eb1ca1Smrg 1 InputOutput 13137eb1ca1Smrg 2 InputOnly 13237eb1ca1Smrg</literallayout> 13337eb1ca1SmrgFor components described in the protocol as: 13437eb1ca1Smrg</para> 13537eb1ca1Smrg<para> 13637eb1ca1Smrg<!-- .LP --> 13737eb1ca1Smrg<literallayout class="monospaced"> 13837eb1ca1SmrgNAME: TYPE or <function>Alternative1 ... or AlternativeI</function> 13937eb1ca1Smrg</literallayout> 14037eb1ca1Smrg</para> 14137eb1ca1Smrg<para> 14237eb1ca1Smrg<!-- .LP --> 14337eb1ca1Smrgthe encode-form is: 14437eb1ca1Smrg</para> 14537eb1ca1Smrg<para> 14637eb1ca1Smrg<!-- .LP --> 14737eb1ca1Smrg<literallayout class="monospaced"> 14837eb1ca1Smrg<!-- .TA 1i 1.5i 2i 2.5i 3i --> 14937eb1ca1Smrg<!-- .ta 1i 1.5i 2i 2.5i 3i --> 15037eb1ca1SmrgN TYPE NAME 15137eb1ca1Smrg value1 Alternative1 15237eb1ca1Smrg ... 15337eb1ca1Smrg valueI AlternativeI 15437eb1ca1Smrg</literallayout> 15537eb1ca1SmrgThe alternative values are guaranteed not to conflict with the encoding 15637eb1ca1Smrgof TYPE. 15737eb1ca1SmrgFor example: 15837eb1ca1Smrg</para> 15937eb1ca1Smrg<para> 16037eb1ca1Smrg<!-- .LP --> 16137eb1ca1Smrg<literallayout class="monospaced"> 16237eb1ca1Smrgdestination: WINDOW or <function>PointerWindow</function> or <function>InputFocus</function> 16337eb1ca1Smrg</literallayout> 16437eb1ca1Smrg</para> 16537eb1ca1Smrg<para> 16637eb1ca1Smrg<!-- .LP --> 16737eb1ca1Smrgbecomes: 16837eb1ca1Smrg</para> 16937eb1ca1Smrg<para> 17037eb1ca1Smrg<!-- .LP --> 17137eb1ca1Smrg<literallayout class="monospaced"> 17237eb1ca1Smrg<!-- .TA 1i 1.5i 2.5i --> 17337eb1ca1Smrg<!-- .ta 1i 1.5i 2.5i --> 17437eb1ca1Smrg4 WINDOW destination 17537eb1ca1Smrg 0 PointerWindow 17637eb1ca1Smrg 1 InputFocus 17737eb1ca1Smrg</literallayout> 17837eb1ca1SmrgFor components described in the protocol as: 17937eb1ca1Smrg</para> 18037eb1ca1Smrg<para> 18137eb1ca1Smrg<!-- .LP --> 18237eb1ca1Smrg<literallayout class="monospaced"> 18337eb1ca1Smrg<!-- .TA 1i 1.5i --> 18437eb1ca1Smrg<!-- .ta 1i 1.5i --> 18537eb1ca1Smrgvalue-mask: BITMASK 18637eb1ca1Smrg</literallayout> 18737eb1ca1Smrgthe encode-form is: 18837eb1ca1Smrg</para> 18937eb1ca1Smrg<para> 19037eb1ca1Smrg<!-- .LP --> 19137eb1ca1Smrg<literallayout class="monospaced"> 19237eb1ca1Smrg<!-- .TA 1i 1.5i 2i 2.5i --> 19337eb1ca1Smrg<!-- .ta 1i 1.5i 2i 2.5i --> 19437eb1ca1SmrgN BITMASK value-mask 19537eb1ca1Smrg mask1 mask-name1 19637eb1ca1Smrg ... 19737eb1ca1Smrg maskI mask-nameI 19837eb1ca1Smrg</literallayout> 19937eb1ca1SmrgThe individual bits in the mask are specified and named, 20037eb1ca1Smrgand N is 2 or 4. 20137eb1ca1SmrgThe most-significant bit in a BITMASK is reserved for use in defining 20237eb1ca1Smrgchained (multiword) bitmasks, as extensions augment existing core requests. 20337eb1ca1SmrgThe precise interpretation of this bit is not yet defined here, 20437eb1ca1Smrgalthough a probable mechanism is that a 1-bit indicates that another N bytes 20537eb1ca1Smrgof bitmask follows, with bits within the overall mask still interpreted 20637eb1ca1Smrgfrom least-significant to most-significant with an N-byte unit, with N-byte units 20737eb1ca1Smrginterpreted in stream order, and with the overall mask being byte-swapped 20837eb1ca1Smrgin individual N-byte units. 20937eb1ca1Smrg</para> 21037eb1ca1Smrg<para> 21137eb1ca1Smrg<!-- .LP --> 21237eb1ca1SmrgFor LISTofVALUE encodings, the request is followed by a section of the form: 21337eb1ca1Smrg</para> 21437eb1ca1Smrg<para> 21537eb1ca1Smrg<!-- .LP --> 21637eb1ca1Smrg<literallayout class="monospaced"> 21737eb1ca1Smrg<!-- .TA 1i 1.5i --> 21837eb1ca1Smrg<!-- .ta 1i 1.5i --> 21937eb1ca1SmrgVALUEs 22037eb1ca1Smrg encode-form 22137eb1ca1Smrg ... 22237eb1ca1Smrg encode-form 22337eb1ca1Smrg</literallayout> 22437eb1ca1Smrglisting an encode-form for each VALUE. 22537eb1ca1SmrgThe NAME in each encode-form keys to the corresponding BITMASK bit. 22637eb1ca1SmrgThe encoding of a VALUE always occupies four bytes, 22737eb1ca1Smrgbut the number of bytes specified in the encoding-form indicates how 22837eb1ca1Smrgmany of the least-significant bytes are actually used; 22937eb1ca1Smrgthe remaining bytes are unused and their values do not matter. 23037eb1ca1Smrg</para> 23137eb1ca1Smrg<para> 23237eb1ca1Smrg<!-- .LP --> 23337eb1ca1SmrgIn various cases, the number of bytes occupied by a component will be specified 23437eb1ca1Smrgby a lowercase single-letter variable name instead of a specific numeric 23537eb1ca1Smrgvalue, and often some other component will have its value specified as a 23637eb1ca1Smrgsimple numeric expression involving these variables. 23737eb1ca1SmrgComponents specified with such expressions are always interpreted 23837eb1ca1Smrgas unsigned integers. 23937eb1ca1SmrgThe scope of such variables is always just the enclosing request, reply, 24037eb1ca1Smrgerror, event, or compound type structure. 24137eb1ca1SmrgFor example: 24237eb1ca1Smrg</para> 24337eb1ca1Smrg<para> 24437eb1ca1Smrg<!-- .LP --> 24537eb1ca1Smrg<literallayout class="monospaced"> 24637eb1ca1Smrg<!-- .TA 1i 1.5i 2i 2.5i --> 24737eb1ca1Smrg<!-- .ta 1i 1.5i 2i 2.5i --> 24837eb1ca1Smrg2 3+n request length 24937eb1ca1Smrg4n LISTofPOINT points 25037eb1ca1Smrg</literallayout> 25137eb1ca1SmrgFor unused bytes (the values of the bytes are undefined and do not matter), 25237eb1ca1Smrgthe encode-form is: 25337eb1ca1Smrg</para> 25437eb1ca1Smrg<para> 25537eb1ca1Smrg<!-- .LP --> 25637eb1ca1Smrg<literallayout class="monospaced"> 25737eb1ca1Smrg<!-- .TA 1i 1.5i 2i 2.5i --> 25837eb1ca1Smrg<!-- .ta 1i 1.5i 2i 2.5i --> 25937eb1ca1SmrgN unused 26037eb1ca1Smrg</literallayout> 26137eb1ca1SmrgIf the number of unused bytes is variable, the encode-form typically is: 26237eb1ca1Smrg</para> 26337eb1ca1Smrg<para> 26437eb1ca1Smrg<!-- .LP --> 26537eb1ca1Smrg<literallayout class="monospaced"> 26637eb1ca1Smrg<!-- .TA 1i 1.5i 2i 2.5i --> 26737eb1ca1Smrg<!-- .ta 1i 1.5i 2i 2.5i --> 26837eb1ca1Smrgp unused, p=pad(E) 26937eb1ca1Smrg</literallayout> 27037eb1ca1Smrgwhere E is some expression, 27137eb1ca1Smrgand pad(E) is the number of bytes needed to round E up to a multiple of four. 27237eb1ca1Smrg</para> 27337eb1ca1Smrg<para> 27437eb1ca1Smrg<!-- .LP --> 27537eb1ca1Smrg<literallayout class="monospaced"> 27637eb1ca1Smrg<!-- .TA 1i 1.5i 2i 2.5i --> 27737eb1ca1Smrg<!-- .ta 1i 1.5i 2i 2.5i --> 27837eb1ca1Smrgpad(E) = (4 - (E mod 4)) mod 4 27937eb1ca1Smrg</literallayout> 28037eb1ca1Smrg<!-- .ps +2 --> 28137eb1ca1Smrg<function>Common Types</function> 28237eb1ca1Smrg<!-- .ps --> 28337eb1ca1Smrg</para> 28437eb1ca1Smrg<para> 28537eb1ca1Smrg<!-- .LP --> 28637eb1ca1SmrgLISTofFOO 28737eb1ca1Smrg</para> 28837eb1ca1Smrg<itemizedlist> 28937eb1ca1Smrg <listitem> 29037eb1ca1Smrg <para> 29137eb1ca1SmrgIn this document the LISTof notation strictly means some number of repetitions 29237eb1ca1Smrgof the FOO encoding; 29337eb1ca1Smrgthe actual length of the list is encoded elsewhere. 29437eb1ca1Smrg </para> 29537eb1ca1Smrg </listitem> 29637eb1ca1Smrg</itemizedlist> 29737eb1ca1Smrg<para> 29837eb1ca1Smrg<!-- .LP --> 29937eb1ca1SmrgSETofFOO 30037eb1ca1Smrg</para> 30137eb1ca1Smrg<itemizedlist> 30237eb1ca1Smrg <listitem> 30337eb1ca1Smrg <para> 30437eb1ca1SmrgA set is always represented by a bitmask, with a 1-bit indicating presence in 30537eb1ca1Smrgthe set. 30637eb1ca1Smrg </para> 30737eb1ca1Smrg </listitem> 30837eb1ca1Smrg</itemizedlist> 30937eb1ca1Smrg<para> 31037eb1ca1Smrg<!-- .LP --> 31137eb1ca1SmrgBITMASK: CARD32 31237eb1ca1Smrg</para> 31337eb1ca1Smrg<para> 31437eb1ca1Smrg<!-- .LP --> 31537eb1ca1SmrgWINDOW: CARD32 31637eb1ca1Smrg</para> 31737eb1ca1Smrg<para> 31837eb1ca1Smrg<!-- .LP --> 31937eb1ca1SmrgBYTE: 8-bit value 32037eb1ca1Smrg</para> 32137eb1ca1Smrg<para> 32237eb1ca1Smrg<!-- .LP --> 32337eb1ca1SmrgINT8: 8-bit signed integer 32437eb1ca1Smrg</para> 32537eb1ca1Smrg<para> 32637eb1ca1Smrg<!-- .LP --> 32737eb1ca1SmrgINT16: 16-bit signed integer 32837eb1ca1Smrg</para> 32937eb1ca1Smrg<para> 33037eb1ca1Smrg<!-- .LP --> 33137eb1ca1SmrgINT32: 32-bit signed integer 33237eb1ca1Smrg</para> 33337eb1ca1Smrg<para> 33437eb1ca1Smrg<!-- .LP --> 33537eb1ca1SmrgCARD8: 8-bit unsigned integer 33637eb1ca1Smrg</para> 33737eb1ca1Smrg<para> 33837eb1ca1Smrg<!-- .LP --> 33937eb1ca1SmrgCARD16: 16-bit unsigned integer 34037eb1ca1Smrg</para> 34137eb1ca1Smrg<para> 34237eb1ca1Smrg<!-- .LP --> 34337eb1ca1SmrgCARD32: 32-bit unsigned integer 34437eb1ca1Smrg</para> 34537eb1ca1Smrg<para> 34637eb1ca1Smrg<!-- .LP --> 34737eb1ca1SmrgTIMESTAMP: CARD32 34837eb1ca1Smrg</para> 34937eb1ca1Smrg<para> 35037eb1ca1Smrg<!-- .LP --> 35137eb1ca1SmrgEVENTCLASS: CARD32 35237eb1ca1Smrg</para> 35337eb1ca1Smrg<para> 35437eb1ca1Smrg<!-- .LP --> 35537eb1ca1Smrg<literallayout class="monospaced"> 35637eb1ca1Smrg<!-- .TA .75i 1.75i --> 35737eb1ca1Smrg<!-- .ta .75i 1.75i --> 35837eb1ca1SmrgINPUTCLASS 35937eb1ca1Smrg 0 KeyClass 36037eb1ca1Smrg 1 ButtonClass 36137eb1ca1Smrg 2 ValuatorClass 36237eb1ca1Smrg 3 FeedbackClass 36337eb1ca1Smrg 4 ProximityClass 36437eb1ca1Smrg 5 FocusClass 36537eb1ca1Smrg 6 OtherClass 36637eb1ca1Smrg</literallayout> 36737eb1ca1Smrg</para> 36837eb1ca1Smrg<para> 36937eb1ca1Smrg<!-- .LP --> 37037eb1ca1Smrg<literallayout class="monospaced"> 37137eb1ca1Smrg<!-- .TA .75i 1.75i --> 37237eb1ca1Smrg<!-- .ta .75i 1.75i --> 37337eb1ca1SmrgINPUTCLASS 37437eb1ca1Smrg 0 KbdFeedbackClass 37537eb1ca1Smrg 1 PtrFeedbackClass 37637eb1ca1Smrg 2 StringFeedbackClass 37737eb1ca1Smrg 3 IntegerFeedbackClass 37837eb1ca1Smrg 4 LedFeedbackClass 37937eb1ca1Smrg 5 BellFeedbackClass 38037eb1ca1Smrg</literallayout> 38137eb1ca1Smrg</para> 38237eb1ca1Smrg<para> 38337eb1ca1Smrg<!-- .LP --> 38437eb1ca1Smrg<literallayout class="monospaced"> 38537eb1ca1Smrg<!-- .TA .75i 1.75i --> 38637eb1ca1Smrg<!-- .ta .75i 1.75i --> 38737eb1ca1SmrgINPUTINFO 38837eb1ca1Smrg 0 KEYINFO 38937eb1ca1Smrg 1 BUTTONINFO 39037eb1ca1Smrg 2 VALUATORINFO 39137eb1ca1Smrg</literallayout> 39237eb1ca1Smrg</para> 39337eb1ca1Smrg<para> 39437eb1ca1Smrg<!-- .LP --> 39537eb1ca1Smrg<literallayout class="monospaced"> 39637eb1ca1Smrg<!-- .TA .75i 1.75i --> 39737eb1ca1Smrg<!-- .ta .75i 1.75i --> 39837eb1ca1SmrgDEVICEMODE 39937eb1ca1Smrg 0 Relative 40037eb1ca1Smrg 1 Absolute 40137eb1ca1Smrg</literallayout> 40237eb1ca1Smrg</para> 40337eb1ca1Smrg<para> 40437eb1ca1Smrg<!-- .LP --> 40537eb1ca1Smrg<literallayout class="monospaced"> 40637eb1ca1Smrg<!-- .TA .75i 1.75i --> 40737eb1ca1Smrg<!-- .ta .75i 1.75i --> 40837eb1ca1SmrgPROXIMITYSTATE 40937eb1ca1Smrg 0 InProximity 41037eb1ca1Smrg 1 OutOfProximity 41137eb1ca1Smrg</literallayout> 41237eb1ca1Smrg</para> 41337eb1ca1Smrg<para> 41437eb1ca1Smrg<!-- .LP --> 41537eb1ca1Smrg<literallayout class="monospaced"> 41637eb1ca1Smrg<!-- .TA .75i 1.75i --> 41737eb1ca1Smrg<!-- .ta .75i 1.75i --> 41837eb1ca1SmrgBOOL 41937eb1ca1Smrg 0 False 42037eb1ca1Smrg 1 True 42137eb1ca1Smrg</literallayout> 42237eb1ca1Smrg</para> 42337eb1ca1Smrg<para> 42437eb1ca1Smrg<!-- .LP --> 42537eb1ca1SmrgKEYSYM: CARD32 42637eb1ca1Smrg</para> 42737eb1ca1Smrg<para> 42837eb1ca1Smrg<!-- .LP --> 42937eb1ca1SmrgKEYCODE: CARD8 43037eb1ca1Smrg</para> 43137eb1ca1Smrg<para> 43237eb1ca1Smrg<!-- .LP --> 43337eb1ca1SmrgBUTTON: CARD8 43437eb1ca1Smrg</para> 43537eb1ca1Smrg<para> 43637eb1ca1Smrg<!-- .LP --> 43737eb1ca1Smrg<literallayout class="monospaced"> 43837eb1ca1Smrg<!-- .TA .75i 1.75i --> 43937eb1ca1Smrg<!-- .ta .75i 1.75i --> 44037eb1ca1SmrgSETofKEYBUTMASK 44137eb1ca1Smrg #x0001 Shift 44237eb1ca1Smrg #x0002 Lock 44337eb1ca1Smrg #x0004 Control 44437eb1ca1Smrg #x0008 Mod1 44537eb1ca1Smrg #x0010 Mod2 44637eb1ca1Smrg #x0020 Mod3 44737eb1ca1Smrg #x0040 Mod4 44837eb1ca1Smrg #x0080 Mod5 44937eb1ca1Smrg #x0100 Button1 45037eb1ca1Smrg #x0200 Button2 45137eb1ca1Smrg #x0400 Button3 45237eb1ca1Smrg #x0800 Button4 45337eb1ca1Smrg #x1000 Button5 45437eb1ca1Smrg #xe000 unused but must be zero 45537eb1ca1Smrg</literallayout> 45637eb1ca1Smrg</para> 45737eb1ca1Smrg<para> 45837eb1ca1Smrg<!-- .LP --> 45937eb1ca1Smrg<literallayout class="monospaced"> 46037eb1ca1Smrg<!-- .TA .75i 1.75i --> 46137eb1ca1Smrg<!-- .ta .75i 1.75i --> 46237eb1ca1SmrgSETofKEYMASK 46337eb1ca1Smrg encodings are the same as for SETofKEYBUTMASK, except with 46437eb1ca1Smrg #xff00 unused but must be zero 46537eb1ca1Smrg</literallayout> 46637eb1ca1Smrg</para> 46737eb1ca1Smrg<para> 46837eb1ca1Smrg<!-- .LP --> 46937eb1ca1SmrgSTRING8: LISTofCARD8 47037eb1ca1Smrg</para> 47137eb1ca1Smrg<para> 47237eb1ca1Smrg<!-- .LP --> 47337eb1ca1Smrg<literallayout class="monospaced"> 47437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 47537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 47637eb1ca1SmrgSTR 47737eb1ca1Smrg 1 n length of name in bytes 47837eb1ca1Smrg n STRING8 name 47937eb1ca1Smrg</literallayout> 48037eb1ca1Smrg<!-- .ps +2 --> 48137eb1ca1Smrg<function>Errors</function> 48237eb1ca1Smrg<!-- .ps --> 48337eb1ca1Smrg</para> 48437eb1ca1Smrg<para> 48537eb1ca1Smrg<!-- .LP --> 48637eb1ca1Smrg<literallayout class="monospaced"> 48737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 48837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 48937eb1ca1SmrgRequest 49037eb1ca1Smrg 1 0 Error 49137eb1ca1Smrg 1 1 code 49237eb1ca1Smrg 2 CARD16 sequence number 49337eb1ca1Smrg 4 unused 49437eb1ca1Smrg 2 CARD16 minor opcode 49537eb1ca1Smrg 1 CARD8 major opcode 49637eb1ca1Smrg 21 unused 49737eb1ca1Smrg</literallayout> 49837eb1ca1Smrg</para> 49937eb1ca1Smrg<para> 50037eb1ca1Smrg<!-- .LP --> 50137eb1ca1Smrg<literallayout class="monospaced"> 50237eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 50337eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 50437eb1ca1SmrgValue 50537eb1ca1Smrg 1 0 Error 50637eb1ca1Smrg 1 2 code 50737eb1ca1Smrg 2 CARD16 sequence number 50837eb1ca1Smrg 4 <32-bits> bad value 50937eb1ca1Smrg 2 CARD16 minor opcode 51037eb1ca1Smrg 1 CARD8 major opcode 51137eb1ca1Smrg 21 unused 51237eb1ca1Smrg</literallayout> 51337eb1ca1Smrg</para> 51437eb1ca1Smrg<para> 51537eb1ca1Smrg<!-- .LP --> 51637eb1ca1Smrg<literallayout class="monospaced"> 51737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 51837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 51937eb1ca1SmrgWindow 52037eb1ca1Smrg 1 0 Error 52137eb1ca1Smrg 1 3 code 52237eb1ca1Smrg 2 CARD16 sequence number 52337eb1ca1Smrg 4 CARD32 bad resource id 52437eb1ca1Smrg 2 CARD16 minor opcode 52537eb1ca1Smrg 1 CARD8 major opcode 52637eb1ca1Smrg 21 unused 52737eb1ca1Smrg</literallayout> 52837eb1ca1Smrg</para> 52937eb1ca1Smrg<para> 53037eb1ca1Smrg<!-- .LP --> 53137eb1ca1Smrg<literallayout class="monospaced"> 53237eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 53337eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 53437eb1ca1SmrgMatch 53537eb1ca1Smrg 1 0 Error 53637eb1ca1Smrg 1 8 code 53737eb1ca1Smrg 2 CARD16 sequence number 53837eb1ca1Smrg 4 unused 53937eb1ca1Smrg 2 CARD16 minor opcode 54037eb1ca1Smrg 1 CARD8 major opcode 54137eb1ca1Smrg 21 unused 54237eb1ca1Smrg</literallayout> 54337eb1ca1Smrg</para> 54437eb1ca1Smrg<para> 54537eb1ca1Smrg<!-- .LP --> 54637eb1ca1Smrg<literallayout class="monospaced"> 54737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 54837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 54937eb1ca1SmrgAccess 55037eb1ca1Smrg 1 0 Error 55137eb1ca1Smrg 1 10 code 55237eb1ca1Smrg 2 CARD16 sequence number 55337eb1ca1Smrg 4 unused 55437eb1ca1Smrg 2 CARD16 minor opcode 55537eb1ca1Smrg 1 CARD8 major opcode 55637eb1ca1Smrg 21 unused 55737eb1ca1Smrg</literallayout> 55837eb1ca1Smrg</para> 55937eb1ca1Smrg<para> 56037eb1ca1Smrg<!-- .LP --> 56137eb1ca1Smrg<literallayout class="monospaced"> 56237eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 56337eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 56437eb1ca1SmrgAlloc 56537eb1ca1Smrg 1 0 Error 56637eb1ca1Smrg 1 11 code 56737eb1ca1Smrg 2 CARD16 sequence number 56837eb1ca1Smrg 4 unused 56937eb1ca1Smrg 2 CARD16 minor opcode 57037eb1ca1Smrg 1 CARD8 major opcode 57137eb1ca1Smrg 21 unused 57237eb1ca1Smrg</literallayout> 57337eb1ca1Smrg</para> 57437eb1ca1Smrg<para> 57537eb1ca1Smrg<!-- .LP --> 57637eb1ca1Smrg<literallayout class="monospaced"> 57737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 57837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 57937eb1ca1SmrgName 58037eb1ca1Smrg 1 0 Error 58137eb1ca1Smrg 1 15 code 58237eb1ca1Smrg 2 CARD16 sequence number 58337eb1ca1Smrg 4 unused 58437eb1ca1Smrg 2 CARD16 minor opcode 58537eb1ca1Smrg 1 CARD8 major opcode 58637eb1ca1Smrg 21 unused 58737eb1ca1Smrg</literallayout> 58837eb1ca1Smrg</para> 58937eb1ca1Smrg<para> 59037eb1ca1Smrg<!-- .LP --> 59137eb1ca1Smrg<literallayout class="monospaced"> 59237eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 59337eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 59437eb1ca1SmrgDevice 59537eb1ca1Smrg 1 0 Error 59637eb1ca1Smrg 1 CARD8 code 59737eb1ca1Smrg 2 CARD16 sequence number 59837eb1ca1Smrg 4 unused 59937eb1ca1Smrg 2 CARD16 minor opcode 60037eb1ca1Smrg 1 CARD8 major opcode 60137eb1ca1Smrg 21 unused 60237eb1ca1Smrg</literallayout> 60337eb1ca1Smrg</para> 60437eb1ca1Smrg<para> 60537eb1ca1Smrg<!-- .LP --> 60637eb1ca1Smrg<literallayout class="monospaced"> 60737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 60837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 60937eb1ca1SmrgEvent 61037eb1ca1Smrg 1 0 Error 61137eb1ca1Smrg 1 CARD8 code 61237eb1ca1Smrg 2 CARD16 sequence number 61337eb1ca1Smrg 4 unused 61437eb1ca1Smrg 2 CARD16 minor opcode 61537eb1ca1Smrg 1 CARD8 major opcode 61637eb1ca1Smrg 21 unused 61737eb1ca1Smrg</literallayout> 61837eb1ca1Smrg</para> 61937eb1ca1Smrg<para> 62037eb1ca1Smrg<!-- .LP --> 62137eb1ca1Smrg<literallayout class="monospaced"> 62237eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 62337eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 62437eb1ca1SmrgMode 62537eb1ca1Smrg 1 0 Error 62637eb1ca1Smrg 1 CARD8 code 62737eb1ca1Smrg 2 CARD16 sequence number 62837eb1ca1Smrg 4 unused 62937eb1ca1Smrg 2 CARD16 minor opcode 63037eb1ca1Smrg 1 CARD8 major opcode 63137eb1ca1Smrg 21 unused 63237eb1ca1Smrg</literallayout> 63337eb1ca1Smrg</para> 63437eb1ca1Smrg<para> 63537eb1ca1Smrg<!-- .LP --> 63637eb1ca1Smrg<literallayout class="monospaced"> 63737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 63837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 63937eb1ca1SmrgClass 64037eb1ca1Smrg 1 0 Error 64137eb1ca1Smrg 1 CARD8 code 64237eb1ca1Smrg 2 CARD16 sequence number 64337eb1ca1Smrg 4 unused 64437eb1ca1Smrg 2 CARD16 minor opcode 64537eb1ca1Smrg 1 CARD8 major opcode 64637eb1ca1Smrg 21 unused 64737eb1ca1Smrg</literallayout> 64837eb1ca1Smrg<!-- .ps +2 --> 64937eb1ca1SmrgKeyboards 65037eb1ca1Smrg<!-- .ps --> 65137eb1ca1Smrg</para> 65237eb1ca1Smrg<para> 65337eb1ca1Smrg<!-- .LP --> 65437eb1ca1SmrgKEYCODE values are always greater than 7 (and less than 256). 65537eb1ca1Smrg</para> 65637eb1ca1Smrg<para> 65737eb1ca1Smrg<!-- .LP --> 65837eb1ca1SmrgKEYSYM values with the bit #x10000000 set are reserved as vendor-specific. 65937eb1ca1Smrg</para> 66037eb1ca1Smrg<para> 66137eb1ca1Smrg<!-- .LP --> 66237eb1ca1SmrgThe names and encodings of the standard KEYSYM values are contained in 66337eb1ca1Smrg<!-- .\"Appendix B, Keysym Encoding. --> 66437eb1ca1Smrgappendix F. 66537eb1ca1Smrg</para> 66637eb1ca1Smrg<para> 66737eb1ca1Smrg<!-- .LP --> 66837eb1ca1Smrg<!-- .ps +2 --> 66937eb1ca1SmrgPointers 67037eb1ca1Smrg<!-- .ps --> 67137eb1ca1Smrg</para> 67237eb1ca1Smrg<para> 67337eb1ca1Smrg<!-- .LP --> 67437eb1ca1SmrgBUTTON values are numbered starting with one. 67537eb1ca1Smrg</para> 67637eb1ca1Smrg<para> 67737eb1ca1Smrg<!-- .LP --> 67837eb1ca1Smrg<!-- .ps +2 --> 67937eb1ca1SmrgRequests 68037eb1ca1Smrg<!-- .ps --> 68137eb1ca1Smrg</para> 68237eb1ca1Smrg<para> 68337eb1ca1Smrg<!-- .LP --> 68437eb1ca1Smrg<literallayout class="monospaced"> 68537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 68637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 68737eb1ca1SmrgGetExtensionVersion 68837eb1ca1Smrg 1 CARD8 input extension opcode 68937eb1ca1Smrg 1 1 GetExtensionVersion opcode 69037eb1ca1Smrg 2 2+(n+p)/4 request length 69137eb1ca1Smrg 2 n length of name 69237eb1ca1Smrg 2 unused 69337eb1ca1Smrg n STRING8 name 69437eb1ca1Smrg p unused, p=pad(n) 69537eb1ca1Smrg</literallayout> 69637eb1ca1Smrg<literallayout class="monospaced"> 69737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 69837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 69937eb1ca1Smrg => 70037eb1ca1Smrg 1 1 Reply 70137eb1ca1Smrg 1 1 GetExtensionVersion opcode 70237eb1ca1Smrg 2 CARD16 sequence number 70337eb1ca1Smrg 4 0 reply length 70437eb1ca1Smrg 2 CARD16 major version 70537eb1ca1Smrg 2 CARD16 minor version 70637eb1ca1Smrg 1 BOOL present 70737eb1ca1Smrg 19 unused 70837eb1ca1Smrg</literallayout> 70937eb1ca1Smrg</para> 71037eb1ca1Smrg<para> 71137eb1ca1Smrg<!-- .LP --> 71237eb1ca1Smrg<literallayout class="monospaced"> 71337eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 71437eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 71537eb1ca1SmrgListInputDevices 71637eb1ca1Smrg 1 CARD8 input extension opcode 71737eb1ca1Smrg 1 2 ListInputDevices opcode 71837eb1ca1Smrg 2 1 request length 71937eb1ca1Smrg</literallayout> 72037eb1ca1Smrg<literallayout class="monospaced"> 72137eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 72237eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 72337eb1ca1Smrg => 72437eb1ca1Smrg 1 1 Reply 72537eb1ca1Smrg 1 2 ListInputDevices opcode 72637eb1ca1Smrg 2 CARD16 sequence number 72737eb1ca1Smrg 4 (n+p)/4 reply length 72837eb1ca1Smrg 1 CARD8 number of input devices 72937eb1ca1Smrg 23 unused 73037eb1ca1Smrg n LISTofDEVICEINFO info for each input device 73137eb1ca1Smrg p unused, p=pad(n) 73237eb1ca1Smrg</literallayout> 73337eb1ca1Smrg</para> 73437eb1ca1Smrg<para> 73537eb1ca1Smrg<!-- .LP --> 73637eb1ca1Smrg<literallayout class="monospaced"> 73737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 73837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 73937eb1ca1Smrg DEVICEINFO 74037eb1ca1Smrg 4 CARD32 device type 74137eb1ca1Smrg 1 CARD8 device id 74237eb1ca1Smrg 1 CARD8 number of input classes this device reports 74337eb1ca1Smrg 1 CARD8 device use 74437eb1ca1Smrg 0 IsXPointer 74537eb1ca1Smrg 1 IsXKeyboard 74637eb1ca1Smrg 2 IsXExtensionDevice 74737eb1ca1Smrg 1 unused 74837eb1ca1Smrg n LISTofINPUTINFO input info for each input class 74937eb1ca1Smrg m STR name 75037eb1ca1Smrg p unused, p=pad(m) 75137eb1ca1Smrg</literallayout> 75237eb1ca1Smrg</para> 75337eb1ca1Smrg<para> 75437eb1ca1Smrg<!-- .LP --> 75537eb1ca1Smrg<literallayout class="monospaced"> 75637eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 75737eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 75837eb1ca1Smrg INPUTINFO KEYINFO or BUTTONINFO or VALUATORINFO 75937eb1ca1Smrg</literallayout> 76037eb1ca1Smrg</para> 76137eb1ca1Smrg<para> 76237eb1ca1Smrg<!-- .LP --> 76337eb1ca1Smrg<literallayout class="monospaced"> 76437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 76537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 76637eb1ca1Smrg KEYINFO 76737eb1ca1Smrg 1 0 class id 76837eb1ca1Smrg 1 8 length 76937eb1ca1Smrg 1 KEYCODE minimum keycode 77037eb1ca1Smrg 1 KEYCODE maximum keycode 77137eb1ca1Smrg 2 CARD16 number of keys 77237eb1ca1Smrg 2 unused 77337eb1ca1Smrg</literallayout> 77437eb1ca1Smrg</para> 77537eb1ca1Smrg<para> 77637eb1ca1Smrg<!-- .LP --> 77737eb1ca1Smrg<literallayout class="monospaced"> 77837eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 77937eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 78037eb1ca1SmrgBUTTONINFO 78137eb1ca1Smrg 1 1 class id 78237eb1ca1Smrg 1 4 length 78337eb1ca1Smrg 2 CARD16 number of buttons 78437eb1ca1Smrg</literallayout> 78537eb1ca1Smrg</para> 78637eb1ca1Smrg<para> 78737eb1ca1Smrg<!-- .LP --> 78837eb1ca1Smrg<literallayout class="monospaced"> 78937eb1ca1Smrg<!-- .TA .2i .75i 2.0i 3.0i --> 79037eb1ca1Smrg<!-- .ta .2i .75i 2.0i 3.0i --> 79137eb1ca1SmrgVALUATORINFO 79237eb1ca1Smrg 1 2 class id 79337eb1ca1Smrg 1 8+12n length 79437eb1ca1Smrg 1 n number of axes 79537eb1ca1Smrg 1 SETofDEVICEMODE mode 79637eb1ca1Smrg 4 CARD32 size of motion buffer 79737eb1ca1Smrg 12n LISTofAXISINFO valuator limits 79837eb1ca1Smrg</literallayout> 79937eb1ca1Smrg</para> 80037eb1ca1Smrg<para> 80137eb1ca1Smrg<!-- .LP --> 80237eb1ca1Smrg<literallayout class="monospaced"> 80337eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 80437eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 80537eb1ca1SmrgAXISINFO 80637eb1ca1Smrg 4 CARD32 resolution 80737eb1ca1Smrg 4 CARD32 minimum value 80837eb1ca1Smrg 4 CARD32 maximum value 80937eb1ca1Smrg</literallayout> 81037eb1ca1Smrg</para> 81137eb1ca1Smrg<para> 81237eb1ca1Smrg<!-- .LP --> 81337eb1ca1Smrg<literallayout class="monospaced"> 81437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 81537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 81637eb1ca1SmrgOpenDevice 81737eb1ca1Smrg 1 CARD8 input extension opcode 81837eb1ca1Smrg 1 3 OpenDevice opcode 81937eb1ca1Smrg 2 2 request length 82037eb1ca1Smrg 1 CARD8 device id 82137eb1ca1Smrg 3 unused 82237eb1ca1Smrg</literallayout> 82337eb1ca1Smrg<literallayout class="monospaced"> 82437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 3.5i --> 82537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 3.5i --> 82637eb1ca1Smrg => 82737eb1ca1Smrg 1 1 Reply 82837eb1ca1Smrg 1 3 OpenDevice opcode 82937eb1ca1Smrg 2 CARD16 sequence number 83037eb1ca1Smrg 4 (n+p)/4 reply length 83137eb1ca1Smrg 1 CARD8 number of input classes 83237eb1ca1Smrg 23 unused 83337eb1ca1Smrg n LISTofINPUTCLASSINFO input class information 83437eb1ca1Smrg p unused, p=pad(n) 83537eb1ca1Smrg</literallayout> 83637eb1ca1Smrg</para> 83737eb1ca1Smrg<para> 83837eb1ca1Smrg<!-- .LP --> 83937eb1ca1Smrg<literallayout class="monospaced"> 84037eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 84137eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 84237eb1ca1Smrg INPUTCLASSINFO 84337eb1ca1Smrg 1 CARD8 input class id 84437eb1ca1Smrg 0 KEY 84537eb1ca1Smrg 1 BUTTON 84637eb1ca1Smrg 2 VALUATOR 84737eb1ca1Smrg 3 FEEDBACK 84837eb1ca1Smrg 4 PROXIMITY 84937eb1ca1Smrg 5 FOCUS 85037eb1ca1Smrg 6 OTHER 85137eb1ca1Smrg 1 CARD8 event type base code for this class 85237eb1ca1Smrg</literallayout> 85337eb1ca1Smrg</para> 85437eb1ca1Smrg<para> 85537eb1ca1Smrg<!-- .LP --> 85637eb1ca1Smrg<literallayout class="monospaced"> 85737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 85837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 85937eb1ca1SmrgCloseDevice 86037eb1ca1Smrg 1 CARD8 input extension opcode 86137eb1ca1Smrg 1 4 CloseDevice opcode 86237eb1ca1Smrg 2 2 request length 86337eb1ca1Smrg 1 CARD8 device id 86437eb1ca1Smrg 3 unused 86537eb1ca1Smrg</literallayout> 86637eb1ca1Smrg</para> 86737eb1ca1Smrg<para> 86837eb1ca1Smrg<!-- .LP --> 86937eb1ca1Smrg<literallayout class="monospaced"> 87037eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 87137eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 87237eb1ca1SmrgSetDeviceMode 87337eb1ca1Smrg 1 CARD8 input extension opcode 87437eb1ca1Smrg 1 5 SetDeviceMode opcode 87537eb1ca1Smrg 2 2 request length 87637eb1ca1Smrg 1 CARD8 device id 87737eb1ca1Smrg 1 CARD8 mode 87837eb1ca1Smrg 2 unused 87937eb1ca1Smrg</literallayout> 88037eb1ca1Smrg<literallayout class="monospaced"> 88137eb1ca1Smrg<!-- .TA .2i .5i 1.5i 3.5i --> 88237eb1ca1Smrg<!-- .ta .2i .5i 1.5i 3.5i --> 88337eb1ca1Smrg => 88437eb1ca1Smrg 1 1 Reply 88537eb1ca1Smrg 1 5 SetDeviceMode opcode 88637eb1ca1Smrg 2 CARD16 sequence number 88737eb1ca1Smrg 4 0 reply length 88837eb1ca1Smrg 1 CARD8 status 88937eb1ca1Smrg 0 Success 89037eb1ca1Smrg 1 AlreadyGrabbed 89137eb1ca1Smrg 3 + first_error DeviceBusy 89237eb1ca1Smrg 23 unused 89337eb1ca1Smrg</literallayout> 89437eb1ca1Smrg</para> 89537eb1ca1Smrg<para> 89637eb1ca1Smrg<!-- .LP --> 89737eb1ca1Smrg<literallayout class="monospaced"> 89837eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 89937eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 90037eb1ca1SmrgSelectExtensionEvent 90137eb1ca1Smrg 1 CARD8 input extension opcode 90237eb1ca1Smrg 1 6 SelectExtensionEvent opcode 90337eb1ca1Smrg 2 3+n request length 90437eb1ca1Smrg 4 Window event window 90537eb1ca1Smrg 2 CARD16 count 90637eb1ca1Smrg 2 unused 90737eb1ca1Smrg 4n LISTofEVENTCLASS desired events 90837eb1ca1Smrg</literallayout> 90937eb1ca1Smrg</para> 91037eb1ca1Smrg<para> 91137eb1ca1Smrg<!-- .LP --> 91237eb1ca1Smrg<literallayout class="monospaced"> 91337eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 91437eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 91537eb1ca1SmrgGetSelectedExtensionEvents 91637eb1ca1Smrg 1 CARD8 input extension opcode 91737eb1ca1Smrg 1 7 GetSelectedExtensionEvents opcode 91837eb1ca1Smrg 2 2 request length 91937eb1ca1Smrg 4 Window event window 92037eb1ca1Smrg</literallayout> 92137eb1ca1Smrg<literallayout class="monospaced"> 92237eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 92337eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 92437eb1ca1Smrg => 92537eb1ca1Smrg 1 1 Reply 92637eb1ca1Smrg 1 7 GetSelecteExtensionEvents opcode 92737eb1ca1Smrg 2 CARD16 sequence number 92837eb1ca1Smrg 4 n + m reply length 92937eb1ca1Smrg 2 n this client count 93037eb1ca1Smrg 2 m all clients count 93137eb1ca1Smrg 20 unused 93237eb1ca1Smrg 4n LISTofEVENTCLASS this client list 93337eb1ca1Smrg 4m LISTofEVENTCLASS all clients list 93437eb1ca1Smrg</literallayout> 93537eb1ca1Smrg</para> 93637eb1ca1Smrg<para> 93737eb1ca1Smrg<!-- .LP --> 93837eb1ca1Smrg<literallayout class="monospaced"> 93937eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 94037eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 94137eb1ca1SmrgChangeDeviceDontPropagateList 94237eb1ca1Smrg 1 CARD8 input extension opcode 94337eb1ca1Smrg 1 8 ChangeDeviceDontPropagateList opcode 94437eb1ca1Smrg 2 3+n request length 94537eb1ca1Smrg 4 Window event window 94637eb1ca1Smrg 2 n count of events 94737eb1ca1Smrg 1 mode 94837eb1ca1Smrg 0 AddToList 94937eb1ca1Smrg 1 DeleteFromList 95037eb1ca1Smrg 1 unused 95137eb1ca1Smrg 4n LISTofEVENTCLASS desired events 95237eb1ca1Smrg</literallayout> 95337eb1ca1Smrg</para> 95437eb1ca1Smrg<para> 95537eb1ca1Smrg<!-- .LP --> 95637eb1ca1Smrg<literallayout class="monospaced"> 95737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 95837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 95937eb1ca1SmrgGetDeviceDontPropagateList 96037eb1ca1Smrg 1 CARD8 input extension opcode 96137eb1ca1Smrg 1 9 GetDeviceDontPropagateList opcode 96237eb1ca1Smrg 2 2 request length 96337eb1ca1Smrg 4 Window event window 96437eb1ca1Smrg</literallayout> 96537eb1ca1Smrg<literallayout class="monospaced"> 96637eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 96737eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 96837eb1ca1Smrg => 96937eb1ca1Smrg 1 1 Reply 97037eb1ca1Smrg 1 9 GetDeviceDontPropagateList opcode 97137eb1ca1Smrg 2 CARD16 sequence number 97237eb1ca1Smrg 4 n reply length 97337eb1ca1Smrg 2 n count of events 97437eb1ca1Smrg 22 unused 97537eb1ca1Smrg 4n LISTofEVENTCLASS don't propagate list 97637eb1ca1Smrg</literallayout> 97737eb1ca1Smrg</para> 97837eb1ca1Smrg<para> 97937eb1ca1Smrg<!-- .LP --> 98037eb1ca1Smrg<literallayout class="monospaced"> 98137eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 98237eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 98337eb1ca1SmrgGetDeviceMotionEvents 98437eb1ca1Smrg 1 CARD8 input extension opcode 98537eb1ca1Smrg 1 10 GetDeviceMotionEvents opcode 98637eb1ca1Smrg 2 4 request length 98737eb1ca1Smrg 4 TIMESTAMP start 98837eb1ca1Smrg 0 CurrentTime 98937eb1ca1Smrg 4 TIMESTAMP stop 99037eb1ca1Smrg 0 CurrentTime 99137eb1ca1Smrg 1 CARD8 device id 99237eb1ca1Smrg 3 unused 99337eb1ca1Smrg</literallayout> 99437eb1ca1Smrg<literallayout class="monospaced"> 99537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 3.5i --> 99637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 3.5i --> 99737eb1ca1Smrg => 99837eb1ca1Smrg 1 1 Reply 99937eb1ca1Smrg 1 10 GetDeviceMotionEvents opcode 100037eb1ca1Smrg 2 CARD16 sequence number 100137eb1ca1Smrg 4 (m+1)n reply length 100237eb1ca1Smrg 4 n number of DEVICETIMECOORDs in events 100337eb1ca1Smrg 1 m number of valuators per event 100437eb1ca1Smrg 1 CARD8 mode of the device 100537eb1ca1Smrg 0 Absolute 100637eb1ca1Smrg 1 Relative 100737eb1ca1Smrg 18 unused 100837eb1ca1Smrg (4m+4)n LISTofDEVICETIMECOORD events 100937eb1ca1Smrg</literallayout> 101037eb1ca1Smrg</para> 101137eb1ca1Smrg<para> 101237eb1ca1Smrg<!-- .LP --> 101337eb1ca1Smrg<literallayout class="monospaced"> 101437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 101537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 101637eb1ca1Smrg DEVICETIMECOORD 101737eb1ca1Smrg 4 TIMESTAMP time 101837eb1ca1Smrg 4m LISTofINT32 valuators 101937eb1ca1Smrg</literallayout> 102037eb1ca1Smrg</para> 102137eb1ca1Smrg<para> 102237eb1ca1Smrg<!-- .LP --> 102337eb1ca1Smrg<literallayout class="monospaced"> 102437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 102537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 102637eb1ca1SmrgChangeKeyboardDevice 102737eb1ca1Smrg 1 CARD8 input extension opcode 102837eb1ca1Smrg 1 11 ChangeKeyboardDevice opcode 102937eb1ca1Smrg 2 2 request length 103037eb1ca1Smrg 1 CARD8 device id 103137eb1ca1Smrg 3 unused 103237eb1ca1Smrg</literallayout> 103337eb1ca1Smrg<literallayout class="monospaced"> 103437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 103537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 103637eb1ca1Smrg => 103737eb1ca1Smrg 1 1 Reply 103837eb1ca1Smrg 1 11 ChangeKeyboardDevice opcode 103937eb1ca1Smrg 2 CARD16 sequence number 104037eb1ca1Smrg 4 0 reply length 104137eb1ca1Smrg 1 status 104237eb1ca1Smrg 0 Success 104337eb1ca1Smrg 1 AlreadyGrabbed 104437eb1ca1Smrg 2 DeviceFrozen 104537eb1ca1Smrg 23 unused 104637eb1ca1Smrg</literallayout> 104737eb1ca1Smrg</para> 104837eb1ca1Smrg<para> 104937eb1ca1Smrg<!-- .LP --> 105037eb1ca1Smrg<literallayout class="monospaced"> 105137eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 105237eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 105337eb1ca1SmrgChangePointerDevice 105437eb1ca1Smrg 1 CARD8 input extension opcode 105537eb1ca1Smrg 1 12 ChangePointerDevice opcode 105637eb1ca1Smrg 2 2 request length 105737eb1ca1Smrg 1 CARD8 x-axis 105837eb1ca1Smrg 1 CARD8 y-axis 105937eb1ca1Smrg 1 CARD8 device id 106037eb1ca1Smrg 1 unused 106137eb1ca1Smrg</literallayout> 106237eb1ca1Smrg<literallayout class="monospaced"> 106337eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 106437eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 106537eb1ca1Smrg => 106637eb1ca1Smrg 1 1 Reply 106737eb1ca1Smrg 1 12 ChangePointerDevice opcode 106837eb1ca1Smrg 2 CARD16 sequence number 106937eb1ca1Smrg 4 0 reply length 107037eb1ca1Smrg 1 status 107137eb1ca1Smrg 0 Success 107237eb1ca1Smrg 1 AlreadyGrabbed 107337eb1ca1Smrg 2 DeviceFrozen 107437eb1ca1Smrg 23 unused 107537eb1ca1Smrg</literallayout> 107637eb1ca1Smrg</para> 107737eb1ca1Smrg<para> 107837eb1ca1Smrg<!-- .LP --> 107937eb1ca1Smrg<literallayout class="monospaced"> 108037eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 108137eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 108237eb1ca1SmrgGrabDevice 108337eb1ca1Smrg 1 CARD8 input extension opcode 108437eb1ca1Smrg 1 13 GrabDevice opcode 108537eb1ca1Smrg 2 5+n request length 108637eb1ca1Smrg 4 WINDOW grab-window 108737eb1ca1Smrg 4 TIMESTAMP time 108837eb1ca1Smrg 0 CurrentTime 108937eb1ca1Smrg 2 n count of events 109037eb1ca1Smrg 1 this-device-mode 109137eb1ca1Smrg 0 Synchronous 109237eb1ca1Smrg 1 Asynchronous 109337eb1ca1Smrg 1 other-devices-mode 109437eb1ca1Smrg 0 Synchronous 109537eb1ca1Smrg 1 Asynchronous 109637eb1ca1Smrg 1 BOOL owner-events 109737eb1ca1Smrg 1 CARD8 device id 109837eb1ca1Smrg 2 unused 109937eb1ca1Smrg 4n LISTofEVENTCLASS event list 110037eb1ca1Smrg</literallayout> 110137eb1ca1Smrg<literallayout class="monospaced"> 110237eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 110337eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 110437eb1ca1Smrg => 110537eb1ca1Smrg 1 1 Reply 110637eb1ca1Smrg 1 13 GrabDevice opcode 110737eb1ca1Smrg 2 CARD16 sequence number 110837eb1ca1Smrg 4 0 reply length 110937eb1ca1Smrg 1 status 111037eb1ca1Smrg 0 Success 111137eb1ca1Smrg 1 AlreadyGrabbed 111237eb1ca1Smrg 2 InvalidTime 111337eb1ca1Smrg 3 NotViewable 111437eb1ca1Smrg 4 Frozen 111537eb1ca1Smrg 23 unused 111637eb1ca1Smrg</literallayout> 111737eb1ca1Smrg</para> 111837eb1ca1Smrg<para> 111937eb1ca1Smrg<!-- .LP --> 112037eb1ca1Smrg<literallayout class="monospaced"> 112137eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 112237eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 112337eb1ca1SmrgUngrabDevice 112437eb1ca1Smrg 1 CARD8 input extension opcode 112537eb1ca1Smrg 1 14 UngrabDevice opcode 112637eb1ca1Smrg 2 3 request length 112737eb1ca1Smrg 4 TIMESTAMP time 112837eb1ca1Smrg 0 CurrentTime 112937eb1ca1Smrg 1 CARD8 device id 113037eb1ca1Smrg 3 unused 113137eb1ca1Smrg</literallayout> 113237eb1ca1Smrg</para> 113337eb1ca1Smrg<para> 113437eb1ca1Smrg<!-- .LP --> 113537eb1ca1Smrg<literallayout class="monospaced"> 113637eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 113737eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 113837eb1ca1SmrgGrabDeviceKey 113937eb1ca1Smrg 1 CARD8 input extension opcode 114037eb1ca1Smrg 1 15 GrabDeviceKey opcode 114137eb1ca1Smrg 2 5+n request length 114237eb1ca1Smrg 4 WINDOW grab-window 114337eb1ca1Smrg 2 n count of events 114437eb1ca1Smrg 2 SETofKEYMASK modifiers 114537eb1ca1Smrg #x8000 AnyModifier 114637eb1ca1Smrg 1 CARD8 modifier device 114737eb1ca1Smrg #x0FF UseXKeyboard 114837eb1ca1Smrg 1 CARD8 grabbed device 114937eb1ca1Smrg 1 KEYCODE key 115037eb1ca1Smrg 0 AnyKey 115137eb1ca1Smrg 1 this-device-mode 115237eb1ca1Smrg 0 Synchronous 115337eb1ca1Smrg 1 Asynchronous 115437eb1ca1Smrg 1 other-devices-mode 115537eb1ca1Smrg 0 Synchronous 115637eb1ca1Smrg 1 Asynchronous 115737eb1ca1Smrg 1 BOOL owner-events 115837eb1ca1Smrg 2 unused 115937eb1ca1Smrg 4n LISTofEVENTCLASS event list 116037eb1ca1Smrg</literallayout> 116137eb1ca1Smrg</para> 116237eb1ca1Smrg<para> 116337eb1ca1Smrg<!-- .LP --> 116437eb1ca1Smrg<literallayout class="monospaced"> 116537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 116637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 116737eb1ca1SmrgUngrabDeviceKey 116837eb1ca1Smrg 1 CARD8 input extension opcode 116937eb1ca1Smrg 1 16 UngrabDeviceKey opcode 117037eb1ca1Smrg 2 4 request length 117137eb1ca1Smrg 4 WINDOW grab-window 117237eb1ca1Smrg 2 SETofKEYMASK modifiers 117337eb1ca1Smrg #x8000 AnyModifier 117437eb1ca1Smrg 1 CARD8 modifier device 117537eb1ca1Smrg #x0FF UseXKeyboard 117637eb1ca1Smrg 1 KEYCODE key 117737eb1ca1Smrg 0 AnyKey 117837eb1ca1Smrg 1 CARD8 grabbed device 117937eb1ca1Smrg 3 unused 118037eb1ca1Smrg 118137eb1ca1Smrg</literallayout> 118237eb1ca1Smrg</para> 118337eb1ca1Smrg<para> 118437eb1ca1Smrg<!-- .LP --> 118537eb1ca1Smrg<literallayout class="monospaced"> 118637eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 118737eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 118837eb1ca1SmrgGrabDeviceButton 118937eb1ca1Smrg 1 CARD8 input extension opcode 119037eb1ca1Smrg 1 17 GrabDeviceButton opcode 119137eb1ca1Smrg 2 5+n request length 119237eb1ca1Smrg 4 WINDOW grab-window 119337eb1ca1Smrg 1 CARD8 grabbed device 119437eb1ca1Smrg 1 CARD8 modifier device 119537eb1ca1Smrg #x0FF UseXKeyboard 119637eb1ca1Smrg 2 n count of desired events 119737eb1ca1Smrg 2 SETofKEYMASK modifiers 119837eb1ca1Smrg 1 this-device-mode 119937eb1ca1Smrg 0 Synchronous 120037eb1ca1Smrg 1 Asynchronous 120137eb1ca1Smrg 1 other-device-mode 120237eb1ca1Smrg 0 Synchronous 120337eb1ca1Smrg 1 Asynchronous 120437eb1ca1Smrg 1 BUTTON button 120537eb1ca1Smrg 0 AnyButton 120637eb1ca1Smrg 1 BOOL owner-events 120737eb1ca1Smrg #x8000 AnyModifier 120837eb1ca1Smrg 2 unused 120937eb1ca1Smrg 4n LISTofEVENTCLASS event list 121037eb1ca1Smrg</literallayout> 121137eb1ca1Smrg</para> 121237eb1ca1Smrg<para> 121337eb1ca1Smrg<!-- .LP --> 121437eb1ca1Smrg<literallayout class="monospaced"> 121537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 121637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 121737eb1ca1SmrgUngrabDeviceButton 121837eb1ca1Smrg 1 CARD8 input extension opcode 121937eb1ca1Smrg 1 18 UngrabDeviceButton opcode 122037eb1ca1Smrg 2 4 request length 122137eb1ca1Smrg 4 WINDOW grab-window 122237eb1ca1Smrg 2 SETofKEYMASK modifiers 122337eb1ca1Smrg #x8000 AnyModifier 122437eb1ca1Smrg 1 CARD8 modifier device 122537eb1ca1Smrg #x0FF UseXKeyboard 122637eb1ca1Smrg 1 BUTTON button 122737eb1ca1Smrg 0 AnyButton 122837eb1ca1Smrg 1 CARD8 grabbed device 122937eb1ca1Smrg 3 unused 123037eb1ca1Smrg</literallayout> 123137eb1ca1Smrg</para> 123237eb1ca1Smrg<para> 123337eb1ca1Smrg<!-- .LP --> 123437eb1ca1Smrg<literallayout class="monospaced"> 123537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 123637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 123737eb1ca1SmrgAllowDeviceEvents 123837eb1ca1Smrg 1 CARD8 input extension opcode 123937eb1ca1Smrg 1 19 AllowDeviceEvents opcode 124037eb1ca1Smrg 2 3 request length 124137eb1ca1Smrg 4 TIMESTAMP time 124237eb1ca1Smrg 0 CurrentTime 124337eb1ca1Smrg 1 mode 124437eb1ca1Smrg 0 AsyncThisDevice 124537eb1ca1Smrg 1 SyncThisDevice 124637eb1ca1Smrg 2 ReplayThisDevice 124737eb1ca1Smrg 3 AsyncOtherDevices 124837eb1ca1Smrg 4 AsyncAll 124937eb1ca1Smrg 5 SyncAll 125037eb1ca1Smrg 1 CARD8 device id 125137eb1ca1Smrg 2 unused 125237eb1ca1Smrg</literallayout> 125337eb1ca1Smrg</para> 125437eb1ca1Smrg<para> 125537eb1ca1Smrg<!-- .LP --> 125637eb1ca1Smrg<literallayout class="monospaced"> 125737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 125837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 125937eb1ca1SmrgGetDeviceFocus 126037eb1ca1Smrg 1 CARD8 input extension opcode 126137eb1ca1Smrg 1 20 GetDeviceFocus opcode 126237eb1ca1Smrg 2 2 request length 126337eb1ca1Smrg 1 CARD8 device 126437eb1ca1Smrg 3 unused 126537eb1ca1Smrg</literallayout> 126637eb1ca1Smrg<literallayout class="monospaced"> 126737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 126837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 126937eb1ca1Smrg => 127037eb1ca1Smrg 1 1 Reply 127137eb1ca1Smrg 1 20 GetDeviceFocus opcode 127237eb1ca1Smrg 2 CARD16 sequence number 127337eb1ca1Smrg 4 0 reply length 127437eb1ca1Smrg 4 WINDOW focus 127537eb1ca1Smrg 0 None 127637eb1ca1Smrg 1 PointerRoot 127737eb1ca1Smrg 3 FollowKeyboard 127837eb1ca1Smrg 4 TIMESTAMP focus time 127937eb1ca1Smrg 1 revert-to 128037eb1ca1Smrg 0 None 128137eb1ca1Smrg 1 PointerRoot 128237eb1ca1Smrg 2 Parent 128337eb1ca1Smrg 3 FollowKeyboard 128437eb1ca1Smrg 15 unused 128537eb1ca1Smrg</literallayout> 128637eb1ca1Smrg</para> 128737eb1ca1Smrg<para> 128837eb1ca1Smrg<!-- .LP --> 128937eb1ca1Smrg<literallayout class="monospaced"> 129037eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 129137eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 129237eb1ca1SmrgSetDeviceFocus 129337eb1ca1Smrg 1 CARD8 input extension opcode 129437eb1ca1Smrg 1 21 SetDeviceFocus opcode 129537eb1ca1Smrg 2 4 request length 129637eb1ca1Smrg 4 WINDOW focus 129737eb1ca1Smrg 0 None 129837eb1ca1Smrg 1 PointerRoot 129937eb1ca1Smrg 3 FollowKeyboard 130037eb1ca1Smrg 4 TIMESTAMP time 130137eb1ca1Smrg 0 CurrentTime 130237eb1ca1Smrg 1 revert-to 130337eb1ca1Smrg 0 None 130437eb1ca1Smrg 1 PointerRoot 130537eb1ca1Smrg 2 Parent 130637eb1ca1Smrg 3 FollowKeyboard 130737eb1ca1Smrg 1 CARD8 device 130837eb1ca1Smrg 2 unused 130937eb1ca1Smrg</literallayout> 131037eb1ca1Smrg</para> 131137eb1ca1Smrg<para> 131237eb1ca1Smrg<!-- .LP --> 131337eb1ca1Smrg<literallayout class="monospaced"> 131437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 131537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 131637eb1ca1SmrgGetFeedbackControl 131737eb1ca1Smrg 1 CARD8 input extension opcode 131837eb1ca1Smrg 1 22 GetFeedbackControl opcode 131937eb1ca1Smrg 2 2 request length 132037eb1ca1Smrg 1 CARD8 device id 132137eb1ca1Smrg 3 unused 132237eb1ca1Smrg</literallayout> 132337eb1ca1Smrg<literallayout class="monospaced"> 132437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 132537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 132637eb1ca1Smrg => 132737eb1ca1Smrg 1 1 Reply 132837eb1ca1Smrg 1 22 GetFeedbackControl opcode 132937eb1ca1Smrg 2 CARD16 sequence number 133037eb1ca1Smrg 4 m/4 reply length 133137eb1ca1Smrg 2 n number of feedbacks supported 133237eb1ca1Smrg 22 unused 133337eb1ca1Smrg m LISTofFEEDBACKSTATE feedbacks 133437eb1ca1Smrg</literallayout> 133537eb1ca1Smrg</para> 133637eb1ca1Smrg<para> 133737eb1ca1Smrg<!-- .LP --> 133837eb1ca1Smrg<literallayout class="monospaced"> 133937eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 134037eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 134137eb1ca1Smrg FEEDBACKSTATE KBDFEEDBACKSTATE, PTRFEEDBACKSTATE, INTEGERFEEDBACKSTATE, 134237eb1ca1Smrg STRINGFEEDBACKSTATE, BELLFEEDBACKSTATE, or LEDFEEDBACKSTATE 134337eb1ca1Smrg</literallayout> 134437eb1ca1Smrg</para> 134537eb1ca1Smrg<para> 134637eb1ca1Smrg<!-- .LP --> 134737eb1ca1Smrg<literallayout class="monospaced"> 134837eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 134937eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 135037eb1ca1Smrg KBDFEEDBACKSTATE 135137eb1ca1Smrg 1 0 feedback class id 135237eb1ca1Smrg 1 CARD8 id of this feedback 135337eb1ca1Smrg 2 20 length 135437eb1ca1Smrg 2 CARD16 pitch 135537eb1ca1Smrg 2 CARD16 duration 135637eb1ca1Smrg 4 CARD32 led_mask 135737eb1ca1Smrg 4 CARD32 led_values 135837eb1ca1Smrg 1 global_auto_repeat 135937eb1ca1Smrg 0 Off 136037eb1ca1Smrg 1 On 136137eb1ca1Smrg 1 CARD8 click 136237eb1ca1Smrg 1 CARD8 percent 136337eb1ca1Smrg 1 unused 136437eb1ca1Smrg 32 LISTofCARD8 auto_repeats 136537eb1ca1Smrg</literallayout> 136637eb1ca1Smrg</para> 136737eb1ca1Smrg<para> 136837eb1ca1Smrg<!-- .LP --> 136937eb1ca1Smrg<literallayout class="monospaced"> 137037eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 137137eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 137237eb1ca1Smrg PTRFEEDBACKSTATE 137337eb1ca1Smrg 1 0 feedback class id 137437eb1ca1Smrg 1 CARD8 id of this feedback 137537eb1ca1Smrg 2 12 length 137637eb1ca1Smrg 2 unused 137737eb1ca1Smrg 2 CARD16 acceleration-numerator 137837eb1ca1Smrg 2 CARD16 acceleration-denominator 137937eb1ca1Smrg 2 CARD16 threshold 138037eb1ca1Smrg</literallayout> 138137eb1ca1Smrg</para> 138237eb1ca1Smrg<para> 138337eb1ca1Smrg<!-- .LP --> 138437eb1ca1Smrg<literallayout class="monospaced"> 138537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 138637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 138737eb1ca1Smrg INTEGERFEEDBACKSTATE 138837eb1ca1Smrg 1 0 feedback class id 138937eb1ca1Smrg 1 CARD8 id of this feedback 139037eb1ca1Smrg 2 16 length 139137eb1ca1Smrg 4 CARD32 resolution 139237eb1ca1Smrg 4 INT32 minimum value 139337eb1ca1Smrg 4 INT32 maximum value 139437eb1ca1Smrg</literallayout> 139537eb1ca1Smrg</para> 139637eb1ca1Smrg<para> 139737eb1ca1Smrg<!-- .LP --> 139837eb1ca1Smrg<literallayout class="monospaced"> 139937eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 140037eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 140137eb1ca1Smrg STRINGFEEDBACKSTATE 140237eb1ca1Smrg 1 1 feedback class id 140337eb1ca1Smrg 1 CARD8 id of this feedback 140437eb1ca1Smrg 2 4n+8 length 140537eb1ca1Smrg 2 CARD16 max_symbols 140637eb1ca1Smrg 2 n number of keysyms supported 140737eb1ca1Smrg 4n LISTofKEYSYM key symbols supported 140837eb1ca1Smrg</literallayout> 140937eb1ca1Smrg</para> 141037eb1ca1Smrg<para> 141137eb1ca1Smrg<!-- .LP --> 141237eb1ca1Smrg<literallayout class="monospaced"> 141337eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 141437eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 141537eb1ca1Smrg BELLFEEDBACKSTATE 141637eb1ca1Smrg 1 1 feedback class id 141737eb1ca1Smrg 1 CARD8 id of this feedback 141837eb1ca1Smrg 2 12 length 141937eb1ca1Smrg 1 CARD8 percent 142037eb1ca1Smrg 3 unused 142137eb1ca1Smrg 2 CARD16 pitch 142237eb1ca1Smrg 2 CARD16 duration 142337eb1ca1Smrg</literallayout> 142437eb1ca1Smrg</para> 142537eb1ca1Smrg<para> 142637eb1ca1Smrg<!-- .LP --> 142737eb1ca1Smrg<literallayout class="monospaced"> 142837eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 142937eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 143037eb1ca1Smrg LEDFEEDBACKSTATE 143137eb1ca1Smrg 1 1 feedback class id 143237eb1ca1Smrg 1 CARD8 id of this feedback 143337eb1ca1Smrg 2 12 length 143437eb1ca1Smrg 4 CARD32 led_mask 143537eb1ca1Smrg 4 BITMASK led_values 143637eb1ca1Smrg #x0001 On 143737eb1ca1Smrg #x0002 Off 143837eb1ca1Smrg</literallayout> 143937eb1ca1Smrg</para> 144037eb1ca1Smrg<para> 144137eb1ca1Smrg<!-- .LP --> 144237eb1ca1Smrg<literallayout class="monospaced"> 144337eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 144437eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 144537eb1ca1SmrgChangeFeedbackControl 144637eb1ca1Smrg 1 CARD8 input extension opcode 144737eb1ca1Smrg 1 23 ChangeFeedbackControl opcode 144837eb1ca1Smrg 2 3+n/4 request length 144937eb1ca1Smrg 4 BITMASK value-mask (has n bits set to 1) 145037eb1ca1Smrg #x0001 keyclick-percent 145137eb1ca1Smrg #x0002 bell-percent 145237eb1ca1Smrg #x0004 bell-pitch 145337eb1ca1Smrg #x0008 bell-duration 145437eb1ca1Smrg #x0010 led 145537eb1ca1Smrg #x0020 led-mode 145637eb1ca1Smrg #x0040 key 145737eb1ca1Smrg #x0080 auto-repeat-mode 145837eb1ca1Smrg #x0001 string 145937eb1ca1Smrg #x0001 integer 146037eb1ca1Smrg #x0001 acceleration-numerator 146137eb1ca1Smrg #x0002 acceleration-denominator 146237eb1ca1Smrg #x0004 acceleration-threshold 146337eb1ca1Smrg 1 CARD8 device id 146437eb1ca1Smrg 1 CARD8 feedback class id 146537eb1ca1Smrg 2 unused 146637eb1ca1Smrg n FEEDBACKCLASS 146737eb1ca1Smrg</literallayout> 146837eb1ca1Smrg</para> 146937eb1ca1Smrg<para> 147037eb1ca1Smrg<!-- .LP --> 147137eb1ca1Smrg<literallayout class="monospaced"> 147237eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 147337eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 147437eb1ca1Smrg FEEDBACKCLASS KBDFEEDBACKCTL, PTRFEEDBACKCTL, INTEGERFEEDBACKCTL, 147537eb1ca1Smrg STRINGFEEDBACKCTL, BELLFEEDBACKCTL, or LEDFEEDBACKCTL 147637eb1ca1Smrg</literallayout> 147737eb1ca1Smrg</para> 147837eb1ca1Smrg<para> 147937eb1ca1Smrg<!-- .LP --> 148037eb1ca1Smrg<literallayout class="monospaced"> 148137eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 148237eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 148337eb1ca1Smrg KBDFEEDBACKCTL 148437eb1ca1Smrg 1 0 feedback class id 148537eb1ca1Smrg 1 CARD8 id of this feedback 148637eb1ca1Smrg 2 20 length 148737eb1ca1Smrg 1 KEYCODE key 148837eb1ca1Smrg 1 auto-repeat-mode 148937eb1ca1Smrg 0 Off 149037eb1ca1Smrg 1 On 149137eb1ca1Smrg 2 Default 149237eb1ca1Smrg 1 INT8 key-click-percent 149337eb1ca1Smrg 1 INT8 bell-percent 149437eb1ca1Smrg 2 INT16 bell-pitch 149537eb1ca1Smrg 2 INT16 bell-duration 149637eb1ca1Smrg 4 CARD32 led_mask 149737eb1ca1Smrg 4 CARD32 led_values 149837eb1ca1Smrg</literallayout> 149937eb1ca1Smrg</para> 150037eb1ca1Smrg<para> 150137eb1ca1Smrg<!-- .LP --> 150237eb1ca1Smrg<literallayout class="monospaced"> 150337eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 150437eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 150537eb1ca1Smrg PTRFEEDBACKCTL 150637eb1ca1Smrg 1 1 feedback class id 150737eb1ca1Smrg 1 CARD8 id of this feedback 150837eb1ca1Smrg 2 12 length 150937eb1ca1Smrg 2 unused 151037eb1ca1Smrg 2 INT16 numerator 151137eb1ca1Smrg 2 INT16 denominator 151237eb1ca1Smrg 2 INT16 threshold 151337eb1ca1Smrg</literallayout> 151437eb1ca1Smrg</para> 151537eb1ca1Smrg<para> 151637eb1ca1Smrg<!-- .LP --> 151737eb1ca1Smrg<literallayout class="monospaced"> 151837eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 151937eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 152037eb1ca1Smrg STRINGCTL 152137eb1ca1Smrg 1 2 feedback class id 152237eb1ca1Smrg 1 CARD8 id of this feedback 152337eb1ca1Smrg 2 4n+8 length 152437eb1ca1Smrg 2 unused 152537eb1ca1Smrg 2 n number of keysyms to display 152637eb1ca1Smrg 4n LISTofKEYSYM list of key symbols to display 152737eb1ca1Smrg</literallayout> 152837eb1ca1Smrg</para> 152937eb1ca1Smrg<para> 153037eb1ca1Smrg<!-- .LP --> 153137eb1ca1Smrg<literallayout class="monospaced"> 153237eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 153337eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 153437eb1ca1Smrg INTEGERCTL 153537eb1ca1Smrg 1 3 feedback class id 153637eb1ca1Smrg 1 CARD8 id of this feedback 153737eb1ca1Smrg 2 8 length 153837eb1ca1Smrg 4 INT32 integer to display 153937eb1ca1Smrg</literallayout> 154037eb1ca1Smrg</para> 154137eb1ca1Smrg<para> 154237eb1ca1Smrg<!-- .LP --> 154337eb1ca1Smrg<literallayout class="monospaced"> 154437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 154537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 154637eb1ca1Smrg LEDCTL 154737eb1ca1Smrg 1 4 feedback class id 154837eb1ca1Smrg 1 CARD8 id of this feedback 154937eb1ca1Smrg 2 12 length 155037eb1ca1Smrg 4 CARD32 led_mask 155137eb1ca1Smrg 4 BITMASK led_values 155237eb1ca1Smrg #x0001 On 155337eb1ca1Smrg #x0002 Off 155437eb1ca1Smrg</literallayout> 155537eb1ca1Smrg</para> 155637eb1ca1Smrg<para> 155737eb1ca1Smrg<!-- .LP --> 155837eb1ca1Smrg<literallayout class="monospaced"> 155937eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 156037eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 156137eb1ca1Smrg BELLCTL 156237eb1ca1Smrg 1 5 feedback class id 156337eb1ca1Smrg 1 CARD8 id of this feedback 156437eb1ca1Smrg 2 8 length 156537eb1ca1Smrg 1 INT8 percent 156637eb1ca1Smrg 3 unused 156737eb1ca1Smrg 2 INT16 pitch 156837eb1ca1Smrg 2 INT16 duration 156937eb1ca1Smrg</literallayout> 157037eb1ca1Smrg</para> 157137eb1ca1Smrg<para> 157237eb1ca1Smrg<!-- .LP --> 157337eb1ca1Smrg<literallayout class="monospaced"> 157437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 157537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 157637eb1ca1SmrgGetDeviceKeyMapping 157737eb1ca1Smrg 1 CARD8 input extension opcode 157837eb1ca1Smrg 1 24 GetDeviceKeyMapping opcode 157937eb1ca1Smrg 2 2 request length 158037eb1ca1Smrg 1 CARD8 device 158137eb1ca1Smrg 1 KEYCODE first-keycode 158237eb1ca1Smrg 1 CARD8 count 158337eb1ca1Smrg 1 unused 158437eb1ca1Smrg</literallayout> 158537eb1ca1Smrg<literallayout class="monospaced"> 158637eb1ca1Smrg<!-- .TA .2i .75i 2.0i 3.0i --> 158737eb1ca1Smrg<!-- .ta .2i .75i 2.0i 3.0i --> 158837eb1ca1Smrg => 158937eb1ca1Smrg 1 1 Reply 159037eb1ca1Smrg 1 24 GetDeviceKeyMapping opcode 159137eb1ca1Smrg 2 CARD16 sequence number 159237eb1ca1Smrg 4 nm reply length (m = count field from the request) 159337eb1ca1Smrg 1 n keysyms-per-keycode 159437eb1ca1Smrg 23 unused 159537eb1ca1Smrg 4nm LISTofKEYSYM keysyms 159637eb1ca1Smrg</literallayout> 159737eb1ca1Smrg</para> 159837eb1ca1Smrg<para> 159937eb1ca1Smrg<!-- .LP --> 160037eb1ca1Smrg<literallayout class="monospaced"> 160137eb1ca1Smrg<!-- .TA .2i .75i 2.0i 3.0i --> 160237eb1ca1Smrg<!-- .ta .2i .75i 2.0i 3.0i --> 160337eb1ca1SmrgChangeDeviceKeyMapping 160437eb1ca1Smrg 1 CARD8 input extension opcode 160537eb1ca1Smrg 1 25 ChangeDeviceKeyMapping opcode 160637eb1ca1Smrg 2 2+nm request length 160737eb1ca1Smrg 1 CARD8 device 160837eb1ca1Smrg 1 KEYCODE first-keycode 160937eb1ca1Smrg 1 m keysyms-per-keycode 161037eb1ca1Smrg 1 n keycode-count 161137eb1ca1Smrg 4nm LISTofKEYSYM keysyms 161237eb1ca1Smrg</literallayout> 161337eb1ca1Smrg</para> 161437eb1ca1Smrg<para> 161537eb1ca1Smrg<!-- .LP --> 161637eb1ca1Smrg<literallayout class="monospaced"> 161737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 161837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 161937eb1ca1SmrgGetDeviceModifierMapping 162037eb1ca1Smrg 1 CARD8 input extension opcode 162137eb1ca1Smrg 1 26 GetDeviceModifierMapping opcode 162237eb1ca1Smrg 2 2 request length 162337eb1ca1Smrg 1 CARD8 device 162437eb1ca1Smrg 3 unused 162537eb1ca1Smrg</literallayout> 162637eb1ca1Smrg<literallayout class="monospaced"> 162737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 162837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 162937eb1ca1Smrg => 163037eb1ca1Smrg 1 1 Reply 163137eb1ca1Smrg 1 26 GetDeviceModifierMapping opcode 163237eb1ca1Smrg 2 CARD16 sequence number 163337eb1ca1Smrg 4 2n reply length 163437eb1ca1Smrg 1 n keycodes-per-modifier 163537eb1ca1Smrg 23 unused 163637eb1ca1Smrg 8n LISTofKEYCODE keycodes 163737eb1ca1Smrg</literallayout> 163837eb1ca1Smrg</para> 163937eb1ca1Smrg<para> 164037eb1ca1Smrg<!-- .LP --> 164137eb1ca1Smrg<literallayout class="monospaced"> 164237eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 164337eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 164437eb1ca1SmrgSetDeviceModifierMapping 164537eb1ca1Smrg 1 CARD8 input extension opcode 164637eb1ca1Smrg 1 27 SetDeviceModifier opcode 164737eb1ca1Smrg 2 2+2n request length 164837eb1ca1Smrg 1 CARD8 device 164937eb1ca1Smrg 1 n keycodes-per-modifier 165037eb1ca1Smrg 2 unused 165137eb1ca1Smrg 8n LISTofKEYCODE keycodes 165237eb1ca1Smrg</literallayout> 165337eb1ca1Smrg<literallayout class="monospaced"> 165437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 165537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 165637eb1ca1Smrg => 165737eb1ca1Smrg 1 1 Reply 165837eb1ca1Smrg 1 27 SetDeviceModifierMapping opcode 165937eb1ca1Smrg 2 CARD16 sequence number 166037eb1ca1Smrg 4 0 reply length 166137eb1ca1Smrg 1 status 166237eb1ca1Smrg 0 Success 166337eb1ca1Smrg 1 Busy 166437eb1ca1Smrg 2 Failed 166537eb1ca1Smrg 23 unused 166637eb1ca1Smrg</literallayout> 166737eb1ca1Smrg</para> 166837eb1ca1Smrg<para> 166937eb1ca1Smrg<!-- .LP --> 167037eb1ca1Smrg<literallayout class="monospaced"> 167137eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 167237eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 167337eb1ca1SmrgGetDeviceButtonMapping 167437eb1ca1Smrg 1 CARD8 input extension opcode 167537eb1ca1Smrg 1 28 GetDeviceButtonMapping opcode 167637eb1ca1Smrg 2 2 request length 167737eb1ca1Smrg 1 CARD8 device 167837eb1ca1Smrg 3 unused 167937eb1ca1Smrg</literallayout> 168037eb1ca1Smrg<literallayout class="monospaced"> 168137eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 168237eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 168337eb1ca1Smrg => 168437eb1ca1Smrg 1 1 Reply 168537eb1ca1Smrg 1 28 GetDeviceButtonMapping opcode 168637eb1ca1Smrg 2 CARD16 sequence number 168737eb1ca1Smrg 4 (n+p)/4 reply length 168837eb1ca1Smrg 1 n number of elements in map list 168937eb1ca1Smrg 23 unused 169037eb1ca1Smrg n LISTofCARD8 map 169137eb1ca1Smrg p unused, p=pad(n) 169237eb1ca1Smrg</literallayout> 169337eb1ca1Smrg</para> 169437eb1ca1Smrg<para> 169537eb1ca1Smrg<!-- .LP --> 169637eb1ca1Smrg<literallayout class="monospaced"> 169737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 169837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 169937eb1ca1SmrgSetDeviceButtonMapping 170037eb1ca1Smrg 1 CARD8 input extension opcode 170137eb1ca1Smrg 1 29 SetDeviceButtonMapping opcode 170237eb1ca1Smrg 2 2+(n+p)/4 request length 170337eb1ca1Smrg 1 CARD8 device 170437eb1ca1Smrg 1 n length of map 170537eb1ca1Smrg 2 unused 170637eb1ca1Smrg n LISTofCARD8 map 170737eb1ca1Smrg p unused, p=pad(n) 170837eb1ca1Smrg</literallayout> 170937eb1ca1Smrg<literallayout class="monospaced"> 171037eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 171137eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 171237eb1ca1Smrg => 171337eb1ca1Smrg 1 1 Reply 171437eb1ca1Smrg 1 29 SetDeviceButtonMapping opcode 171537eb1ca1Smrg 2 CARD16 sequence number 171637eb1ca1Smrg 4 0 reply length 171737eb1ca1Smrg 1 status 171837eb1ca1Smrg 0 Success 171937eb1ca1Smrg 1 Busy 172037eb1ca1Smrg 23 unused 172137eb1ca1Smrg</literallayout> 172237eb1ca1Smrg</para> 172337eb1ca1Smrg<para> 172437eb1ca1Smrg<!-- .LP --> 172537eb1ca1Smrg<literallayout class="monospaced"> 172637eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 172737eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 172837eb1ca1SmrgQueryDeviceState 172937eb1ca1Smrg 1 CARD8 input extension opcode 173037eb1ca1Smrg 1 30 QueryDeviceState opcode 173137eb1ca1Smrg 2 2 request length 173237eb1ca1Smrg 1 CARD8 device 173337eb1ca1Smrg 3 unused 173437eb1ca1Smrg</literallayout> 173537eb1ca1Smrg<literallayout class="monospaced"> 173637eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 173737eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 173837eb1ca1Smrg => 173937eb1ca1Smrg 1 1 Reply 174037eb1ca1Smrg 1 30 QueryDeviceState opcode 174137eb1ca1Smrg 2 CARD16 sequence number 174237eb1ca1Smrg 4 m/4 reply length 174337eb1ca1Smrg 1 n number of input classes 174437eb1ca1Smrg 23 unused 174537eb1ca1Smrg m LISTofINPUTSTATE 174637eb1ca1Smrg</literallayout> 174737eb1ca1Smrg<literallayout class="monospaced"> 174837eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 174937eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 175037eb1ca1Smrg INPUTSTATE KEYSTATE or BUTTONSTATE or VALUATORSTATE 175137eb1ca1Smrg</literallayout> 175237eb1ca1Smrg</para> 175337eb1ca1Smrg<para> 175437eb1ca1Smrg<!-- .LP --> 175537eb1ca1Smrg<literallayout class="monospaced"> 175637eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 175737eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 175837eb1ca1Smrg KEYSTATE 175937eb1ca1Smrg 1 CARD8 key input class id 176037eb1ca1Smrg 1 36 length 176137eb1ca1Smrg 1 CARD8 num_keys 176237eb1ca1Smrg 1 unused 176337eb1ca1Smrg 32 LISTofCARD8 status of keys 176437eb1ca1Smrg</literallayout> 176537eb1ca1Smrg<literallayout class="monospaced"> 176637eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 176737eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 176837eb1ca1Smrg BUTTONSTATE 176937eb1ca1Smrg 1 CARD8 button input class id 177037eb1ca1Smrg 1 36 length 177137eb1ca1Smrg 1 CARD8 num_buttons 177237eb1ca1Smrg 1 unused 177337eb1ca1Smrg 32 LISTofCARD8 status of buttons 177437eb1ca1Smrg</literallayout> 177537eb1ca1Smrg<literallayout class="monospaced"> 177637eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 177737eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 177837eb1ca1Smrg VALUATORSTATE 177937eb1ca1Smrg 1 CARD8 valuator input class id 178037eb1ca1Smrg 1 4n + 4 length 178137eb1ca1Smrg 1 n number of valuators 178237eb1ca1Smrg 1 mode 178337eb1ca1Smrg #x01 DeviceMode (0 = Relative, 1 = Absolute) 178437eb1ca1Smrg #x02 ProximityState (0 = InProximity, 1 = OutOfProximity) 178537eb1ca1Smrg 4n LISTofCARD32 status of valuators 178637eb1ca1Smrg</literallayout> 178737eb1ca1Smrg</para> 178837eb1ca1Smrg<para> 178937eb1ca1Smrg<!-- .LP --> 179037eb1ca1Smrg<literallayout class="monospaced"> 179137eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 179237eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 179337eb1ca1SmrgSendExtensionEvent 179437eb1ca1Smrg 1 CARD8 input extension opcode 179537eb1ca1Smrg 1 31 SendExtensionEvent opcode 179637eb1ca1Smrg 2 4 + 8n + m request length 179737eb1ca1Smrg 4 WINDOW destination 179837eb1ca1Smrg 1 CARD8 device 179937eb1ca1Smrg 1 BOOL propagate 180037eb1ca1Smrg 2 CARD16 eventclass count 180137eb1ca1Smrg 1 CARD8 num_events 180237eb1ca1Smrg 3 unused 180337eb1ca1Smrg 32n LISTofEVENTS events to send 180437eb1ca1Smrg 4m LISTofEVENTCLASS desired events 180537eb1ca1Smrg</literallayout> 180637eb1ca1Smrg</para> 180737eb1ca1Smrg<para> 180837eb1ca1Smrg<!-- .LP --> 180937eb1ca1Smrg<literallayout class="monospaced"> 181037eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 181137eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 181237eb1ca1SmrgDeviceBell 181337eb1ca1Smrg 1 CARD8 input extension opcode 181437eb1ca1Smrg 1 32 DeviceBell opcode 181537eb1ca1Smrg 2 2 request length 181637eb1ca1Smrg 1 CARD8 device id 181737eb1ca1Smrg 1 CARD8 feedback id 181837eb1ca1Smrg 1 CARD8 feedback class 181937eb1ca1Smrg 1 INT8 percent 182037eb1ca1Smrg</literallayout> 182137eb1ca1Smrg</para> 182237eb1ca1Smrg<para> 182337eb1ca1Smrg<!-- .LP --> 182437eb1ca1Smrg<literallayout class="monospaced"> 182537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 182637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 182737eb1ca1SmrgSetDeviceValuators 182837eb1ca1Smrg 1 CARD8 input extension opcode 182937eb1ca1Smrg 1 33 SetDeviceValuators opcode 183037eb1ca1Smrg 2 2 + n request length 183137eb1ca1Smrg 1 CARD8 device id 183237eb1ca1Smrg 1 CARD8 first valuator 183337eb1ca1Smrg 1 n number of valuators 183437eb1ca1Smrg 1 unused 183537eb1ca1Smrg 4n LISTofINT32 valuator values to set 183637eb1ca1Smrg</literallayout> 183737eb1ca1Smrg<literallayout class="monospaced"> 183837eb1ca1Smrg<!-- .TA .2i .5i 1.5i 3.5i --> 183937eb1ca1Smrg<!-- .ta .2i .5i 1.5i 3.5i --> 184037eb1ca1Smrg => 184137eb1ca1Smrg 1 1 Reply 184237eb1ca1Smrg 1 33 SetDeviceValuators opcode 184337eb1ca1Smrg 2 CARD16 sequence number 184437eb1ca1Smrg 4 0 reply length 184537eb1ca1Smrg 1 CARD8 status 184637eb1ca1Smrg 0 Success 184737eb1ca1Smrg 1 AlreadyGrabbed 184837eb1ca1Smrg 23 unused 184937eb1ca1Smrg</literallayout> 185037eb1ca1Smrg</para> 185137eb1ca1Smrg<para> 185237eb1ca1Smrg<!-- .LP --> 185337eb1ca1Smrg<literallayout class="monospaced"> 185437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 185537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 185637eb1ca1SmrgGetDeviceControl 185737eb1ca1Smrg 1 CARD8 input extension opcode 185837eb1ca1Smrg 1 34 GetDeviceControl opcode 185937eb1ca1Smrg 2 2 request length 186037eb1ca1Smrg 2 CARD16 device control type 186137eb1ca1Smrg 1 CARD8 device id 186237eb1ca1Smrg 1 unused 186337eb1ca1Smrg</literallayout> 186437eb1ca1Smrg<literallayout class="monospaced"> 186537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 3.5i --> 186637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 3.5i --> 186737eb1ca1Smrg => 186837eb1ca1Smrg 1 1 Reply 186937eb1ca1Smrg 1 34 GetDeviceControl opcode 187037eb1ca1Smrg 2 CARD16 sequence number 187137eb1ca1Smrg 4 n/4 reply length 187237eb1ca1Smrg 1 CARD8 status 187337eb1ca1Smrg 0 Success 187437eb1ca1Smrg 1 AlreadyGrabbed 187537eb1ca1Smrg 3 + first_error DeviceBusy 187637eb1ca1Smrg 23 unused 187737eb1ca1Smrg n DEVICESTATE 187837eb1ca1Smrg</literallayout> 187937eb1ca1Smrg<literallayout class="monospaced"> 188037eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 188137eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 188237eb1ca1SmrgDEVICESTATE DEVICERESOLUTIONSTATE 188337eb1ca1Smrg</literallayout> 188437eb1ca1Smrg</para> 188537eb1ca1Smrg<para> 188637eb1ca1Smrg<!-- .LP --> 188737eb1ca1Smrg<literallayout class="monospaced"> 188837eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 188937eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 189037eb1ca1SmrgDEVICERESOLUTIONSTATE 189137eb1ca1Smrg 2 0 control type 189237eb1ca1Smrg 2 8 + 12n length 189337eb1ca1Smrg 4 n num_valuators 189437eb1ca1Smrg 4n LISTOfCARD32 resolution values 189537eb1ca1Smrg 4n LISTOfCARD32 resolution min_values 189637eb1ca1Smrg 4n LISTOfCARD32 resolution max_values 189737eb1ca1Smrg</literallayout> 189837eb1ca1Smrg</para> 189937eb1ca1Smrg<para> 190037eb1ca1Smrg<!-- .LP --> 190137eb1ca1Smrg</para> 190237eb1ca1Smrg<para> 190337eb1ca1Smrg<!-- .LP --> 190437eb1ca1Smrg<literallayout class="monospaced"> 190537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 190637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 190737eb1ca1SmrgChangeDeviceControl 190837eb1ca1Smrg 1 CARD8 input extension opcode 190937eb1ca1Smrg 1 35 ChangeDeviceControl opcode 191037eb1ca1Smrg 2 2+n/4 request length 191137eb1ca1Smrg 2 CARD16 control type 191237eb1ca1Smrg 1 CARD8 device id 191337eb1ca1Smrg 1 unused 191437eb1ca1Smrg n DEVICECONTROL 191537eb1ca1Smrg</literallayout> 191637eb1ca1Smrg<literallayout class="monospaced"> 191737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 191837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 191937eb1ca1SmrgDEVICECONTROL DEVICERESOLUTIONCTL 192037eb1ca1Smrg</literallayout> 192137eb1ca1Smrg</para> 192237eb1ca1Smrg<para> 192337eb1ca1Smrg<!-- .LP --> 192437eb1ca1Smrg<literallayout class="monospaced"> 192537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 192637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 192737eb1ca1SmrgDEVICERESOLUTIONCTL 192837eb1ca1Smrg 2 1 control type 192937eb1ca1Smrg 2 8 + 4n length 193037eb1ca1Smrg 1 CARD8 first_valuator 193137eb1ca1Smrg 1 n num_valuators 193237eb1ca1Smrg 2 unused 193337eb1ca1Smrg 4n LISTOfCARD32 resolution values 193437eb1ca1Smrg</literallayout> 193537eb1ca1Smrg</para> 193637eb1ca1Smrg<para> 193737eb1ca1Smrg<!-- .LP --> 193837eb1ca1Smrg<literallayout class="monospaced"> 193937eb1ca1Smrg<!-- .TA .2i .5i 1.5i 3.5i --> 194037eb1ca1Smrg<!-- .ta .2i .5i 1.5i 3.5i --> 194137eb1ca1Smrg => 194237eb1ca1Smrg 1 1 Reply 194337eb1ca1Smrg 1 35 ChangeDeviceControl opcode 194437eb1ca1Smrg 2 CARD16 sequence number 194537eb1ca1Smrg 4 0 reply length 194637eb1ca1Smrg 1 CARD8 status 194737eb1ca1Smrg 0 Success 194837eb1ca1Smrg 1 AlreadyGrabbed 194937eb1ca1Smrg 3 + first_error DeviceBusy 195037eb1ca1Smrg 23 unused 195137eb1ca1Smrg</literallayout> 195237eb1ca1Smrg<!-- .ps +2 --> 195337eb1ca1SmrgEvents 195437eb1ca1Smrg<!-- .ps --> 195537eb1ca1Smrg</para> 195637eb1ca1Smrg<para> 195737eb1ca1Smrg<!-- .LP --> 195837eb1ca1SmrgDeviceKeyPress, DeviceKeyRelease, DeviceButtonPress, DeviceButtonRelease, 195937eb1ca1SmrgProximityIn, ProximityOut, and DeviceStateNotify events may be followed by 196037eb1ca1Smrgzero or more DeviceValuator events. DeviceMotionNotify events will be 196137eb1ca1Smrgfollowed by one or more DeviceValuator events. 196237eb1ca1Smrg</para> 196337eb1ca1Smrg<para> 196437eb1ca1Smrg<!-- .LP --> 196537eb1ca1Smrg<literallayout class="monospaced"> 196637eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 196737eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 196837eb1ca1SmrgDeviceValuator 196937eb1ca1Smrg 1 CARD8 code 197037eb1ca1Smrg 1 CARD8 device id 197137eb1ca1Smrg 2 CARD16 sequence number 197237eb1ca1Smrg 2 SETofKEYBUTMASK state 197337eb1ca1Smrg 1 n number of valuators this device reports 197437eb1ca1Smrg 1 m number of first valuator in this event 197537eb1ca1Smrg 24 LISTofINT32 valuators 197637eb1ca1Smrg</literallayout> 197737eb1ca1Smrg</para> 197837eb1ca1Smrg<para> 197937eb1ca1Smrg<!-- .LP --> 198037eb1ca1Smrg<literallayout class="monospaced"> 198137eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 198237eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 198337eb1ca1SmrgDeviceKeyPress 198437eb1ca1Smrg 1 CARD8 code 198537eb1ca1Smrg 1 KEYCODE detail 198637eb1ca1Smrg 2 CARD16 sequence number 198737eb1ca1Smrg 4 TIMESTAMP time 198837eb1ca1Smrg 4 WINDOW root 198937eb1ca1Smrg 4 WINDOW event 199037eb1ca1Smrg 4 WINDOW child 199137eb1ca1Smrg 0 None 199237eb1ca1Smrg 2 INT16 root-x 199337eb1ca1Smrg 2 INT16 root-y 199437eb1ca1Smrg 2 INT16 event-x 199537eb1ca1Smrg 2 INT16 event-y 199637eb1ca1Smrg 2 SETofKEYBUTMASK state 199737eb1ca1Smrg 1 BOOL same-screen 199837eb1ca1Smrg 1 CARD8 device id 199937eb1ca1Smrg #x80 MORE_EVENTS follow 200037eb1ca1Smrg</literallayout> 200137eb1ca1Smrg</para> 200237eb1ca1Smrg<para> 200337eb1ca1Smrg<!-- .LP --> 200437eb1ca1Smrg<literallayout class="monospaced"> 200537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 200637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 200737eb1ca1SmrgDeviceKeyRelease 200837eb1ca1Smrg 1 CARD8 code 200937eb1ca1Smrg 1 KEYCODE detail 201037eb1ca1Smrg 2 CARD16 sequence number 201137eb1ca1Smrg 4 TIMESTAMP time 201237eb1ca1Smrg 4 WINDOW root 201337eb1ca1Smrg 4 WINDOW event 201437eb1ca1Smrg 4 WINDOW child 201537eb1ca1Smrg 0 None 201637eb1ca1Smrg 2 INT16 root-x 201737eb1ca1Smrg 2 INT16 root-y 201837eb1ca1Smrg 2 INT16 event-x 201937eb1ca1Smrg 2 INT16 event-y 202037eb1ca1Smrg 2 SETofKEYBUTMASK state 202137eb1ca1Smrg 1 BOOL same-screen 202237eb1ca1Smrg 1 CARD8 device id 202337eb1ca1Smrg #x80 MORE_EVENTS follow 202437eb1ca1Smrg</literallayout> 202537eb1ca1Smrg</para> 202637eb1ca1Smrg<para> 202737eb1ca1Smrg<!-- .LP --> 202837eb1ca1Smrg<literallayout class="monospaced"> 202937eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 203037eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 203137eb1ca1SmrgDeviceButtonPress 203237eb1ca1Smrg 1 CARD8 code 203337eb1ca1Smrg 1 BUTTON detail 203437eb1ca1Smrg 2 CARD16 sequence number 203537eb1ca1Smrg 4 TIMESTAMP time 203637eb1ca1Smrg 4 WINDOW root 203737eb1ca1Smrg 4 WINDOW event 203837eb1ca1Smrg 4 WINDOW child 203937eb1ca1Smrg 0 None 204037eb1ca1Smrg 2 INT16 root-x 204137eb1ca1Smrg 2 INT16 root-y 204237eb1ca1Smrg 2 INT16 event-x 204337eb1ca1Smrg 2 INT16 event-y 204437eb1ca1Smrg 2 SETofKEYBUTMASK state 204537eb1ca1Smrg 1 BOOL same-screen 204637eb1ca1Smrg 1 CARD8 device id 204737eb1ca1Smrg #x80 MORE_EVENTS follow 204837eb1ca1Smrg</literallayout> 204937eb1ca1Smrg</para> 205037eb1ca1Smrg<para> 205137eb1ca1Smrg<!-- .LP --> 205237eb1ca1Smrg<literallayout class="monospaced"> 205337eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 205437eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 205537eb1ca1SmrgDeviceButtonRelease 205637eb1ca1Smrg 1 CARD8 code 205737eb1ca1Smrg 1 BUTTON detail 205837eb1ca1Smrg 2 CARD16 sequence number 205937eb1ca1Smrg 4 TIMESTAMP time 206037eb1ca1Smrg 4 WINDOW root 206137eb1ca1Smrg 4 WINDOW event 206237eb1ca1Smrg 4 WINDOW child 206337eb1ca1Smrg 0 None 206437eb1ca1Smrg 2 INT16 root-x 206537eb1ca1Smrg 2 INT16 root-y 206637eb1ca1Smrg 2 INT16 event-x 206737eb1ca1Smrg 2 INT16 event-y 206837eb1ca1Smrg 2 SETofKEYBUTMASK state 206937eb1ca1Smrg 1 BOOL same-screen 207037eb1ca1Smrg 1 CARD8 device id 207137eb1ca1Smrg #x80 MORE_EVENTS follow 207237eb1ca1Smrg</literallayout> 207337eb1ca1Smrg</para> 207437eb1ca1Smrg<para> 207537eb1ca1Smrg<!-- .LP --> 207637eb1ca1Smrg<literallayout class="monospaced"> 207737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 207837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 207937eb1ca1SmrgDeviceMotionNotify 208037eb1ca1Smrg 1 CARD8 code 208137eb1ca1Smrg 1 detail 208237eb1ca1Smrg 0 Normal 208337eb1ca1Smrg 1 Hint 208437eb1ca1Smrg 2 CARD16 sequence number 208537eb1ca1Smrg 4 TIMESTAMP time 208637eb1ca1Smrg 4 WINDOW root 208737eb1ca1Smrg 4 WINDOW event 208837eb1ca1Smrg 4 WINDOW child 208937eb1ca1Smrg 0 None 209037eb1ca1Smrg 2 INT16 root-x 209137eb1ca1Smrg 2 INT16 root-y 209237eb1ca1Smrg 2 INT16 event-x 209337eb1ca1Smrg 2 INT16 event-y 209437eb1ca1Smrg 2 SETofKEYBUTMASK state 209537eb1ca1Smrg 1 BOOL same-screen 209637eb1ca1Smrg 1 CARD8 device id 209737eb1ca1Smrg #x80 MORE_EVENTS follow 209837eb1ca1Smrg</literallayout> 209937eb1ca1Smrg<literallayout class="monospaced"> 210037eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 210137eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 210237eb1ca1SmrgDeviceFocusIn 210337eb1ca1Smrg 1 CARD8 code 210437eb1ca1Smrg 1 detail 210537eb1ca1Smrg 0 Ancestor 210637eb1ca1Smrg 1 Virtual 210737eb1ca1Smrg 2 Inferior 210837eb1ca1Smrg 3 Nonlinear 210937eb1ca1Smrg 4 NonlinearVirtual 211037eb1ca1Smrg 5 Pointer 211137eb1ca1Smrg 6 PointerRoot 211237eb1ca1Smrg 7 None 211337eb1ca1Smrg 2 CARD16 sequence number 211437eb1ca1Smrg 4 TIMESTAMP time 211537eb1ca1Smrg 4 WINDOW event 211637eb1ca1Smrg 1 mode 211737eb1ca1Smrg 0 Normal 211837eb1ca1Smrg 1 Grab 211937eb1ca1Smrg 2 Ungrab 212037eb1ca1Smrg 3 WhileGrabbed 212137eb1ca1Smrg 1 CARD8 device id 212237eb1ca1Smrg 18 unused 212337eb1ca1Smrg</literallayout> 212437eb1ca1Smrg</para> 212537eb1ca1Smrg<para> 212637eb1ca1Smrg<!-- .LP --> 212737eb1ca1Smrg<literallayout class="monospaced"> 212837eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 212937eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 213037eb1ca1SmrgDeviceFocusOut 213137eb1ca1Smrg 1 CARD8 code 213237eb1ca1Smrg 1 detail 213337eb1ca1Smrg 0 Ancestor 213437eb1ca1Smrg 1 Virtual 213537eb1ca1Smrg 2 Inferior 213637eb1ca1Smrg 3 Nonlinear 213737eb1ca1Smrg 4 NonlinearVirtual 213837eb1ca1Smrg 5 Pointer 213937eb1ca1Smrg 6 PointerRoot 214037eb1ca1Smrg 7 None 214137eb1ca1Smrg 2 CARD16 sequence number 214237eb1ca1Smrg 4 TIMESTAMP time 214337eb1ca1Smrg 4 WINDOW event 214437eb1ca1Smrg 1 mode 214537eb1ca1Smrg 0 Normal 214637eb1ca1Smrg 1 Grab 214737eb1ca1Smrg 2 Ungrab 214837eb1ca1Smrg 3 WhileGrabbed 214937eb1ca1Smrg 1 CARD8 device id 215037eb1ca1Smrg 18 unused 215137eb1ca1Smrg</literallayout> 215237eb1ca1Smrg</para> 215337eb1ca1Smrg<para> 215437eb1ca1Smrg<!-- .LP --> 215537eb1ca1Smrg<literallayout class="monospaced"> 215637eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 215737eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 215837eb1ca1SmrgProximityIn 215937eb1ca1Smrg 1 CARD8 code 216037eb1ca1Smrg 1 unused 216137eb1ca1Smrg 2 CARD16 sequence number 216237eb1ca1Smrg 4 TIMESTAMP time 216337eb1ca1Smrg 4 WINDOW root 216437eb1ca1Smrg 4 WINDOW event 216537eb1ca1Smrg 4 WINDOW child 216637eb1ca1Smrg 0 None 216737eb1ca1Smrg 2 INT16 root-x 216837eb1ca1Smrg 2 INT16 root-y 216937eb1ca1Smrg 2 INT16 event-x 217037eb1ca1Smrg 2 INT16 event-y 217137eb1ca1Smrg 2 SETofKEYBUTMASK state 217237eb1ca1Smrg 1 BOOL same-screen 217337eb1ca1Smrg 1 CARD8 device id 217437eb1ca1Smrg #x80 MORE_EVENTS follow 217537eb1ca1Smrg</literallayout> 217637eb1ca1Smrg</para> 217737eb1ca1Smrg<para> 217837eb1ca1Smrg<!-- .LP --> 217937eb1ca1Smrg<literallayout class="monospaced"> 218037eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 218137eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 218237eb1ca1SmrgProximityOut 218337eb1ca1Smrg 1 CARD8 code 218437eb1ca1Smrg 1 unused 218537eb1ca1Smrg 2 CARD16 sequence number 218637eb1ca1Smrg 4 TIMESTAMP time 218737eb1ca1Smrg 4 WINDOW root 218837eb1ca1Smrg 4 WINDOW event 218937eb1ca1Smrg 4 WINDOW child 219037eb1ca1Smrg 0 None 219137eb1ca1Smrg 2 INT16 root-x 219237eb1ca1Smrg 2 INT16 root-y 219337eb1ca1Smrg 2 INT16 event-x 219437eb1ca1Smrg 2 INT16 event-y 219537eb1ca1Smrg 2 SETofKEYBUTMASK state 219637eb1ca1Smrg 1 BOOL same-screen 219737eb1ca1Smrg 1 CARD8 device id 219837eb1ca1Smrg #x80 MORE_EVENTS follow 219937eb1ca1Smrg</literallayout> 220037eb1ca1Smrg</para> 220137eb1ca1Smrg<para> 220237eb1ca1Smrg<!-- .LP --> 220337eb1ca1SmrgDeviceStateNotify events may be immediately followed by zero or one 220437eb1ca1SmrgDeviceKeyStateNotify and/ or zero or more DeviceValuator events. 220537eb1ca1Smrg</para> 220637eb1ca1Smrg<para> 220737eb1ca1Smrg<!-- .LP --> 220837eb1ca1Smrg<literallayout class="monospaced"> 220937eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 221037eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 221137eb1ca1SmrgDeviceStateNotify 221237eb1ca1Smrg 1 CARD8 code 221337eb1ca1Smrg 1 CARD8 device id 221437eb1ca1Smrg #x80 MORE_EVENTS follow 221537eb1ca1Smrg 2 CARD16 sequence number 221637eb1ca1Smrg 4 TIMESTAMP time 221737eb1ca1Smrg 1 CARD8 num_keys 221837eb1ca1Smrg 1 CARD8 num_buttons 221937eb1ca1Smrg 1 CARD8 num_valuators 222037eb1ca1Smrg 1 CARD8 valuator mode and input classes reported 222137eb1ca1Smrg #x01 reporting keys 222237eb1ca1Smrg #x02 reporting buttons 222337eb1ca1Smrg #x04 reporting valuators 222437eb1ca1Smrg #x40 device mode (0 = Relative, 1 = Absolute) 222537eb1ca1Smrg #x80 proximity state (0 = InProximity, 1 = OutOfProximity) 222637eb1ca1Smrg 4 LISTofCARD8 first 32 keys (if reported) 222737eb1ca1Smrg 4 LISTofCARD8 first 32 buttons (if reported) 222837eb1ca1Smrg 12 LISTofCARD32 first 3 valuators (if reported) 222937eb1ca1Smrg</literallayout> 223037eb1ca1Smrg</para> 223137eb1ca1Smrg<para> 223237eb1ca1Smrg<!-- .LP --> 223337eb1ca1Smrg<literallayout class="monospaced"> 223437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 223537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 223637eb1ca1SmrgDeviceKeyStateNotify 223737eb1ca1Smrg 1 CARD8 code 223837eb1ca1Smrg 1 CARD8 device id 223937eb1ca1Smrg #x80 MORE_EVENTS follow 224037eb1ca1Smrg 2 CARD16 sequence number 224137eb1ca1Smrg 28 LISTofCARD8 state of keys 33-255 224237eb1ca1Smrg</literallayout> 224337eb1ca1Smrg</para> 224437eb1ca1Smrg<para> 224537eb1ca1Smrg<!-- .LP --> 224637eb1ca1Smrg<literallayout class="monospaced"> 224737eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 224837eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 224937eb1ca1SmrgDeviceButtonStateNotify 225037eb1ca1Smrg 1 CARD8 code 225137eb1ca1Smrg 1 CARD8 device id 225237eb1ca1Smrg #x80 MORE_EVENTS follow 225337eb1ca1Smrg 2 CARD16 sequence number 225437eb1ca1Smrg 28 LISTofCARD8 state of buttons 33-255 225537eb1ca1Smrg</literallayout> 225637eb1ca1Smrg</para> 225737eb1ca1Smrg<para> 225837eb1ca1Smrg<!-- .LP --> 225937eb1ca1Smrg<literallayout class="monospaced"> 226037eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 226137eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 226237eb1ca1SmrgDeviceValuator 226337eb1ca1Smrg 1 CARD8 code 226437eb1ca1Smrg 1 CARD8 device id 226537eb1ca1Smrg 2 CARD16 sequence number 226637eb1ca1Smrg 2 SETofKEYBUTMASK state 226737eb1ca1Smrg 1 n number of valuators this device reports 226837eb1ca1Smrg 1 n number of first valuator in this event 226937eb1ca1Smrg 24 LISTofINT32 valuators 227037eb1ca1Smrg</literallayout> 227137eb1ca1Smrg</para> 227237eb1ca1Smrg<para> 227337eb1ca1Smrg<!-- .LP --> 227437eb1ca1Smrg<literallayout class="monospaced"> 227537eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 227637eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 227737eb1ca1SmrgDeviceMappingNotify 227837eb1ca1Smrg 1 CARD8 code 227937eb1ca1Smrg 1 CARD8 device id 228037eb1ca1Smrg 2 CARD16 sequence number 228137eb1ca1Smrg 1 request 228237eb1ca1Smrg 0 MappingModifier 228337eb1ca1Smrg 1 MappingKeyboard 228437eb1ca1Smrg 2 MappingPointer 228537eb1ca1Smrg 1 KEYCODE first-keycode 228637eb1ca1Smrg 1 CARD8 count 228737eb1ca1Smrg 1 unused 228837eb1ca1Smrg 4 TIMESTAMP time 228937eb1ca1Smrg 20 unused 229037eb1ca1Smrg</literallayout> 229137eb1ca1Smrg</para> 229237eb1ca1Smrg<!-- .LP --> 229337eb1ca1Smrg<literallayout class="monospaced"> 229437eb1ca1Smrg<!-- .TA .2i .5i 1.5i 2.5i --> 229537eb1ca1Smrg<!-- .ta .2i .5i 1.5i 2.5i --> 229637eb1ca1SmrgChangeDeviceNotify 229737eb1ca1Smrg 1 CARD8 code 229837eb1ca1Smrg 1 CARD8 id of device specified on change request 229937eb1ca1Smrg 2 CARD16 sequence number 230037eb1ca1Smrg 4 TIMESTAMP time 230137eb1ca1Smrg 1 request 230237eb1ca1Smrg 0 NewPointer 230337eb1ca1Smrg 1 NewKeyboard 230437eb1ca1Smrg 23 unused 230537eb1ca1Smrg</literallayout> 230637eb1ca1Smrg<!-- .\" print Table of Contents --> 230737eb1ca1Smrg<!-- .if o .bp \" blank page to make count even --> 230837eb1ca1Smrg<!-- .bp 1 --> 230937eb1ca1Smrg<!-- .af PN i --> 231037eb1ca1Smrg<!-- .PX --> 231137eb1ca1Smrg 231237eb1ca1Smrg</appendix> 2313