1 /************************************************************ 2 3 Copyright 1989, 1998 The Open Group 4 5 Permission to use, copy, modify, distribute, and sell this software and its 6 documentation for any purpose is hereby granted without fee, provided that 7 the above copyright notice appear in all copies and that both that 8 copyright notice and this permission notice appear in supporting 9 documentation. 10 11 The above copyright notice and this permission notice shall be included in 12 all copies or substantial portions of the Software. 13 14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 18 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 19 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20 21 Except as contained in this notice, the name of The Open Group shall not be 22 used in advertising or otherwise to promote the sale, use or other dealings 23 in this Software without prior written authorization from The Open Group. 24 25 Copyright 1989 by Hewlett-Packard Company, Palo Alto, California. 26 27 All Rights Reserved 28 29 Permission to use, copy, modify, and distribute this software and its 30 documentation for any purpose and without fee is hereby granted, 31 provided that the above copyright notice appear in all copies and that 32 both that copyright notice and this permission notice appear in 33 supporting documentation, and that the name of Hewlett-Packard not be 34 used in advertising or publicity pertaining to distribution of the 35 software without specific, written prior permission. 36 37 HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 38 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 39 HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 40 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 41 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 42 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 43 SOFTWARE. 44 45 ********************************************************/ 46 47 #ifndef _XIPROTO_H 48 #define _XIPROTO_H 49 50 #include <X11/Xproto.h> 51 #include <X11/X.h> 52 53 /* make sure types have right sizes for protocol structures. */ 54 #define Window CARD32 55 #define Time CARD32 56 #define KeyCode CARD8 57 #define Mask CARD32 58 #define Atom CARD32 59 #define Cursor CARD32 60 61 /********************************************************* 62 * 63 * number of events, errors, and extension name. 64 * 65 */ 66 67 #define MORE_EVENTS 0x80 68 #define DEVICE_BITS 0x7F 69 70 #define InputClassBits 0x3F /* bits in mode field for input classes */ 71 #define ModeBitsShift 6 /* amount to shift the remaining bits */ 72 73 #define numInputClasses 7 74 75 #define IEVENTS 17 /* does NOT include generic events */ 76 #define IERRORS 5 77 #define IREQUESTS 39 78 79 #define CLIENT_REQ 1 80 81 typedef struct _XExtEventInfo 82 { 83 Mask mask; 84 BYTE type; 85 BYTE word; 86 } XExtEventInfo; 87 88 typedef unsigned char *Pointer; 89 90 struct tmask 91 { 92 Mask mask; 93 Pointer dev; 94 }; 95 96 /********************************************************* 97 * 98 * Event constants used by library. 99 * 100 */ 101 102 #define XI_DeviceValuator 0 103 #define XI_DeviceKeyPress 1 104 #define XI_DeviceKeyRelease 2 105 #define XI_DeviceButtonPress 3 106 #define XI_DeviceButtonRelease 4 107 #define XI_DeviceMotionNotify 5 108 #define XI_DeviceFocusIn 6 109 #define XI_DeviceFocusOut 7 110 #define XI_ProximityIn 8 111 #define XI_ProximityOut 9 112 #define XI_DeviceStateNotify 10 113 #define XI_DeviceMappingNotify 11 114 #define XI_ChangeDeviceNotify 12 115 #define XI_DeviceKeystateNotify 13 116 #define XI_DeviceButtonstateNotify 14 117 #define XI_DevicePresenceNotify 15 118 #define XI_DevicePropertyNotify 16 119 120 /********************************************************* 121 * 122 * Protocol request constants 123 * 124 */ 125 126 #define X_GetExtensionVersion 1 127 #define X_ListInputDevices 2 128 #define X_OpenDevice 3 129 #define X_CloseDevice 4 130 #define X_SetDeviceMode 5 131 #define X_SelectExtensionEvent 6 132 #define X_GetSelectedExtensionEvents 7 133 #define X_ChangeDeviceDontPropagateList 8 134 #define X_GetDeviceDontPropagateList 9 135 #define X_GetDeviceMotionEvents 10 136 #define X_ChangeKeyboardDevice 11 137 #define X_ChangePointerDevice 12 138 #define X_GrabDevice 13 139 #define X_UngrabDevice 14 140 #define X_GrabDeviceKey 15 141 #define X_UngrabDeviceKey 16 142 #define X_GrabDeviceButton 17 143 #define X_UngrabDeviceButton 18 144 #define X_AllowDeviceEvents 19 145 #define X_GetDeviceFocus 20 146 #define X_SetDeviceFocus 21 147 #define X_GetFeedbackControl 22 148 #define X_ChangeFeedbackControl 23 149 #define X_GetDeviceKeyMapping 24 150 #define X_ChangeDeviceKeyMapping 25 151 #define X_GetDeviceModifierMapping 26 152 #define X_SetDeviceModifierMapping 27 153 #define X_GetDeviceButtonMapping 28 154 #define X_SetDeviceButtonMapping 29 155 #define X_QueryDeviceState 30 156 #define X_SendExtensionEvent 31 157 #define X_DeviceBell 32 158 #define X_SetDeviceValuators 33 159 #define X_GetDeviceControl 34 160 #define X_ChangeDeviceControl 35 161 /* XI 1.5 */ 162 #define X_ListDeviceProperties 36 163 #define X_ChangeDeviceProperty 37 164 #define X_DeleteDeviceProperty 38 165 #define X_GetDeviceProperty 39 166 167 /********************************************************* 168 * 169 * Protocol request and reply structures. 170 * 171 * GetExtensionVersion. 172 * 173 */ 174 175 typedef struct { 176 CARD8 reqType; /* input extension major code */ 177 CARD8 ReqType; /* always X_GetExtensionVersion */ 178 CARD16 length B16; 179 CARD16 nbytes B16; 180 CARD8 pad1, pad2; 181 } xGetExtensionVersionReq; 182 183 typedef struct { 184 CARD8 repType; /* X_Reply */ 185 CARD8 RepType; /* always X_GetExtensionVersion */ 186 CARD16 sequenceNumber B16; 187 CARD32 length B32; 188 CARD16 major_version B16; 189 CARD16 minor_version B16; 190 BOOL present; 191 CARD8 pad1, pad2, pad3; 192 CARD32 pad01 B32; 193 CARD32 pad02 B32; 194 CARD32 pad03 B32; 195 CARD32 pad04 B32; 196 } xGetExtensionVersionReply; 197 198 /********************************************************* 199 * 200 * ListInputDevices. 201 * 202 */ 203 204 typedef struct { 205 CARD8 reqType; /* input extension major code */ 206 CARD8 ReqType; /* always X_ListInputDevices */ 207 CARD16 length B16; 208 } xListInputDevicesReq; 209 210 typedef struct { 211 CARD8 repType; /* X_Reply */ 212 CARD8 RepType; /* always X_ListInputDevices */ 213 CARD16 sequenceNumber B16; 214 CARD32 length B32; 215 CARD8 ndevices; 216 CARD8 pad1, pad2, pad3; 217 CARD32 pad01 B32; 218 CARD32 pad02 B32; 219 CARD32 pad03 B32; 220 CARD32 pad04 B32; 221 CARD32 pad05 B32; 222 } xListInputDevicesReply; 223 224 typedef struct _xDeviceInfo *xDeviceInfoPtr; 225 226 typedef struct _xAnyClassinfo *xAnyClassPtr; 227 228 typedef struct _xAnyClassinfo { 229 #if defined(__cplusplus) || defined(c_plusplus) 230 CARD8 c_class; 231 #else 232 CARD8 class; 233 #endif 234 CARD8 length; 235 } xAnyClassInfo; 236 237 typedef struct _xDeviceInfo { 238 CARD32 type B32; 239 CARD8 id; 240 CARD8 num_classes; 241 CARD8 use; /* IsXPointer | IsXKeyboard | IsXExtension... */ 242 CARD8 attached; /* id of master dev (if IsXExtension..) */ 243 } xDeviceInfo; 244 245 typedef struct _xKeyInfo *xKeyInfoPtr; 246 247 typedef struct _xKeyInfo { 248 #if defined(__cplusplus) || defined(c_plusplus) 249 CARD8 c_class; 250 #else 251 CARD8 class; 252 #endif 253 CARD8 length; 254 KeyCode min_keycode; 255 KeyCode max_keycode; 256 CARD16 num_keys B16; 257 CARD8 pad1,pad2; 258 } xKeyInfo; 259 260 typedef struct _xButtonInfo *xButtonInfoPtr; 261 262 typedef struct _xButtonInfo { 263 #if defined(__cplusplus) || defined(c_plusplus) 264 CARD8 c_class; 265 #else 266 CARD8 class; 267 #endif 268 CARD8 length; 269 CARD16 num_buttons B16; 270 } xButtonInfo; 271 272 typedef struct _xValuatorInfo *xValuatorInfoPtr; 273 274 typedef struct _xValuatorInfo { 275 #if defined(__cplusplus) || defined(c_plusplus) 276 CARD8 c_class; 277 #else 278 CARD8 class; 279 #endif 280 CARD8 length; 281 CARD8 num_axes; 282 CARD8 mode; 283 CARD32 motion_buffer_size B32; 284 } xValuatorInfo; 285 286 typedef struct _xAxisInfo *xAxisInfoPtr; 287 288 typedef struct _xAxisInfo { 289 CARD32 resolution B32; 290 CARD32 min_value B32; 291 CARD32 max_value B32; 292 } xAxisInfo; 293 294 /********************************************************* 295 * 296 * OpenDevice. 297 * 298 */ 299 300 typedef struct { 301 CARD8 reqType; /* input extension major code */ 302 CARD8 ReqType; /* always X_OpenDevice */ 303 CARD16 length B16; 304 CARD8 deviceid; 305 BYTE pad1, pad2, pad3; 306 } xOpenDeviceReq; 307 308 typedef struct { 309 CARD8 repType; /* X_Reply */ 310 CARD8 RepType; /* always X_OpenDevice */ 311 CARD16 sequenceNumber B16; 312 CARD32 length B32; 313 CARD8 num_classes; 314 BYTE pad1, pad2, pad3; 315 CARD32 pad00 B32; 316 CARD32 pad01 B32; 317 CARD32 pad02 B32; 318 CARD32 pad03 B32; 319 CARD32 pad04 B32; 320 } xOpenDeviceReply; 321 322 typedef struct { 323 #if defined(__cplusplus) || defined(c_plusplus) 324 CARD8 c_class; 325 #else 326 CARD8 class; 327 #endif 328 CARD8 event_type_base; 329 } xInputClassInfo; 330 331 /********************************************************* 332 * 333 * CloseDevice. 334 * 335 */ 336 337 typedef struct { 338 CARD8 reqType; /* input extension major code */ 339 CARD8 ReqType; /* always X_CloseDevice */ 340 CARD16 length B16; 341 CARD8 deviceid; 342 BYTE pad1, pad2, pad3; 343 } xCloseDeviceReq; 344 345 /********************************************************* 346 * 347 * SetDeviceMode. 348 * 349 */ 350 351 typedef struct { 352 CARD8 reqType; /* input extension major code */ 353 CARD8 ReqType; /* always X_SetDeviceMode */ 354 CARD16 length B16; 355 CARD8 deviceid; 356 CARD8 mode; 357 BYTE pad1, pad2; 358 } xSetDeviceModeReq; 359 360 typedef struct { 361 CARD8 repType; /* X_Reply */ 362 CARD8 RepType; /* always X_SetDeviceMode */ 363 CARD16 sequenceNumber B16; 364 CARD32 length B32; 365 CARD8 status; 366 BYTE pad1, pad2, pad3; 367 CARD32 pad01 B32; 368 CARD32 pad02 B32; 369 CARD32 pad03 B32; 370 CARD32 pad04 B32; 371 CARD32 pad05 B32; 372 } xSetDeviceModeReply; 373 374 /********************************************************* 375 * 376 * SelectExtensionEvent. 377 * 378 */ 379 380 typedef struct { 381 CARD8 reqType; /* input extension major code */ 382 CARD8 ReqType; /* always X_SelectExtensionEvent */ 383 CARD16 length B16; 384 Window window B32; 385 CARD16 count B16; 386 CARD16 pad00 B16; 387 } xSelectExtensionEventReq; 388 389 /********************************************************* 390 * 391 * GetSelectedExtensionEvent. 392 * 393 */ 394 395 typedef struct { 396 CARD8 reqType; /* input extension major code */ 397 CARD8 ReqType; /* X_GetSelectedExtensionEvents */ 398 CARD16 length B16; 399 Window window B32; 400 } xGetSelectedExtensionEventsReq; 401 402 typedef struct { 403 CARD8 repType; /* X_Reply */ 404 CARD8 RepType; /* GetSelectedExtensionEvents */ 405 CARD16 sequenceNumber B16; 406 CARD32 length B32; 407 CARD16 this_client_count B16; 408 CARD16 all_clients_count B16; 409 CARD32 pad01 B32; 410 CARD32 pad02 B32; 411 CARD32 pad03 B32; 412 CARD32 pad04 B32; 413 CARD32 pad05 B32; 414 } xGetSelectedExtensionEventsReply; 415 416 /********************************************************* 417 * 418 * ChangeDeviceDontPropagateList. 419 * 420 */ 421 422 typedef struct { 423 CARD8 reqType; /* input extension major code */ 424 CARD8 ReqType; /* X_ChangeDeviceDontPropagateList */ 425 CARD16 length B16; 426 Window window B32; 427 CARD16 count B16; 428 CARD8 mode; 429 BYTE pad; 430 } xChangeDeviceDontPropagateListReq; 431 432 /********************************************************* 433 * 434 * GetDeviceDontPropagateList. 435 * 436 */ 437 438 typedef struct { 439 CARD8 reqType; /* input extension major code */ 440 CARD8 ReqType; /* X_GetDeviceDontPropagateList */ 441 CARD16 length B16; 442 Window window B32; 443 } xGetDeviceDontPropagateListReq; 444 445 typedef struct { 446 CARD8 repType; /* X_Reply */ 447 CARD8 RepType; /* GetDeviceDontPropagateList */ 448 CARD16 sequenceNumber B16; 449 CARD32 length B32; 450 CARD16 count B16; 451 CARD16 pad00 B16; 452 CARD32 pad01 B32; 453 CARD32 pad02 B32; 454 CARD32 pad03 B32; 455 CARD32 pad04 B32; 456 CARD32 pad05 B32; 457 } xGetDeviceDontPropagateListReply; 458 459 /********************************************************* 460 * 461 * GetDeviceMotionEvents. 462 * 463 */ 464 465 typedef struct { 466 CARD8 reqType; /* input extension major code */ 467 CARD8 ReqType; /* always X_GetDeviceMotionEvents*/ 468 CARD16 length B16; 469 Time start B32; 470 Time stop B32; 471 CARD8 deviceid; 472 BYTE pad1, pad2, pad3; 473 } xGetDeviceMotionEventsReq; 474 475 typedef struct { 476 CARD8 repType; /* X_Reply */ 477 CARD8 RepType; /* always X_GetDeviceMotionEvents */ 478 CARD16 sequenceNumber B16; 479 CARD32 length B32; 480 CARD32 nEvents B32; 481 CARD8 axes; 482 CARD8 mode; 483 BYTE pad1, pad2; 484 CARD32 pad01 B32; 485 CARD32 pad02 B32; 486 CARD32 pad03 B32; 487 CARD32 pad04 B32; 488 } xGetDeviceMotionEventsReply; 489 490 /********************************************************* 491 * 492 * ChangeKeyboardDevice. 493 * 494 */ 495 496 typedef struct { 497 CARD8 reqType; /* input extension major code */ 498 CARD8 ReqType; /* X_ChangeKeyboardDevice */ 499 CARD16 length B16; 500 CARD8 deviceid; 501 BYTE pad1, pad2, pad3; 502 } xChangeKeyboardDeviceReq; 503 504 typedef struct { 505 CARD8 repType; /* X_Reply */ 506 CARD8 RepType; /* always X_ChangeKeyboardDevice*/ 507 CARD16 sequenceNumber B16; 508 CARD32 length B32; /* 0 */ 509 CARD8 status; 510 BYTE pad1, pad2, pad3; 511 CARD32 pad01 B32; 512 CARD32 pad02 B32; 513 CARD32 pad03 B32; 514 CARD32 pad04 B32; 515 CARD32 pad05 B32; 516 } xChangeKeyboardDeviceReply; 517 518 /********************************************************* 519 * 520 * ChangePointerDevice. 521 * 522 */ 523 524 typedef struct { 525 CARD8 reqType; /* input extension major code */ 526 CARD8 ReqType; /* X_ChangePointerDevice */ 527 CARD16 length B16; 528 CARD8 xaxis; 529 CARD8 yaxis; 530 CARD8 deviceid; 531 BYTE pad1; 532 } xChangePointerDeviceReq; 533 534 typedef struct { 535 CARD8 repType; /* X_Reply */ 536 CARD8 RepType; /* always X_ChangePointerDevice */ 537 CARD16 sequenceNumber B16; 538 CARD32 length B32; /* 0 */ 539 CARD8 status; 540 BYTE pad1, pad2, pad3; 541 CARD32 pad01 B32; 542 CARD32 pad02 B32; 543 CARD32 pad03 B32; 544 CARD32 pad04 B32; 545 CARD32 pad05 B32; 546 } xChangePointerDeviceReply; 547 548 /********************************************************* 549 * 550 * GrabDevice. 551 * 552 */ 553 554 typedef struct { 555 CARD8 reqType; /* input extension major code */ 556 CARD8 ReqType; /* always X_GrabDevice */ 557 CARD16 length B16; 558 Window grabWindow B32; 559 Time time B32; 560 CARD16 event_count B16; 561 CARD8 this_device_mode; 562 CARD8 other_devices_mode; 563 BOOL ownerEvents; 564 CARD8 deviceid; 565 CARD16 pad01 B16; 566 } xGrabDeviceReq; 567 568 typedef struct { 569 CARD8 repType; /* X_Reply */ 570 CARD8 RepType; /* always X_GrabDevice */ 571 CARD16 sequenceNumber B16; 572 CARD32 length B32; /* 0 */ 573 CARD8 status; 574 BYTE pad1, pad2, pad3; 575 CARD32 pad01 B32; 576 CARD32 pad02 B32; 577 CARD32 pad03 B32; 578 CARD32 pad04 B32; 579 CARD32 pad05 B32; 580 } xGrabDeviceReply; 581 582 /********************************************************* 583 * 584 * UngrabDevice. 585 * 586 */ 587 588 typedef struct { 589 CARD8 reqType; /* input extension major code */ 590 CARD8 ReqType; /* always X_UnGrabDevice */ 591 CARD16 length B16; 592 Time time B32; 593 CARD8 deviceid; 594 BYTE pad1, pad2, pad3; 595 } xUngrabDeviceReq; 596 597 /********************************************************* 598 * 599 * GrabDeviceKey. 600 * 601 */ 602 603 typedef struct { 604 CARD8 reqType; /* input extension major code */ 605 CARD8 ReqType; /* always X_GrabDeviceKey */ 606 CARD16 length B16; 607 Window grabWindow B32; 608 CARD16 event_count B16; 609 CARD16 modifiers B16; 610 CARD8 modifier_device; 611 CARD8 grabbed_device; 612 CARD8 key; 613 BYTE this_device_mode; 614 BYTE other_devices_mode; 615 BOOL ownerEvents; 616 BYTE pad1, pad2; 617 } xGrabDeviceKeyReq; 618 619 /********************************************************* 620 * 621 * UngrabDeviceKey. 622 * 623 */ 624 625 typedef struct { 626 CARD8 reqType; /* input extension major code */ 627 CARD8 ReqType; /* always X_UngrabDeviceKey */ 628 CARD16 length B16; 629 Window grabWindow B32; 630 CARD16 modifiers B16; 631 CARD8 modifier_device; 632 CARD8 key; 633 CARD8 grabbed_device; 634 BYTE pad1, pad2, pad3; 635 } xUngrabDeviceKeyReq; 636 637 /********************************************************* 638 * 639 * GrabDeviceButton. 640 * 641 */ 642 643 typedef struct { 644 CARD8 reqType; /* input extension major code */ 645 CARD8 ReqType; /* always X_GrabDeviceButton */ 646 CARD16 length B16; 647 Window grabWindow B32; 648 CARD8 grabbed_device; 649 CARD8 modifier_device; 650 CARD16 event_count B16; 651 CARD16 modifiers B16; 652 BYTE this_device_mode; 653 BYTE other_devices_mode; 654 CARD8 button; 655 BOOL ownerEvents; 656 BYTE pad1, pad2; 657 } xGrabDeviceButtonReq; 658 659 /********************************************************* 660 * 661 * UngrabDeviceButton. 662 * 663 */ 664 665 typedef struct { 666 CARD8 reqType; /* input extension major code */ 667 CARD8 ReqType; /* always X_UngrabDeviceButton */ 668 CARD16 length B16; 669 Window grabWindow B32; 670 CARD16 modifiers B16; 671 CARD8 modifier_device; 672 CARD8 button; 673 CARD8 grabbed_device; 674 BYTE pad1, pad2, pad3; 675 } xUngrabDeviceButtonReq; 676 677 /********************************************************* 678 * 679 * AllowDeviceEvents. 680 * 681 */ 682 683 typedef struct { 684 CARD8 reqType; /* input extension major code */ 685 CARD8 ReqType; /* always X_AllowDeviceEvents */ 686 CARD16 length B16; 687 Time time B32; 688 CARD8 mode; 689 CARD8 deviceid; 690 BYTE pad1, pad2; 691 } xAllowDeviceEventsReq; 692 693 /********************************************************* 694 * 695 * GetDeviceFocus. 696 * 697 */ 698 699 typedef struct { 700 CARD8 reqType; /* input extension major code */ 701 CARD8 ReqType; /* always X_GetDeviceFocus */ 702 CARD16 length B16; 703 CARD8 deviceid; 704 BYTE pad1, pad2, pad3; 705 } xGetDeviceFocusReq; 706 707 typedef struct { 708 CARD8 repType; /* X_Reply */ 709 CARD8 RepType; /* always X_GetDeviceFocus */ 710 CARD16 sequenceNumber B16; 711 CARD32 length B32; 712 CARD32 focus B32; 713 Time time B32; 714 CARD8 revertTo; 715 BYTE pad1, pad2, pad3; 716 CARD32 pad01 B32; 717 CARD32 pad02 B32; 718 CARD32 pad03 B32; 719 } xGetDeviceFocusReply; 720 721 /********************************************************* 722 * 723 * SetDeviceFocus. 724 * 725 */ 726 727 typedef struct { 728 CARD8 reqType; /* input extension major code */ 729 CARD8 ReqType; /* always X_SetDeviceFocus */ 730 CARD16 length B16; 731 Window focus B32; 732 Time time B32; 733 CARD8 revertTo; 734 CARD8 device; 735 CARD16 pad01 B16; 736 } xSetDeviceFocusReq; 737 738 /********************************************************* 739 * 740 * GetFeedbackControl. 741 * 742 */ 743 744 typedef struct { 745 CARD8 reqType; /* input extension major code */ 746 CARD8 ReqType; /* X_GetFeedbackControl */ 747 CARD16 length B16; 748 CARD8 deviceid; 749 BYTE pad1, pad2, pad3; 750 } xGetFeedbackControlReq; 751 752 typedef struct { 753 CARD8 repType; /* X_Reply */ 754 CARD8 RepType; /* always X_GetFeedbackControl */ 755 CARD16 sequenceNumber B16; 756 CARD32 length B32; 757 CARD16 num_feedbacks B16; 758 CARD16 pad01 B16; 759 CARD32 pad02 B32; 760 CARD32 pad03 B32; 761 CARD32 pad04 B32; 762 CARD32 pad05 B32; 763 CARD32 pad06 B32; 764 } xGetFeedbackControlReply; 765 766 typedef struct { 767 #if defined(__cplusplus) || defined(c_plusplus) 768 CARD8 c_class; /* feedback class */ 769 #else 770 CARD8 class; /* feedback class */ 771 #endif 772 CARD8 id; /* feedback id */ 773 CARD16 length B16; /* feedback length */ 774 } xFeedbackState; 775 776 typedef struct { 777 #if defined(__cplusplus) || defined(c_plusplus) 778 CARD8 c_class; 779 #else 780 CARD8 class; 781 #endif 782 CARD8 id; 783 CARD16 length B16; 784 CARD16 pitch B16; 785 CARD16 duration B16; 786 CARD32 led_mask B32; 787 CARD32 led_values B32; 788 BOOL global_auto_repeat; 789 CARD8 click; 790 CARD8 percent; 791 BYTE pad; 792 BYTE auto_repeats[32]; 793 } xKbdFeedbackState; 794 795 typedef struct { 796 #if defined(__cplusplus) || defined(c_plusplus) 797 CARD8 c_class; 798 #else 799 CARD8 class; 800 #endif 801 CARD8 id; 802 CARD16 length B16; 803 CARD8 pad1,pad2; 804 CARD16 accelNum B16; 805 CARD16 accelDenom B16; 806 CARD16 threshold B16; 807 } xPtrFeedbackState; 808 809 typedef struct { 810 #if defined(__cplusplus) || defined(c_plusplus) 811 CARD8 c_class; /* feedback class id */ 812 #else 813 CARD8 class; /* feedback class id */ 814 #endif 815 CARD8 id; 816 CARD16 length B16; /* feedback length */ 817 CARD32 resolution B32; 818 INT32 min_value B32; 819 INT32 max_value B32; 820 } xIntegerFeedbackState; 821 822 typedef struct { 823 #if defined(__cplusplus) || defined(c_plusplus) 824 CARD8 c_class; /* feedback class id */ 825 #else 826 CARD8 class; /* feedback class id */ 827 #endif 828 CARD8 id; 829 CARD16 length B16; /* feedback length */ 830 CARD16 max_symbols B16; 831 CARD16 num_syms_supported B16; 832 } xStringFeedbackState; 833 834 typedef struct { 835 #if defined(__cplusplus) || defined(c_plusplus) 836 CARD8 c_class; /* feedback class id */ 837 #else 838 CARD8 class; /* feedback class id */ 839 #endif 840 CARD8 id; 841 CARD16 length B16; /* feedback length */ 842 CARD8 percent; 843 BYTE pad1, pad2, pad3; 844 CARD16 pitch B16; 845 CARD16 duration B16; 846 } xBellFeedbackState; 847 848 typedef struct { 849 #if defined(__cplusplus) || defined(c_plusplus) 850 CARD8 c_class; /* feedback class id */ 851 #else 852 CARD8 class; /* feedback class id */ 853 #endif 854 CARD8 id; 855 CARD16 length B16; /* feedback length */ 856 CARD32 led_mask B32; 857 CARD32 led_values B32; 858 } xLedFeedbackState; 859 860 /********************************************************* 861 * 862 * ChangeFeedbackControl. 863 * 864 */ 865 866 typedef struct { 867 CARD8 reqType; /* input extension major code */ 868 CARD8 ReqType; /* X_ChangeFeedbackControl */ 869 CARD16 length B16; 870 CARD32 mask B32; 871 CARD8 deviceid; 872 CARD8 feedbackid; 873 BYTE pad1, pad2; 874 } xChangeFeedbackControlReq; 875 876 typedef struct { 877 #if defined(__cplusplus) || defined(c_plusplus) 878 CARD8 c_class; /* feedback class id */ 879 #else 880 CARD8 class; /* feedback class id */ 881 #endif 882 CARD8 id; /* feedback id */ 883 CARD16 length B16; /* feedback length */ 884 } xFeedbackCtl; 885 886 typedef struct { 887 #if defined(__cplusplus) || defined(c_plusplus) 888 CARD8 c_class; /* feedback class id */ 889 #else 890 CARD8 class; /* feedback class id */ 891 #endif 892 CARD8 id; /* feedback length */ 893 CARD16 length B16; /* feedback length */ 894 KeyCode key; 895 CARD8 auto_repeat_mode; 896 INT8 click; 897 INT8 percent; 898 INT16 pitch B16; 899 INT16 duration B16; 900 CARD32 led_mask B32; 901 CARD32 led_values B32; 902 } xKbdFeedbackCtl; 903 904 typedef struct { 905 #if defined(__cplusplus) || defined(c_plusplus) 906 CARD8 c_class; /* feedback class id */ 907 #else 908 CARD8 class; /* feedback class id */ 909 #endif 910 CARD8 id; /* feedback id */ 911 CARD16 length B16; /* feedback length */ 912 CARD8 pad1,pad2; 913 INT16 num B16; 914 INT16 denom B16; 915 INT16 thresh B16; 916 } xPtrFeedbackCtl; 917 918 typedef struct { 919 #if defined(__cplusplus) || defined(c_plusplus) 920 CARD8 c_class; /* feedback class id */ 921 #else 922 CARD8 class; /* feedback class id */ 923 #endif 924 CARD8 id; /* feedback id */ 925 CARD16 length B16; /* feedback length */ 926 INT32 int_to_display B32; 927 } xIntegerFeedbackCtl; 928 929 typedef struct { 930 #if defined(__cplusplus) || defined(c_plusplus) 931 CARD8 c_class; /* feedback class id */ 932 #else 933 CARD8 class; /* feedback class id */ 934 #endif 935 CARD8 id; /* feedback id */ 936 CARD16 length B16; /* feedback length */ 937 CARD8 pad1,pad2; 938 CARD16 num_keysyms B16; 939 } xStringFeedbackCtl; 940 941 typedef struct { 942 #if defined(__cplusplus) || defined(c_plusplus) 943 CARD8 c_class; /* feedback class id */ 944 #else 945 CARD8 class; /* feedback class id */ 946 #endif 947 CARD8 id; /* feedback id */ 948 CARD16 length B16; /* feedback length */ 949 INT8 percent; 950 BYTE pad1, pad2, pad3; 951 INT16 pitch B16; 952 INT16 duration B16; 953 } xBellFeedbackCtl; 954 955 typedef struct { 956 #if defined(__cplusplus) || defined(c_plusplus) 957 CARD8 c_class; /* feedback class id */ 958 #else 959 CARD8 class; /* feedback class id */ 960 #endif 961 CARD8 id; /* feedback id */ 962 CARD16 length B16; /* feedback length */ 963 CARD32 led_mask B32; 964 CARD32 led_values B32; 965 } xLedFeedbackCtl; 966 967 /********************************************************* 968 * 969 * GetDeviceKeyMapping. 970 * 971 */ 972 973 typedef struct { 974 CARD8 reqType; /* input extension major code */ 975 CARD8 ReqType; /* always X_GetDeviceKeyMapping */ 976 CARD16 length B16; 977 CARD8 deviceid; 978 KeyCode firstKeyCode; 979 CARD8 count; 980 BYTE pad1; 981 } xGetDeviceKeyMappingReq; 982 983 typedef struct { 984 CARD8 repType; /* X_Reply */ 985 CARD8 RepType; /* always X_GetDeviceKeyMapping */ 986 CARD16 sequenceNumber B16; 987 CARD32 length B32; 988 CARD8 keySymsPerKeyCode; 989 CARD8 pad0; 990 CARD16 pad1 B16; 991 CARD32 pad2 B32; 992 CARD32 pad3 B32; 993 CARD32 pad4 B32; 994 CARD32 pad5 B32; 995 CARD32 pad6 B32; 996 } xGetDeviceKeyMappingReply; 997 998 /********************************************************* 999 * 1000 * ChangeDeviceKeyMapping. 1001 * 1002 */ 1003 1004 typedef struct { 1005 CARD8 reqType; /* input extension major code */ 1006 CARD8 ReqType; /* always X_ChangeDeviceKeyMapping */ 1007 CARD16 length B16; 1008 CARD8 deviceid; 1009 KeyCode firstKeyCode; 1010 CARD8 keySymsPerKeyCode; 1011 CARD8 keyCodes; 1012 } xChangeDeviceKeyMappingReq; 1013 1014 /********************************************************* 1015 * 1016 * GetDeviceModifierMapping. 1017 * 1018 */ 1019 1020 typedef struct { 1021 CARD8 reqType; /* input extension major code */ 1022 CARD8 ReqType; /* always X_GetDeviceModifierMapping */ 1023 CARD16 length B16; 1024 CARD8 deviceid; 1025 BYTE pad1, pad2, pad3; 1026 } xGetDeviceModifierMappingReq; 1027 1028 typedef struct { 1029 CARD8 repType; /* X_Reply */ 1030 CARD8 RepType; /* always X_GetDeviceModifierMapping */ 1031 CARD16 sequenceNumber B16; 1032 CARD32 length B32; 1033 CARD8 numKeyPerModifier; 1034 CARD8 pad0; 1035 CARD16 pad1 B16; 1036 CARD32 pad2 B32; 1037 CARD32 pad3 B32; 1038 CARD32 pad4 B32; 1039 CARD32 pad5 B32; 1040 CARD32 pad6 B32; 1041 } xGetDeviceModifierMappingReply; 1042 1043 /********************************************************* 1044 * 1045 * SetDeviceModifierMapping. 1046 * 1047 */ 1048 1049 typedef struct { 1050 CARD8 reqType; /* input extension major code */ 1051 CARD8 ReqType; /* always X_SetDeviceModifierMapping */ 1052 CARD16 length B16; 1053 CARD8 deviceid; 1054 CARD8 numKeyPerModifier; 1055 CARD16 pad1 B16; 1056 } xSetDeviceModifierMappingReq; 1057 1058 typedef struct { 1059 CARD8 repType; /* X_Reply */ 1060 CARD8 RepType; /* always X_SetDeviceModifierMapping */ 1061 CARD16 sequenceNumber B16; 1062 CARD32 length B32; 1063 CARD8 success; 1064 CARD8 pad0; 1065 CARD16 pad1 B16; 1066 CARD32 pad2 B32; 1067 CARD32 pad3 B32; 1068 CARD32 pad4 B32; 1069 CARD32 pad5 B32; 1070 CARD32 pad6 B32; 1071 } xSetDeviceModifierMappingReply; 1072 1073 /********************************************************* 1074 * 1075 * GetDeviceButtonMapping. 1076 * 1077 */ 1078 1079 typedef struct { 1080 CARD8 reqType; /* input extension major code */ 1081 CARD8 ReqType; /* X_GetDeviceButtonMapping */ 1082 CARD16 length B16; 1083 CARD8 deviceid; 1084 BYTE pad1, pad2, pad3; 1085 } xGetDeviceButtonMappingReq; 1086 1087 typedef struct { 1088 CARD8 repType; /* X_Reply */ 1089 CARD8 RepType; /* always X_GetDeviceButtonMapping */ 1090 CARD16 sequenceNumber B16; 1091 CARD32 length B32; 1092 CARD8 nElts; 1093 BYTE pad1, pad2, pad3; 1094 CARD32 pad01 B32; 1095 CARD32 pad02 B32; 1096 CARD32 pad03 B32; 1097 CARD32 pad04 B32; 1098 CARD32 pad05 B32; 1099 } xGetDeviceButtonMappingReply; 1100 1101 /********************************************************* 1102 * 1103 * SetDeviceButtonMapping. 1104 * 1105 */ 1106 1107 typedef struct { 1108 CARD8 reqType; /* input extension major code */ 1109 CARD8 ReqType; /* X_SetDeviceButtonMapping */ 1110 CARD16 length B16; 1111 CARD8 deviceid; 1112 CARD8 map_length; 1113 BYTE pad1, pad2; 1114 } xSetDeviceButtonMappingReq; 1115 1116 typedef struct { 1117 CARD8 repType; /* X_Reply */ 1118 CARD8 RepType; /* always X_SetDeviceButtonMapping */ 1119 CARD16 sequenceNumber B16; 1120 CARD32 length B32; 1121 CARD8 status; 1122 BYTE pad0; 1123 CARD16 pad1 B16; 1124 CARD32 pad2 B32; 1125 CARD32 pad3 B32; 1126 CARD32 pad4 B32; 1127 CARD32 pad5 B32; 1128 CARD32 pad6 B32; 1129 } xSetDeviceButtonMappingReply; 1130 1131 /********************************************************* 1132 * 1133 * QueryDeviceState. 1134 * 1135 */ 1136 1137 typedef struct { 1138 CARD8 reqType; 1139 CARD8 ReqType; /* always X_QueryDeviceState */ 1140 CARD16 length B16; 1141 CARD8 deviceid; 1142 BYTE pad1, pad2, pad3; 1143 } xQueryDeviceStateReq; 1144 1145 typedef struct { 1146 CARD8 repType; /* X_Reply */ 1147 CARD8 RepType; /* always X_QueryDeviceState */ 1148 CARD16 sequenceNumber B16; 1149 CARD32 length B32; 1150 CARD8 num_classes; 1151 BYTE pad0; 1152 CARD16 pad1 B16; 1153 CARD32 pad2 B32; 1154 CARD32 pad3 B32; 1155 CARD32 pad4 B32; 1156 CARD32 pad5 B32; 1157 CARD32 pad6 B32; 1158 } xQueryDeviceStateReply; 1159 1160 typedef struct { 1161 #if defined(__cplusplus) || defined(c_plusplus) 1162 CARD8 c_class; 1163 #else 1164 CARD8 class; 1165 #endif 1166 CARD8 length; 1167 CARD8 num_keys; 1168 BYTE pad1; 1169 CARD8 keys[32]; 1170 } xKeyState; 1171 1172 typedef struct { 1173 #if defined(__cplusplus) || defined(c_plusplus) 1174 CARD8 c_class; 1175 #else 1176 CARD8 class; 1177 #endif 1178 CARD8 length; 1179 CARD8 num_buttons; 1180 BYTE pad1; 1181 CARD8 buttons[32]; 1182 } xButtonState; 1183 1184 typedef struct { 1185 #if defined(__cplusplus) || defined(c_plusplus) 1186 CARD8 c_class; 1187 #else 1188 CARD8 class; 1189 #endif 1190 CARD8 length; 1191 CARD8 num_valuators; 1192 CARD8 mode; 1193 } xValuatorState; 1194 1195 /********************************************************* 1196 * 1197 * SendExtensionEvent. 1198 * THIS REQUEST MUST BE KEPT A MULTIPLE OF 8 BYTES IN LENGTH! 1199 * MORE EVENTS MAY FOLLOW AND THEY MUST BE QUAD-ALIGNED! 1200 * 1201 */ 1202 1203 typedef struct { 1204 CARD8 reqType; 1205 CARD8 ReqType; /* always X_SendExtensionEvent */ 1206 CARD16 length B16; 1207 Window destination B32; 1208 CARD8 deviceid; 1209 BOOL propagate; 1210 CARD16 count B16; 1211 CARD8 num_events; 1212 BYTE pad1,pad2,pad3; 1213 } xSendExtensionEventReq; 1214 1215 /********************************************************* 1216 * 1217 * DeviceBell. 1218 * 1219 */ 1220 1221 typedef struct { 1222 CARD8 reqType; 1223 CARD8 ReqType; /* always X_DeviceBell */ 1224 CARD16 length B16; 1225 CARD8 deviceid; 1226 CARD8 feedbackid; 1227 CARD8 feedbackclass; 1228 INT8 percent; 1229 } xDeviceBellReq; 1230 1231 /********************************************************* 1232 * 1233 * SetDeviceValuators. 1234 * 1235 */ 1236 1237 typedef struct { 1238 CARD8 reqType; /* input extension major code */ 1239 CARD8 ReqType; /* always X_SetDeviceValuators */ 1240 CARD16 length B16; 1241 CARD8 deviceid; 1242 CARD8 first_valuator; 1243 CARD8 num_valuators; 1244 BYTE pad1; 1245 } xSetDeviceValuatorsReq; 1246 1247 typedef struct { 1248 CARD8 repType; /* X_Reply */ 1249 CARD8 RepType; /* always X_SetDeviceValuators */ 1250 CARD16 sequenceNumber B16; 1251 CARD32 length B32; 1252 CARD8 status; 1253 BYTE pad1, pad2, pad3; 1254 CARD32 pad01 B32; 1255 CARD32 pad02 B32; 1256 CARD32 pad03 B32; 1257 CARD32 pad04 B32; 1258 CARD32 pad05 B32; 1259 } xSetDeviceValuatorsReply; 1260 1261 /********************************************************* 1262 * 1263 * GetDeviceControl. 1264 * 1265 */ 1266 1267 typedef struct { 1268 CARD8 reqType; /* input extension major code */ 1269 CARD8 ReqType; /* always X_GetDeviceControl */ 1270 CARD16 length B16; 1271 CARD16 control B16; 1272 CARD8 deviceid; 1273 BYTE pad2; 1274 } xGetDeviceControlReq; 1275 1276 typedef struct { 1277 CARD8 repType; /* X_Reply */ 1278 CARD8 RepType; /* always X_GetDeviceControl */ 1279 CARD16 sequenceNumber B16; 1280 CARD32 length B32; 1281 CARD8 status; 1282 BYTE pad1, pad2, pad3; 1283 CARD32 pad01 B32; 1284 CARD32 pad02 B32; 1285 CARD32 pad03 B32; 1286 CARD32 pad04 B32; 1287 CARD32 pad05 B32; 1288 } xGetDeviceControlReply; 1289 1290 typedef struct { 1291 CARD16 control B16; /* control type */ 1292 CARD16 length B16; /* control length */ 1293 } xDeviceState; 1294 1295 typedef struct { 1296 CARD16 control B16; /* control type */ 1297 CARD16 length B16; /* control length */ 1298 CARD32 num_valuators B32; /* number of valuators */ 1299 } xDeviceResolutionState; 1300 1301 typedef struct { 1302 CARD16 control B16; 1303 CARD16 length B16; 1304 INT32 min_x B32; 1305 INT32 max_x B32; 1306 INT32 min_y B32; 1307 INT32 max_y B32; 1308 CARD32 flip_x B32; 1309 CARD32 flip_y B32; 1310 CARD32 rotation B32; 1311 CARD32 button_threshold B32; 1312 } xDeviceAbsCalibState; 1313 1314 typedef struct { 1315 CARD16 control B16; 1316 CARD16 length B16; 1317 CARD32 offset_x B32; 1318 CARD32 offset_y B32; 1319 CARD32 width B32; 1320 CARD32 height B32; 1321 CARD32 screen B32; 1322 CARD32 following B32; 1323 } xDeviceAbsAreaState; 1324 1325 typedef struct { 1326 CARD16 control B16; /* control type */ 1327 CARD16 length B16; /* control length */ 1328 CARD8 status; 1329 CARD8 iscore; 1330 CARD16 pad1 B16; 1331 } xDeviceCoreState; 1332 1333 typedef struct { 1334 CARD16 control B16; /* control type */ 1335 CARD16 length B16; /* control length */ 1336 CARD8 enable; 1337 CARD8 pad0; 1338 CARD16 pad1 B16; 1339 } xDeviceEnableState; 1340 1341 /********************************************************* 1342 * 1343 * ChangeDeviceControl. 1344 * 1345 */ 1346 1347 typedef struct { 1348 CARD8 reqType; /* input extension major code */ 1349 CARD8 ReqType; /* always X_ChangeDeviceControl */ 1350 CARD16 length B16; 1351 CARD16 control B16; 1352 CARD8 deviceid; 1353 BYTE pad0; 1354 } xChangeDeviceControlReq; 1355 1356 typedef struct { 1357 CARD8 repType; /* X_Reply */ 1358 CARD8 RepType; /* always X_ChangeDeviceControl */ 1359 CARD16 sequenceNumber B16; 1360 CARD32 length B32; 1361 CARD8 status; 1362 BYTE pad1, pad2, pad3; 1363 CARD32 pad01 B32; 1364 CARD32 pad02 B32; 1365 CARD32 pad03 B32; 1366 CARD32 pad04 B32; 1367 CARD32 pad05 B32; 1368 } xChangeDeviceControlReply; 1369 1370 typedef struct { 1371 CARD16 control B16; /* control type */ 1372 CARD16 length B16; /* control length */ 1373 } xDeviceCtl; 1374 1375 typedef struct { 1376 CARD16 control B16; /* control type */ 1377 CARD16 length B16; /* control length */ 1378 CARD8 first_valuator; /* first valuator to change */ 1379 CARD8 num_valuators; /* number of valuators to change*/ 1380 CARD8 pad1,pad2; 1381 } xDeviceResolutionCtl; 1382 1383 typedef struct { 1384 CARD16 control B16; 1385 CARD16 length B16; 1386 INT32 min_x; 1387 INT32 max_x; 1388 INT32 min_y; 1389 INT32 max_y; 1390 CARD32 flip_x; 1391 CARD32 flip_y; 1392 CARD32 rotation; 1393 CARD32 button_threshold; 1394 } xDeviceAbsCalibCtl; 1395 1396 typedef struct { 1397 CARD16 control B16; 1398 CARD16 length B16; 1399 CARD32 offset_x; 1400 CARD32 offset_y; 1401 INT32 width; 1402 INT32 height; 1403 INT32 screen; 1404 CARD32 following; 1405 } xDeviceAbsAreaCtl; 1406 1407 typedef struct { 1408 CARD16 control B16; 1409 CARD16 length B16; 1410 CARD8 status; 1411 CARD8 pad0; 1412 CARD16 pad1 B16; 1413 } xDeviceCoreCtl; 1414 1415 typedef struct { 1416 CARD16 control B16; 1417 CARD16 length B16; 1418 CARD8 enable; 1419 CARD8 pad0; 1420 CARD16 pad1 B16; 1421 } xDeviceEnableCtl; 1422 1423 /* XI 1.5 */ 1424 1425 /********************************************************* 1426 * 1427 * ListDeviceProperties. 1428 * 1429 */ 1430 1431 typedef struct { 1432 CARD8 reqType; /* input extension major opcode */ 1433 CARD8 ReqType; /* always X_ListDeviceProperties */ 1434 CARD16 length B16; 1435 CARD8 deviceid; 1436 CARD8 pad0; 1437 CARD16 pad1 B16; 1438 } xListDevicePropertiesReq; 1439 1440 typedef struct { 1441 CARD8 repType; /* X_Reply */ 1442 CARD8 RepType; /* always X_ListDeviceProperties */ 1443 CARD16 sequenceNumber B16; 1444 CARD32 length B32; 1445 CARD16 nAtoms B16; 1446 CARD16 pad1 B16; 1447 CARD32 pad2 B32; 1448 CARD32 pad3 B32; 1449 CARD32 pad4 B32; 1450 CARD32 pad5 B32; 1451 CARD32 pad6 B32; 1452 } xListDevicePropertiesReply; 1453 1454 /********************************************************* 1455 * 1456 * ChangeDeviceProperty. 1457 * 1458 */ 1459 1460 typedef struct { 1461 CARD8 reqType; /* input extension major opcode */ 1462 CARD8 ReqType; /* always X_ChangeDeviceProperty */ 1463 CARD16 length B16; 1464 Atom property B32; 1465 Atom type B32; 1466 CARD8 deviceid; 1467 CARD8 format; 1468 CARD8 mode; 1469 CARD8 pad; 1470 CARD32 nUnits B32; 1471 } xChangeDevicePropertyReq; 1472 1473 /********************************************************* 1474 * 1475 * DeleteDeviceProperty. 1476 * 1477 */ 1478 1479 typedef struct { 1480 CARD8 reqType; /* input extension major opcode */ 1481 CARD8 ReqType; /* always X_DeleteDeviceProperty */ 1482 CARD16 length B16; 1483 Atom property B32; 1484 CARD8 deviceid; 1485 CARD8 pad0; 1486 CARD16 pad1 B16; 1487 } xDeleteDevicePropertyReq; 1488 1489 /********************************************************* 1490 * 1491 * GetDeviceProperty. 1492 * 1493 */ 1494 1495 typedef struct { 1496 CARD8 reqType; /* input extension major opcode */ 1497 CARD8 ReqType; /* always X_GetDeviceProperty */ 1498 CARD16 length B16; 1499 Atom property B32; 1500 Atom type B32; 1501 CARD32 longOffset B32; 1502 CARD32 longLength B32; 1503 CARD8 deviceid; 1504 #if defined(__cplusplus) || defined(c_plusplus) 1505 BOOL c_delete; 1506 #else 1507 BOOL delete; 1508 #endif 1509 CARD16 pad; 1510 } xGetDevicePropertyReq; 1511 1512 typedef struct { 1513 CARD8 repType; /* X_Reply */ 1514 CARD8 RepType; /* always X_GetDeviceProperty */ 1515 CARD16 sequenceNumber B16; 1516 CARD32 length B32; 1517 Atom propertyType B32; 1518 CARD32 bytesAfter B32; 1519 CARD32 nItems B32; 1520 CARD8 format; 1521 CARD8 deviceid; 1522 CARD16 pad1 B16; 1523 CARD32 pad2 B32; 1524 CARD32 pad3 B32; 1525 } xGetDevicePropertyReply; 1526 1527 1528 /********************************************************** 1529 * 1530 * Input extension events. 1531 * 1532 * DeviceValuator 1533 * 1534 */ 1535 1536 typedef struct 1537 { 1538 BYTE type; 1539 CARD8 deviceid; 1540 CARD16 sequenceNumber B16; 1541 KeyButMask device_state B16; 1542 CARD8 num_valuators; 1543 CARD8 first_valuator; 1544 INT32 valuator0 B32; 1545 INT32 valuator1 B32; 1546 INT32 valuator2 B32; 1547 INT32 valuator3 B32; 1548 INT32 valuator4 B32; 1549 INT32 valuator5 B32; 1550 } deviceValuator; 1551 1552 /********************************************************** 1553 * 1554 * DeviceKeyButtonPointer. 1555 * 1556 * Used for: DeviceKeyPress, DeviceKeyRelease, 1557 * DeviceButtonPress, DeviceButtonRelease, 1558 * ProximityIn, ProximityOut 1559 * DeviceMotionNotify, 1560 * 1561 */ 1562 1563 typedef struct 1564 { 1565 BYTE type; 1566 BYTE detail; 1567 CARD16 sequenceNumber B16; 1568 Time time B32; 1569 Window root B32; 1570 Window event B32; 1571 Window child B32; 1572 INT16 root_x B16; 1573 INT16 root_y B16; 1574 INT16 event_x B16; 1575 INT16 event_y B16; 1576 KeyButMask state B16; 1577 BOOL same_screen; 1578 CARD8 deviceid; 1579 } deviceKeyButtonPointer; 1580 1581 /********************************************************** 1582 * 1583 * DeviceFocus. 1584 * 1585 */ 1586 1587 typedef struct 1588 { 1589 BYTE type; 1590 BYTE detail; 1591 CARD16 sequenceNumber B16; 1592 Time time B32; 1593 Window window B32; 1594 BYTE mode; 1595 CARD8 deviceid; 1596 BYTE pad1, pad2; 1597 CARD32 pad00 B32; 1598 CARD32 pad01 B32; 1599 CARD32 pad02 B32; 1600 CARD32 pad03 B32; 1601 } deviceFocus; 1602 1603 /********************************************************** 1604 * 1605 * DeviceStateNotify. 1606 * 1607 * Note that the two high-order bits in the classes_reported 1608 * field are the proximity state (InProximity or OutOfProximity), 1609 * and the device mode (Absolute or Relative), respectively. 1610 * 1611 */ 1612 1613 typedef struct 1614 { 1615 BYTE type; 1616 BYTE deviceid; 1617 CARD16 sequenceNumber B16; 1618 Time time B32; 1619 CARD8 num_keys; 1620 CARD8 num_buttons; 1621 CARD8 num_valuators; 1622 CARD8 classes_reported; 1623 CARD8 buttons[4]; 1624 CARD8 keys[4]; 1625 INT32 valuator0 B32; 1626 INT32 valuator1 B32; 1627 INT32 valuator2 B32; 1628 } deviceStateNotify; 1629 1630 /********************************************************** 1631 * 1632 * DeviceKeyStateNotify. 1633 * 1634 */ 1635 1636 typedef struct 1637 { 1638 BYTE type; 1639 BYTE deviceid; 1640 CARD16 sequenceNumber B16; 1641 CARD8 keys[28]; 1642 } deviceKeyStateNotify; 1643 1644 /********************************************************** 1645 * 1646 * DeviceButtonStateNotify. 1647 * 1648 */ 1649 1650 typedef struct 1651 { 1652 BYTE type; 1653 BYTE deviceid; 1654 CARD16 sequenceNumber B16; 1655 CARD8 buttons[28]; 1656 } deviceButtonStateNotify; 1657 1658 /********************************************************** 1659 * 1660 * DeviceMappingNotify. 1661 * Fields must be kept in sync with core mappingnotify event. 1662 * 1663 */ 1664 1665 typedef struct 1666 { 1667 BYTE type; 1668 BYTE deviceid; 1669 CARD16 sequenceNumber B16; 1670 CARD8 request; 1671 KeyCode firstKeyCode; 1672 CARD8 count; 1673 BYTE pad1; 1674 Time time B32; 1675 CARD32 pad00 B32; 1676 CARD32 pad01 B32; 1677 CARD32 pad02 B32; 1678 CARD32 pad03 B32; 1679 CARD32 pad04 B32; 1680 } deviceMappingNotify; 1681 1682 /********************************************************** 1683 * 1684 * ChangeDeviceNotify. 1685 * 1686 */ 1687 1688 typedef struct 1689 { 1690 BYTE type; 1691 BYTE deviceid; 1692 CARD16 sequenceNumber B16; 1693 Time time B32; 1694 CARD8 request; 1695 BYTE pad1, pad2, pad3; 1696 CARD32 pad00 B32; 1697 CARD32 pad01 B32; 1698 CARD32 pad02 B32; 1699 CARD32 pad03 B32; 1700 CARD32 pad04 B32; 1701 } changeDeviceNotify; 1702 1703 /********************************************************** 1704 * 1705 * devicePresenceNotify. 1706 * 1707 */ 1708 1709 typedef struct 1710 { 1711 BYTE type; 1712 BYTE pad00; 1713 CARD16 sequenceNumber B16; 1714 Time time B32; 1715 BYTE devchange; /* Device{Added|Removed|Enabled|Disabled|ControlChanged} */ 1716 BYTE deviceid; 1717 CARD16 control B16; 1718 CARD32 pad02 B32; 1719 CARD32 pad03 B32; 1720 CARD32 pad04 B32; 1721 CARD32 pad05 B32; 1722 CARD32 pad06 B32; 1723 } devicePresenceNotify; 1724 1725 1726 /********************************************************* 1727 * DevicePropertyNotifyEvent 1728 * 1729 * Sent whenever a device's property changes. 1730 * 1731 */ 1732 1733 typedef struct 1734 { 1735 BYTE type; 1736 BYTE state; /* NewValue or Deleted */ 1737 CARD16 sequenceNumber B16; 1738 CARD32 time B32; 1739 Atom atom B32; /* affected property */ 1740 CARD32 pad0 B32; 1741 CARD32 pad1 B32; 1742 CARD32 pad2 B32; 1743 CARD32 pad3 B32; 1744 CARD16 pad5 B16; 1745 CARD8 pad4; 1746 CARD8 deviceid; /* id of device */ 1747 } devicePropertyNotify; 1748 1749 #undef Window 1750 #undef Time 1751 #undef KeyCode 1752 #undef Mask 1753 #undef Atom 1754 #undef Cursor 1755 1756 #endif 1757