github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xkbcommon/include/xcb/xinput.h (about)

     1  /*
     2   * This file generated automatically from xinput.xml by c_client.py.
     3   * Edit at your peril.
     4   */
     5  
     6  /**
     7   * @defgroup XCB_Input_API XCB Input API
     8   * @brief Input XCB Protocol Implementation.
     9   * @{
    10   **/
    11  
    12  #ifndef __XINPUT_H
    13  #define __XINPUT_H
    14  
    15  #include "xcb.h"
    16  #include "xfixes.h"
    17  
    18  #ifdef __cplusplus
    19  extern "C" {
    20  #endif
    21  
    22  #define XCB_INPUT_MAJOR_VERSION 2
    23  #define XCB_INPUT_MINOR_VERSION 3
    24  
    25  extern xcb_extension_t xcb_input_id;
    26  
    27  typedef uint32_t xcb_input_event_class_t;
    28  
    29  /**
    30   * @brief xcb_input_event_class_iterator_t
    31   **/
    32  typedef struct xcb_input_event_class_iterator_t {
    33      xcb_input_event_class_t *data;
    34      int                      rem;
    35      int                      index;
    36  } xcb_input_event_class_iterator_t;
    37  
    38  typedef uint8_t xcb_input_key_code_t;
    39  
    40  /**
    41   * @brief xcb_input_key_code_iterator_t
    42   **/
    43  typedef struct xcb_input_key_code_iterator_t {
    44      xcb_input_key_code_t *data;
    45      int                   rem;
    46      int                   index;
    47  } xcb_input_key_code_iterator_t;
    48  
    49  typedef uint16_t xcb_input_device_id_t;
    50  
    51  /**
    52   * @brief xcb_input_device_id_iterator_t
    53   **/
    54  typedef struct xcb_input_device_id_iterator_t {
    55      xcb_input_device_id_t *data;
    56      int                    rem;
    57      int                    index;
    58  } xcb_input_device_id_iterator_t;
    59  
    60  typedef int32_t xcb_input_fp1616_t;
    61  
    62  /**
    63   * @brief xcb_input_fp1616_iterator_t
    64   **/
    65  typedef struct xcb_input_fp1616_iterator_t {
    66      xcb_input_fp1616_t *data;
    67      int                 rem;
    68      int                 index;
    69  } xcb_input_fp1616_iterator_t;
    70  
    71  /**
    72   * @brief xcb_input_fp3232_t
    73   **/
    74  typedef struct xcb_input_fp3232_t {
    75      int32_t  integral;
    76      uint32_t frac;
    77  } xcb_input_fp3232_t;
    78  
    79  /**
    80   * @brief xcb_input_fp3232_iterator_t
    81   **/
    82  typedef struct xcb_input_fp3232_iterator_t {
    83      xcb_input_fp3232_t *data;
    84      int                 rem;
    85      int                 index;
    86  } xcb_input_fp3232_iterator_t;
    87  
    88  /**
    89   * @brief xcb_input_get_extension_version_cookie_t
    90   **/
    91  typedef struct xcb_input_get_extension_version_cookie_t {
    92      unsigned int sequence;
    93  } xcb_input_get_extension_version_cookie_t;
    94  
    95  /** Opcode for xcb_input_get_extension_version. */
    96  #define XCB_INPUT_GET_EXTENSION_VERSION 1
    97  
    98  /**
    99   * @brief xcb_input_get_extension_version_request_t
   100   **/
   101  typedef struct xcb_input_get_extension_version_request_t {
   102      uint8_t  major_opcode;
   103      uint8_t  minor_opcode;
   104      uint16_t length;
   105      uint16_t name_len;
   106      uint8_t  pad0[2];
   107  } xcb_input_get_extension_version_request_t;
   108  
   109  /**
   110   * @brief xcb_input_get_extension_version_reply_t
   111   **/
   112  typedef struct xcb_input_get_extension_version_reply_t {
   113      uint8_t  response_type;
   114      uint8_t  xi_reply_type;
   115      uint16_t sequence;
   116      uint32_t length;
   117      uint16_t server_major;
   118      uint16_t server_minor;
   119      uint8_t  present;
   120      uint8_t  pad0[19];
   121  } xcb_input_get_extension_version_reply_t;
   122  
   123  typedef enum xcb_input_device_use_t {
   124      XCB_INPUT_DEVICE_USE_IS_X_POINTER = 0,
   125      XCB_INPUT_DEVICE_USE_IS_X_KEYBOARD = 1,
   126      XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_DEVICE = 2,
   127      XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_KEYBOARD = 3,
   128      XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_POINTER = 4
   129  } xcb_input_device_use_t;
   130  
   131  typedef enum xcb_input_input_class_t {
   132      XCB_INPUT_INPUT_CLASS_KEY = 0,
   133      XCB_INPUT_INPUT_CLASS_BUTTON = 1,
   134      XCB_INPUT_INPUT_CLASS_VALUATOR = 2,
   135      XCB_INPUT_INPUT_CLASS_FEEDBACK = 3,
   136      XCB_INPUT_INPUT_CLASS_PROXIMITY = 4,
   137      XCB_INPUT_INPUT_CLASS_FOCUS = 5,
   138      XCB_INPUT_INPUT_CLASS_OTHER = 6
   139  } xcb_input_input_class_t;
   140  
   141  typedef enum xcb_input_valuator_mode_t {
   142      XCB_INPUT_VALUATOR_MODE_RELATIVE = 0,
   143      XCB_INPUT_VALUATOR_MODE_ABSOLUTE = 1
   144  } xcb_input_valuator_mode_t;
   145  
   146  /**
   147   * @brief xcb_input_device_info_t
   148   **/
   149  typedef struct xcb_input_device_info_t {
   150      xcb_atom_t device_type;
   151      uint8_t    device_id;
   152      uint8_t    num_class_info;
   153      uint8_t    device_use;
   154      uint8_t    pad0;
   155  } xcb_input_device_info_t;
   156  
   157  /**
   158   * @brief xcb_input_device_info_iterator_t
   159   **/
   160  typedef struct xcb_input_device_info_iterator_t {
   161      xcb_input_device_info_t *data;
   162      int                      rem;
   163      int                      index;
   164  } xcb_input_device_info_iterator_t;
   165  
   166  /**
   167   * @brief xcb_input_key_info_t
   168   **/
   169  typedef struct xcb_input_key_info_t {
   170      uint8_t              class_id;
   171      uint8_t              len;
   172      xcb_input_key_code_t min_keycode;
   173      xcb_input_key_code_t max_keycode;
   174      uint16_t             num_keys;
   175      uint8_t              pad0[2];
   176  } xcb_input_key_info_t;
   177  
   178  /**
   179   * @brief xcb_input_key_info_iterator_t
   180   **/
   181  typedef struct xcb_input_key_info_iterator_t {
   182      xcb_input_key_info_t *data;
   183      int                   rem;
   184      int                   index;
   185  } xcb_input_key_info_iterator_t;
   186  
   187  /**
   188   * @brief xcb_input_button_info_t
   189   **/
   190  typedef struct xcb_input_button_info_t {
   191      uint8_t  class_id;
   192      uint8_t  len;
   193      uint16_t num_buttons;
   194  } xcb_input_button_info_t;
   195  
   196  /**
   197   * @brief xcb_input_button_info_iterator_t
   198   **/
   199  typedef struct xcb_input_button_info_iterator_t {
   200      xcb_input_button_info_t *data;
   201      int                      rem;
   202      int                      index;
   203  } xcb_input_button_info_iterator_t;
   204  
   205  /**
   206   * @brief xcb_input_axis_info_t
   207   **/
   208  typedef struct xcb_input_axis_info_t {
   209      uint32_t resolution;
   210      int32_t  minimum;
   211      int32_t  maximum;
   212  } xcb_input_axis_info_t;
   213  
   214  /**
   215   * @brief xcb_input_axis_info_iterator_t
   216   **/
   217  typedef struct xcb_input_axis_info_iterator_t {
   218      xcb_input_axis_info_t *data;
   219      int                    rem;
   220      int                    index;
   221  } xcb_input_axis_info_iterator_t;
   222  
   223  /**
   224   * @brief xcb_input_valuator_info_t
   225   **/
   226  typedef struct xcb_input_valuator_info_t {
   227      uint8_t  class_id;
   228      uint8_t  len;
   229      uint8_t  axes_len;
   230      uint8_t  mode;
   231      uint32_t motion_size;
   232  } xcb_input_valuator_info_t;
   233  
   234  /**
   235   * @brief xcb_input_valuator_info_iterator_t
   236   **/
   237  typedef struct xcb_input_valuator_info_iterator_t {
   238      xcb_input_valuator_info_t *data;
   239      int                        rem;
   240      int                        index;
   241  } xcb_input_valuator_info_iterator_t;
   242  
   243  /**
   244   * @brief xcb_input_input_info_info_t
   245   **/
   246  typedef struct xcb_input_input_info_info_t {
   247      struct {
   248          xcb_input_key_code_t   min_keycode;
   249          xcb_input_key_code_t   max_keycode;
   250          uint16_t               num_keys;
   251          uint8_t                pad0[2];
   252      } key;
   253      struct {
   254          uint16_t               num_buttons;
   255      } button;
   256      struct {
   257          uint8_t                axes_len;
   258          uint8_t                mode;
   259          uint32_t               motion_size;
   260          xcb_input_axis_info_t *axes;
   261      } valuator;
   262  } xcb_input_input_info_info_t;
   263  
   264  /**
   265   * @brief xcb_input_input_info_t
   266   **/
   267  typedef struct xcb_input_input_info_t {
   268      uint8_t class_id;
   269      uint8_t len;
   270  } xcb_input_input_info_t;
   271  
   272  void *
   273  xcb_input_input_info_info (const xcb_input_input_info_t *R);
   274  
   275  /**
   276   * @brief xcb_input_input_info_iterator_t
   277   **/
   278  typedef struct xcb_input_input_info_iterator_t {
   279      xcb_input_input_info_t *data;
   280      int                     rem;
   281      int                     index;
   282  } xcb_input_input_info_iterator_t;
   283  
   284  /**
   285   * @brief xcb_input_device_name_t
   286   **/
   287  typedef struct xcb_input_device_name_t {
   288      uint8_t len;
   289  } xcb_input_device_name_t;
   290  
   291  /**
   292   * @brief xcb_input_device_name_iterator_t
   293   **/
   294  typedef struct xcb_input_device_name_iterator_t {
   295      xcb_input_device_name_t *data;
   296      int                      rem;
   297      int                      index;
   298  } xcb_input_device_name_iterator_t;
   299  
   300  /**
   301   * @brief xcb_input_list_input_devices_cookie_t
   302   **/
   303  typedef struct xcb_input_list_input_devices_cookie_t {
   304      unsigned int sequence;
   305  } xcb_input_list_input_devices_cookie_t;
   306  
   307  /** Opcode for xcb_input_list_input_devices. */
   308  #define XCB_INPUT_LIST_INPUT_DEVICES 2
   309  
   310  /**
   311   * @brief xcb_input_list_input_devices_request_t
   312   **/
   313  typedef struct xcb_input_list_input_devices_request_t {
   314      uint8_t  major_opcode;
   315      uint8_t  minor_opcode;
   316      uint16_t length;
   317  } xcb_input_list_input_devices_request_t;
   318  
   319  /**
   320   * @brief xcb_input_list_input_devices_reply_t
   321   **/
   322  typedef struct xcb_input_list_input_devices_reply_t {
   323      uint8_t  response_type;
   324      uint8_t  xi_reply_type;
   325      uint16_t sequence;
   326      uint32_t length;
   327      uint8_t  devices_len;
   328      uint8_t  pad0[23];
   329  } xcb_input_list_input_devices_reply_t;
   330  
   331  typedef uint8_t xcb_input_event_type_base_t;
   332  
   333  /**
   334   * @brief xcb_input_event_type_base_iterator_t
   335   **/
   336  typedef struct xcb_input_event_type_base_iterator_t {
   337      xcb_input_event_type_base_t *data;
   338      int                          rem;
   339      int                          index;
   340  } xcb_input_event_type_base_iterator_t;
   341  
   342  /**
   343   * @brief xcb_input_input_class_info_t
   344   **/
   345  typedef struct xcb_input_input_class_info_t {
   346      uint8_t                     class_id;
   347      xcb_input_event_type_base_t event_type_base;
   348  } xcb_input_input_class_info_t;
   349  
   350  /**
   351   * @brief xcb_input_input_class_info_iterator_t
   352   **/
   353  typedef struct xcb_input_input_class_info_iterator_t {
   354      xcb_input_input_class_info_t *data;
   355      int                           rem;
   356      int                           index;
   357  } xcb_input_input_class_info_iterator_t;
   358  
   359  /**
   360   * @brief xcb_input_open_device_cookie_t
   361   **/
   362  typedef struct xcb_input_open_device_cookie_t {
   363      unsigned int sequence;
   364  } xcb_input_open_device_cookie_t;
   365  
   366  /** Opcode for xcb_input_open_device. */
   367  #define XCB_INPUT_OPEN_DEVICE 3
   368  
   369  /**
   370   * @brief xcb_input_open_device_request_t
   371   **/
   372  typedef struct xcb_input_open_device_request_t {
   373      uint8_t  major_opcode;
   374      uint8_t  minor_opcode;
   375      uint16_t length;
   376      uint8_t  device_id;
   377      uint8_t  pad0[3];
   378  } xcb_input_open_device_request_t;
   379  
   380  /**
   381   * @brief xcb_input_open_device_reply_t
   382   **/
   383  typedef struct xcb_input_open_device_reply_t {
   384      uint8_t  response_type;
   385      uint8_t  xi_reply_type;
   386      uint16_t sequence;
   387      uint32_t length;
   388      uint8_t  num_classes;
   389      uint8_t  pad0[23];
   390  } xcb_input_open_device_reply_t;
   391  
   392  /** Opcode for xcb_input_close_device. */
   393  #define XCB_INPUT_CLOSE_DEVICE 4
   394  
   395  /**
   396   * @brief xcb_input_close_device_request_t
   397   **/
   398  typedef struct xcb_input_close_device_request_t {
   399      uint8_t  major_opcode;
   400      uint8_t  minor_opcode;
   401      uint16_t length;
   402      uint8_t  device_id;
   403      uint8_t  pad0[3];
   404  } xcb_input_close_device_request_t;
   405  
   406  /**
   407   * @brief xcb_input_set_device_mode_cookie_t
   408   **/
   409  typedef struct xcb_input_set_device_mode_cookie_t {
   410      unsigned int sequence;
   411  } xcb_input_set_device_mode_cookie_t;
   412  
   413  /** Opcode for xcb_input_set_device_mode. */
   414  #define XCB_INPUT_SET_DEVICE_MODE 5
   415  
   416  /**
   417   * @brief xcb_input_set_device_mode_request_t
   418   **/
   419  typedef struct xcb_input_set_device_mode_request_t {
   420      uint8_t  major_opcode;
   421      uint8_t  minor_opcode;
   422      uint16_t length;
   423      uint8_t  device_id;
   424      uint8_t  mode;
   425      uint8_t  pad0[2];
   426  } xcb_input_set_device_mode_request_t;
   427  
   428  /**
   429   * @brief xcb_input_set_device_mode_reply_t
   430   **/
   431  typedef struct xcb_input_set_device_mode_reply_t {
   432      uint8_t  response_type;
   433      uint8_t  xi_reply_type;
   434      uint16_t sequence;
   435      uint32_t length;
   436      uint8_t  status;
   437      uint8_t  pad0[23];
   438  } xcb_input_set_device_mode_reply_t;
   439  
   440  /** Opcode for xcb_input_select_extension_event. */
   441  #define XCB_INPUT_SELECT_EXTENSION_EVENT 6
   442  
   443  /**
   444   * @brief xcb_input_select_extension_event_request_t
   445   **/
   446  typedef struct xcb_input_select_extension_event_request_t {
   447      uint8_t      major_opcode;
   448      uint8_t      minor_opcode;
   449      uint16_t     length;
   450      xcb_window_t window;
   451      uint16_t     num_classes;
   452      uint8_t      pad0[2];
   453  } xcb_input_select_extension_event_request_t;
   454  
   455  /**
   456   * @brief xcb_input_get_selected_extension_events_cookie_t
   457   **/
   458  typedef struct xcb_input_get_selected_extension_events_cookie_t {
   459      unsigned int sequence;
   460  } xcb_input_get_selected_extension_events_cookie_t;
   461  
   462  /** Opcode for xcb_input_get_selected_extension_events. */
   463  #define XCB_INPUT_GET_SELECTED_EXTENSION_EVENTS 7
   464  
   465  /**
   466   * @brief xcb_input_get_selected_extension_events_request_t
   467   **/
   468  typedef struct xcb_input_get_selected_extension_events_request_t {
   469      uint8_t      major_opcode;
   470      uint8_t      minor_opcode;
   471      uint16_t     length;
   472      xcb_window_t window;
   473  } xcb_input_get_selected_extension_events_request_t;
   474  
   475  /**
   476   * @brief xcb_input_get_selected_extension_events_reply_t
   477   **/
   478  typedef struct xcb_input_get_selected_extension_events_reply_t {
   479      uint8_t  response_type;
   480      uint8_t  xi_reply_type;
   481      uint16_t sequence;
   482      uint32_t length;
   483      uint16_t num_this_classes;
   484      uint16_t num_all_classes;
   485      uint8_t  pad0[20];
   486  } xcb_input_get_selected_extension_events_reply_t;
   487  
   488  typedef enum xcb_input_propagate_mode_t {
   489      XCB_INPUT_PROPAGATE_MODE_ADD_TO_LIST = 0,
   490      XCB_INPUT_PROPAGATE_MODE_DELETE_FROM_LIST = 1
   491  } xcb_input_propagate_mode_t;
   492  
   493  /** Opcode for xcb_input_change_device_dont_propagate_list. */
   494  #define XCB_INPUT_CHANGE_DEVICE_DONT_PROPAGATE_LIST 8
   495  
   496  /**
   497   * @brief xcb_input_change_device_dont_propagate_list_request_t
   498   **/
   499  typedef struct xcb_input_change_device_dont_propagate_list_request_t {
   500      uint8_t      major_opcode;
   501      uint8_t      minor_opcode;
   502      uint16_t     length;
   503      xcb_window_t window;
   504      uint16_t     num_classes;
   505      uint8_t      mode;
   506      uint8_t      pad0;
   507  } xcb_input_change_device_dont_propagate_list_request_t;
   508  
   509  /**
   510   * @brief xcb_input_get_device_dont_propagate_list_cookie_t
   511   **/
   512  typedef struct xcb_input_get_device_dont_propagate_list_cookie_t {
   513      unsigned int sequence;
   514  } xcb_input_get_device_dont_propagate_list_cookie_t;
   515  
   516  /** Opcode for xcb_input_get_device_dont_propagate_list. */
   517  #define XCB_INPUT_GET_DEVICE_DONT_PROPAGATE_LIST 9
   518  
   519  /**
   520   * @brief xcb_input_get_device_dont_propagate_list_request_t
   521   **/
   522  typedef struct xcb_input_get_device_dont_propagate_list_request_t {
   523      uint8_t      major_opcode;
   524      uint8_t      minor_opcode;
   525      uint16_t     length;
   526      xcb_window_t window;
   527  } xcb_input_get_device_dont_propagate_list_request_t;
   528  
   529  /**
   530   * @brief xcb_input_get_device_dont_propagate_list_reply_t
   531   **/
   532  typedef struct xcb_input_get_device_dont_propagate_list_reply_t {
   533      uint8_t  response_type;
   534      uint8_t  xi_reply_type;
   535      uint16_t sequence;
   536      uint32_t length;
   537      uint16_t num_classes;
   538      uint8_t  pad0[22];
   539  } xcb_input_get_device_dont_propagate_list_reply_t;
   540  
   541  /**
   542   * @brief xcb_input_device_time_coord_t
   543   **/
   544  typedef struct xcb_input_device_time_coord_t {
   545      xcb_timestamp_t time;
   546  } xcb_input_device_time_coord_t;
   547  
   548  /**
   549   * @brief xcb_input_device_time_coord_iterator_t
   550   **/
   551  typedef struct xcb_input_device_time_coord_iterator_t {
   552      xcb_input_device_time_coord_t *data;
   553      int                            rem;
   554      int                            index;
   555      uint8_t                        num_axes; /**<  */
   556  } xcb_input_device_time_coord_iterator_t;
   557  
   558  /**
   559   * @brief xcb_input_get_device_motion_events_cookie_t
   560   **/
   561  typedef struct xcb_input_get_device_motion_events_cookie_t {
   562      unsigned int sequence;
   563  } xcb_input_get_device_motion_events_cookie_t;
   564  
   565  /** Opcode for xcb_input_get_device_motion_events. */
   566  #define XCB_INPUT_GET_DEVICE_MOTION_EVENTS 10
   567  
   568  /**
   569   * @brief xcb_input_get_device_motion_events_request_t
   570   **/
   571  typedef struct xcb_input_get_device_motion_events_request_t {
   572      uint8_t         major_opcode;
   573      uint8_t         minor_opcode;
   574      uint16_t        length;
   575      xcb_timestamp_t start;
   576      xcb_timestamp_t stop;
   577      uint8_t         device_id;
   578      uint8_t         pad0[3];
   579  } xcb_input_get_device_motion_events_request_t;
   580  
   581  /**
   582   * @brief xcb_input_get_device_motion_events_reply_t
   583   **/
   584  typedef struct xcb_input_get_device_motion_events_reply_t {
   585      uint8_t  response_type;
   586      uint8_t  xi_reply_type;
   587      uint16_t sequence;
   588      uint32_t length;
   589      uint32_t num_events;
   590      uint8_t  num_axes;
   591      uint8_t  device_mode;
   592      uint8_t  pad0[18];
   593  } xcb_input_get_device_motion_events_reply_t;
   594  
   595  /**
   596   * @brief xcb_input_change_keyboard_device_cookie_t
   597   **/
   598  typedef struct xcb_input_change_keyboard_device_cookie_t {
   599      unsigned int sequence;
   600  } xcb_input_change_keyboard_device_cookie_t;
   601  
   602  /** Opcode for xcb_input_change_keyboard_device. */
   603  #define XCB_INPUT_CHANGE_KEYBOARD_DEVICE 11
   604  
   605  /**
   606   * @brief xcb_input_change_keyboard_device_request_t
   607   **/
   608  typedef struct xcb_input_change_keyboard_device_request_t {
   609      uint8_t  major_opcode;
   610      uint8_t  minor_opcode;
   611      uint16_t length;
   612      uint8_t  device_id;
   613      uint8_t  pad0[3];
   614  } xcb_input_change_keyboard_device_request_t;
   615  
   616  /**
   617   * @brief xcb_input_change_keyboard_device_reply_t
   618   **/
   619  typedef struct xcb_input_change_keyboard_device_reply_t {
   620      uint8_t  response_type;
   621      uint8_t  xi_reply_type;
   622      uint16_t sequence;
   623      uint32_t length;
   624      uint8_t  status;
   625      uint8_t  pad0[23];
   626  } xcb_input_change_keyboard_device_reply_t;
   627  
   628  /**
   629   * @brief xcb_input_change_pointer_device_cookie_t
   630   **/
   631  typedef struct xcb_input_change_pointer_device_cookie_t {
   632      unsigned int sequence;
   633  } xcb_input_change_pointer_device_cookie_t;
   634  
   635  /** Opcode for xcb_input_change_pointer_device. */
   636  #define XCB_INPUT_CHANGE_POINTER_DEVICE 12
   637  
   638  /**
   639   * @brief xcb_input_change_pointer_device_request_t
   640   **/
   641  typedef struct xcb_input_change_pointer_device_request_t {
   642      uint8_t  major_opcode;
   643      uint8_t  minor_opcode;
   644      uint16_t length;
   645      uint8_t  x_axis;
   646      uint8_t  y_axis;
   647      uint8_t  device_id;
   648      uint8_t  pad0;
   649  } xcb_input_change_pointer_device_request_t;
   650  
   651  /**
   652   * @brief xcb_input_change_pointer_device_reply_t
   653   **/
   654  typedef struct xcb_input_change_pointer_device_reply_t {
   655      uint8_t  response_type;
   656      uint8_t  xi_reply_type;
   657      uint16_t sequence;
   658      uint32_t length;
   659      uint8_t  status;
   660      uint8_t  pad0[23];
   661  } xcb_input_change_pointer_device_reply_t;
   662  
   663  /**
   664   * @brief xcb_input_grab_device_cookie_t
   665   **/
   666  typedef struct xcb_input_grab_device_cookie_t {
   667      unsigned int sequence;
   668  } xcb_input_grab_device_cookie_t;
   669  
   670  /** Opcode for xcb_input_grab_device. */
   671  #define XCB_INPUT_GRAB_DEVICE 13
   672  
   673  /**
   674   * @brief xcb_input_grab_device_request_t
   675   **/
   676  typedef struct xcb_input_grab_device_request_t {
   677      uint8_t         major_opcode;
   678      uint8_t         minor_opcode;
   679      uint16_t        length;
   680      xcb_window_t    grab_window;
   681      xcb_timestamp_t time;
   682      uint16_t        num_classes;
   683      uint8_t         this_device_mode;
   684      uint8_t         other_device_mode;
   685      uint8_t         owner_events;
   686      uint8_t         device_id;
   687      uint8_t         pad0[2];
   688  } xcb_input_grab_device_request_t;
   689  
   690  /**
   691   * @brief xcb_input_grab_device_reply_t
   692   **/
   693  typedef struct xcb_input_grab_device_reply_t {
   694      uint8_t  response_type;
   695      uint8_t  xi_reply_type;
   696      uint16_t sequence;
   697      uint32_t length;
   698      uint8_t  status;
   699      uint8_t  pad0[23];
   700  } xcb_input_grab_device_reply_t;
   701  
   702  /** Opcode for xcb_input_ungrab_device. */
   703  #define XCB_INPUT_UNGRAB_DEVICE 14
   704  
   705  /**
   706   * @brief xcb_input_ungrab_device_request_t
   707   **/
   708  typedef struct xcb_input_ungrab_device_request_t {
   709      uint8_t         major_opcode;
   710      uint8_t         minor_opcode;
   711      uint16_t        length;
   712      xcb_timestamp_t time;
   713      uint8_t         device_id;
   714      uint8_t         pad0[3];
   715  } xcb_input_ungrab_device_request_t;
   716  
   717  typedef enum xcb_input_modifier_device_t {
   718      XCB_INPUT_MODIFIER_DEVICE_USE_X_KEYBOARD = 255
   719  } xcb_input_modifier_device_t;
   720  
   721  /** Opcode for xcb_input_grab_device_key. */
   722  #define XCB_INPUT_GRAB_DEVICE_KEY 15
   723  
   724  /**
   725   * @brief xcb_input_grab_device_key_request_t
   726   **/
   727  typedef struct xcb_input_grab_device_key_request_t {
   728      uint8_t      major_opcode;
   729      uint8_t      minor_opcode;
   730      uint16_t     length;
   731      xcb_window_t grab_window;
   732      uint16_t     num_classes;
   733      uint16_t     modifiers;
   734      uint8_t      modifier_device;
   735      uint8_t      grabbed_device;
   736      uint8_t      key;
   737      uint8_t      this_device_mode;
   738      uint8_t      other_device_mode;
   739      uint8_t      owner_events;
   740      uint8_t      pad0[2];
   741  } xcb_input_grab_device_key_request_t;
   742  
   743  /** Opcode for xcb_input_ungrab_device_key. */
   744  #define XCB_INPUT_UNGRAB_DEVICE_KEY 16
   745  
   746  /**
   747   * @brief xcb_input_ungrab_device_key_request_t
   748   **/
   749  typedef struct xcb_input_ungrab_device_key_request_t {
   750      uint8_t      major_opcode;
   751      uint8_t      minor_opcode;
   752      uint16_t     length;
   753      xcb_window_t grabWindow;
   754      uint16_t     modifiers;
   755      uint8_t      modifier_device;
   756      uint8_t      key;
   757      uint8_t      grabbed_device;
   758  } xcb_input_ungrab_device_key_request_t;
   759  
   760  /** Opcode for xcb_input_grab_device_button. */
   761  #define XCB_INPUT_GRAB_DEVICE_BUTTON 17
   762  
   763  /**
   764   * @brief xcb_input_grab_device_button_request_t
   765   **/
   766  typedef struct xcb_input_grab_device_button_request_t {
   767      uint8_t      major_opcode;
   768      uint8_t      minor_opcode;
   769      uint16_t     length;
   770      xcb_window_t grab_window;
   771      uint8_t      grabbed_device;
   772      uint8_t      modifier_device;
   773      uint16_t     num_classes;
   774      uint16_t     modifiers;
   775      uint8_t      this_device_mode;
   776      uint8_t      other_device_mode;
   777      uint8_t      button;
   778      uint8_t      owner_events;
   779      uint8_t      pad0[2];
   780  } xcb_input_grab_device_button_request_t;
   781  
   782  /** Opcode for xcb_input_ungrab_device_button. */
   783  #define XCB_INPUT_UNGRAB_DEVICE_BUTTON 18
   784  
   785  /**
   786   * @brief xcb_input_ungrab_device_button_request_t
   787   **/
   788  typedef struct xcb_input_ungrab_device_button_request_t {
   789      uint8_t      major_opcode;
   790      uint8_t      minor_opcode;
   791      uint16_t     length;
   792      xcb_window_t grab_window;
   793      uint16_t     modifiers;
   794      uint8_t      modifier_device;
   795      uint8_t      button;
   796      uint8_t      grabbed_device;
   797      uint8_t      pad0[3];
   798  } xcb_input_ungrab_device_button_request_t;
   799  
   800  typedef enum xcb_input_device_input_mode_t {
   801      XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_THIS_DEVICE = 0,
   802      XCB_INPUT_DEVICE_INPUT_MODE_SYNC_THIS_DEVICE = 1,
   803      XCB_INPUT_DEVICE_INPUT_MODE_REPLAY_THIS_DEVICE = 2,
   804      XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_OTHER_DEVICES = 3,
   805      XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_ALL = 4,
   806      XCB_INPUT_DEVICE_INPUT_MODE_SYNC_ALL = 5
   807  } xcb_input_device_input_mode_t;
   808  
   809  /** Opcode for xcb_input_allow_device_events. */
   810  #define XCB_INPUT_ALLOW_DEVICE_EVENTS 19
   811  
   812  /**
   813   * @brief xcb_input_allow_device_events_request_t
   814   **/
   815  typedef struct xcb_input_allow_device_events_request_t {
   816      uint8_t         major_opcode;
   817      uint8_t         minor_opcode;
   818      uint16_t        length;
   819      xcb_timestamp_t time;
   820      uint8_t         mode;
   821      uint8_t         device_id;
   822      uint8_t         pad0[2];
   823  } xcb_input_allow_device_events_request_t;
   824  
   825  /**
   826   * @brief xcb_input_get_device_focus_cookie_t
   827   **/
   828  typedef struct xcb_input_get_device_focus_cookie_t {
   829      unsigned int sequence;
   830  } xcb_input_get_device_focus_cookie_t;
   831  
   832  /** Opcode for xcb_input_get_device_focus. */
   833  #define XCB_INPUT_GET_DEVICE_FOCUS 20
   834  
   835  /**
   836   * @brief xcb_input_get_device_focus_request_t
   837   **/
   838  typedef struct xcb_input_get_device_focus_request_t {
   839      uint8_t  major_opcode;
   840      uint8_t  minor_opcode;
   841      uint16_t length;
   842      uint8_t  device_id;
   843      uint8_t  pad0[3];
   844  } xcb_input_get_device_focus_request_t;
   845  
   846  /**
   847   * @brief xcb_input_get_device_focus_reply_t
   848   **/
   849  typedef struct xcb_input_get_device_focus_reply_t {
   850      uint8_t         response_type;
   851      uint8_t         xi_reply_type;
   852      uint16_t        sequence;
   853      uint32_t        length;
   854      xcb_window_t    focus;
   855      xcb_timestamp_t time;
   856      uint8_t         revert_to;
   857      uint8_t         pad0[15];
   858  } xcb_input_get_device_focus_reply_t;
   859  
   860  /** Opcode for xcb_input_set_device_focus. */
   861  #define XCB_INPUT_SET_DEVICE_FOCUS 21
   862  
   863  /**
   864   * @brief xcb_input_set_device_focus_request_t
   865   **/
   866  typedef struct xcb_input_set_device_focus_request_t {
   867      uint8_t         major_opcode;
   868      uint8_t         minor_opcode;
   869      uint16_t        length;
   870      xcb_window_t    focus;
   871      xcb_timestamp_t time;
   872      uint8_t         revert_to;
   873      uint8_t         device_id;
   874      uint8_t         pad0[2];
   875  } xcb_input_set_device_focus_request_t;
   876  
   877  typedef enum xcb_input_feedback_class_t {
   878      XCB_INPUT_FEEDBACK_CLASS_KEYBOARD = 0,
   879      XCB_INPUT_FEEDBACK_CLASS_POINTER = 1,
   880      XCB_INPUT_FEEDBACK_CLASS_STRING = 2,
   881      XCB_INPUT_FEEDBACK_CLASS_INTEGER = 3,
   882      XCB_INPUT_FEEDBACK_CLASS_LED = 4,
   883      XCB_INPUT_FEEDBACK_CLASS_BELL = 5
   884  } xcb_input_feedback_class_t;
   885  
   886  /**
   887   * @brief xcb_input_kbd_feedback_state_t
   888   **/
   889  typedef struct xcb_input_kbd_feedback_state_t {
   890      uint8_t  class_id;
   891      uint8_t  feedback_id;
   892      uint16_t len;
   893      uint16_t pitch;
   894      uint16_t duration;
   895      uint32_t led_mask;
   896      uint32_t led_values;
   897      uint8_t  global_auto_repeat;
   898      uint8_t  click;
   899      uint8_t  percent;
   900      uint8_t  pad0;
   901      uint8_t  auto_repeats[32];
   902  } xcb_input_kbd_feedback_state_t;
   903  
   904  /**
   905   * @brief xcb_input_kbd_feedback_state_iterator_t
   906   **/
   907  typedef struct xcb_input_kbd_feedback_state_iterator_t {
   908      xcb_input_kbd_feedback_state_t *data;
   909      int                             rem;
   910      int                             index;
   911  } xcb_input_kbd_feedback_state_iterator_t;
   912  
   913  /**
   914   * @brief xcb_input_ptr_feedback_state_t
   915   **/
   916  typedef struct xcb_input_ptr_feedback_state_t {
   917      uint8_t  class_id;
   918      uint8_t  feedback_id;
   919      uint16_t len;
   920      uint8_t  pad0[2];
   921      uint16_t accel_num;
   922      uint16_t accel_denom;
   923      uint16_t threshold;
   924  } xcb_input_ptr_feedback_state_t;
   925  
   926  /**
   927   * @brief xcb_input_ptr_feedback_state_iterator_t
   928   **/
   929  typedef struct xcb_input_ptr_feedback_state_iterator_t {
   930      xcb_input_ptr_feedback_state_t *data;
   931      int                             rem;
   932      int                             index;
   933  } xcb_input_ptr_feedback_state_iterator_t;
   934  
   935  /**
   936   * @brief xcb_input_integer_feedback_state_t
   937   **/
   938  typedef struct xcb_input_integer_feedback_state_t {
   939      uint8_t  class_id;
   940      uint8_t  feedback_id;
   941      uint16_t len;
   942      uint32_t resolution;
   943      int32_t  min_value;
   944      int32_t  max_value;
   945  } xcb_input_integer_feedback_state_t;
   946  
   947  /**
   948   * @brief xcb_input_integer_feedback_state_iterator_t
   949   **/
   950  typedef struct xcb_input_integer_feedback_state_iterator_t {
   951      xcb_input_integer_feedback_state_t *data;
   952      int                                 rem;
   953      int                                 index;
   954  } xcb_input_integer_feedback_state_iterator_t;
   955  
   956  /**
   957   * @brief xcb_input_string_feedback_state_t
   958   **/
   959  typedef struct xcb_input_string_feedback_state_t {
   960      uint8_t  class_id;
   961      uint8_t  feedback_id;
   962      uint16_t len;
   963      uint16_t max_symbols;
   964      uint16_t num_keysyms;
   965  } xcb_input_string_feedback_state_t;
   966  
   967  /**
   968   * @brief xcb_input_string_feedback_state_iterator_t
   969   **/
   970  typedef struct xcb_input_string_feedback_state_iterator_t {
   971      xcb_input_string_feedback_state_t *data;
   972      int                                rem;
   973      int                                index;
   974  } xcb_input_string_feedback_state_iterator_t;
   975  
   976  /**
   977   * @brief xcb_input_bell_feedback_state_t
   978   **/
   979  typedef struct xcb_input_bell_feedback_state_t {
   980      uint8_t  class_id;
   981      uint8_t  feedback_id;
   982      uint16_t len;
   983      uint8_t  percent;
   984      uint8_t  pad0[3];
   985      uint16_t pitch;
   986      uint16_t duration;
   987  } xcb_input_bell_feedback_state_t;
   988  
   989  /**
   990   * @brief xcb_input_bell_feedback_state_iterator_t
   991   **/
   992  typedef struct xcb_input_bell_feedback_state_iterator_t {
   993      xcb_input_bell_feedback_state_t *data;
   994      int                              rem;
   995      int                              index;
   996  } xcb_input_bell_feedback_state_iterator_t;
   997  
   998  /**
   999   * @brief xcb_input_led_feedback_state_t
  1000   **/
  1001  typedef struct xcb_input_led_feedback_state_t {
  1002      uint8_t  class_id;
  1003      uint8_t  feedback_id;
  1004      uint16_t len;
  1005      uint32_t led_mask;
  1006      uint32_t led_values;
  1007  } xcb_input_led_feedback_state_t;
  1008  
  1009  /**
  1010   * @brief xcb_input_led_feedback_state_iterator_t
  1011   **/
  1012  typedef struct xcb_input_led_feedback_state_iterator_t {
  1013      xcb_input_led_feedback_state_t *data;
  1014      int                             rem;
  1015      int                             index;
  1016  } xcb_input_led_feedback_state_iterator_t;
  1017  
  1018  /**
  1019   * @brief xcb_input_feedback_state_data_t
  1020   **/
  1021  typedef struct xcb_input_feedback_state_data_t {
  1022      struct {
  1023          uint16_t      pitch;
  1024          uint16_t      duration;
  1025          uint32_t      led_mask;
  1026          uint32_t      led_values;
  1027          uint8_t       global_auto_repeat;
  1028          uint8_t       click;
  1029          uint8_t       percent;
  1030          uint8_t       pad0;
  1031          uint8_t       auto_repeats[32];
  1032      } keyboard;
  1033      struct {
  1034          uint8_t       pad1[2];
  1035          uint16_t      accel_num;
  1036          uint16_t      accel_denom;
  1037          uint16_t      threshold;
  1038      } pointer;
  1039      struct {
  1040          uint16_t      max_symbols;
  1041          uint16_t      num_keysyms;
  1042          xcb_keysym_t *keysyms;
  1043      } string;
  1044      struct {
  1045          uint32_t      resolution;
  1046          int32_t       min_value;
  1047          int32_t       max_value;
  1048      } integer;
  1049      struct {
  1050          uint32_t      led_mask;
  1051          uint32_t      led_values;
  1052      } led;
  1053      struct {
  1054          uint8_t       percent;
  1055          uint8_t       pad2[3];
  1056          uint16_t      pitch;
  1057          uint16_t      duration;
  1058      } bell;
  1059  } xcb_input_feedback_state_data_t;
  1060  
  1061  /**
  1062   * @brief xcb_input_feedback_state_t
  1063   **/
  1064  typedef struct xcb_input_feedback_state_t {
  1065      uint8_t  class_id;
  1066      uint8_t  feedback_id;
  1067      uint16_t len;
  1068  } xcb_input_feedback_state_t;
  1069  
  1070  void *
  1071  xcb_input_feedback_state_data (const xcb_input_feedback_state_t *R);
  1072  
  1073  /**
  1074   * @brief xcb_input_feedback_state_iterator_t
  1075   **/
  1076  typedef struct xcb_input_feedback_state_iterator_t {
  1077      xcb_input_feedback_state_t *data;
  1078      int                         rem;
  1079      int                         index;
  1080  } xcb_input_feedback_state_iterator_t;
  1081  
  1082  /**
  1083   * @brief xcb_input_get_feedback_control_cookie_t
  1084   **/
  1085  typedef struct xcb_input_get_feedback_control_cookie_t {
  1086      unsigned int sequence;
  1087  } xcb_input_get_feedback_control_cookie_t;
  1088  
  1089  /** Opcode for xcb_input_get_feedback_control. */
  1090  #define XCB_INPUT_GET_FEEDBACK_CONTROL 22
  1091  
  1092  /**
  1093   * @brief xcb_input_get_feedback_control_request_t
  1094   **/
  1095  typedef struct xcb_input_get_feedback_control_request_t {
  1096      uint8_t  major_opcode;
  1097      uint8_t  minor_opcode;
  1098      uint16_t length;
  1099      uint8_t  device_id;
  1100      uint8_t  pad0[3];
  1101  } xcb_input_get_feedback_control_request_t;
  1102  
  1103  /**
  1104   * @brief xcb_input_get_feedback_control_reply_t
  1105   **/
  1106  typedef struct xcb_input_get_feedback_control_reply_t {
  1107      uint8_t  response_type;
  1108      uint8_t  xi_reply_type;
  1109      uint16_t sequence;
  1110      uint32_t length;
  1111      uint16_t num_feedbacks;
  1112      uint8_t  pad0[22];
  1113  } xcb_input_get_feedback_control_reply_t;
  1114  
  1115  /**
  1116   * @brief xcb_input_kbd_feedback_ctl_t
  1117   **/
  1118  typedef struct xcb_input_kbd_feedback_ctl_t {
  1119      uint8_t              class_id;
  1120      uint8_t              feedback_id;
  1121      uint16_t             len;
  1122      xcb_input_key_code_t key;
  1123      uint8_t              auto_repeat_mode;
  1124      int8_t               key_click_percent;
  1125      int8_t               bell_percent;
  1126      int16_t              bell_pitch;
  1127      int16_t              bell_duration;
  1128      uint32_t             led_mask;
  1129      uint32_t             led_values;
  1130  } xcb_input_kbd_feedback_ctl_t;
  1131  
  1132  /**
  1133   * @brief xcb_input_kbd_feedback_ctl_iterator_t
  1134   **/
  1135  typedef struct xcb_input_kbd_feedback_ctl_iterator_t {
  1136      xcb_input_kbd_feedback_ctl_t *data;
  1137      int                           rem;
  1138      int                           index;
  1139  } xcb_input_kbd_feedback_ctl_iterator_t;
  1140  
  1141  /**
  1142   * @brief xcb_input_ptr_feedback_ctl_t
  1143   **/
  1144  typedef struct xcb_input_ptr_feedback_ctl_t {
  1145      uint8_t  class_id;
  1146      uint8_t  feedback_id;
  1147      uint16_t len;
  1148      uint8_t  pad0[2];
  1149      int16_t  num;
  1150      int16_t  denom;
  1151      int16_t  threshold;
  1152  } xcb_input_ptr_feedback_ctl_t;
  1153  
  1154  /**
  1155   * @brief xcb_input_ptr_feedback_ctl_iterator_t
  1156   **/
  1157  typedef struct xcb_input_ptr_feedback_ctl_iterator_t {
  1158      xcb_input_ptr_feedback_ctl_t *data;
  1159      int                           rem;
  1160      int                           index;
  1161  } xcb_input_ptr_feedback_ctl_iterator_t;
  1162  
  1163  /**
  1164   * @brief xcb_input_integer_feedback_ctl_t
  1165   **/
  1166  typedef struct xcb_input_integer_feedback_ctl_t {
  1167      uint8_t  class_id;
  1168      uint8_t  feedback_id;
  1169      uint16_t len;
  1170      int32_t  int_to_display;
  1171  } xcb_input_integer_feedback_ctl_t;
  1172  
  1173  /**
  1174   * @brief xcb_input_integer_feedback_ctl_iterator_t
  1175   **/
  1176  typedef struct xcb_input_integer_feedback_ctl_iterator_t {
  1177      xcb_input_integer_feedback_ctl_t *data;
  1178      int                               rem;
  1179      int                               index;
  1180  } xcb_input_integer_feedback_ctl_iterator_t;
  1181  
  1182  /**
  1183   * @brief xcb_input_string_feedback_ctl_t
  1184   **/
  1185  typedef struct xcb_input_string_feedback_ctl_t {
  1186      uint8_t  class_id;
  1187      uint8_t  feedback_id;
  1188      uint16_t len;
  1189      uint8_t  pad0[2];
  1190      uint16_t num_keysyms;
  1191  } xcb_input_string_feedback_ctl_t;
  1192  
  1193  /**
  1194   * @brief xcb_input_string_feedback_ctl_iterator_t
  1195   **/
  1196  typedef struct xcb_input_string_feedback_ctl_iterator_t {
  1197      xcb_input_string_feedback_ctl_t *data;
  1198      int                              rem;
  1199      int                              index;
  1200  } xcb_input_string_feedback_ctl_iterator_t;
  1201  
  1202  /**
  1203   * @brief xcb_input_bell_feedback_ctl_t
  1204   **/
  1205  typedef struct xcb_input_bell_feedback_ctl_t {
  1206      uint8_t  class_id;
  1207      uint8_t  feedback_id;
  1208      uint16_t len;
  1209      int8_t   percent;
  1210      uint8_t  pad0[3];
  1211      int16_t  pitch;
  1212      int16_t  duration;
  1213  } xcb_input_bell_feedback_ctl_t;
  1214  
  1215  /**
  1216   * @brief xcb_input_bell_feedback_ctl_iterator_t
  1217   **/
  1218  typedef struct xcb_input_bell_feedback_ctl_iterator_t {
  1219      xcb_input_bell_feedback_ctl_t *data;
  1220      int                            rem;
  1221      int                            index;
  1222  } xcb_input_bell_feedback_ctl_iterator_t;
  1223  
  1224  /**
  1225   * @brief xcb_input_led_feedback_ctl_t
  1226   **/
  1227  typedef struct xcb_input_led_feedback_ctl_t {
  1228      uint8_t  class_id;
  1229      uint8_t  feedback_id;
  1230      uint16_t len;
  1231      uint32_t led_mask;
  1232      uint32_t led_values;
  1233  } xcb_input_led_feedback_ctl_t;
  1234  
  1235  /**
  1236   * @brief xcb_input_led_feedback_ctl_iterator_t
  1237   **/
  1238  typedef struct xcb_input_led_feedback_ctl_iterator_t {
  1239      xcb_input_led_feedback_ctl_t *data;
  1240      int                           rem;
  1241      int                           index;
  1242  } xcb_input_led_feedback_ctl_iterator_t;
  1243  
  1244  /**
  1245   * @brief xcb_input_feedback_ctl_data_t
  1246   **/
  1247  typedef struct xcb_input_feedback_ctl_data_t {
  1248      struct {
  1249          xcb_input_key_code_t key;
  1250          uint8_t              auto_repeat_mode;
  1251          int8_t               key_click_percent;
  1252          int8_t               bell_percent;
  1253          int16_t              bell_pitch;
  1254          int16_t              bell_duration;
  1255          uint32_t             led_mask;
  1256          uint32_t             led_values;
  1257      } keyboard;
  1258      struct {
  1259          uint8_t              pad0[2];
  1260          int16_t              num;
  1261          int16_t              denom;
  1262          int16_t              threshold;
  1263      } pointer;
  1264      struct {
  1265          uint8_t              pad1[2];
  1266          uint16_t             num_keysyms;
  1267          xcb_keysym_t        *keysyms;
  1268      } string;
  1269      struct {
  1270          int32_t              int_to_display;
  1271      } integer;
  1272      struct {
  1273          uint32_t             led_mask;
  1274          uint32_t             led_values;
  1275      } led;
  1276      struct {
  1277          int8_t               percent;
  1278          uint8_t              pad2[3];
  1279          int16_t              pitch;
  1280          int16_t              duration;
  1281      } bell;
  1282  } xcb_input_feedback_ctl_data_t;
  1283  
  1284  /**
  1285   * @brief xcb_input_feedback_ctl_t
  1286   **/
  1287  typedef struct xcb_input_feedback_ctl_t {
  1288      uint8_t  class_id;
  1289      uint8_t  feedback_id;
  1290      uint16_t len;
  1291  } xcb_input_feedback_ctl_t;
  1292  
  1293  void *
  1294  xcb_input_feedback_ctl_data (const xcb_input_feedback_ctl_t *R);
  1295  
  1296  /**
  1297   * @brief xcb_input_feedback_ctl_iterator_t
  1298   **/
  1299  typedef struct xcb_input_feedback_ctl_iterator_t {
  1300      xcb_input_feedback_ctl_t *data;
  1301      int                       rem;
  1302      int                       index;
  1303  } xcb_input_feedback_ctl_iterator_t;
  1304  
  1305  typedef enum xcb_input_change_feedback_control_mask_t {
  1306      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT = 1,
  1307      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PERCENT = 2,
  1308      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PITCH = 4,
  1309      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_DURATION = 8,
  1310      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_LED = 16,
  1311      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_LED_MODE = 32,
  1312      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY = 64,
  1313      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_AUTO_REPEAT_MODE = 128,
  1314      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_STRING = 1,
  1315      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_INTEGER = 1,
  1316      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_ACCEL_NUM = 1,
  1317      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_ACCEL_DENOM = 2,
  1318      XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_THRESHOLD = 4
  1319  } xcb_input_change_feedback_control_mask_t;
  1320  
  1321  /** Opcode for xcb_input_change_feedback_control. */
  1322  #define XCB_INPUT_CHANGE_FEEDBACK_CONTROL 23
  1323  
  1324  /**
  1325   * @brief xcb_input_change_feedback_control_request_t
  1326   **/
  1327  typedef struct xcb_input_change_feedback_control_request_t {
  1328      uint8_t  major_opcode;
  1329      uint8_t  minor_opcode;
  1330      uint16_t length;
  1331      uint32_t mask;
  1332      uint8_t  device_id;
  1333      uint8_t  feedback_id;
  1334      uint8_t  pad0[2];
  1335  } xcb_input_change_feedback_control_request_t;
  1336  
  1337  /**
  1338   * @brief xcb_input_get_device_key_mapping_cookie_t
  1339   **/
  1340  typedef struct xcb_input_get_device_key_mapping_cookie_t {
  1341      unsigned int sequence;
  1342  } xcb_input_get_device_key_mapping_cookie_t;
  1343  
  1344  /** Opcode for xcb_input_get_device_key_mapping. */
  1345  #define XCB_INPUT_GET_DEVICE_KEY_MAPPING 24
  1346  
  1347  /**
  1348   * @brief xcb_input_get_device_key_mapping_request_t
  1349   **/
  1350  typedef struct xcb_input_get_device_key_mapping_request_t {
  1351      uint8_t              major_opcode;
  1352      uint8_t              minor_opcode;
  1353      uint16_t             length;
  1354      uint8_t              device_id;
  1355      xcb_input_key_code_t first_keycode;
  1356      uint8_t              count;
  1357      uint8_t              pad0;
  1358  } xcb_input_get_device_key_mapping_request_t;
  1359  
  1360  /**
  1361   * @brief xcb_input_get_device_key_mapping_reply_t
  1362   **/
  1363  typedef struct xcb_input_get_device_key_mapping_reply_t {
  1364      uint8_t  response_type;
  1365      uint8_t  xi_reply_type;
  1366      uint16_t sequence;
  1367      uint32_t length;
  1368      uint8_t  keysyms_per_keycode;
  1369      uint8_t  pad0[23];
  1370  } xcb_input_get_device_key_mapping_reply_t;
  1371  
  1372  /** Opcode for xcb_input_change_device_key_mapping. */
  1373  #define XCB_INPUT_CHANGE_DEVICE_KEY_MAPPING 25
  1374  
  1375  /**
  1376   * @brief xcb_input_change_device_key_mapping_request_t
  1377   **/
  1378  typedef struct xcb_input_change_device_key_mapping_request_t {
  1379      uint8_t              major_opcode;
  1380      uint8_t              minor_opcode;
  1381      uint16_t             length;
  1382      uint8_t              device_id;
  1383      xcb_input_key_code_t first_keycode;
  1384      uint8_t              keysyms_per_keycode;
  1385      uint8_t              keycode_count;
  1386  } xcb_input_change_device_key_mapping_request_t;
  1387  
  1388  /**
  1389   * @brief xcb_input_get_device_modifier_mapping_cookie_t
  1390   **/
  1391  typedef struct xcb_input_get_device_modifier_mapping_cookie_t {
  1392      unsigned int sequence;
  1393  } xcb_input_get_device_modifier_mapping_cookie_t;
  1394  
  1395  /** Opcode for xcb_input_get_device_modifier_mapping. */
  1396  #define XCB_INPUT_GET_DEVICE_MODIFIER_MAPPING 26
  1397  
  1398  /**
  1399   * @brief xcb_input_get_device_modifier_mapping_request_t
  1400   **/
  1401  typedef struct xcb_input_get_device_modifier_mapping_request_t {
  1402      uint8_t  major_opcode;
  1403      uint8_t  minor_opcode;
  1404      uint16_t length;
  1405      uint8_t  device_id;
  1406      uint8_t  pad0[3];
  1407  } xcb_input_get_device_modifier_mapping_request_t;
  1408  
  1409  /**
  1410   * @brief xcb_input_get_device_modifier_mapping_reply_t
  1411   **/
  1412  typedef struct xcb_input_get_device_modifier_mapping_reply_t {
  1413      uint8_t  response_type;
  1414      uint8_t  xi_reply_type;
  1415      uint16_t sequence;
  1416      uint32_t length;
  1417      uint8_t  keycodes_per_modifier;
  1418      uint8_t  pad0[23];
  1419  } xcb_input_get_device_modifier_mapping_reply_t;
  1420  
  1421  /**
  1422   * @brief xcb_input_set_device_modifier_mapping_cookie_t
  1423   **/
  1424  typedef struct xcb_input_set_device_modifier_mapping_cookie_t {
  1425      unsigned int sequence;
  1426  } xcb_input_set_device_modifier_mapping_cookie_t;
  1427  
  1428  /** Opcode for xcb_input_set_device_modifier_mapping. */
  1429  #define XCB_INPUT_SET_DEVICE_MODIFIER_MAPPING 27
  1430  
  1431  /**
  1432   * @brief xcb_input_set_device_modifier_mapping_request_t
  1433   **/
  1434  typedef struct xcb_input_set_device_modifier_mapping_request_t {
  1435      uint8_t  major_opcode;
  1436      uint8_t  minor_opcode;
  1437      uint16_t length;
  1438      uint8_t  device_id;
  1439      uint8_t  keycodes_per_modifier;
  1440      uint8_t  pad0[2];
  1441  } xcb_input_set_device_modifier_mapping_request_t;
  1442  
  1443  /**
  1444   * @brief xcb_input_set_device_modifier_mapping_reply_t
  1445   **/
  1446  typedef struct xcb_input_set_device_modifier_mapping_reply_t {
  1447      uint8_t  response_type;
  1448      uint8_t  xi_reply_type;
  1449      uint16_t sequence;
  1450      uint32_t length;
  1451      uint8_t  status;
  1452      uint8_t  pad0[23];
  1453  } xcb_input_set_device_modifier_mapping_reply_t;
  1454  
  1455  /**
  1456   * @brief xcb_input_get_device_button_mapping_cookie_t
  1457   **/
  1458  typedef struct xcb_input_get_device_button_mapping_cookie_t {
  1459      unsigned int sequence;
  1460  } xcb_input_get_device_button_mapping_cookie_t;
  1461  
  1462  /** Opcode for xcb_input_get_device_button_mapping. */
  1463  #define XCB_INPUT_GET_DEVICE_BUTTON_MAPPING 28
  1464  
  1465  /**
  1466   * @brief xcb_input_get_device_button_mapping_request_t
  1467   **/
  1468  typedef struct xcb_input_get_device_button_mapping_request_t {
  1469      uint8_t  major_opcode;
  1470      uint8_t  minor_opcode;
  1471      uint16_t length;
  1472      uint8_t  device_id;
  1473      uint8_t  pad0[3];
  1474  } xcb_input_get_device_button_mapping_request_t;
  1475  
  1476  /**
  1477   * @brief xcb_input_get_device_button_mapping_reply_t
  1478   **/
  1479  typedef struct xcb_input_get_device_button_mapping_reply_t {
  1480      uint8_t  response_type;
  1481      uint8_t  xi_reply_type;
  1482      uint16_t sequence;
  1483      uint32_t length;
  1484      uint8_t  map_size;
  1485      uint8_t  pad0[23];
  1486  } xcb_input_get_device_button_mapping_reply_t;
  1487  
  1488  /**
  1489   * @brief xcb_input_set_device_button_mapping_cookie_t
  1490   **/
  1491  typedef struct xcb_input_set_device_button_mapping_cookie_t {
  1492      unsigned int sequence;
  1493  } xcb_input_set_device_button_mapping_cookie_t;
  1494  
  1495  /** Opcode for xcb_input_set_device_button_mapping. */
  1496  #define XCB_INPUT_SET_DEVICE_BUTTON_MAPPING 29
  1497  
  1498  /**
  1499   * @brief xcb_input_set_device_button_mapping_request_t
  1500   **/
  1501  typedef struct xcb_input_set_device_button_mapping_request_t {
  1502      uint8_t  major_opcode;
  1503      uint8_t  minor_opcode;
  1504      uint16_t length;
  1505      uint8_t  device_id;
  1506      uint8_t  map_size;
  1507      uint8_t  pad0[2];
  1508  } xcb_input_set_device_button_mapping_request_t;
  1509  
  1510  /**
  1511   * @brief xcb_input_set_device_button_mapping_reply_t
  1512   **/
  1513  typedef struct xcb_input_set_device_button_mapping_reply_t {
  1514      uint8_t  response_type;
  1515      uint8_t  xi_reply_type;
  1516      uint16_t sequence;
  1517      uint32_t length;
  1518      uint8_t  status;
  1519      uint8_t  pad0[23];
  1520  } xcb_input_set_device_button_mapping_reply_t;
  1521  
  1522  /**
  1523   * @brief xcb_input_key_state_t
  1524   **/
  1525  typedef struct xcb_input_key_state_t {
  1526      uint8_t class_id;
  1527      uint8_t len;
  1528      uint8_t num_keys;
  1529      uint8_t pad0;
  1530      uint8_t keys[32];
  1531  } xcb_input_key_state_t;
  1532  
  1533  /**
  1534   * @brief xcb_input_key_state_iterator_t
  1535   **/
  1536  typedef struct xcb_input_key_state_iterator_t {
  1537      xcb_input_key_state_t *data;
  1538      int                    rem;
  1539      int                    index;
  1540  } xcb_input_key_state_iterator_t;
  1541  
  1542  /**
  1543   * @brief xcb_input_button_state_t
  1544   **/
  1545  typedef struct xcb_input_button_state_t {
  1546      uint8_t class_id;
  1547      uint8_t len;
  1548      uint8_t num_buttons;
  1549      uint8_t pad0;
  1550      uint8_t buttons[32];
  1551  } xcb_input_button_state_t;
  1552  
  1553  /**
  1554   * @brief xcb_input_button_state_iterator_t
  1555   **/
  1556  typedef struct xcb_input_button_state_iterator_t {
  1557      xcb_input_button_state_t *data;
  1558      int                       rem;
  1559      int                       index;
  1560  } xcb_input_button_state_iterator_t;
  1561  
  1562  typedef enum xcb_input_valuator_state_mode_mask_t {
  1563      XCB_INPUT_VALUATOR_STATE_MODE_MASK_DEVICE_MODE_ABSOLUTE = 1,
  1564      XCB_INPUT_VALUATOR_STATE_MODE_MASK_OUT_OF_PROXIMITY = 2
  1565  } xcb_input_valuator_state_mode_mask_t;
  1566  
  1567  /**
  1568   * @brief xcb_input_valuator_state_t
  1569   **/
  1570  typedef struct xcb_input_valuator_state_t {
  1571      uint8_t class_id;
  1572      uint8_t len;
  1573      uint8_t num_valuators;
  1574      uint8_t mode;
  1575  } xcb_input_valuator_state_t;
  1576  
  1577  /**
  1578   * @brief xcb_input_valuator_state_iterator_t
  1579   **/
  1580  typedef struct xcb_input_valuator_state_iterator_t {
  1581      xcb_input_valuator_state_t *data;
  1582      int                         rem;
  1583      int                         index;
  1584  } xcb_input_valuator_state_iterator_t;
  1585  
  1586  /**
  1587   * @brief xcb_input_input_state_data_t
  1588   **/
  1589  typedef struct xcb_input_input_state_data_t {
  1590      struct {
  1591          uint8_t  num_keys;
  1592          uint8_t  pad0;
  1593          uint8_t  keys[32];
  1594      } key;
  1595      struct {
  1596          uint8_t  num_buttons;
  1597          uint8_t  pad1;
  1598          uint8_t  buttons[32];
  1599      } button;
  1600      struct {
  1601          uint8_t  num_valuators;
  1602          uint8_t  mode;
  1603          int32_t *valuators;
  1604      } valuator;
  1605  } xcb_input_input_state_data_t;
  1606  
  1607  /**
  1608   * @brief xcb_input_input_state_t
  1609   **/
  1610  typedef struct xcb_input_input_state_t {
  1611      uint8_t class_id;
  1612      uint8_t len;
  1613  } xcb_input_input_state_t;
  1614  
  1615  void *
  1616  xcb_input_input_state_data (const xcb_input_input_state_t *R);
  1617  
  1618  /**
  1619   * @brief xcb_input_input_state_iterator_t
  1620   **/
  1621  typedef struct xcb_input_input_state_iterator_t {
  1622      xcb_input_input_state_t *data;
  1623      int                      rem;
  1624      int                      index;
  1625  } xcb_input_input_state_iterator_t;
  1626  
  1627  /**
  1628   * @brief xcb_input_query_device_state_cookie_t
  1629   **/
  1630  typedef struct xcb_input_query_device_state_cookie_t {
  1631      unsigned int sequence;
  1632  } xcb_input_query_device_state_cookie_t;
  1633  
  1634  /** Opcode for xcb_input_query_device_state. */
  1635  #define XCB_INPUT_QUERY_DEVICE_STATE 30
  1636  
  1637  /**
  1638   * @brief xcb_input_query_device_state_request_t
  1639   **/
  1640  typedef struct xcb_input_query_device_state_request_t {
  1641      uint8_t  major_opcode;
  1642      uint8_t  minor_opcode;
  1643      uint16_t length;
  1644      uint8_t  device_id;
  1645      uint8_t  pad0[3];
  1646  } xcb_input_query_device_state_request_t;
  1647  
  1648  /**
  1649   * @brief xcb_input_query_device_state_reply_t
  1650   **/
  1651  typedef struct xcb_input_query_device_state_reply_t {
  1652      uint8_t  response_type;
  1653      uint8_t  xi_reply_type;
  1654      uint16_t sequence;
  1655      uint32_t length;
  1656      uint8_t  num_classes;
  1657      uint8_t  pad0[23];
  1658  } xcb_input_query_device_state_reply_t;
  1659  
  1660  /** Opcode for xcb_input_device_bell. */
  1661  #define XCB_INPUT_DEVICE_BELL 32
  1662  
  1663  /**
  1664   * @brief xcb_input_device_bell_request_t
  1665   **/
  1666  typedef struct xcb_input_device_bell_request_t {
  1667      uint8_t  major_opcode;
  1668      uint8_t  minor_opcode;
  1669      uint16_t length;
  1670      uint8_t  device_id;
  1671      uint8_t  feedback_id;
  1672      uint8_t  feedback_class;
  1673      int8_t   percent;
  1674  } xcb_input_device_bell_request_t;
  1675  
  1676  /**
  1677   * @brief xcb_input_set_device_valuators_cookie_t
  1678   **/
  1679  typedef struct xcb_input_set_device_valuators_cookie_t {
  1680      unsigned int sequence;
  1681  } xcb_input_set_device_valuators_cookie_t;
  1682  
  1683  /** Opcode for xcb_input_set_device_valuators. */
  1684  #define XCB_INPUT_SET_DEVICE_VALUATORS 33
  1685  
  1686  /**
  1687   * @brief xcb_input_set_device_valuators_request_t
  1688   **/
  1689  typedef struct xcb_input_set_device_valuators_request_t {
  1690      uint8_t  major_opcode;
  1691      uint8_t  minor_opcode;
  1692      uint16_t length;
  1693      uint8_t  device_id;
  1694      uint8_t  first_valuator;
  1695      uint8_t  num_valuators;
  1696      uint8_t  pad0;
  1697  } xcb_input_set_device_valuators_request_t;
  1698  
  1699  /**
  1700   * @brief xcb_input_set_device_valuators_reply_t
  1701   **/
  1702  typedef struct xcb_input_set_device_valuators_reply_t {
  1703      uint8_t  response_type;
  1704      uint8_t  xi_reply_type;
  1705      uint16_t sequence;
  1706      uint32_t length;
  1707      uint8_t  status;
  1708      uint8_t  pad0[23];
  1709  } xcb_input_set_device_valuators_reply_t;
  1710  
  1711  typedef enum xcb_input_device_control_t {
  1712      XCB_INPUT_DEVICE_CONTROL_RESOLUTION = 1,
  1713      XCB_INPUT_DEVICE_CONTROL_ABS_CALIB = 2,
  1714      XCB_INPUT_DEVICE_CONTROL_CORE = 3,
  1715      XCB_INPUT_DEVICE_CONTROL_ENABLE = 4,
  1716      XCB_INPUT_DEVICE_CONTROL_ABS_AREA = 5
  1717  } xcb_input_device_control_t;
  1718  
  1719  /**
  1720   * @brief xcb_input_device_resolution_state_t
  1721   **/
  1722  typedef struct xcb_input_device_resolution_state_t {
  1723      uint16_t control_id;
  1724      uint16_t len;
  1725      uint32_t num_valuators;
  1726  } xcb_input_device_resolution_state_t;
  1727  
  1728  /**
  1729   * @brief xcb_input_device_resolution_state_iterator_t
  1730   **/
  1731  typedef struct xcb_input_device_resolution_state_iterator_t {
  1732      xcb_input_device_resolution_state_t *data;
  1733      int                                  rem;
  1734      int                                  index;
  1735  } xcb_input_device_resolution_state_iterator_t;
  1736  
  1737  /**
  1738   * @brief xcb_input_device_abs_calib_state_t
  1739   **/
  1740  typedef struct xcb_input_device_abs_calib_state_t {
  1741      uint16_t control_id;
  1742      uint16_t len;
  1743      int32_t  min_x;
  1744      int32_t  max_x;
  1745      int32_t  min_y;
  1746      int32_t  max_y;
  1747      uint32_t flip_x;
  1748      uint32_t flip_y;
  1749      uint32_t rotation;
  1750      uint32_t button_threshold;
  1751  } xcb_input_device_abs_calib_state_t;
  1752  
  1753  /**
  1754   * @brief xcb_input_device_abs_calib_state_iterator_t
  1755   **/
  1756  typedef struct xcb_input_device_abs_calib_state_iterator_t {
  1757      xcb_input_device_abs_calib_state_t *data;
  1758      int                                 rem;
  1759      int                                 index;
  1760  } xcb_input_device_abs_calib_state_iterator_t;
  1761  
  1762  /**
  1763   * @brief xcb_input_device_abs_area_state_t
  1764   **/
  1765  typedef struct xcb_input_device_abs_area_state_t {
  1766      uint16_t control_id;
  1767      uint16_t len;
  1768      uint32_t offset_x;
  1769      uint32_t offset_y;
  1770      uint32_t width;
  1771      uint32_t height;
  1772      uint32_t screen;
  1773      uint32_t following;
  1774  } xcb_input_device_abs_area_state_t;
  1775  
  1776  /**
  1777   * @brief xcb_input_device_abs_area_state_iterator_t
  1778   **/
  1779  typedef struct xcb_input_device_abs_area_state_iterator_t {
  1780      xcb_input_device_abs_area_state_t *data;
  1781      int                                rem;
  1782      int                                index;
  1783  } xcb_input_device_abs_area_state_iterator_t;
  1784  
  1785  /**
  1786   * @brief xcb_input_device_core_state_t
  1787   **/
  1788  typedef struct xcb_input_device_core_state_t {
  1789      uint16_t control_id;
  1790      uint16_t len;
  1791      uint8_t  status;
  1792      uint8_t  iscore;
  1793      uint8_t  pad0[2];
  1794  } xcb_input_device_core_state_t;
  1795  
  1796  /**
  1797   * @brief xcb_input_device_core_state_iterator_t
  1798   **/
  1799  typedef struct xcb_input_device_core_state_iterator_t {
  1800      xcb_input_device_core_state_t *data;
  1801      int                            rem;
  1802      int                            index;
  1803  } xcb_input_device_core_state_iterator_t;
  1804  
  1805  /**
  1806   * @brief xcb_input_device_enable_state_t
  1807   **/
  1808  typedef struct xcb_input_device_enable_state_t {
  1809      uint16_t control_id;
  1810      uint16_t len;
  1811      uint8_t  enable;
  1812      uint8_t  pad0[3];
  1813  } xcb_input_device_enable_state_t;
  1814  
  1815  /**
  1816   * @brief xcb_input_device_enable_state_iterator_t
  1817   **/
  1818  typedef struct xcb_input_device_enable_state_iterator_t {
  1819      xcb_input_device_enable_state_t *data;
  1820      int                              rem;
  1821      int                              index;
  1822  } xcb_input_device_enable_state_iterator_t;
  1823  
  1824  /**
  1825   * @brief xcb_input_device_state_data_t
  1826   **/
  1827  typedef struct xcb_input_device_state_data_t {
  1828      struct {
  1829          uint32_t  num_valuators;
  1830          uint32_t *resolution_values;
  1831          uint32_t *resolution_min;
  1832          uint32_t *resolution_max;
  1833      } resolution;
  1834      struct {
  1835          int32_t   min_x;
  1836          int32_t   max_x;
  1837          int32_t   min_y;
  1838          int32_t   max_y;
  1839          uint32_t  flip_x;
  1840          uint32_t  flip_y;
  1841          uint32_t  rotation;
  1842          uint32_t  button_threshold;
  1843      } abs_calib;
  1844      struct {
  1845          uint8_t   status;
  1846          uint8_t   iscore;
  1847          uint8_t   pad0[2];
  1848      } core;
  1849      struct {
  1850          uint8_t   enable;
  1851          uint8_t   pad1[3];
  1852      } enable;
  1853      struct {
  1854          uint32_t  offset_x;
  1855          uint32_t  offset_y;
  1856          uint32_t  width;
  1857          uint32_t  height;
  1858          uint32_t  screen;
  1859          uint32_t  following;
  1860      } abs_area;
  1861  } xcb_input_device_state_data_t;
  1862  
  1863  /**
  1864   * @brief xcb_input_device_state_t
  1865   **/
  1866  typedef struct xcb_input_device_state_t {
  1867      uint16_t control_id;
  1868      uint16_t len;
  1869  } xcb_input_device_state_t;
  1870  
  1871  void *
  1872  xcb_input_device_state_data (const xcb_input_device_state_t *R);
  1873  
  1874  /**
  1875   * @brief xcb_input_device_state_iterator_t
  1876   **/
  1877  typedef struct xcb_input_device_state_iterator_t {
  1878      xcb_input_device_state_t *data;
  1879      int                       rem;
  1880      int                       index;
  1881  } xcb_input_device_state_iterator_t;
  1882  
  1883  /**
  1884   * @brief xcb_input_get_device_control_cookie_t
  1885   **/
  1886  typedef struct xcb_input_get_device_control_cookie_t {
  1887      unsigned int sequence;
  1888  } xcb_input_get_device_control_cookie_t;
  1889  
  1890  /** Opcode for xcb_input_get_device_control. */
  1891  #define XCB_INPUT_GET_DEVICE_CONTROL 34
  1892  
  1893  /**
  1894   * @brief xcb_input_get_device_control_request_t
  1895   **/
  1896  typedef struct xcb_input_get_device_control_request_t {
  1897      uint8_t  major_opcode;
  1898      uint8_t  minor_opcode;
  1899      uint16_t length;
  1900      uint16_t control_id;
  1901      uint8_t  device_id;
  1902      uint8_t  pad0;
  1903  } xcb_input_get_device_control_request_t;
  1904  
  1905  /**
  1906   * @brief xcb_input_get_device_control_reply_t
  1907   **/
  1908  typedef struct xcb_input_get_device_control_reply_t {
  1909      uint8_t  response_type;
  1910      uint8_t  xi_reply_type;
  1911      uint16_t sequence;
  1912      uint32_t length;
  1913      uint8_t  status;
  1914      uint8_t  pad0[23];
  1915  } xcb_input_get_device_control_reply_t;
  1916  
  1917  /**
  1918   * @brief xcb_input_device_resolution_ctl_t
  1919   **/
  1920  typedef struct xcb_input_device_resolution_ctl_t {
  1921      uint16_t control_id;
  1922      uint16_t len;
  1923      uint8_t  first_valuator;
  1924      uint8_t  num_valuators;
  1925      uint8_t  pad0[2];
  1926  } xcb_input_device_resolution_ctl_t;
  1927  
  1928  /**
  1929   * @brief xcb_input_device_resolution_ctl_iterator_t
  1930   **/
  1931  typedef struct xcb_input_device_resolution_ctl_iterator_t {
  1932      xcb_input_device_resolution_ctl_t *data;
  1933      int                                rem;
  1934      int                                index;
  1935  } xcb_input_device_resolution_ctl_iterator_t;
  1936  
  1937  /**
  1938   * @brief xcb_input_device_abs_calib_ctl_t
  1939   **/
  1940  typedef struct xcb_input_device_abs_calib_ctl_t {
  1941      uint16_t control_id;
  1942      uint16_t len;
  1943      int32_t  min_x;
  1944      int32_t  max_x;
  1945      int32_t  min_y;
  1946      int32_t  max_y;
  1947      uint32_t flip_x;
  1948      uint32_t flip_y;
  1949      uint32_t rotation;
  1950      uint32_t button_threshold;
  1951  } xcb_input_device_abs_calib_ctl_t;
  1952  
  1953  /**
  1954   * @brief xcb_input_device_abs_calib_ctl_iterator_t
  1955   **/
  1956  typedef struct xcb_input_device_abs_calib_ctl_iterator_t {
  1957      xcb_input_device_abs_calib_ctl_t *data;
  1958      int                               rem;
  1959      int                               index;
  1960  } xcb_input_device_abs_calib_ctl_iterator_t;
  1961  
  1962  /**
  1963   * @brief xcb_input_device_abs_area_ctrl_t
  1964   **/
  1965  typedef struct xcb_input_device_abs_area_ctrl_t {
  1966      uint16_t control_id;
  1967      uint16_t len;
  1968      uint32_t offset_x;
  1969      uint32_t offset_y;
  1970      int32_t  width;
  1971      int32_t  height;
  1972      int32_t  screen;
  1973      uint32_t following;
  1974  } xcb_input_device_abs_area_ctrl_t;
  1975  
  1976  /**
  1977   * @brief xcb_input_device_abs_area_ctrl_iterator_t
  1978   **/
  1979  typedef struct xcb_input_device_abs_area_ctrl_iterator_t {
  1980      xcb_input_device_abs_area_ctrl_t *data;
  1981      int                               rem;
  1982      int                               index;
  1983  } xcb_input_device_abs_area_ctrl_iterator_t;
  1984  
  1985  /**
  1986   * @brief xcb_input_device_core_ctrl_t
  1987   **/
  1988  typedef struct xcb_input_device_core_ctrl_t {
  1989      uint16_t control_id;
  1990      uint16_t len;
  1991      uint8_t  status;
  1992      uint8_t  pad0[3];
  1993  } xcb_input_device_core_ctrl_t;
  1994  
  1995  /**
  1996   * @brief xcb_input_device_core_ctrl_iterator_t
  1997   **/
  1998  typedef struct xcb_input_device_core_ctrl_iterator_t {
  1999      xcb_input_device_core_ctrl_t *data;
  2000      int                           rem;
  2001      int                           index;
  2002  } xcb_input_device_core_ctrl_iterator_t;
  2003  
  2004  /**
  2005   * @brief xcb_input_device_enable_ctrl_t
  2006   **/
  2007  typedef struct xcb_input_device_enable_ctrl_t {
  2008      uint16_t control_id;
  2009      uint16_t len;
  2010      uint8_t  enable;
  2011      uint8_t  pad0[3];
  2012  } xcb_input_device_enable_ctrl_t;
  2013  
  2014  /**
  2015   * @brief xcb_input_device_enable_ctrl_iterator_t
  2016   **/
  2017  typedef struct xcb_input_device_enable_ctrl_iterator_t {
  2018      xcb_input_device_enable_ctrl_t *data;
  2019      int                             rem;
  2020      int                             index;
  2021  } xcb_input_device_enable_ctrl_iterator_t;
  2022  
  2023  /**
  2024   * @brief xcb_input_device_ctl_data_t
  2025   **/
  2026  typedef struct xcb_input_device_ctl_data_t {
  2027      struct {
  2028          uint8_t   first_valuator;
  2029          uint8_t   num_valuators;
  2030          uint8_t   pad0[2];
  2031          uint32_t *resolution_values;
  2032      } resolution;
  2033      struct {
  2034          int32_t   min_x;
  2035          int32_t   max_x;
  2036          int32_t   min_y;
  2037          int32_t   max_y;
  2038          uint32_t  flip_x;
  2039          uint32_t  flip_y;
  2040          uint32_t  rotation;
  2041          uint32_t  button_threshold;
  2042      } abs_calib;
  2043      struct {
  2044          uint8_t   status;
  2045          uint8_t   pad1[3];
  2046      } core;
  2047      struct {
  2048          uint8_t   enable;
  2049          uint8_t   pad2[3];
  2050      } enable;
  2051      struct {
  2052          uint32_t  offset_x;
  2053          uint32_t  offset_y;
  2054          int32_t   width;
  2055          int32_t   height;
  2056          int32_t   screen;
  2057          uint32_t  following;
  2058      } abs_area;
  2059  } xcb_input_device_ctl_data_t;
  2060  
  2061  /**
  2062   * @brief xcb_input_device_ctl_t
  2063   **/
  2064  typedef struct xcb_input_device_ctl_t {
  2065      uint16_t control_id;
  2066      uint16_t len;
  2067  } xcb_input_device_ctl_t;
  2068  
  2069  void *
  2070  xcb_input_device_ctl_data (const xcb_input_device_ctl_t *R);
  2071  
  2072  /**
  2073   * @brief xcb_input_device_ctl_iterator_t
  2074   **/
  2075  typedef struct xcb_input_device_ctl_iterator_t {
  2076      xcb_input_device_ctl_t *data;
  2077      int                     rem;
  2078      int                     index;
  2079  } xcb_input_device_ctl_iterator_t;
  2080  
  2081  /**
  2082   * @brief xcb_input_change_device_control_cookie_t
  2083   **/
  2084  typedef struct xcb_input_change_device_control_cookie_t {
  2085      unsigned int sequence;
  2086  } xcb_input_change_device_control_cookie_t;
  2087  
  2088  /** Opcode for xcb_input_change_device_control. */
  2089  #define XCB_INPUT_CHANGE_DEVICE_CONTROL 35
  2090  
  2091  /**
  2092   * @brief xcb_input_change_device_control_request_t
  2093   **/
  2094  typedef struct xcb_input_change_device_control_request_t {
  2095      uint8_t  major_opcode;
  2096      uint8_t  minor_opcode;
  2097      uint16_t length;
  2098      uint16_t control_id;
  2099      uint8_t  device_id;
  2100      uint8_t  pad0;
  2101  } xcb_input_change_device_control_request_t;
  2102  
  2103  /**
  2104   * @brief xcb_input_change_device_control_reply_t
  2105   **/
  2106  typedef struct xcb_input_change_device_control_reply_t {
  2107      uint8_t  response_type;
  2108      uint8_t  xi_reply_type;
  2109      uint16_t sequence;
  2110      uint32_t length;
  2111      uint8_t  status;
  2112      uint8_t  pad0[23];
  2113  } xcb_input_change_device_control_reply_t;
  2114  
  2115  /**
  2116   * @brief xcb_input_list_device_properties_cookie_t
  2117   **/
  2118  typedef struct xcb_input_list_device_properties_cookie_t {
  2119      unsigned int sequence;
  2120  } xcb_input_list_device_properties_cookie_t;
  2121  
  2122  /** Opcode for xcb_input_list_device_properties. */
  2123  #define XCB_INPUT_LIST_DEVICE_PROPERTIES 36
  2124  
  2125  /**
  2126   * @brief xcb_input_list_device_properties_request_t
  2127   **/
  2128  typedef struct xcb_input_list_device_properties_request_t {
  2129      uint8_t  major_opcode;
  2130      uint8_t  minor_opcode;
  2131      uint16_t length;
  2132      uint8_t  device_id;
  2133      uint8_t  pad0[3];
  2134  } xcb_input_list_device_properties_request_t;
  2135  
  2136  /**
  2137   * @brief xcb_input_list_device_properties_reply_t
  2138   **/
  2139  typedef struct xcb_input_list_device_properties_reply_t {
  2140      uint8_t  response_type;
  2141      uint8_t  xi_reply_type;
  2142      uint16_t sequence;
  2143      uint32_t length;
  2144      uint16_t num_atoms;
  2145      uint8_t  pad0[22];
  2146  } xcb_input_list_device_properties_reply_t;
  2147  
  2148  typedef enum xcb_input_property_format_t {
  2149      XCB_INPUT_PROPERTY_FORMAT_8_BITS = 8,
  2150      XCB_INPUT_PROPERTY_FORMAT_16_BITS = 16,
  2151      XCB_INPUT_PROPERTY_FORMAT_32_BITS = 32
  2152  } xcb_input_property_format_t;
  2153  
  2154  /**
  2155   * @brief xcb_input_change_device_property_items_t
  2156   **/
  2157  typedef struct xcb_input_change_device_property_items_t {
  2158      uint8_t  *data8;
  2159      uint16_t *data16;
  2160      uint32_t *data32;
  2161  } xcb_input_change_device_property_items_t;
  2162  
  2163  /** Opcode for xcb_input_change_device_property. */
  2164  #define XCB_INPUT_CHANGE_DEVICE_PROPERTY 37
  2165  
  2166  /**
  2167   * @brief xcb_input_change_device_property_request_t
  2168   **/
  2169  typedef struct xcb_input_change_device_property_request_t {
  2170      uint8_t    major_opcode;
  2171      uint8_t    minor_opcode;
  2172      uint16_t   length;
  2173      xcb_atom_t property;
  2174      xcb_atom_t type;
  2175      uint8_t    device_id;
  2176      uint8_t    format;
  2177      uint8_t    mode;
  2178      uint8_t    pad0;
  2179      uint32_t   num_items;
  2180  } xcb_input_change_device_property_request_t;
  2181  
  2182  /** Opcode for xcb_input_delete_device_property. */
  2183  #define XCB_INPUT_DELETE_DEVICE_PROPERTY 38
  2184  
  2185  /**
  2186   * @brief xcb_input_delete_device_property_request_t
  2187   **/
  2188  typedef struct xcb_input_delete_device_property_request_t {
  2189      uint8_t    major_opcode;
  2190      uint8_t    minor_opcode;
  2191      uint16_t   length;
  2192      xcb_atom_t property;
  2193      uint8_t    device_id;
  2194      uint8_t    pad0[3];
  2195  } xcb_input_delete_device_property_request_t;
  2196  
  2197  /**
  2198   * @brief xcb_input_get_device_property_cookie_t
  2199   **/
  2200  typedef struct xcb_input_get_device_property_cookie_t {
  2201      unsigned int sequence;
  2202  } xcb_input_get_device_property_cookie_t;
  2203  
  2204  /** Opcode for xcb_input_get_device_property. */
  2205  #define XCB_INPUT_GET_DEVICE_PROPERTY 39
  2206  
  2207  /**
  2208   * @brief xcb_input_get_device_property_request_t
  2209   **/
  2210  typedef struct xcb_input_get_device_property_request_t {
  2211      uint8_t    major_opcode;
  2212      uint8_t    minor_opcode;
  2213      uint16_t   length;
  2214      xcb_atom_t property;
  2215      xcb_atom_t type;
  2216      uint32_t   offset;
  2217      uint32_t   len;
  2218      uint8_t    device_id;
  2219      uint8_t    _delete;
  2220      uint8_t    pad0[2];
  2221  } xcb_input_get_device_property_request_t;
  2222  
  2223  /**
  2224   * @brief xcb_input_get_device_property_items_t
  2225   **/
  2226  typedef struct xcb_input_get_device_property_items_t {
  2227      uint8_t  *data8;
  2228      uint16_t *data16;
  2229      uint32_t *data32;
  2230  } xcb_input_get_device_property_items_t;
  2231  
  2232  /**
  2233   * @brief xcb_input_get_device_property_reply_t
  2234   **/
  2235  typedef struct xcb_input_get_device_property_reply_t {
  2236      uint8_t    response_type;
  2237      uint8_t    xi_reply_type;
  2238      uint16_t   sequence;
  2239      uint32_t   length;
  2240      xcb_atom_t type;
  2241      uint32_t   bytes_after;
  2242      uint32_t   num_items;
  2243      uint8_t    format;
  2244      uint8_t    device_id;
  2245      uint8_t    pad0[10];
  2246  } xcb_input_get_device_property_reply_t;
  2247  
  2248  typedef enum xcb_input_device_t {
  2249      XCB_INPUT_DEVICE_ALL = 0,
  2250      XCB_INPUT_DEVICE_ALL_MASTER = 1
  2251  } xcb_input_device_t;
  2252  
  2253  /**
  2254   * @brief xcb_input_group_info_t
  2255   **/
  2256  typedef struct xcb_input_group_info_t {
  2257      uint8_t base;
  2258      uint8_t latched;
  2259      uint8_t locked;
  2260      uint8_t effective;
  2261  } xcb_input_group_info_t;
  2262  
  2263  /**
  2264   * @brief xcb_input_group_info_iterator_t
  2265   **/
  2266  typedef struct xcb_input_group_info_iterator_t {
  2267      xcb_input_group_info_t *data;
  2268      int                     rem;
  2269      int                     index;
  2270  } xcb_input_group_info_iterator_t;
  2271  
  2272  /**
  2273   * @brief xcb_input_modifier_info_t
  2274   **/
  2275  typedef struct xcb_input_modifier_info_t {
  2276      uint32_t base;
  2277      uint32_t latched;
  2278      uint32_t locked;
  2279      uint32_t effective;
  2280  } xcb_input_modifier_info_t;
  2281  
  2282  /**
  2283   * @brief xcb_input_modifier_info_iterator_t
  2284   **/
  2285  typedef struct xcb_input_modifier_info_iterator_t {
  2286      xcb_input_modifier_info_t *data;
  2287      int                        rem;
  2288      int                        index;
  2289  } xcb_input_modifier_info_iterator_t;
  2290  
  2291  /**
  2292   * @brief xcb_input_xi_query_pointer_cookie_t
  2293   **/
  2294  typedef struct xcb_input_xi_query_pointer_cookie_t {
  2295      unsigned int sequence;
  2296  } xcb_input_xi_query_pointer_cookie_t;
  2297  
  2298  /** Opcode for xcb_input_xi_query_pointer. */
  2299  #define XCB_INPUT_XI_QUERY_POINTER 40
  2300  
  2301  /**
  2302   * @brief xcb_input_xi_query_pointer_request_t
  2303   **/
  2304  typedef struct xcb_input_xi_query_pointer_request_t {
  2305      uint8_t               major_opcode;
  2306      uint8_t               minor_opcode;
  2307      uint16_t              length;
  2308      xcb_window_t          window;
  2309      xcb_input_device_id_t deviceid;
  2310      uint8_t               pad0[2];
  2311  } xcb_input_xi_query_pointer_request_t;
  2312  
  2313  /**
  2314   * @brief xcb_input_xi_query_pointer_reply_t
  2315   **/
  2316  typedef struct xcb_input_xi_query_pointer_reply_t {
  2317      uint8_t                   response_type;
  2318      uint8_t                   pad0;
  2319      uint16_t                  sequence;
  2320      uint32_t                  length;
  2321      xcb_window_t              root;
  2322      xcb_window_t              child;
  2323      xcb_input_fp1616_t        root_x;
  2324      xcb_input_fp1616_t        root_y;
  2325      xcb_input_fp1616_t        win_x;
  2326      xcb_input_fp1616_t        win_y;
  2327      uint8_t                   same_screen;
  2328      uint8_t                   pad1;
  2329      uint16_t                  buttons_len;
  2330      xcb_input_modifier_info_t mods;
  2331      xcb_input_group_info_t    group;
  2332  } xcb_input_xi_query_pointer_reply_t;
  2333  
  2334  /** Opcode for xcb_input_xi_warp_pointer. */
  2335  #define XCB_INPUT_XI_WARP_POINTER 41
  2336  
  2337  /**
  2338   * @brief xcb_input_xi_warp_pointer_request_t
  2339   **/
  2340  typedef struct xcb_input_xi_warp_pointer_request_t {
  2341      uint8_t               major_opcode;
  2342      uint8_t               minor_opcode;
  2343      uint16_t              length;
  2344      xcb_window_t          src_win;
  2345      xcb_window_t          dst_win;
  2346      xcb_input_fp1616_t    src_x;
  2347      xcb_input_fp1616_t    src_y;
  2348      uint16_t              src_width;
  2349      uint16_t              src_height;
  2350      xcb_input_fp1616_t    dst_x;
  2351      xcb_input_fp1616_t    dst_y;
  2352      xcb_input_device_id_t deviceid;
  2353      uint8_t               pad0[2];
  2354  } xcb_input_xi_warp_pointer_request_t;
  2355  
  2356  /** Opcode for xcb_input_xi_change_cursor. */
  2357  #define XCB_INPUT_XI_CHANGE_CURSOR 42
  2358  
  2359  /**
  2360   * @brief xcb_input_xi_change_cursor_request_t
  2361   **/
  2362  typedef struct xcb_input_xi_change_cursor_request_t {
  2363      uint8_t               major_opcode;
  2364      uint8_t               minor_opcode;
  2365      uint16_t              length;
  2366      xcb_window_t          window;
  2367      xcb_cursor_t          cursor;
  2368      xcb_input_device_id_t deviceid;
  2369      uint8_t               pad0[2];
  2370  } xcb_input_xi_change_cursor_request_t;
  2371  
  2372  typedef enum xcb_input_hierarchy_change_type_t {
  2373      XCB_INPUT_HIERARCHY_CHANGE_TYPE_ADD_MASTER = 1,
  2374      XCB_INPUT_HIERARCHY_CHANGE_TYPE_REMOVE_MASTER = 2,
  2375      XCB_INPUT_HIERARCHY_CHANGE_TYPE_ATTACH_SLAVE = 3,
  2376      XCB_INPUT_HIERARCHY_CHANGE_TYPE_DETACH_SLAVE = 4
  2377  } xcb_input_hierarchy_change_type_t;
  2378  
  2379  typedef enum xcb_input_change_mode_t {
  2380      XCB_INPUT_CHANGE_MODE_ATTACH = 1,
  2381      XCB_INPUT_CHANGE_MODE_FLOAT = 2
  2382  } xcb_input_change_mode_t;
  2383  
  2384  /**
  2385   * @brief xcb_input_add_master_t
  2386   **/
  2387  typedef struct xcb_input_add_master_t {
  2388      uint16_t type;
  2389      uint16_t len;
  2390      uint16_t name_len;
  2391      uint8_t  send_core;
  2392      uint8_t  enable;
  2393  } xcb_input_add_master_t;
  2394  
  2395  /**
  2396   * @brief xcb_input_add_master_iterator_t
  2397   **/
  2398  typedef struct xcb_input_add_master_iterator_t {
  2399      xcb_input_add_master_t *data;
  2400      int                     rem;
  2401      int                     index;
  2402  } xcb_input_add_master_iterator_t;
  2403  
  2404  /**
  2405   * @brief xcb_input_remove_master_t
  2406   **/
  2407  typedef struct xcb_input_remove_master_t {
  2408      uint16_t              type;
  2409      uint16_t              len;
  2410      xcb_input_device_id_t deviceid;
  2411      uint8_t               return_mode;
  2412      uint8_t               pad0;
  2413      xcb_input_device_id_t return_pointer;
  2414      xcb_input_device_id_t return_keyboard;
  2415  } xcb_input_remove_master_t;
  2416  
  2417  /**
  2418   * @brief xcb_input_remove_master_iterator_t
  2419   **/
  2420  typedef struct xcb_input_remove_master_iterator_t {
  2421      xcb_input_remove_master_t *data;
  2422      int                        rem;
  2423      int                        index;
  2424  } xcb_input_remove_master_iterator_t;
  2425  
  2426  /**
  2427   * @brief xcb_input_attach_slave_t
  2428   **/
  2429  typedef struct xcb_input_attach_slave_t {
  2430      uint16_t              type;
  2431      uint16_t              len;
  2432      xcb_input_device_id_t deviceid;
  2433      xcb_input_device_id_t master;
  2434  } xcb_input_attach_slave_t;
  2435  
  2436  /**
  2437   * @brief xcb_input_attach_slave_iterator_t
  2438   **/
  2439  typedef struct xcb_input_attach_slave_iterator_t {
  2440      xcb_input_attach_slave_t *data;
  2441      int                       rem;
  2442      int                       index;
  2443  } xcb_input_attach_slave_iterator_t;
  2444  
  2445  /**
  2446   * @brief xcb_input_detach_slave_t
  2447   **/
  2448  typedef struct xcb_input_detach_slave_t {
  2449      uint16_t              type;
  2450      uint16_t              len;
  2451      xcb_input_device_id_t deviceid;
  2452      uint8_t               pad0[2];
  2453  } xcb_input_detach_slave_t;
  2454  
  2455  /**
  2456   * @brief xcb_input_detach_slave_iterator_t
  2457   **/
  2458  typedef struct xcb_input_detach_slave_iterator_t {
  2459      xcb_input_detach_slave_t *data;
  2460      int                       rem;
  2461      int                       index;
  2462  } xcb_input_detach_slave_iterator_t;
  2463  
  2464  /**
  2465   * @brief xcb_input_hierarchy_change_data_t
  2466   **/
  2467  typedef struct xcb_input_hierarchy_change_data_t {
  2468      struct {
  2469          uint16_t              name_len;
  2470          uint8_t               send_core;
  2471          uint8_t               enable;
  2472          char                 *name;
  2473      } add_master;
  2474      struct {
  2475          xcb_input_device_id_t deviceid;
  2476          uint8_t               return_mode;
  2477          uint8_t               pad1;
  2478          xcb_input_device_id_t return_pointer;
  2479          xcb_input_device_id_t return_keyboard;
  2480      } remove_master;
  2481      struct {
  2482          xcb_input_device_id_t deviceid;
  2483          xcb_input_device_id_t master;
  2484      } attach_slave;
  2485      struct {
  2486          xcb_input_device_id_t deviceid;
  2487          uint8_t               pad2[2];
  2488      } detach_slave;
  2489  } xcb_input_hierarchy_change_data_t;
  2490  
  2491  /**
  2492   * @brief xcb_input_hierarchy_change_t
  2493   **/
  2494  typedef struct xcb_input_hierarchy_change_t {
  2495      uint16_t type;
  2496      uint16_t len;
  2497  } xcb_input_hierarchy_change_t;
  2498  
  2499  void *
  2500  xcb_input_hierarchy_change_data (const xcb_input_hierarchy_change_t *R);
  2501  
  2502  /**
  2503   * @brief xcb_input_hierarchy_change_iterator_t
  2504   **/
  2505  typedef struct xcb_input_hierarchy_change_iterator_t {
  2506      xcb_input_hierarchy_change_t *data;
  2507      int                           rem;
  2508      int                           index;
  2509  } xcb_input_hierarchy_change_iterator_t;
  2510  
  2511  /** Opcode for xcb_input_xi_change_hierarchy. */
  2512  #define XCB_INPUT_XI_CHANGE_HIERARCHY 43
  2513  
  2514  /**
  2515   * @brief xcb_input_xi_change_hierarchy_request_t
  2516   **/
  2517  typedef struct xcb_input_xi_change_hierarchy_request_t {
  2518      uint8_t  major_opcode;
  2519      uint8_t  minor_opcode;
  2520      uint16_t length;
  2521      uint8_t  num_changes;
  2522      uint8_t  pad0[3];
  2523  } xcb_input_xi_change_hierarchy_request_t;
  2524  
  2525  /** Opcode for xcb_input_xi_set_client_pointer. */
  2526  #define XCB_INPUT_XI_SET_CLIENT_POINTER 44
  2527  
  2528  /**
  2529   * @brief xcb_input_xi_set_client_pointer_request_t
  2530   **/
  2531  typedef struct xcb_input_xi_set_client_pointer_request_t {
  2532      uint8_t               major_opcode;
  2533      uint8_t               minor_opcode;
  2534      uint16_t              length;
  2535      xcb_window_t          window;
  2536      xcb_input_device_id_t deviceid;
  2537      uint8_t               pad0[2];
  2538  } xcb_input_xi_set_client_pointer_request_t;
  2539  
  2540  /**
  2541   * @brief xcb_input_xi_get_client_pointer_cookie_t
  2542   **/
  2543  typedef struct xcb_input_xi_get_client_pointer_cookie_t {
  2544      unsigned int sequence;
  2545  } xcb_input_xi_get_client_pointer_cookie_t;
  2546  
  2547  /** Opcode for xcb_input_xi_get_client_pointer. */
  2548  #define XCB_INPUT_XI_GET_CLIENT_POINTER 45
  2549  
  2550  /**
  2551   * @brief xcb_input_xi_get_client_pointer_request_t
  2552   **/
  2553  typedef struct xcb_input_xi_get_client_pointer_request_t {
  2554      uint8_t      major_opcode;
  2555      uint8_t      minor_opcode;
  2556      uint16_t     length;
  2557      xcb_window_t window;
  2558  } xcb_input_xi_get_client_pointer_request_t;
  2559  
  2560  /**
  2561   * @brief xcb_input_xi_get_client_pointer_reply_t
  2562   **/
  2563  typedef struct xcb_input_xi_get_client_pointer_reply_t {
  2564      uint8_t               response_type;
  2565      uint8_t               pad0;
  2566      uint16_t              sequence;
  2567      uint32_t              length;
  2568      uint8_t               set;
  2569      uint8_t               pad1;
  2570      xcb_input_device_id_t deviceid;
  2571      uint8_t               pad2[20];
  2572  } xcb_input_xi_get_client_pointer_reply_t;
  2573  
  2574  typedef enum xcb_input_xi_event_mask_t {
  2575      XCB_INPUT_XI_EVENT_MASK_DEVICE_CHANGED = 2,
  2576      XCB_INPUT_XI_EVENT_MASK_KEY_PRESS = 4,
  2577      XCB_INPUT_XI_EVENT_MASK_KEY_RELEASE = 8,
  2578      XCB_INPUT_XI_EVENT_MASK_BUTTON_PRESS = 16,
  2579      XCB_INPUT_XI_EVENT_MASK_BUTTON_RELEASE = 32,
  2580      XCB_INPUT_XI_EVENT_MASK_MOTION = 64,
  2581      XCB_INPUT_XI_EVENT_MASK_ENTER = 128,
  2582      XCB_INPUT_XI_EVENT_MASK_LEAVE = 256,
  2583      XCB_INPUT_XI_EVENT_MASK_FOCUS_IN = 512,
  2584      XCB_INPUT_XI_EVENT_MASK_FOCUS_OUT = 1024,
  2585      XCB_INPUT_XI_EVENT_MASK_HIERARCHY = 2048,
  2586      XCB_INPUT_XI_EVENT_MASK_PROPERTY = 4096,
  2587      XCB_INPUT_XI_EVENT_MASK_RAW_KEY_PRESS = 8192,
  2588      XCB_INPUT_XI_EVENT_MASK_RAW_KEY_RELEASE = 16384,
  2589      XCB_INPUT_XI_EVENT_MASK_RAW_BUTTON_PRESS = 32768,
  2590      XCB_INPUT_XI_EVENT_MASK_RAW_BUTTON_RELEASE = 65536,
  2591      XCB_INPUT_XI_EVENT_MASK_RAW_MOTION = 131072,
  2592      XCB_INPUT_XI_EVENT_MASK_TOUCH_BEGIN = 262144,
  2593      XCB_INPUT_XI_EVENT_MASK_TOUCH_UPDATE = 524288,
  2594      XCB_INPUT_XI_EVENT_MASK_TOUCH_END = 1048576,
  2595      XCB_INPUT_XI_EVENT_MASK_TOUCH_OWNERSHIP = 2097152,
  2596      XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_BEGIN = 4194304,
  2597      XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_UPDATE = 8388608,
  2598      XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_END = 16777216,
  2599      XCB_INPUT_XI_EVENT_MASK_BARRIER_HIT = 33554432,
  2600      XCB_INPUT_XI_EVENT_MASK_BARRIER_LEAVE = 67108864
  2601  } xcb_input_xi_event_mask_t;
  2602  
  2603  /**
  2604   * @brief xcb_input_event_mask_t
  2605   **/
  2606  typedef struct xcb_input_event_mask_t {
  2607      xcb_input_device_id_t deviceid;
  2608      uint16_t              mask_len;
  2609  } xcb_input_event_mask_t;
  2610  
  2611  /**
  2612   * @brief xcb_input_event_mask_iterator_t
  2613   **/
  2614  typedef struct xcb_input_event_mask_iterator_t {
  2615      xcb_input_event_mask_t *data;
  2616      int                     rem;
  2617      int                     index;
  2618  } xcb_input_event_mask_iterator_t;
  2619  
  2620  /** Opcode for xcb_input_xi_select_events. */
  2621  #define XCB_INPUT_XI_SELECT_EVENTS 46
  2622  
  2623  /**
  2624   * @brief xcb_input_xi_select_events_request_t
  2625   **/
  2626  typedef struct xcb_input_xi_select_events_request_t {
  2627      uint8_t      major_opcode;
  2628      uint8_t      minor_opcode;
  2629      uint16_t     length;
  2630      xcb_window_t window;
  2631      uint16_t     num_mask;
  2632      uint8_t      pad0[2];
  2633  } xcb_input_xi_select_events_request_t;
  2634  
  2635  /**
  2636   * @brief xcb_input_xi_query_version_cookie_t
  2637   **/
  2638  typedef struct xcb_input_xi_query_version_cookie_t {
  2639      unsigned int sequence;
  2640  } xcb_input_xi_query_version_cookie_t;
  2641  
  2642  /** Opcode for xcb_input_xi_query_version. */
  2643  #define XCB_INPUT_XI_QUERY_VERSION 47
  2644  
  2645  /**
  2646   * @brief xcb_input_xi_query_version_request_t
  2647   **/
  2648  typedef struct xcb_input_xi_query_version_request_t {
  2649      uint8_t  major_opcode;
  2650      uint8_t  minor_opcode;
  2651      uint16_t length;
  2652      uint16_t major_version;
  2653      uint16_t minor_version;
  2654  } xcb_input_xi_query_version_request_t;
  2655  
  2656  /**
  2657   * @brief xcb_input_xi_query_version_reply_t
  2658   **/
  2659  typedef struct xcb_input_xi_query_version_reply_t {
  2660      uint8_t  response_type;
  2661      uint8_t  pad0;
  2662      uint16_t sequence;
  2663      uint32_t length;
  2664      uint16_t major_version;
  2665      uint16_t minor_version;
  2666      uint8_t  pad1[20];
  2667  } xcb_input_xi_query_version_reply_t;
  2668  
  2669  typedef enum xcb_input_device_class_type_t {
  2670      XCB_INPUT_DEVICE_CLASS_TYPE_KEY = 0,
  2671      XCB_INPUT_DEVICE_CLASS_TYPE_BUTTON = 1,
  2672      XCB_INPUT_DEVICE_CLASS_TYPE_VALUATOR = 2,
  2673      XCB_INPUT_DEVICE_CLASS_TYPE_SCROLL = 3,
  2674      XCB_INPUT_DEVICE_CLASS_TYPE_TOUCH = 8
  2675  } xcb_input_device_class_type_t;
  2676  
  2677  typedef enum xcb_input_device_type_t {
  2678      XCB_INPUT_DEVICE_TYPE_MASTER_POINTER = 1,
  2679      XCB_INPUT_DEVICE_TYPE_MASTER_KEYBOARD = 2,
  2680      XCB_INPUT_DEVICE_TYPE_SLAVE_POINTER = 3,
  2681      XCB_INPUT_DEVICE_TYPE_SLAVE_KEYBOARD = 4,
  2682      XCB_INPUT_DEVICE_TYPE_FLOATING_SLAVE = 5
  2683  } xcb_input_device_type_t;
  2684  
  2685  typedef enum xcb_input_scroll_flags_t {
  2686      XCB_INPUT_SCROLL_FLAGS_NO_EMULATION = 1,
  2687      XCB_INPUT_SCROLL_FLAGS_PREFERRED = 2
  2688  } xcb_input_scroll_flags_t;
  2689  
  2690  typedef enum xcb_input_scroll_type_t {
  2691      XCB_INPUT_SCROLL_TYPE_VERTICAL = 1,
  2692      XCB_INPUT_SCROLL_TYPE_HORIZONTAL = 2
  2693  } xcb_input_scroll_type_t;
  2694  
  2695  typedef enum xcb_input_touch_mode_t {
  2696      XCB_INPUT_TOUCH_MODE_DIRECT = 1,
  2697      XCB_INPUT_TOUCH_MODE_DEPENDENT = 2
  2698  } xcb_input_touch_mode_t;
  2699  
  2700  /**
  2701   * @brief xcb_input_button_class_t
  2702   **/
  2703  typedef struct xcb_input_button_class_t {
  2704      uint16_t              type;
  2705      uint16_t              len;
  2706      xcb_input_device_id_t sourceid;
  2707      uint16_t              num_buttons;
  2708  } xcb_input_button_class_t;
  2709  
  2710  /**
  2711   * @brief xcb_input_button_class_iterator_t
  2712   **/
  2713  typedef struct xcb_input_button_class_iterator_t {
  2714      xcb_input_button_class_t *data;
  2715      int                       rem;
  2716      int                       index;
  2717  } xcb_input_button_class_iterator_t;
  2718  
  2719  /**
  2720   * @brief xcb_input_key_class_t
  2721   **/
  2722  typedef struct xcb_input_key_class_t {
  2723      uint16_t              type;
  2724      uint16_t              len;
  2725      xcb_input_device_id_t sourceid;
  2726      uint16_t              num_keys;
  2727  } xcb_input_key_class_t;
  2728  
  2729  /**
  2730   * @brief xcb_input_key_class_iterator_t
  2731   **/
  2732  typedef struct xcb_input_key_class_iterator_t {
  2733      xcb_input_key_class_t *data;
  2734      int                    rem;
  2735      int                    index;
  2736  } xcb_input_key_class_iterator_t;
  2737  
  2738  /**
  2739   * @brief xcb_input_scroll_class_t
  2740   **/
  2741  typedef struct xcb_input_scroll_class_t {
  2742      uint16_t              type;
  2743      uint16_t              len;
  2744      xcb_input_device_id_t sourceid;
  2745      uint16_t              number;
  2746      uint16_t              scroll_type;
  2747      uint8_t               pad0[2];
  2748      uint32_t              flags;
  2749      xcb_input_fp3232_t    increment;
  2750  } xcb_input_scroll_class_t;
  2751  
  2752  /**
  2753   * @brief xcb_input_scroll_class_iterator_t
  2754   **/
  2755  typedef struct xcb_input_scroll_class_iterator_t {
  2756      xcb_input_scroll_class_t *data;
  2757      int                       rem;
  2758      int                       index;
  2759  } xcb_input_scroll_class_iterator_t;
  2760  
  2761  /**
  2762   * @brief xcb_input_touch_class_t
  2763   **/
  2764  typedef struct xcb_input_touch_class_t {
  2765      uint16_t              type;
  2766      uint16_t              len;
  2767      xcb_input_device_id_t sourceid;
  2768      uint8_t               mode;
  2769      uint8_t               num_touches;
  2770  } xcb_input_touch_class_t;
  2771  
  2772  /**
  2773   * @brief xcb_input_touch_class_iterator_t
  2774   **/
  2775  typedef struct xcb_input_touch_class_iterator_t {
  2776      xcb_input_touch_class_t *data;
  2777      int                      rem;
  2778      int                      index;
  2779  } xcb_input_touch_class_iterator_t;
  2780  
  2781  /**
  2782   * @brief xcb_input_valuator_class_t
  2783   **/
  2784  typedef struct xcb_input_valuator_class_t {
  2785      uint16_t              type;
  2786      uint16_t              len;
  2787      xcb_input_device_id_t sourceid;
  2788      uint16_t              number;
  2789      xcb_atom_t            label;
  2790      xcb_input_fp3232_t    min;
  2791      xcb_input_fp3232_t    max;
  2792      xcb_input_fp3232_t    value;
  2793      uint32_t              resolution;
  2794      uint8_t               mode;
  2795      uint8_t               pad0[3];
  2796  } xcb_input_valuator_class_t;
  2797  
  2798  /**
  2799   * @brief xcb_input_valuator_class_iterator_t
  2800   **/
  2801  typedef struct xcb_input_valuator_class_iterator_t {
  2802      xcb_input_valuator_class_t *data;
  2803      int                         rem;
  2804      int                         index;
  2805  } xcb_input_valuator_class_iterator_t;
  2806  
  2807  /**
  2808   * @brief xcb_input_device_class_data_t
  2809   **/
  2810  typedef struct xcb_input_device_class_data_t {
  2811      struct {
  2812          uint16_t           num_keys;
  2813          uint32_t          *keys;
  2814      } key;
  2815      struct {
  2816          uint16_t           num_buttons;
  2817          uint32_t          *state;
  2818          xcb_atom_t        *labels;
  2819      } button;
  2820      struct {
  2821          uint16_t           number;
  2822          xcb_atom_t         label;
  2823          xcb_input_fp3232_t min;
  2824          xcb_input_fp3232_t max;
  2825          xcb_input_fp3232_t value;
  2826          uint32_t           resolution;
  2827          uint8_t            mode;
  2828          uint8_t            pad0[3];
  2829      } valuator;
  2830      struct {
  2831          uint16_t           number;
  2832          uint16_t           scroll_type;
  2833          uint8_t            pad1[2];
  2834          uint32_t           flags;
  2835          xcb_input_fp3232_t increment;
  2836      } scroll;
  2837      struct {
  2838          uint8_t            mode;
  2839          uint8_t            num_touches;
  2840      } touch;
  2841  } xcb_input_device_class_data_t;
  2842  
  2843  /**
  2844   * @brief xcb_input_device_class_t
  2845   **/
  2846  typedef struct xcb_input_device_class_t {
  2847      uint16_t              type;
  2848      uint16_t              len;
  2849      xcb_input_device_id_t sourceid;
  2850  } xcb_input_device_class_t;
  2851  
  2852  void *
  2853  xcb_input_device_class_data (const xcb_input_device_class_t *R);
  2854  
  2855  /**
  2856   * @brief xcb_input_device_class_iterator_t
  2857   **/
  2858  typedef struct xcb_input_device_class_iterator_t {
  2859      xcb_input_device_class_t *data;
  2860      int                       rem;
  2861      int                       index;
  2862  } xcb_input_device_class_iterator_t;
  2863  
  2864  /**
  2865   * @brief xcb_input_xi_device_info_t
  2866   **/
  2867  typedef struct xcb_input_xi_device_info_t {
  2868      xcb_input_device_id_t deviceid;
  2869      uint16_t              type;
  2870      xcb_input_device_id_t attachment;
  2871      uint16_t              num_classes;
  2872      uint16_t              name_len;
  2873      uint8_t               enabled;
  2874      uint8_t               pad0;
  2875  } xcb_input_xi_device_info_t;
  2876  
  2877  /**
  2878   * @brief xcb_input_xi_device_info_iterator_t
  2879   **/
  2880  typedef struct xcb_input_xi_device_info_iterator_t {
  2881      xcb_input_xi_device_info_t *data;
  2882      int                         rem;
  2883      int                         index;
  2884  } xcb_input_xi_device_info_iterator_t;
  2885  
  2886  /**
  2887   * @brief xcb_input_xi_query_device_cookie_t
  2888   **/
  2889  typedef struct xcb_input_xi_query_device_cookie_t {
  2890      unsigned int sequence;
  2891  } xcb_input_xi_query_device_cookie_t;
  2892  
  2893  /** Opcode for xcb_input_xi_query_device. */
  2894  #define XCB_INPUT_XI_QUERY_DEVICE 48
  2895  
  2896  /**
  2897   * @brief xcb_input_xi_query_device_request_t
  2898   **/
  2899  typedef struct xcb_input_xi_query_device_request_t {
  2900      uint8_t               major_opcode;
  2901      uint8_t               minor_opcode;
  2902      uint16_t              length;
  2903      xcb_input_device_id_t deviceid;
  2904      uint8_t               pad0[2];
  2905  } xcb_input_xi_query_device_request_t;
  2906  
  2907  /**
  2908   * @brief xcb_input_xi_query_device_reply_t
  2909   **/
  2910  typedef struct xcb_input_xi_query_device_reply_t {
  2911      uint8_t  response_type;
  2912      uint8_t  pad0;
  2913      uint16_t sequence;
  2914      uint32_t length;
  2915      uint16_t num_infos;
  2916      uint8_t  pad1[22];
  2917  } xcb_input_xi_query_device_reply_t;
  2918  
  2919  /** Opcode for xcb_input_xi_set_focus. */
  2920  #define XCB_INPUT_XI_SET_FOCUS 49
  2921  
  2922  /**
  2923   * @brief xcb_input_xi_set_focus_request_t
  2924   **/
  2925  typedef struct xcb_input_xi_set_focus_request_t {
  2926      uint8_t               major_opcode;
  2927      uint8_t               minor_opcode;
  2928      uint16_t              length;
  2929      xcb_window_t          window;
  2930      xcb_timestamp_t       time;
  2931      xcb_input_device_id_t deviceid;
  2932      uint8_t               pad0[2];
  2933  } xcb_input_xi_set_focus_request_t;
  2934  
  2935  /**
  2936   * @brief xcb_input_xi_get_focus_cookie_t
  2937   **/
  2938  typedef struct xcb_input_xi_get_focus_cookie_t {
  2939      unsigned int sequence;
  2940  } xcb_input_xi_get_focus_cookie_t;
  2941  
  2942  /** Opcode for xcb_input_xi_get_focus. */
  2943  #define XCB_INPUT_XI_GET_FOCUS 50
  2944  
  2945  /**
  2946   * @brief xcb_input_xi_get_focus_request_t
  2947   **/
  2948  typedef struct xcb_input_xi_get_focus_request_t {
  2949      uint8_t               major_opcode;
  2950      uint8_t               minor_opcode;
  2951      uint16_t              length;
  2952      xcb_input_device_id_t deviceid;
  2953      uint8_t               pad0[2];
  2954  } xcb_input_xi_get_focus_request_t;
  2955  
  2956  /**
  2957   * @brief xcb_input_xi_get_focus_reply_t
  2958   **/
  2959  typedef struct xcb_input_xi_get_focus_reply_t {
  2960      uint8_t      response_type;
  2961      uint8_t      pad0;
  2962      uint16_t     sequence;
  2963      uint32_t     length;
  2964      xcb_window_t focus;
  2965      uint8_t      pad1[20];
  2966  } xcb_input_xi_get_focus_reply_t;
  2967  
  2968  typedef enum xcb_input_grab_owner_t {
  2969      XCB_INPUT_GRAB_OWNER_NO_OWNER = 0,
  2970      XCB_INPUT_GRAB_OWNER_OWNER = 1
  2971  } xcb_input_grab_owner_t;
  2972  
  2973  /**
  2974   * @brief xcb_input_xi_grab_device_cookie_t
  2975   **/
  2976  typedef struct xcb_input_xi_grab_device_cookie_t {
  2977      unsigned int sequence;
  2978  } xcb_input_xi_grab_device_cookie_t;
  2979  
  2980  /** Opcode for xcb_input_xi_grab_device. */
  2981  #define XCB_INPUT_XI_GRAB_DEVICE 51
  2982  
  2983  /**
  2984   * @brief xcb_input_xi_grab_device_request_t
  2985   **/
  2986  typedef struct xcb_input_xi_grab_device_request_t {
  2987      uint8_t               major_opcode;
  2988      uint8_t               minor_opcode;
  2989      uint16_t              length;
  2990      xcb_window_t          window;
  2991      xcb_timestamp_t       time;
  2992      xcb_cursor_t          cursor;
  2993      xcb_input_device_id_t deviceid;
  2994      uint8_t               mode;
  2995      uint8_t               paired_device_mode;
  2996      uint8_t               owner_events;
  2997      uint8_t               pad0;
  2998      uint16_t              mask_len;
  2999  } xcb_input_xi_grab_device_request_t;
  3000  
  3001  /**
  3002   * @brief xcb_input_xi_grab_device_reply_t
  3003   **/
  3004  typedef struct xcb_input_xi_grab_device_reply_t {
  3005      uint8_t  response_type;
  3006      uint8_t  pad0;
  3007      uint16_t sequence;
  3008      uint32_t length;
  3009      uint8_t  status;
  3010      uint8_t  pad1[23];
  3011  } xcb_input_xi_grab_device_reply_t;
  3012  
  3013  /** Opcode for xcb_input_xi_ungrab_device. */
  3014  #define XCB_INPUT_XI_UNGRAB_DEVICE 52
  3015  
  3016  /**
  3017   * @brief xcb_input_xi_ungrab_device_request_t
  3018   **/
  3019  typedef struct xcb_input_xi_ungrab_device_request_t {
  3020      uint8_t               major_opcode;
  3021      uint8_t               minor_opcode;
  3022      uint16_t              length;
  3023      xcb_timestamp_t       time;
  3024      xcb_input_device_id_t deviceid;
  3025      uint8_t               pad0[2];
  3026  } xcb_input_xi_ungrab_device_request_t;
  3027  
  3028  typedef enum xcb_input_event_mode_t {
  3029      XCB_INPUT_EVENT_MODE_ASYNC_DEVICE = 0,
  3030      XCB_INPUT_EVENT_MODE_SYNC_DEVICE = 1,
  3031      XCB_INPUT_EVENT_MODE_REPLAY_DEVICE = 2,
  3032      XCB_INPUT_EVENT_MODE_ASYNC_PAIRED_DEVICE = 3,
  3033      XCB_INPUT_EVENT_MODE_ASYNC_PAIR = 4,
  3034      XCB_INPUT_EVENT_MODE_SYNC_PAIR = 5,
  3035      XCB_INPUT_EVENT_MODE_ACCEPT_TOUCH = 6,
  3036      XCB_INPUT_EVENT_MODE_REJECT_TOUCH = 7
  3037  } xcb_input_event_mode_t;
  3038  
  3039  /** Opcode for xcb_input_xi_allow_events. */
  3040  #define XCB_INPUT_XI_ALLOW_EVENTS 53
  3041  
  3042  /**
  3043   * @brief xcb_input_xi_allow_events_request_t
  3044   **/
  3045  typedef struct xcb_input_xi_allow_events_request_t {
  3046      uint8_t               major_opcode;
  3047      uint8_t               minor_opcode;
  3048      uint16_t              length;
  3049      xcb_timestamp_t       time;
  3050      xcb_input_device_id_t deviceid;
  3051      uint8_t               event_mode;
  3052      uint8_t               pad0;
  3053      uint32_t              touchid;
  3054      xcb_window_t          grab_window;
  3055  } xcb_input_xi_allow_events_request_t;
  3056  
  3057  typedef enum xcb_input_grab_mode_22_t {
  3058      XCB_INPUT_GRAB_MODE_22_SYNC = 0,
  3059      XCB_INPUT_GRAB_MODE_22_ASYNC = 1,
  3060      XCB_INPUT_GRAB_MODE_22_TOUCH = 2
  3061  } xcb_input_grab_mode_22_t;
  3062  
  3063  typedef enum xcb_input_grab_type_t {
  3064      XCB_INPUT_GRAB_TYPE_BUTTON = 0,
  3065      XCB_INPUT_GRAB_TYPE_KEYCODE = 1,
  3066      XCB_INPUT_GRAB_TYPE_ENTER = 2,
  3067      XCB_INPUT_GRAB_TYPE_FOCUS_IN = 3,
  3068      XCB_INPUT_GRAB_TYPE_TOUCH_BEGIN = 4
  3069  } xcb_input_grab_type_t;
  3070  
  3071  typedef enum xcb_input_modifier_mask_t {
  3072      XCB_INPUT_MODIFIER_MASK_ANY = 2147483648
  3073  } xcb_input_modifier_mask_t;
  3074  
  3075  /**
  3076   * @brief xcb_input_grab_modifier_info_t
  3077   **/
  3078  typedef struct xcb_input_grab_modifier_info_t {
  3079      uint32_t modifiers;
  3080      uint8_t  status;
  3081      uint8_t  pad0[3];
  3082  } xcb_input_grab_modifier_info_t;
  3083  
  3084  /**
  3085   * @brief xcb_input_grab_modifier_info_iterator_t
  3086   **/
  3087  typedef struct xcb_input_grab_modifier_info_iterator_t {
  3088      xcb_input_grab_modifier_info_t *data;
  3089      int                             rem;
  3090      int                             index;
  3091  } xcb_input_grab_modifier_info_iterator_t;
  3092  
  3093  /**
  3094   * @brief xcb_input_xi_passive_grab_device_cookie_t
  3095   **/
  3096  typedef struct xcb_input_xi_passive_grab_device_cookie_t {
  3097      unsigned int sequence;
  3098  } xcb_input_xi_passive_grab_device_cookie_t;
  3099  
  3100  /** Opcode for xcb_input_xi_passive_grab_device. */
  3101  #define XCB_INPUT_XI_PASSIVE_GRAB_DEVICE 54
  3102  
  3103  /**
  3104   * @brief xcb_input_xi_passive_grab_device_request_t
  3105   **/
  3106  typedef struct xcb_input_xi_passive_grab_device_request_t {
  3107      uint8_t               major_opcode;
  3108      uint8_t               minor_opcode;
  3109      uint16_t              length;
  3110      xcb_timestamp_t       time;
  3111      xcb_window_t          grab_window;
  3112      xcb_cursor_t          cursor;
  3113      uint32_t              detail;
  3114      xcb_input_device_id_t deviceid;
  3115      uint16_t              num_modifiers;
  3116      uint16_t              mask_len;
  3117      uint8_t               grab_type;
  3118      uint8_t               grab_mode;
  3119      uint8_t               paired_device_mode;
  3120      uint8_t               owner_events;
  3121      uint8_t               pad0[2];
  3122  } xcb_input_xi_passive_grab_device_request_t;
  3123  
  3124  /**
  3125   * @brief xcb_input_xi_passive_grab_device_reply_t
  3126   **/
  3127  typedef struct xcb_input_xi_passive_grab_device_reply_t {
  3128      uint8_t  response_type;
  3129      uint8_t  pad0;
  3130      uint16_t sequence;
  3131      uint32_t length;
  3132      uint16_t num_modifiers;
  3133      uint8_t  pad1[22];
  3134  } xcb_input_xi_passive_grab_device_reply_t;
  3135  
  3136  /** Opcode for xcb_input_xi_passive_ungrab_device. */
  3137  #define XCB_INPUT_XI_PASSIVE_UNGRAB_DEVICE 55
  3138  
  3139  /**
  3140   * @brief xcb_input_xi_passive_ungrab_device_request_t
  3141   **/
  3142  typedef struct xcb_input_xi_passive_ungrab_device_request_t {
  3143      uint8_t               major_opcode;
  3144      uint8_t               minor_opcode;
  3145      uint16_t              length;
  3146      xcb_window_t          grab_window;
  3147      uint32_t              detail;
  3148      xcb_input_device_id_t deviceid;
  3149      uint16_t              num_modifiers;
  3150      uint8_t               grab_type;
  3151      uint8_t               pad0[3];
  3152  } xcb_input_xi_passive_ungrab_device_request_t;
  3153  
  3154  /**
  3155   * @brief xcb_input_xi_list_properties_cookie_t
  3156   **/
  3157  typedef struct xcb_input_xi_list_properties_cookie_t {
  3158      unsigned int sequence;
  3159  } xcb_input_xi_list_properties_cookie_t;
  3160  
  3161  /** Opcode for xcb_input_xi_list_properties. */
  3162  #define XCB_INPUT_XI_LIST_PROPERTIES 56
  3163  
  3164  /**
  3165   * @brief xcb_input_xi_list_properties_request_t
  3166   **/
  3167  typedef struct xcb_input_xi_list_properties_request_t {
  3168      uint8_t               major_opcode;
  3169      uint8_t               minor_opcode;
  3170      uint16_t              length;
  3171      xcb_input_device_id_t deviceid;
  3172      uint8_t               pad0[2];
  3173  } xcb_input_xi_list_properties_request_t;
  3174  
  3175  /**
  3176   * @brief xcb_input_xi_list_properties_reply_t
  3177   **/
  3178  typedef struct xcb_input_xi_list_properties_reply_t {
  3179      uint8_t  response_type;
  3180      uint8_t  pad0;
  3181      uint16_t sequence;
  3182      uint32_t length;
  3183      uint16_t num_properties;
  3184      uint8_t  pad1[22];
  3185  } xcb_input_xi_list_properties_reply_t;
  3186  
  3187  /**
  3188   * @brief xcb_input_xi_change_property_items_t
  3189   **/
  3190  typedef struct xcb_input_xi_change_property_items_t {
  3191      uint8_t  *data8;
  3192      uint16_t *data16;
  3193      uint32_t *data32;
  3194  } xcb_input_xi_change_property_items_t;
  3195  
  3196  /** Opcode for xcb_input_xi_change_property. */
  3197  #define XCB_INPUT_XI_CHANGE_PROPERTY 57
  3198  
  3199  /**
  3200   * @brief xcb_input_xi_change_property_request_t
  3201   **/
  3202  typedef struct xcb_input_xi_change_property_request_t {
  3203      uint8_t               major_opcode;
  3204      uint8_t               minor_opcode;
  3205      uint16_t              length;
  3206      xcb_input_device_id_t deviceid;
  3207      uint8_t               mode;
  3208      uint8_t               format;
  3209      xcb_atom_t            property;
  3210      xcb_atom_t            type;
  3211      uint32_t              num_items;
  3212  } xcb_input_xi_change_property_request_t;
  3213  
  3214  /** Opcode for xcb_input_xi_delete_property. */
  3215  #define XCB_INPUT_XI_DELETE_PROPERTY 58
  3216  
  3217  /**
  3218   * @brief xcb_input_xi_delete_property_request_t
  3219   **/
  3220  typedef struct xcb_input_xi_delete_property_request_t {
  3221      uint8_t               major_opcode;
  3222      uint8_t               minor_opcode;
  3223      uint16_t              length;
  3224      xcb_input_device_id_t deviceid;
  3225      uint8_t               pad0[2];
  3226      xcb_atom_t            property;
  3227  } xcb_input_xi_delete_property_request_t;
  3228  
  3229  /**
  3230   * @brief xcb_input_xi_get_property_cookie_t
  3231   **/
  3232  typedef struct xcb_input_xi_get_property_cookie_t {
  3233      unsigned int sequence;
  3234  } xcb_input_xi_get_property_cookie_t;
  3235  
  3236  /** Opcode for xcb_input_xi_get_property. */
  3237  #define XCB_INPUT_XI_GET_PROPERTY 59
  3238  
  3239  /**
  3240   * @brief xcb_input_xi_get_property_request_t
  3241   **/
  3242  typedef struct xcb_input_xi_get_property_request_t {
  3243      uint8_t               major_opcode;
  3244      uint8_t               minor_opcode;
  3245      uint16_t              length;
  3246      xcb_input_device_id_t deviceid;
  3247      uint8_t               _delete;
  3248      uint8_t               pad0;
  3249      xcb_atom_t            property;
  3250      xcb_atom_t            type;
  3251      uint32_t              offset;
  3252      uint32_t              len;
  3253  } xcb_input_xi_get_property_request_t;
  3254  
  3255  /**
  3256   * @brief xcb_input_xi_get_property_items_t
  3257   **/
  3258  typedef struct xcb_input_xi_get_property_items_t {
  3259      uint8_t  *data8;
  3260      uint16_t *data16;
  3261      uint32_t *data32;
  3262  } xcb_input_xi_get_property_items_t;
  3263  
  3264  /**
  3265   * @brief xcb_input_xi_get_property_reply_t
  3266   **/
  3267  typedef struct xcb_input_xi_get_property_reply_t {
  3268      uint8_t    response_type;
  3269      uint8_t    pad0;
  3270      uint16_t   sequence;
  3271      uint32_t   length;
  3272      xcb_atom_t type;
  3273      uint32_t   bytes_after;
  3274      uint32_t   num_items;
  3275      uint8_t    format;
  3276      uint8_t    pad1[11];
  3277  } xcb_input_xi_get_property_reply_t;
  3278  
  3279  /**
  3280   * @brief xcb_input_xi_get_selected_events_cookie_t
  3281   **/
  3282  typedef struct xcb_input_xi_get_selected_events_cookie_t {
  3283      unsigned int sequence;
  3284  } xcb_input_xi_get_selected_events_cookie_t;
  3285  
  3286  /** Opcode for xcb_input_xi_get_selected_events. */
  3287  #define XCB_INPUT_XI_GET_SELECTED_EVENTS 60
  3288  
  3289  /**
  3290   * @brief xcb_input_xi_get_selected_events_request_t
  3291   **/
  3292  typedef struct xcb_input_xi_get_selected_events_request_t {
  3293      uint8_t      major_opcode;
  3294      uint8_t      minor_opcode;
  3295      uint16_t     length;
  3296      xcb_window_t window;
  3297  } xcb_input_xi_get_selected_events_request_t;
  3298  
  3299  /**
  3300   * @brief xcb_input_xi_get_selected_events_reply_t
  3301   **/
  3302  typedef struct xcb_input_xi_get_selected_events_reply_t {
  3303      uint8_t  response_type;
  3304      uint8_t  pad0;
  3305      uint16_t sequence;
  3306      uint32_t length;
  3307      uint16_t num_masks;
  3308      uint8_t  pad1[22];
  3309  } xcb_input_xi_get_selected_events_reply_t;
  3310  
  3311  /**
  3312   * @brief xcb_input_barrier_release_pointer_info_t
  3313   **/
  3314  typedef struct xcb_input_barrier_release_pointer_info_t {
  3315      xcb_input_device_id_t deviceid;
  3316      uint8_t               pad0[2];
  3317      xcb_xfixes_barrier_t  barrier;
  3318      uint32_t              eventid;
  3319  } xcb_input_barrier_release_pointer_info_t;
  3320  
  3321  /**
  3322   * @brief xcb_input_barrier_release_pointer_info_iterator_t
  3323   **/
  3324  typedef struct xcb_input_barrier_release_pointer_info_iterator_t {
  3325      xcb_input_barrier_release_pointer_info_t *data;
  3326      int                                       rem;
  3327      int                                       index;
  3328  } xcb_input_barrier_release_pointer_info_iterator_t;
  3329  
  3330  /** Opcode for xcb_input_xi_barrier_release_pointer. */
  3331  #define XCB_INPUT_XI_BARRIER_RELEASE_POINTER 61
  3332  
  3333  /**
  3334   * @brief xcb_input_xi_barrier_release_pointer_request_t
  3335   **/
  3336  typedef struct xcb_input_xi_barrier_release_pointer_request_t {
  3337      uint8_t  major_opcode;
  3338      uint8_t  minor_opcode;
  3339      uint16_t length;
  3340      uint32_t num_barriers;
  3341  } xcb_input_xi_barrier_release_pointer_request_t;
  3342  
  3343  /** Opcode for xcb_input_device_valuator. */
  3344  #define XCB_INPUT_DEVICE_VALUATOR 0
  3345  
  3346  /**
  3347   * @brief xcb_input_device_valuator_event_t
  3348   **/
  3349  typedef struct xcb_input_device_valuator_event_t {
  3350      uint8_t  response_type;
  3351      uint8_t  device_id;
  3352      uint16_t sequence;
  3353      uint16_t device_state;
  3354      uint8_t  num_valuators;
  3355      uint8_t  first_valuator;
  3356      int32_t  valuators[6];
  3357  } xcb_input_device_valuator_event_t;
  3358  
  3359  typedef enum xcb_input_more_events_mask_t {
  3360      XCB_INPUT_MORE_EVENTS_MASK_MORE_EVENTS = 128
  3361  } xcb_input_more_events_mask_t;
  3362  
  3363  /** Opcode for xcb_input_device_key_press. */
  3364  #define XCB_INPUT_DEVICE_KEY_PRESS 1
  3365  
  3366  /**
  3367   * @brief xcb_input_device_key_press_event_t
  3368   **/
  3369  typedef struct xcb_input_device_key_press_event_t {
  3370      uint8_t         response_type;
  3371      uint8_t         detail;
  3372      uint16_t        sequence;
  3373      xcb_timestamp_t time;
  3374      xcb_window_t    root;
  3375      xcb_window_t    event;
  3376      xcb_window_t    child;
  3377      int16_t         root_x;
  3378      int16_t         root_y;
  3379      int16_t         event_x;
  3380      int16_t         event_y;
  3381      uint16_t        state;
  3382      uint8_t         same_screen;
  3383      uint8_t         device_id;
  3384  } xcb_input_device_key_press_event_t;
  3385  
  3386  /** Opcode for xcb_input_device_key_release. */
  3387  #define XCB_INPUT_DEVICE_KEY_RELEASE 2
  3388  
  3389  typedef xcb_input_device_key_press_event_t xcb_input_device_key_release_event_t;
  3390  
  3391  /** Opcode for xcb_input_device_button_press. */
  3392  #define XCB_INPUT_DEVICE_BUTTON_PRESS 3
  3393  
  3394  typedef xcb_input_device_key_press_event_t xcb_input_device_button_press_event_t;
  3395  
  3396  /** Opcode for xcb_input_device_button_release. */
  3397  #define XCB_INPUT_DEVICE_BUTTON_RELEASE 4
  3398  
  3399  typedef xcb_input_device_key_press_event_t xcb_input_device_button_release_event_t;
  3400  
  3401  /** Opcode for xcb_input_device_motion_notify. */
  3402  #define XCB_INPUT_DEVICE_MOTION_NOTIFY 5
  3403  
  3404  typedef xcb_input_device_key_press_event_t xcb_input_device_motion_notify_event_t;
  3405  
  3406  /** Opcode for xcb_input_device_focus_in. */
  3407  #define XCB_INPUT_DEVICE_FOCUS_IN 6
  3408  
  3409  /**
  3410   * @brief xcb_input_device_focus_in_event_t
  3411   **/
  3412  typedef struct xcb_input_device_focus_in_event_t {
  3413      uint8_t         response_type;
  3414      uint8_t         detail;
  3415      uint16_t        sequence;
  3416      xcb_timestamp_t time;
  3417      xcb_window_t    window;
  3418      uint8_t         mode;
  3419      uint8_t         device_id;
  3420      uint8_t         pad0[18];
  3421  } xcb_input_device_focus_in_event_t;
  3422  
  3423  /** Opcode for xcb_input_device_focus_out. */
  3424  #define XCB_INPUT_DEVICE_FOCUS_OUT 7
  3425  
  3426  typedef xcb_input_device_focus_in_event_t xcb_input_device_focus_out_event_t;
  3427  
  3428  /** Opcode for xcb_input_proximity_in. */
  3429  #define XCB_INPUT_PROXIMITY_IN 8
  3430  
  3431  typedef xcb_input_device_key_press_event_t xcb_input_proximity_in_event_t;
  3432  
  3433  /** Opcode for xcb_input_proximity_out. */
  3434  #define XCB_INPUT_PROXIMITY_OUT 9
  3435  
  3436  typedef xcb_input_device_key_press_event_t xcb_input_proximity_out_event_t;
  3437  
  3438  typedef enum xcb_input_classes_reported_mask_t {
  3439      XCB_INPUT_CLASSES_REPORTED_MASK_OUT_OF_PROXIMITY = 128,
  3440      XCB_INPUT_CLASSES_REPORTED_MASK_DEVICE_MODE_ABSOLUTE = 64,
  3441      XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_VALUATORS = 4,
  3442      XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_BUTTONS = 2,
  3443      XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_KEYS = 1
  3444  } xcb_input_classes_reported_mask_t;
  3445  
  3446  /** Opcode for xcb_input_device_state_notify. */
  3447  #define XCB_INPUT_DEVICE_STATE_NOTIFY 10
  3448  
  3449  /**
  3450   * @brief xcb_input_device_state_notify_event_t
  3451   **/
  3452  typedef struct xcb_input_device_state_notify_event_t {
  3453      uint8_t         response_type;
  3454      uint8_t         device_id;
  3455      uint16_t        sequence;
  3456      xcb_timestamp_t time;
  3457      uint8_t         num_keys;
  3458      uint8_t         num_buttons;
  3459      uint8_t         num_valuators;
  3460      uint8_t         classes_reported;
  3461      uint8_t         buttons[4];
  3462      uint8_t         keys[4];
  3463      uint32_t        valuators[3];
  3464  } xcb_input_device_state_notify_event_t;
  3465  
  3466  /** Opcode for xcb_input_device_mapping_notify. */
  3467  #define XCB_INPUT_DEVICE_MAPPING_NOTIFY 11
  3468  
  3469  /**
  3470   * @brief xcb_input_device_mapping_notify_event_t
  3471   **/
  3472  typedef struct xcb_input_device_mapping_notify_event_t {
  3473      uint8_t              response_type;
  3474      uint8_t              device_id;
  3475      uint16_t             sequence;
  3476      uint8_t              request;
  3477      xcb_input_key_code_t first_keycode;
  3478      uint8_t              count;
  3479      uint8_t              pad0;
  3480      xcb_timestamp_t      time;
  3481      uint8_t              pad1[20];
  3482  } xcb_input_device_mapping_notify_event_t;
  3483  
  3484  typedef enum xcb_input_change_device_t {
  3485      XCB_INPUT_CHANGE_DEVICE_NEW_POINTER = 0,
  3486      XCB_INPUT_CHANGE_DEVICE_NEW_KEYBOARD = 1
  3487  } xcb_input_change_device_t;
  3488  
  3489  /** Opcode for xcb_input_change_device_notify. */
  3490  #define XCB_INPUT_CHANGE_DEVICE_NOTIFY 12
  3491  
  3492  /**
  3493   * @brief xcb_input_change_device_notify_event_t
  3494   **/
  3495  typedef struct xcb_input_change_device_notify_event_t {
  3496      uint8_t         response_type;
  3497      uint8_t         device_id;
  3498      uint16_t        sequence;
  3499      xcb_timestamp_t time;
  3500      uint8_t         request;
  3501      uint8_t         pad0[23];
  3502  } xcb_input_change_device_notify_event_t;
  3503  
  3504  /** Opcode for xcb_input_device_key_state_notify. */
  3505  #define XCB_INPUT_DEVICE_KEY_STATE_NOTIFY 13
  3506  
  3507  /**
  3508   * @brief xcb_input_device_key_state_notify_event_t
  3509   **/
  3510  typedef struct xcb_input_device_key_state_notify_event_t {
  3511      uint8_t  response_type;
  3512      uint8_t  device_id;
  3513      uint16_t sequence;
  3514      uint8_t  keys[28];
  3515  } xcb_input_device_key_state_notify_event_t;
  3516  
  3517  /** Opcode for xcb_input_device_button_state_notify. */
  3518  #define XCB_INPUT_DEVICE_BUTTON_STATE_NOTIFY 14
  3519  
  3520  /**
  3521   * @brief xcb_input_device_button_state_notify_event_t
  3522   **/
  3523  typedef struct xcb_input_device_button_state_notify_event_t {
  3524      uint8_t  response_type;
  3525      uint8_t  device_id;
  3526      uint16_t sequence;
  3527      uint8_t  buttons[28];
  3528  } xcb_input_device_button_state_notify_event_t;
  3529  
  3530  typedef enum xcb_input_device_change_t {
  3531      XCB_INPUT_DEVICE_CHANGE_ADDED = 0,
  3532      XCB_INPUT_DEVICE_CHANGE_REMOVED = 1,
  3533      XCB_INPUT_DEVICE_CHANGE_ENABLED = 2,
  3534      XCB_INPUT_DEVICE_CHANGE_DISABLED = 3,
  3535      XCB_INPUT_DEVICE_CHANGE_UNRECOVERABLE = 4,
  3536      XCB_INPUT_DEVICE_CHANGE_CONTROL_CHANGED = 5
  3537  } xcb_input_device_change_t;
  3538  
  3539  /** Opcode for xcb_input_device_presence_notify. */
  3540  #define XCB_INPUT_DEVICE_PRESENCE_NOTIFY 15
  3541  
  3542  /**
  3543   * @brief xcb_input_device_presence_notify_event_t
  3544   **/
  3545  typedef struct xcb_input_device_presence_notify_event_t {
  3546      uint8_t         response_type;
  3547      uint8_t         pad0;
  3548      uint16_t        sequence;
  3549      xcb_timestamp_t time;
  3550      uint8_t         devchange;
  3551      uint8_t         device_id;
  3552      uint16_t        control;
  3553      uint8_t         pad1[20];
  3554  } xcb_input_device_presence_notify_event_t;
  3555  
  3556  /** Opcode for xcb_input_device_property_notify. */
  3557  #define XCB_INPUT_DEVICE_PROPERTY_NOTIFY 16
  3558  
  3559  /**
  3560   * @brief xcb_input_device_property_notify_event_t
  3561   **/
  3562  typedef struct xcb_input_device_property_notify_event_t {
  3563      uint8_t         response_type;
  3564      uint8_t         state;
  3565      uint16_t        sequence;
  3566      xcb_timestamp_t time;
  3567      xcb_atom_t      property;
  3568      uint8_t         pad0[19];
  3569      uint8_t         device_id;
  3570  } xcb_input_device_property_notify_event_t;
  3571  
  3572  typedef enum xcb_input_change_reason_t {
  3573      XCB_INPUT_CHANGE_REASON_SLAVE_SWITCH = 1,
  3574      XCB_INPUT_CHANGE_REASON_DEVICE_CHANGE = 2
  3575  } xcb_input_change_reason_t;
  3576  
  3577  /** Opcode for xcb_input_device_changed. */
  3578  #define XCB_INPUT_DEVICE_CHANGED 1
  3579  
  3580  /**
  3581   * @brief xcb_input_device_changed_event_t
  3582   **/
  3583  typedef struct xcb_input_device_changed_event_t {
  3584      uint8_t               response_type;
  3585      uint8_t               extension;
  3586      uint16_t              sequence;
  3587      uint32_t              length;
  3588      uint16_t              event_type;
  3589      xcb_input_device_id_t deviceid;
  3590      xcb_timestamp_t       time;
  3591      uint16_t              num_classes;
  3592      xcb_input_device_id_t sourceid;
  3593      uint8_t               reason;
  3594      uint8_t               pad0[11];
  3595      uint32_t              full_sequence;
  3596  } xcb_input_device_changed_event_t;
  3597  
  3598  typedef enum xcb_input_key_event_flags_t {
  3599      XCB_INPUT_KEY_EVENT_FLAGS_KEY_REPEAT = 65536
  3600  } xcb_input_key_event_flags_t;
  3601  
  3602  /** Opcode for xcb_input_key_press. */
  3603  #define XCB_INPUT_KEY_PRESS 2
  3604  
  3605  /**
  3606   * @brief xcb_input_key_press_event_t
  3607   **/
  3608  typedef struct xcb_input_key_press_event_t {
  3609      uint8_t                   response_type;
  3610      uint8_t                   extension;
  3611      uint16_t                  sequence;
  3612      uint32_t                  length;
  3613      uint16_t                  event_type;
  3614      xcb_input_device_id_t     deviceid;
  3615      xcb_timestamp_t           time;
  3616      uint32_t                  detail;
  3617      xcb_window_t              root;
  3618      xcb_window_t              event;
  3619      xcb_window_t              child;
  3620      uint32_t                  full_sequence;
  3621      xcb_input_fp1616_t        root_x;
  3622      xcb_input_fp1616_t        root_y;
  3623      xcb_input_fp1616_t        event_x;
  3624      xcb_input_fp1616_t        event_y;
  3625      uint16_t                  buttons_len;
  3626      uint16_t                  valuators_len;
  3627      xcb_input_device_id_t     sourceid;
  3628      uint8_t                   pad0[2];
  3629      uint32_t                  flags;
  3630      xcb_input_modifier_info_t mods;
  3631      xcb_input_group_info_t    group;
  3632  } xcb_input_key_press_event_t;
  3633  
  3634  /** Opcode for xcb_input_key_release. */
  3635  #define XCB_INPUT_KEY_RELEASE 3
  3636  
  3637  typedef xcb_input_key_press_event_t xcb_input_key_release_event_t;
  3638  
  3639  typedef enum xcb_input_pointer_event_flags_t {
  3640      XCB_INPUT_POINTER_EVENT_FLAGS_POINTER_EMULATED = 65536
  3641  } xcb_input_pointer_event_flags_t;
  3642  
  3643  /** Opcode for xcb_input_button_press. */
  3644  #define XCB_INPUT_BUTTON_PRESS 4
  3645  
  3646  /**
  3647   * @brief xcb_input_button_press_event_t
  3648   **/
  3649  typedef struct xcb_input_button_press_event_t {
  3650      uint8_t                   response_type;
  3651      uint8_t                   extension;
  3652      uint16_t                  sequence;
  3653      uint32_t                  length;
  3654      uint16_t                  event_type;
  3655      xcb_input_device_id_t     deviceid;
  3656      xcb_timestamp_t           time;
  3657      uint32_t                  detail;
  3658      xcb_window_t              root;
  3659      xcb_window_t              event;
  3660      xcb_window_t              child;
  3661      uint32_t                  full_sequence;
  3662      xcb_input_fp1616_t        root_x;
  3663      xcb_input_fp1616_t        root_y;
  3664      xcb_input_fp1616_t        event_x;
  3665      xcb_input_fp1616_t        event_y;
  3666      uint16_t                  buttons_len;
  3667      uint16_t                  valuators_len;
  3668      xcb_input_device_id_t     sourceid;
  3669      uint8_t                   pad0[2];
  3670      uint32_t                  flags;
  3671      xcb_input_modifier_info_t mods;
  3672      xcb_input_group_info_t    group;
  3673  } xcb_input_button_press_event_t;
  3674  
  3675  /** Opcode for xcb_input_button_release. */
  3676  #define XCB_INPUT_BUTTON_RELEASE 5
  3677  
  3678  typedef xcb_input_button_press_event_t xcb_input_button_release_event_t;
  3679  
  3680  /** Opcode for xcb_input_motion. */
  3681  #define XCB_INPUT_MOTION 6
  3682  
  3683  typedef xcb_input_button_press_event_t xcb_input_motion_event_t;
  3684  
  3685  typedef enum xcb_input_notify_mode_t {
  3686      XCB_INPUT_NOTIFY_MODE_NORMAL = 0,
  3687      XCB_INPUT_NOTIFY_MODE_GRAB = 1,
  3688      XCB_INPUT_NOTIFY_MODE_UNGRAB = 2,
  3689      XCB_INPUT_NOTIFY_MODE_WHILE_GRABBED = 3,
  3690      XCB_INPUT_NOTIFY_MODE_PASSIVE_GRAB = 4,
  3691      XCB_INPUT_NOTIFY_MODE_PASSIVE_UNGRAB = 5
  3692  } xcb_input_notify_mode_t;
  3693  
  3694  typedef enum xcb_input_notify_detail_t {
  3695      XCB_INPUT_NOTIFY_DETAIL_ANCESTOR = 0,
  3696      XCB_INPUT_NOTIFY_DETAIL_VIRTUAL = 1,
  3697      XCB_INPUT_NOTIFY_DETAIL_INFERIOR = 2,
  3698      XCB_INPUT_NOTIFY_DETAIL_NONLINEAR = 3,
  3699      XCB_INPUT_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4,
  3700      XCB_INPUT_NOTIFY_DETAIL_POINTER = 5,
  3701      XCB_INPUT_NOTIFY_DETAIL_POINTER_ROOT = 6,
  3702      XCB_INPUT_NOTIFY_DETAIL_NONE = 7
  3703  } xcb_input_notify_detail_t;
  3704  
  3705  /** Opcode for xcb_input_enter. */
  3706  #define XCB_INPUT_ENTER 7
  3707  
  3708  /**
  3709   * @brief xcb_input_enter_event_t
  3710   **/
  3711  typedef struct xcb_input_enter_event_t {
  3712      uint8_t                   response_type;
  3713      uint8_t                   extension;
  3714      uint16_t                  sequence;
  3715      uint32_t                  length;
  3716      uint16_t                  event_type;
  3717      xcb_input_device_id_t     deviceid;
  3718      xcb_timestamp_t           time;
  3719      xcb_input_device_id_t     sourceid;
  3720      uint8_t                   mode;
  3721      uint8_t                   detail;
  3722      xcb_window_t              root;
  3723      xcb_window_t              event;
  3724      xcb_window_t              child;
  3725      uint32_t                  full_sequence;
  3726      xcb_input_fp1616_t        root_x;
  3727      xcb_input_fp1616_t        root_y;
  3728      xcb_input_fp1616_t        event_x;
  3729      xcb_input_fp1616_t        event_y;
  3730      uint8_t                   same_screen;
  3731      uint8_t                   focus;
  3732      uint16_t                  buttons_len;
  3733      xcb_input_modifier_info_t mods;
  3734      xcb_input_group_info_t    group;
  3735  } xcb_input_enter_event_t;
  3736  
  3737  /** Opcode for xcb_input_leave. */
  3738  #define XCB_INPUT_LEAVE 8
  3739  
  3740  typedef xcb_input_enter_event_t xcb_input_leave_event_t;
  3741  
  3742  /** Opcode for xcb_input_focus_in. */
  3743  #define XCB_INPUT_FOCUS_IN 9
  3744  
  3745  typedef xcb_input_enter_event_t xcb_input_focus_in_event_t;
  3746  
  3747  /** Opcode for xcb_input_focus_out. */
  3748  #define XCB_INPUT_FOCUS_OUT 10
  3749  
  3750  typedef xcb_input_enter_event_t xcb_input_focus_out_event_t;
  3751  
  3752  typedef enum xcb_input_hierarchy_mask_t {
  3753      XCB_INPUT_HIERARCHY_MASK_MASTER_ADDED = 1,
  3754      XCB_INPUT_HIERARCHY_MASK_MASTER_REMOVED = 2,
  3755      XCB_INPUT_HIERARCHY_MASK_SLAVE_ADDED = 4,
  3756      XCB_INPUT_HIERARCHY_MASK_SLAVE_REMOVED = 8,
  3757      XCB_INPUT_HIERARCHY_MASK_SLAVE_ATTACHED = 16,
  3758      XCB_INPUT_HIERARCHY_MASK_SLAVE_DETACHED = 32,
  3759      XCB_INPUT_HIERARCHY_MASK_DEVICE_ENABLED = 64,
  3760      XCB_INPUT_HIERARCHY_MASK_DEVICE_DISABLED = 128
  3761  } xcb_input_hierarchy_mask_t;
  3762  
  3763  /**
  3764   * @brief xcb_input_hierarchy_info_t
  3765   **/
  3766  typedef struct xcb_input_hierarchy_info_t {
  3767      xcb_input_device_id_t deviceid;
  3768      xcb_input_device_id_t attachment;
  3769      uint8_t               type;
  3770      uint8_t               enabled;
  3771      uint8_t               pad0[2];
  3772      uint32_t              flags;
  3773  } xcb_input_hierarchy_info_t;
  3774  
  3775  /**
  3776   * @brief xcb_input_hierarchy_info_iterator_t
  3777   **/
  3778  typedef struct xcb_input_hierarchy_info_iterator_t {
  3779      xcb_input_hierarchy_info_t *data;
  3780      int                         rem;
  3781      int                         index;
  3782  } xcb_input_hierarchy_info_iterator_t;
  3783  
  3784  /** Opcode for xcb_input_hierarchy. */
  3785  #define XCB_INPUT_HIERARCHY 11
  3786  
  3787  /**
  3788   * @brief xcb_input_hierarchy_event_t
  3789   **/
  3790  typedef struct xcb_input_hierarchy_event_t {
  3791      uint8_t               response_type;
  3792      uint8_t               extension;
  3793      uint16_t              sequence;
  3794      uint32_t              length;
  3795      uint16_t              event_type;
  3796      xcb_input_device_id_t deviceid;
  3797      xcb_timestamp_t       time;
  3798      uint32_t              flags;
  3799      uint16_t              num_infos;
  3800      uint8_t               pad0[10];
  3801      uint32_t              full_sequence;
  3802  } xcb_input_hierarchy_event_t;
  3803  
  3804  typedef enum xcb_input_property_flag_t {
  3805      XCB_INPUT_PROPERTY_FLAG_DELETED = 0,
  3806      XCB_INPUT_PROPERTY_FLAG_CREATED = 1,
  3807      XCB_INPUT_PROPERTY_FLAG_MODIFIED = 2
  3808  } xcb_input_property_flag_t;
  3809  
  3810  /** Opcode for xcb_input_property. */
  3811  #define XCB_INPUT_PROPERTY 12
  3812  
  3813  /**
  3814   * @brief xcb_input_property_event_t
  3815   **/
  3816  typedef struct xcb_input_property_event_t {
  3817      uint8_t               response_type;
  3818      uint8_t               extension;
  3819      uint16_t              sequence;
  3820      uint32_t              length;
  3821      uint16_t              event_type;
  3822      xcb_input_device_id_t deviceid;
  3823      xcb_timestamp_t       time;
  3824      xcb_atom_t            property;
  3825      uint8_t               what;
  3826      uint8_t               pad0[11];
  3827      uint32_t              full_sequence;
  3828  } xcb_input_property_event_t;
  3829  
  3830  /** Opcode for xcb_input_raw_key_press. */
  3831  #define XCB_INPUT_RAW_KEY_PRESS 13
  3832  
  3833  /**
  3834   * @brief xcb_input_raw_key_press_event_t
  3835   **/
  3836  typedef struct xcb_input_raw_key_press_event_t {
  3837      uint8_t               response_type;
  3838      uint8_t               extension;
  3839      uint16_t              sequence;
  3840      uint32_t              length;
  3841      uint16_t              event_type;
  3842      xcb_input_device_id_t deviceid;
  3843      xcb_timestamp_t       time;
  3844      uint32_t              detail;
  3845      xcb_input_device_id_t sourceid;
  3846      uint16_t              valuators_len;
  3847      uint32_t              flags;
  3848      uint8_t               pad0[4];
  3849      uint32_t              full_sequence;
  3850  } xcb_input_raw_key_press_event_t;
  3851  
  3852  /** Opcode for xcb_input_raw_key_release. */
  3853  #define XCB_INPUT_RAW_KEY_RELEASE 14
  3854  
  3855  typedef xcb_input_raw_key_press_event_t xcb_input_raw_key_release_event_t;
  3856  
  3857  /** Opcode for xcb_input_raw_button_press. */
  3858  #define XCB_INPUT_RAW_BUTTON_PRESS 15
  3859  
  3860  /**
  3861   * @brief xcb_input_raw_button_press_event_t
  3862   **/
  3863  typedef struct xcb_input_raw_button_press_event_t {
  3864      uint8_t               response_type;
  3865      uint8_t               extension;
  3866      uint16_t              sequence;
  3867      uint32_t              length;
  3868      uint16_t              event_type;
  3869      xcb_input_device_id_t deviceid;
  3870      xcb_timestamp_t       time;
  3871      uint32_t              detail;
  3872      xcb_input_device_id_t sourceid;
  3873      uint16_t              valuators_len;
  3874      uint32_t              flags;
  3875      uint8_t               pad0[4];
  3876      uint32_t              full_sequence;
  3877  } xcb_input_raw_button_press_event_t;
  3878  
  3879  /** Opcode for xcb_input_raw_button_release. */
  3880  #define XCB_INPUT_RAW_BUTTON_RELEASE 16
  3881  
  3882  typedef xcb_input_raw_button_press_event_t xcb_input_raw_button_release_event_t;
  3883  
  3884  /** Opcode for xcb_input_raw_motion. */
  3885  #define XCB_INPUT_RAW_MOTION 17
  3886  
  3887  typedef xcb_input_raw_button_press_event_t xcb_input_raw_motion_event_t;
  3888  
  3889  typedef enum xcb_input_touch_event_flags_t {
  3890      XCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_PENDING_END = 65536,
  3891      XCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_EMULATING_POINTER = 131072
  3892  } xcb_input_touch_event_flags_t;
  3893  
  3894  /** Opcode for xcb_input_touch_begin. */
  3895  #define XCB_INPUT_TOUCH_BEGIN 18
  3896  
  3897  /**
  3898   * @brief xcb_input_touch_begin_event_t
  3899   **/
  3900  typedef struct xcb_input_touch_begin_event_t {
  3901      uint8_t                   response_type;
  3902      uint8_t                   extension;
  3903      uint16_t                  sequence;
  3904      uint32_t                  length;
  3905      uint16_t                  event_type;
  3906      xcb_input_device_id_t     deviceid;
  3907      xcb_timestamp_t           time;
  3908      uint32_t                  detail;
  3909      xcb_window_t              root;
  3910      xcb_window_t              event;
  3911      xcb_window_t              child;
  3912      uint32_t                  full_sequence;
  3913      xcb_input_fp1616_t        root_x;
  3914      xcb_input_fp1616_t        root_y;
  3915      xcb_input_fp1616_t        event_x;
  3916      xcb_input_fp1616_t        event_y;
  3917      uint16_t                  buttons_len;
  3918      uint16_t                  valuators_len;
  3919      xcb_input_device_id_t     sourceid;
  3920      uint8_t                   pad0[2];
  3921      uint32_t                  flags;
  3922      xcb_input_modifier_info_t mods;
  3923      xcb_input_group_info_t    group;
  3924  } xcb_input_touch_begin_event_t;
  3925  
  3926  /** Opcode for xcb_input_touch_update. */
  3927  #define XCB_INPUT_TOUCH_UPDATE 19
  3928  
  3929  typedef xcb_input_touch_begin_event_t xcb_input_touch_update_event_t;
  3930  
  3931  /** Opcode for xcb_input_touch_end. */
  3932  #define XCB_INPUT_TOUCH_END 20
  3933  
  3934  typedef xcb_input_touch_begin_event_t xcb_input_touch_end_event_t;
  3935  
  3936  typedef enum xcb_input_touch_ownership_flags_t {
  3937      XCB_INPUT_TOUCH_OWNERSHIP_FLAGS_NONE = 0
  3938  } xcb_input_touch_ownership_flags_t;
  3939  
  3940  /** Opcode for xcb_input_touch_ownership. */
  3941  #define XCB_INPUT_TOUCH_OWNERSHIP 21
  3942  
  3943  /**
  3944   * @brief xcb_input_touch_ownership_event_t
  3945   **/
  3946  typedef struct xcb_input_touch_ownership_event_t {
  3947      uint8_t               response_type;
  3948      uint8_t               extension;
  3949      uint16_t              sequence;
  3950      uint32_t              length;
  3951      uint16_t              event_type;
  3952      xcb_input_device_id_t deviceid;
  3953      xcb_timestamp_t       time;
  3954      uint32_t              touchid;
  3955      xcb_window_t          root;
  3956      xcb_window_t          event;
  3957      xcb_window_t          child;
  3958      uint32_t              full_sequence;
  3959      xcb_input_device_id_t sourceid;
  3960      uint8_t               pad0[2];
  3961      uint32_t              flags;
  3962      uint8_t               pad1[8];
  3963  } xcb_input_touch_ownership_event_t;
  3964  
  3965  /** Opcode for xcb_input_raw_touch_begin. */
  3966  #define XCB_INPUT_RAW_TOUCH_BEGIN 22
  3967  
  3968  /**
  3969   * @brief xcb_input_raw_touch_begin_event_t
  3970   **/
  3971  typedef struct xcb_input_raw_touch_begin_event_t {
  3972      uint8_t               response_type;
  3973      uint8_t               extension;
  3974      uint16_t              sequence;
  3975      uint32_t              length;
  3976      uint16_t              event_type;
  3977      xcb_input_device_id_t deviceid;
  3978      xcb_timestamp_t       time;
  3979      uint32_t              detail;
  3980      xcb_input_device_id_t sourceid;
  3981      uint16_t              valuators_len;
  3982      uint32_t              flags;
  3983      uint8_t               pad0[4];
  3984      uint32_t              full_sequence;
  3985  } xcb_input_raw_touch_begin_event_t;
  3986  
  3987  /** Opcode for xcb_input_raw_touch_update. */
  3988  #define XCB_INPUT_RAW_TOUCH_UPDATE 23
  3989  
  3990  typedef xcb_input_raw_touch_begin_event_t xcb_input_raw_touch_update_event_t;
  3991  
  3992  /** Opcode for xcb_input_raw_touch_end. */
  3993  #define XCB_INPUT_RAW_TOUCH_END 24
  3994  
  3995  typedef xcb_input_raw_touch_begin_event_t xcb_input_raw_touch_end_event_t;
  3996  
  3997  typedef enum xcb_input_barrier_flags_t {
  3998      XCB_INPUT_BARRIER_FLAGS_POINTER_RELEASED = 1,
  3999      XCB_INPUT_BARRIER_FLAGS_DEVICE_IS_GRABBED = 2
  4000  } xcb_input_barrier_flags_t;
  4001  
  4002  /** Opcode for xcb_input_barrier_hit. */
  4003  #define XCB_INPUT_BARRIER_HIT 25
  4004  
  4005  /**
  4006   * @brief xcb_input_barrier_hit_event_t
  4007   **/
  4008  typedef struct xcb_input_barrier_hit_event_t {
  4009      uint8_t               response_type;
  4010      uint8_t               extension;
  4011      uint16_t              sequence;
  4012      uint32_t              length;
  4013      uint16_t              event_type;
  4014      xcb_input_device_id_t deviceid;
  4015      xcb_timestamp_t       time;
  4016      uint32_t              eventid;
  4017      xcb_window_t          root;
  4018      xcb_window_t          event;
  4019      xcb_xfixes_barrier_t  barrier;
  4020      uint32_t              full_sequence;
  4021      uint32_t              dtime;
  4022      uint32_t              flags;
  4023      xcb_input_device_id_t sourceid;
  4024      uint8_t               pad0[2];
  4025      xcb_input_fp1616_t    root_x;
  4026      xcb_input_fp1616_t    root_y;
  4027      xcb_input_fp3232_t    dx;
  4028      xcb_input_fp3232_t    dy;
  4029  } xcb_input_barrier_hit_event_t;
  4030  
  4031  /** Opcode for xcb_input_barrier_leave. */
  4032  #define XCB_INPUT_BARRIER_LEAVE 26
  4033  
  4034  typedef xcb_input_barrier_hit_event_t xcb_input_barrier_leave_event_t;
  4035  
  4036  /**
  4037   * @brief xcb_input_event_for_send_t
  4038   **/
  4039  typedef union xcb_input_event_for_send_t {
  4040      xcb_input_device_valuator_event_t            device_valuator;
  4041      xcb_input_device_key_press_event_t           device_key_press;
  4042      xcb_input_device_key_release_event_t         device_key_release;
  4043      xcb_input_device_button_press_event_t        device_button_press;
  4044      xcb_input_device_button_release_event_t      device_button_release;
  4045      xcb_input_device_motion_notify_event_t       device_motion_notify;
  4046      xcb_input_device_focus_in_event_t            device_focus_in;
  4047      xcb_input_device_focus_out_event_t           device_focus_out;
  4048      xcb_input_proximity_in_event_t               proximity_in;
  4049      xcb_input_proximity_out_event_t              proximity_out;
  4050      xcb_input_device_state_notify_event_t        device_state_notify;
  4051      xcb_input_device_mapping_notify_event_t      device_mapping_notify;
  4052      xcb_input_change_device_notify_event_t       change_device_notify;
  4053      xcb_input_device_key_state_notify_event_t    device_key_state_notify;
  4054      xcb_input_device_button_state_notify_event_t device_button_state_notify;
  4055      xcb_input_device_presence_notify_event_t     device_presence_notify;
  4056      xcb_raw_generic_event_t                      event_header;
  4057  } xcb_input_event_for_send_t;
  4058  
  4059  /**
  4060   * @brief xcb_input_event_for_send_iterator_t
  4061   **/
  4062  typedef struct xcb_input_event_for_send_iterator_t {
  4063      xcb_input_event_for_send_t *data;
  4064      int                         rem;
  4065      int                         index;
  4066  } xcb_input_event_for_send_iterator_t;
  4067  
  4068  /** Opcode for xcb_input_send_extension_event. */
  4069  #define XCB_INPUT_SEND_EXTENSION_EVENT 31
  4070  
  4071  /**
  4072   * @brief xcb_input_send_extension_event_request_t
  4073   **/
  4074  typedef struct xcb_input_send_extension_event_request_t {
  4075      uint8_t      major_opcode;
  4076      uint8_t      minor_opcode;
  4077      uint16_t     length;
  4078      xcb_window_t destination;
  4079      uint8_t      device_id;
  4080      uint8_t      propagate;
  4081      uint16_t     num_classes;
  4082      uint8_t      num_events;
  4083      uint8_t      pad0[3];
  4084  } xcb_input_send_extension_event_request_t;
  4085  
  4086  /** Opcode for xcb_input_device. */
  4087  #define XCB_INPUT_DEVICE 0
  4088  
  4089  /**
  4090   * @brief xcb_input_device_error_t
  4091   **/
  4092  typedef struct xcb_input_device_error_t {
  4093      uint8_t  response_type;
  4094      uint8_t  error_code;
  4095      uint16_t sequence;
  4096  } xcb_input_device_error_t;
  4097  
  4098  /** Opcode for xcb_input_event. */
  4099  #define XCB_INPUT_EVENT 1
  4100  
  4101  /**
  4102   * @brief xcb_input_event_error_t
  4103   **/
  4104  typedef struct xcb_input_event_error_t {
  4105      uint8_t  response_type;
  4106      uint8_t  error_code;
  4107      uint16_t sequence;
  4108  } xcb_input_event_error_t;
  4109  
  4110  /** Opcode for xcb_input_mode. */
  4111  #define XCB_INPUT_MODE 2
  4112  
  4113  /**
  4114   * @brief xcb_input_mode_error_t
  4115   **/
  4116  typedef struct xcb_input_mode_error_t {
  4117      uint8_t  response_type;
  4118      uint8_t  error_code;
  4119      uint16_t sequence;
  4120  } xcb_input_mode_error_t;
  4121  
  4122  /** Opcode for xcb_input_device_busy. */
  4123  #define XCB_INPUT_DEVICE_BUSY 3
  4124  
  4125  /**
  4126   * @brief xcb_input_device_busy_error_t
  4127   **/
  4128  typedef struct xcb_input_device_busy_error_t {
  4129      uint8_t  response_type;
  4130      uint8_t  error_code;
  4131      uint16_t sequence;
  4132  } xcb_input_device_busy_error_t;
  4133  
  4134  /** Opcode for xcb_input_class. */
  4135  #define XCB_INPUT_CLASS 4
  4136  
  4137  /**
  4138   * @brief xcb_input_class_error_t
  4139   **/
  4140  typedef struct xcb_input_class_error_t {
  4141      uint8_t  response_type;
  4142      uint8_t  error_code;
  4143      uint16_t sequence;
  4144  } xcb_input_class_error_t;
  4145  
  4146  /**
  4147   * Get the next element of the iterator
  4148   * @param i Pointer to a xcb_input_event_class_iterator_t
  4149   *
  4150   * Get the next element in the iterator. The member rem is
  4151   * decreased by one. The member data points to the next
  4152   * element. The member index is increased by sizeof(xcb_input_event_class_t)
  4153   */
  4154  void
  4155  xcb_input_event_class_next (xcb_input_event_class_iterator_t *i);
  4156  
  4157  /**
  4158   * Return the iterator pointing to the last element
  4159   * @param i An xcb_input_event_class_iterator_t
  4160   * @return  The iterator pointing to the last element
  4161   *
  4162   * Set the current element in the iterator to the last element.
  4163   * The member rem is set to 0. The member data points to the
  4164   * last element.
  4165   */
  4166  xcb_generic_iterator_t
  4167  xcb_input_event_class_end (xcb_input_event_class_iterator_t i);
  4168  
  4169  /**
  4170   * Get the next element of the iterator
  4171   * @param i Pointer to a xcb_input_key_code_iterator_t
  4172   *
  4173   * Get the next element in the iterator. The member rem is
  4174   * decreased by one. The member data points to the next
  4175   * element. The member index is increased by sizeof(xcb_input_key_code_t)
  4176   */
  4177  void
  4178  xcb_input_key_code_next (xcb_input_key_code_iterator_t *i);
  4179  
  4180  /**
  4181   * Return the iterator pointing to the last element
  4182   * @param i An xcb_input_key_code_iterator_t
  4183   * @return  The iterator pointing to the last element
  4184   *
  4185   * Set the current element in the iterator to the last element.
  4186   * The member rem is set to 0. The member data points to the
  4187   * last element.
  4188   */
  4189  xcb_generic_iterator_t
  4190  xcb_input_key_code_end (xcb_input_key_code_iterator_t i);
  4191  
  4192  /**
  4193   * Get the next element of the iterator
  4194   * @param i Pointer to a xcb_input_device_id_iterator_t
  4195   *
  4196   * Get the next element in the iterator. The member rem is
  4197   * decreased by one. The member data points to the next
  4198   * element. The member index is increased by sizeof(xcb_input_device_id_t)
  4199   */
  4200  void
  4201  xcb_input_device_id_next (xcb_input_device_id_iterator_t *i);
  4202  
  4203  /**
  4204   * Return the iterator pointing to the last element
  4205   * @param i An xcb_input_device_id_iterator_t
  4206   * @return  The iterator pointing to the last element
  4207   *
  4208   * Set the current element in the iterator to the last element.
  4209   * The member rem is set to 0. The member data points to the
  4210   * last element.
  4211   */
  4212  xcb_generic_iterator_t
  4213  xcb_input_device_id_end (xcb_input_device_id_iterator_t i);
  4214  
  4215  /**
  4216   * Get the next element of the iterator
  4217   * @param i Pointer to a xcb_input_fp1616_iterator_t
  4218   *
  4219   * Get the next element in the iterator. The member rem is
  4220   * decreased by one. The member data points to the next
  4221   * element. The member index is increased by sizeof(xcb_input_fp1616_t)
  4222   */
  4223  void
  4224  xcb_input_fp1616_next (xcb_input_fp1616_iterator_t *i);
  4225  
  4226  /**
  4227   * Return the iterator pointing to the last element
  4228   * @param i An xcb_input_fp1616_iterator_t
  4229   * @return  The iterator pointing to the last element
  4230   *
  4231   * Set the current element in the iterator to the last element.
  4232   * The member rem is set to 0. The member data points to the
  4233   * last element.
  4234   */
  4235  xcb_generic_iterator_t
  4236  xcb_input_fp1616_end (xcb_input_fp1616_iterator_t i);
  4237  
  4238  /**
  4239   * Get the next element of the iterator
  4240   * @param i Pointer to a xcb_input_fp3232_iterator_t
  4241   *
  4242   * Get the next element in the iterator. The member rem is
  4243   * decreased by one. The member data points to the next
  4244   * element. The member index is increased by sizeof(xcb_input_fp3232_t)
  4245   */
  4246  void
  4247  xcb_input_fp3232_next (xcb_input_fp3232_iterator_t *i);
  4248  
  4249  /**
  4250   * Return the iterator pointing to the last element
  4251   * @param i An xcb_input_fp3232_iterator_t
  4252   * @return  The iterator pointing to the last element
  4253   *
  4254   * Set the current element in the iterator to the last element.
  4255   * The member rem is set to 0. The member data points to the
  4256   * last element.
  4257   */
  4258  xcb_generic_iterator_t
  4259  xcb_input_fp3232_end (xcb_input_fp3232_iterator_t i);
  4260  
  4261  int
  4262  xcb_input_get_extension_version_sizeof (const void  *_buffer);
  4263  
  4264  /**
  4265   *
  4266   * @param c The connection
  4267   * @return A cookie
  4268   *
  4269   * Delivers a request to the X server.
  4270   *
  4271   */
  4272  xcb_input_get_extension_version_cookie_t
  4273  xcb_input_get_extension_version (xcb_connection_t *c,
  4274                                   uint16_t          name_len,
  4275                                   const char       *name);
  4276  
  4277  /**
  4278   *
  4279   * @param c The connection
  4280   * @return A cookie
  4281   *
  4282   * Delivers a request to the X server.
  4283   *
  4284   * This form can be used only if the request will cause
  4285   * a reply to be generated. Any returned error will be
  4286   * placed in the event queue.
  4287   */
  4288  xcb_input_get_extension_version_cookie_t
  4289  xcb_input_get_extension_version_unchecked (xcb_connection_t *c,
  4290                                             uint16_t          name_len,
  4291                                             const char       *name);
  4292  
  4293  /**
  4294   * Return the reply
  4295   * @param c      The connection
  4296   * @param cookie The cookie
  4297   * @param e      The xcb_generic_error_t supplied
  4298   *
  4299   * Returns the reply of the request asked by
  4300   *
  4301   * The parameter @p e supplied to this function must be NULL if
  4302   * xcb_input_get_extension_version_unchecked(). is used.
  4303   * Otherwise, it stores the error if any.
  4304   *
  4305   * The returned value must be freed by the caller using free().
  4306   */
  4307  xcb_input_get_extension_version_reply_t *
  4308  xcb_input_get_extension_version_reply (xcb_connection_t                          *c,
  4309                                         xcb_input_get_extension_version_cookie_t   cookie  /**< */,
  4310                                         xcb_generic_error_t                      **e);
  4311  
  4312  /**
  4313   * Get the next element of the iterator
  4314   * @param i Pointer to a xcb_input_device_info_iterator_t
  4315   *
  4316   * Get the next element in the iterator. The member rem is
  4317   * decreased by one. The member data points to the next
  4318   * element. The member index is increased by sizeof(xcb_input_device_info_t)
  4319   */
  4320  void
  4321  xcb_input_device_info_next (xcb_input_device_info_iterator_t *i);
  4322  
  4323  /**
  4324   * Return the iterator pointing to the last element
  4325   * @param i An xcb_input_device_info_iterator_t
  4326   * @return  The iterator pointing to the last element
  4327   *
  4328   * Set the current element in the iterator to the last element.
  4329   * The member rem is set to 0. The member data points to the
  4330   * last element.
  4331   */
  4332  xcb_generic_iterator_t
  4333  xcb_input_device_info_end (xcb_input_device_info_iterator_t i);
  4334  
  4335  /**
  4336   * Get the next element of the iterator
  4337   * @param i Pointer to a xcb_input_key_info_iterator_t
  4338   *
  4339   * Get the next element in the iterator. The member rem is
  4340   * decreased by one. The member data points to the next
  4341   * element. The member index is increased by sizeof(xcb_input_key_info_t)
  4342   */
  4343  void
  4344  xcb_input_key_info_next (xcb_input_key_info_iterator_t *i);
  4345  
  4346  /**
  4347   * Return the iterator pointing to the last element
  4348   * @param i An xcb_input_key_info_iterator_t
  4349   * @return  The iterator pointing to the last element
  4350   *
  4351   * Set the current element in the iterator to the last element.
  4352   * The member rem is set to 0. The member data points to the
  4353   * last element.
  4354   */
  4355  xcb_generic_iterator_t
  4356  xcb_input_key_info_end (xcb_input_key_info_iterator_t i);
  4357  
  4358  /**
  4359   * Get the next element of the iterator
  4360   * @param i Pointer to a xcb_input_button_info_iterator_t
  4361   *
  4362   * Get the next element in the iterator. The member rem is
  4363   * decreased by one. The member data points to the next
  4364   * element. The member index is increased by sizeof(xcb_input_button_info_t)
  4365   */
  4366  void
  4367  xcb_input_button_info_next (xcb_input_button_info_iterator_t *i);
  4368  
  4369  /**
  4370   * Return the iterator pointing to the last element
  4371   * @param i An xcb_input_button_info_iterator_t
  4372   * @return  The iterator pointing to the last element
  4373   *
  4374   * Set the current element in the iterator to the last element.
  4375   * The member rem is set to 0. The member data points to the
  4376   * last element.
  4377   */
  4378  xcb_generic_iterator_t
  4379  xcb_input_button_info_end (xcb_input_button_info_iterator_t i);
  4380  
  4381  /**
  4382   * Get the next element of the iterator
  4383   * @param i Pointer to a xcb_input_axis_info_iterator_t
  4384   *
  4385   * Get the next element in the iterator. The member rem is
  4386   * decreased by one. The member data points to the next
  4387   * element. The member index is increased by sizeof(xcb_input_axis_info_t)
  4388   */
  4389  void
  4390  xcb_input_axis_info_next (xcb_input_axis_info_iterator_t *i);
  4391  
  4392  /**
  4393   * Return the iterator pointing to the last element
  4394   * @param i An xcb_input_axis_info_iterator_t
  4395   * @return  The iterator pointing to the last element
  4396   *
  4397   * Set the current element in the iterator to the last element.
  4398   * The member rem is set to 0. The member data points to the
  4399   * last element.
  4400   */
  4401  xcb_generic_iterator_t
  4402  xcb_input_axis_info_end (xcb_input_axis_info_iterator_t i);
  4403  
  4404  int
  4405  xcb_input_valuator_info_sizeof (const void  *_buffer);
  4406  
  4407  xcb_input_axis_info_t *
  4408  xcb_input_valuator_info_axes (const xcb_input_valuator_info_t *R);
  4409  
  4410  int
  4411  xcb_input_valuator_info_axes_length (const xcb_input_valuator_info_t *R);
  4412  
  4413  xcb_input_axis_info_iterator_t
  4414  xcb_input_valuator_info_axes_iterator (const xcb_input_valuator_info_t *R);
  4415  
  4416  /**
  4417   * Get the next element of the iterator
  4418   * @param i Pointer to a xcb_input_valuator_info_iterator_t
  4419   *
  4420   * Get the next element in the iterator. The member rem is
  4421   * decreased by one. The member data points to the next
  4422   * element. The member index is increased by sizeof(xcb_input_valuator_info_t)
  4423   */
  4424  void
  4425  xcb_input_valuator_info_next (xcb_input_valuator_info_iterator_t *i);
  4426  
  4427  /**
  4428   * Return the iterator pointing to the last element
  4429   * @param i An xcb_input_valuator_info_iterator_t
  4430   * @return  The iterator pointing to the last element
  4431   *
  4432   * Set the current element in the iterator to the last element.
  4433   * The member rem is set to 0. The member data points to the
  4434   * last element.
  4435   */
  4436  xcb_generic_iterator_t
  4437  xcb_input_valuator_info_end (xcb_input_valuator_info_iterator_t i);
  4438  
  4439  xcb_input_axis_info_t *
  4440  xcb_input_input_info_info_valuator_axes (const xcb_input_input_info_info_t *S);
  4441  
  4442  int
  4443  xcb_input_input_info_info_valuator_axes_length (const xcb_input_input_info_t *R,
  4444                                                  const xcb_input_input_info_info_t *S);
  4445  
  4446  xcb_input_axis_info_iterator_t
  4447  xcb_input_input_info_info_valuator_axes_iterator (const xcb_input_input_info_t *R,
  4448                                                    const xcb_input_input_info_info_t *S);
  4449  
  4450  int
  4451  xcb_input_input_info_info_serialize (void                              **_buffer,
  4452                                       uint8_t                             class_id,
  4453                                       const xcb_input_input_info_info_t  *_aux);
  4454  
  4455  int
  4456  xcb_input_input_info_info_unpack (const void                   *_buffer,
  4457                                    uint8_t                       class_id,
  4458                                    xcb_input_input_info_info_t  *_aux);
  4459  
  4460  int
  4461  xcb_input_input_info_info_sizeof (const void  *_buffer,
  4462                                    uint8_t      class_id);
  4463  
  4464  int
  4465  xcb_input_input_info_sizeof (const void  *_buffer);
  4466  
  4467  /**
  4468   * Get the next element of the iterator
  4469   * @param i Pointer to a xcb_input_input_info_iterator_t
  4470   *
  4471   * Get the next element in the iterator. The member rem is
  4472   * decreased by one. The member data points to the next
  4473   * element. The member index is increased by sizeof(xcb_input_input_info_t)
  4474   */
  4475  void
  4476  xcb_input_input_info_next (xcb_input_input_info_iterator_t *i);
  4477  
  4478  /**
  4479   * Return the iterator pointing to the last element
  4480   * @param i An xcb_input_input_info_iterator_t
  4481   * @return  The iterator pointing to the last element
  4482   *
  4483   * Set the current element in the iterator to the last element.
  4484   * The member rem is set to 0. The member data points to the
  4485   * last element.
  4486   */
  4487  xcb_generic_iterator_t
  4488  xcb_input_input_info_end (xcb_input_input_info_iterator_t i);
  4489  
  4490  int
  4491  xcb_input_device_name_sizeof (const void  *_buffer);
  4492  
  4493  char *
  4494  xcb_input_device_name_string (const xcb_input_device_name_t *R);
  4495  
  4496  int
  4497  xcb_input_device_name_string_length (const xcb_input_device_name_t *R);
  4498  
  4499  xcb_generic_iterator_t
  4500  xcb_input_device_name_string_end (const xcb_input_device_name_t *R);
  4501  
  4502  /**
  4503   * Get the next element of the iterator
  4504   * @param i Pointer to a xcb_input_device_name_iterator_t
  4505   *
  4506   * Get the next element in the iterator. The member rem is
  4507   * decreased by one. The member data points to the next
  4508   * element. The member index is increased by sizeof(xcb_input_device_name_t)
  4509   */
  4510  void
  4511  xcb_input_device_name_next (xcb_input_device_name_iterator_t *i);
  4512  
  4513  /**
  4514   * Return the iterator pointing to the last element
  4515   * @param i An xcb_input_device_name_iterator_t
  4516   * @return  The iterator pointing to the last element
  4517   *
  4518   * Set the current element in the iterator to the last element.
  4519   * The member rem is set to 0. The member data points to the
  4520   * last element.
  4521   */
  4522  xcb_generic_iterator_t
  4523  xcb_input_device_name_end (xcb_input_device_name_iterator_t i);
  4524  
  4525  int
  4526  xcb_input_list_input_devices_sizeof (const void  *_buffer);
  4527  
  4528  /**
  4529   *
  4530   * @param c The connection
  4531   * @return A cookie
  4532   *
  4533   * Delivers a request to the X server.
  4534   *
  4535   */
  4536  xcb_input_list_input_devices_cookie_t
  4537  xcb_input_list_input_devices (xcb_connection_t *c);
  4538  
  4539  /**
  4540   *
  4541   * @param c The connection
  4542   * @return A cookie
  4543   *
  4544   * Delivers a request to the X server.
  4545   *
  4546   * This form can be used only if the request will cause
  4547   * a reply to be generated. Any returned error will be
  4548   * placed in the event queue.
  4549   */
  4550  xcb_input_list_input_devices_cookie_t
  4551  xcb_input_list_input_devices_unchecked (xcb_connection_t *c);
  4552  
  4553  xcb_input_device_info_t *
  4554  xcb_input_list_input_devices_devices (const xcb_input_list_input_devices_reply_t *R);
  4555  
  4556  int
  4557  xcb_input_list_input_devices_devices_length (const xcb_input_list_input_devices_reply_t *R);
  4558  
  4559  xcb_input_device_info_iterator_t
  4560  xcb_input_list_input_devices_devices_iterator (const xcb_input_list_input_devices_reply_t *R);
  4561  
  4562  int
  4563  xcb_input_list_input_devices_infos_length (const xcb_input_list_input_devices_reply_t *R);
  4564  
  4565  xcb_input_input_info_iterator_t
  4566  xcb_input_list_input_devices_infos_iterator (const xcb_input_list_input_devices_reply_t *R);
  4567  
  4568  int
  4569  xcb_input_list_input_devices_names_length (const xcb_input_list_input_devices_reply_t *R);
  4570  
  4571  xcb_str_iterator_t
  4572  xcb_input_list_input_devices_names_iterator (const xcb_input_list_input_devices_reply_t *R);
  4573  
  4574  /**
  4575   * Return the reply
  4576   * @param c      The connection
  4577   * @param cookie The cookie
  4578   * @param e      The xcb_generic_error_t supplied
  4579   *
  4580   * Returns the reply of the request asked by
  4581   *
  4582   * The parameter @p e supplied to this function must be NULL if
  4583   * xcb_input_list_input_devices_unchecked(). is used.
  4584   * Otherwise, it stores the error if any.
  4585   *
  4586   * The returned value must be freed by the caller using free().
  4587   */
  4588  xcb_input_list_input_devices_reply_t *
  4589  xcb_input_list_input_devices_reply (xcb_connection_t                       *c,
  4590                                      xcb_input_list_input_devices_cookie_t   cookie  /**< */,
  4591                                      xcb_generic_error_t                   **e);
  4592  
  4593  /**
  4594   * Get the next element of the iterator
  4595   * @param i Pointer to a xcb_input_event_type_base_iterator_t
  4596   *
  4597   * Get the next element in the iterator. The member rem is
  4598   * decreased by one. The member data points to the next
  4599   * element. The member index is increased by sizeof(xcb_input_event_type_base_t)
  4600   */
  4601  void
  4602  xcb_input_event_type_base_next (xcb_input_event_type_base_iterator_t *i);
  4603  
  4604  /**
  4605   * Return the iterator pointing to the last element
  4606   * @param i An xcb_input_event_type_base_iterator_t
  4607   * @return  The iterator pointing to the last element
  4608   *
  4609   * Set the current element in the iterator to the last element.
  4610   * The member rem is set to 0. The member data points to the
  4611   * last element.
  4612   */
  4613  xcb_generic_iterator_t
  4614  xcb_input_event_type_base_end (xcb_input_event_type_base_iterator_t i);
  4615  
  4616  /**
  4617   * Get the next element of the iterator
  4618   * @param i Pointer to a xcb_input_input_class_info_iterator_t
  4619   *
  4620   * Get the next element in the iterator. The member rem is
  4621   * decreased by one. The member data points to the next
  4622   * element. The member index is increased by sizeof(xcb_input_input_class_info_t)
  4623   */
  4624  void
  4625  xcb_input_input_class_info_next (xcb_input_input_class_info_iterator_t *i);
  4626  
  4627  /**
  4628   * Return the iterator pointing to the last element
  4629   * @param i An xcb_input_input_class_info_iterator_t
  4630   * @return  The iterator pointing to the last element
  4631   *
  4632   * Set the current element in the iterator to the last element.
  4633   * The member rem is set to 0. The member data points to the
  4634   * last element.
  4635   */
  4636  xcb_generic_iterator_t
  4637  xcb_input_input_class_info_end (xcb_input_input_class_info_iterator_t i);
  4638  
  4639  int
  4640  xcb_input_open_device_sizeof (const void  *_buffer);
  4641  
  4642  /**
  4643   *
  4644   * @param c The connection
  4645   * @return A cookie
  4646   *
  4647   * Delivers a request to the X server.
  4648   *
  4649   */
  4650  xcb_input_open_device_cookie_t
  4651  xcb_input_open_device (xcb_connection_t *c,
  4652                         uint8_t           device_id);
  4653  
  4654  /**
  4655   *
  4656   * @param c The connection
  4657   * @return A cookie
  4658   *
  4659   * Delivers a request to the X server.
  4660   *
  4661   * This form can be used only if the request will cause
  4662   * a reply to be generated. Any returned error will be
  4663   * placed in the event queue.
  4664   */
  4665  xcb_input_open_device_cookie_t
  4666  xcb_input_open_device_unchecked (xcb_connection_t *c,
  4667                                   uint8_t           device_id);
  4668  
  4669  xcb_input_input_class_info_t *
  4670  xcb_input_open_device_class_info (const xcb_input_open_device_reply_t *R);
  4671  
  4672  int
  4673  xcb_input_open_device_class_info_length (const xcb_input_open_device_reply_t *R);
  4674  
  4675  xcb_input_input_class_info_iterator_t
  4676  xcb_input_open_device_class_info_iterator (const xcb_input_open_device_reply_t *R);
  4677  
  4678  /**
  4679   * Return the reply
  4680   * @param c      The connection
  4681   * @param cookie The cookie
  4682   * @param e      The xcb_generic_error_t supplied
  4683   *
  4684   * Returns the reply of the request asked by
  4685   *
  4686   * The parameter @p e supplied to this function must be NULL if
  4687   * xcb_input_open_device_unchecked(). is used.
  4688   * Otherwise, it stores the error if any.
  4689   *
  4690   * The returned value must be freed by the caller using free().
  4691   */
  4692  xcb_input_open_device_reply_t *
  4693  xcb_input_open_device_reply (xcb_connection_t                *c,
  4694                               xcb_input_open_device_cookie_t   cookie  /**< */,
  4695                               xcb_generic_error_t            **e);
  4696  
  4697  /**
  4698   *
  4699   * @param c The connection
  4700   * @return A cookie
  4701   *
  4702   * Delivers a request to the X server.
  4703   *
  4704   * This form can be used only if the request will not cause
  4705   * a reply to be generated. Any returned error will be
  4706   * saved for handling by xcb_request_check().
  4707   */
  4708  xcb_void_cookie_t
  4709  xcb_input_close_device_checked (xcb_connection_t *c,
  4710                                  uint8_t           device_id);
  4711  
  4712  /**
  4713   *
  4714   * @param c The connection
  4715   * @return A cookie
  4716   *
  4717   * Delivers a request to the X server.
  4718   *
  4719   */
  4720  xcb_void_cookie_t
  4721  xcb_input_close_device (xcb_connection_t *c,
  4722                          uint8_t           device_id);
  4723  
  4724  /**
  4725   *
  4726   * @param c The connection
  4727   * @return A cookie
  4728   *
  4729   * Delivers a request to the X server.
  4730   *
  4731   */
  4732  xcb_input_set_device_mode_cookie_t
  4733  xcb_input_set_device_mode (xcb_connection_t *c,
  4734                             uint8_t           device_id,
  4735                             uint8_t           mode);
  4736  
  4737  /**
  4738   *
  4739   * @param c The connection
  4740   * @return A cookie
  4741   *
  4742   * Delivers a request to the X server.
  4743   *
  4744   * This form can be used only if the request will cause
  4745   * a reply to be generated. Any returned error will be
  4746   * placed in the event queue.
  4747   */
  4748  xcb_input_set_device_mode_cookie_t
  4749  xcb_input_set_device_mode_unchecked (xcb_connection_t *c,
  4750                                       uint8_t           device_id,
  4751                                       uint8_t           mode);
  4752  
  4753  /**
  4754   * Return the reply
  4755   * @param c      The connection
  4756   * @param cookie The cookie
  4757   * @param e      The xcb_generic_error_t supplied
  4758   *
  4759   * Returns the reply of the request asked by
  4760   *
  4761   * The parameter @p e supplied to this function must be NULL if
  4762   * xcb_input_set_device_mode_unchecked(). is used.
  4763   * Otherwise, it stores the error if any.
  4764   *
  4765   * The returned value must be freed by the caller using free().
  4766   */
  4767  xcb_input_set_device_mode_reply_t *
  4768  xcb_input_set_device_mode_reply (xcb_connection_t                    *c,
  4769                                   xcb_input_set_device_mode_cookie_t   cookie  /**< */,
  4770                                   xcb_generic_error_t                **e);
  4771  
  4772  int
  4773  xcb_input_select_extension_event_sizeof (const void  *_buffer);
  4774  
  4775  /**
  4776   *
  4777   * @param c The connection
  4778   * @return A cookie
  4779   *
  4780   * Delivers a request to the X server.
  4781   *
  4782   * This form can be used only if the request will not cause
  4783   * a reply to be generated. Any returned error will be
  4784   * saved for handling by xcb_request_check().
  4785   */
  4786  xcb_void_cookie_t
  4787  xcb_input_select_extension_event_checked (xcb_connection_t              *c,
  4788                                            xcb_window_t                   window,
  4789                                            uint16_t                       num_classes,
  4790                                            const xcb_input_event_class_t *classes);
  4791  
  4792  /**
  4793   *
  4794   * @param c The connection
  4795   * @return A cookie
  4796   *
  4797   * Delivers a request to the X server.
  4798   *
  4799   */
  4800  xcb_void_cookie_t
  4801  xcb_input_select_extension_event (xcb_connection_t              *c,
  4802                                    xcb_window_t                   window,
  4803                                    uint16_t                       num_classes,
  4804                                    const xcb_input_event_class_t *classes);
  4805  
  4806  xcb_input_event_class_t *
  4807  xcb_input_select_extension_event_classes (const xcb_input_select_extension_event_request_t *R);
  4808  
  4809  int
  4810  xcb_input_select_extension_event_classes_length (const xcb_input_select_extension_event_request_t *R);
  4811  
  4812  xcb_generic_iterator_t
  4813  xcb_input_select_extension_event_classes_end (const xcb_input_select_extension_event_request_t *R);
  4814  
  4815  int
  4816  xcb_input_get_selected_extension_events_sizeof (const void  *_buffer);
  4817  
  4818  /**
  4819   *
  4820   * @param c The connection
  4821   * @return A cookie
  4822   *
  4823   * Delivers a request to the X server.
  4824   *
  4825   */
  4826  xcb_input_get_selected_extension_events_cookie_t
  4827  xcb_input_get_selected_extension_events (xcb_connection_t *c,
  4828                                           xcb_window_t      window);
  4829  
  4830  /**
  4831   *
  4832   * @param c The connection
  4833   * @return A cookie
  4834   *
  4835   * Delivers a request to the X server.
  4836   *
  4837   * This form can be used only if the request will cause
  4838   * a reply to be generated. Any returned error will be
  4839   * placed in the event queue.
  4840   */
  4841  xcb_input_get_selected_extension_events_cookie_t
  4842  xcb_input_get_selected_extension_events_unchecked (xcb_connection_t *c,
  4843                                                     xcb_window_t      window);
  4844  
  4845  xcb_input_event_class_t *
  4846  xcb_input_get_selected_extension_events_this_classes (const xcb_input_get_selected_extension_events_reply_t *R);
  4847  
  4848  int
  4849  xcb_input_get_selected_extension_events_this_classes_length (const xcb_input_get_selected_extension_events_reply_t *R);
  4850  
  4851  xcb_generic_iterator_t
  4852  xcb_input_get_selected_extension_events_this_classes_end (const xcb_input_get_selected_extension_events_reply_t *R);
  4853  
  4854  xcb_input_event_class_t *
  4855  xcb_input_get_selected_extension_events_all_classes (const xcb_input_get_selected_extension_events_reply_t *R);
  4856  
  4857  int
  4858  xcb_input_get_selected_extension_events_all_classes_length (const xcb_input_get_selected_extension_events_reply_t *R);
  4859  
  4860  xcb_generic_iterator_t
  4861  xcb_input_get_selected_extension_events_all_classes_end (const xcb_input_get_selected_extension_events_reply_t *R);
  4862  
  4863  /**
  4864   * Return the reply
  4865   * @param c      The connection
  4866   * @param cookie The cookie
  4867   * @param e      The xcb_generic_error_t supplied
  4868   *
  4869   * Returns the reply of the request asked by
  4870   *
  4871   * The parameter @p e supplied to this function must be NULL if
  4872   * xcb_input_get_selected_extension_events_unchecked(). is used.
  4873   * Otherwise, it stores the error if any.
  4874   *
  4875   * The returned value must be freed by the caller using free().
  4876   */
  4877  xcb_input_get_selected_extension_events_reply_t *
  4878  xcb_input_get_selected_extension_events_reply (xcb_connection_t                                  *c,
  4879                                                 xcb_input_get_selected_extension_events_cookie_t   cookie  /**< */,
  4880                                                 xcb_generic_error_t                              **e);
  4881  
  4882  int
  4883  xcb_input_change_device_dont_propagate_list_sizeof (const void  *_buffer);
  4884  
  4885  /**
  4886   *
  4887   * @param c The connection
  4888   * @return A cookie
  4889   *
  4890   * Delivers a request to the X server.
  4891   *
  4892   * This form can be used only if the request will not cause
  4893   * a reply to be generated. Any returned error will be
  4894   * saved for handling by xcb_request_check().
  4895   */
  4896  xcb_void_cookie_t
  4897  xcb_input_change_device_dont_propagate_list_checked (xcb_connection_t              *c,
  4898                                                       xcb_window_t                   window,
  4899                                                       uint16_t                       num_classes,
  4900                                                       uint8_t                        mode,
  4901                                                       const xcb_input_event_class_t *classes);
  4902  
  4903  /**
  4904   *
  4905   * @param c The connection
  4906   * @return A cookie
  4907   *
  4908   * Delivers a request to the X server.
  4909   *
  4910   */
  4911  xcb_void_cookie_t
  4912  xcb_input_change_device_dont_propagate_list (xcb_connection_t              *c,
  4913                                               xcb_window_t                   window,
  4914                                               uint16_t                       num_classes,
  4915                                               uint8_t                        mode,
  4916                                               const xcb_input_event_class_t *classes);
  4917  
  4918  xcb_input_event_class_t *
  4919  xcb_input_change_device_dont_propagate_list_classes (const xcb_input_change_device_dont_propagate_list_request_t *R);
  4920  
  4921  int
  4922  xcb_input_change_device_dont_propagate_list_classes_length (const xcb_input_change_device_dont_propagate_list_request_t *R);
  4923  
  4924  xcb_generic_iterator_t
  4925  xcb_input_change_device_dont_propagate_list_classes_end (const xcb_input_change_device_dont_propagate_list_request_t *R);
  4926  
  4927  int
  4928  xcb_input_get_device_dont_propagate_list_sizeof (const void  *_buffer);
  4929  
  4930  /**
  4931   *
  4932   * @param c The connection
  4933   * @return A cookie
  4934   *
  4935   * Delivers a request to the X server.
  4936   *
  4937   */
  4938  xcb_input_get_device_dont_propagate_list_cookie_t
  4939  xcb_input_get_device_dont_propagate_list (xcb_connection_t *c,
  4940                                            xcb_window_t      window);
  4941  
  4942  /**
  4943   *
  4944   * @param c The connection
  4945   * @return A cookie
  4946   *
  4947   * Delivers a request to the X server.
  4948   *
  4949   * This form can be used only if the request will cause
  4950   * a reply to be generated. Any returned error will be
  4951   * placed in the event queue.
  4952   */
  4953  xcb_input_get_device_dont_propagate_list_cookie_t
  4954  xcb_input_get_device_dont_propagate_list_unchecked (xcb_connection_t *c,
  4955                                                      xcb_window_t      window);
  4956  
  4957  xcb_input_event_class_t *
  4958  xcb_input_get_device_dont_propagate_list_classes (const xcb_input_get_device_dont_propagate_list_reply_t *R);
  4959  
  4960  int
  4961  xcb_input_get_device_dont_propagate_list_classes_length (const xcb_input_get_device_dont_propagate_list_reply_t *R);
  4962  
  4963  xcb_generic_iterator_t
  4964  xcb_input_get_device_dont_propagate_list_classes_end (const xcb_input_get_device_dont_propagate_list_reply_t *R);
  4965  
  4966  /**
  4967   * Return the reply
  4968   * @param c      The connection
  4969   * @param cookie The cookie
  4970   * @param e      The xcb_generic_error_t supplied
  4971   *
  4972   * Returns the reply of the request asked by
  4973   *
  4974   * The parameter @p e supplied to this function must be NULL if
  4975   * xcb_input_get_device_dont_propagate_list_unchecked(). is used.
  4976   * Otherwise, it stores the error if any.
  4977   *
  4978   * The returned value must be freed by the caller using free().
  4979   */
  4980  xcb_input_get_device_dont_propagate_list_reply_t *
  4981  xcb_input_get_device_dont_propagate_list_reply (xcb_connection_t                                   *c,
  4982                                                  xcb_input_get_device_dont_propagate_list_cookie_t   cookie  /**< */,
  4983                                                  xcb_generic_error_t                               **e);
  4984  
  4985  int
  4986  xcb_input_device_time_coord_sizeof (const void  *_buffer,
  4987                                      uint8_t      num_axes);
  4988  
  4989  int32_t *
  4990  xcb_input_device_time_coord_axisvalues (const xcb_input_device_time_coord_t *R);
  4991  
  4992  int
  4993  xcb_input_device_time_coord_axisvalues_length (const xcb_input_device_time_coord_t *R,
  4994                                                 uint8_t num_axes);
  4995  
  4996  xcb_generic_iterator_t
  4997  xcb_input_device_time_coord_axisvalues_end (const xcb_input_device_time_coord_t *R,
  4998                                              uint8_t num_axes);
  4999  
  5000  /**
  5001   * Get the next element of the iterator
  5002   * @param i Pointer to a xcb_input_device_time_coord_iterator_t
  5003   *
  5004   * Get the next element in the iterator. The member rem is
  5005   * decreased by one. The member data points to the next
  5006   * element. The member index is increased by sizeof(xcb_input_device_time_coord_t)
  5007   */
  5008  void
  5009  xcb_input_device_time_coord_next (xcb_input_device_time_coord_iterator_t *i);
  5010  
  5011  /**
  5012   * Return the iterator pointing to the last element
  5013   * @param i An xcb_input_device_time_coord_iterator_t
  5014   * @return  The iterator pointing to the last element
  5015   *
  5016   * Set the current element in the iterator to the last element.
  5017   * The member rem is set to 0. The member data points to the
  5018   * last element.
  5019   */
  5020  xcb_generic_iterator_t
  5021  xcb_input_device_time_coord_end (xcb_input_device_time_coord_iterator_t i);
  5022  
  5023  int
  5024  xcb_input_get_device_motion_events_sizeof (const void  *_buffer);
  5025  
  5026  /**
  5027   *
  5028   * @param c The connection
  5029   * @return A cookie
  5030   *
  5031   * Delivers a request to the X server.
  5032   *
  5033   */
  5034  xcb_input_get_device_motion_events_cookie_t
  5035  xcb_input_get_device_motion_events (xcb_connection_t *c,
  5036                                      xcb_timestamp_t   start,
  5037                                      xcb_timestamp_t   stop,
  5038                                      uint8_t           device_id);
  5039  
  5040  /**
  5041   *
  5042   * @param c The connection
  5043   * @return A cookie
  5044   *
  5045   * Delivers a request to the X server.
  5046   *
  5047   * This form can be used only if the request will cause
  5048   * a reply to be generated. Any returned error will be
  5049   * placed in the event queue.
  5050   */
  5051  xcb_input_get_device_motion_events_cookie_t
  5052  xcb_input_get_device_motion_events_unchecked (xcb_connection_t *c,
  5053                                                xcb_timestamp_t   start,
  5054                                                xcb_timestamp_t   stop,
  5055                                                uint8_t           device_id);
  5056  
  5057  int
  5058  xcb_input_get_device_motion_events_events_length (const xcb_input_get_device_motion_events_reply_t *R);
  5059  
  5060  xcb_input_device_time_coord_iterator_t
  5061  xcb_input_get_device_motion_events_events_iterator (const xcb_input_get_device_motion_events_reply_t *R);
  5062  
  5063  /**
  5064   * Return the reply
  5065   * @param c      The connection
  5066   * @param cookie The cookie
  5067   * @param e      The xcb_generic_error_t supplied
  5068   *
  5069   * Returns the reply of the request asked by
  5070   *
  5071   * The parameter @p e supplied to this function must be NULL if
  5072   * xcb_input_get_device_motion_events_unchecked(). is used.
  5073   * Otherwise, it stores the error if any.
  5074   *
  5075   * The returned value must be freed by the caller using free().
  5076   */
  5077  xcb_input_get_device_motion_events_reply_t *
  5078  xcb_input_get_device_motion_events_reply (xcb_connection_t                             *c,
  5079                                            xcb_input_get_device_motion_events_cookie_t   cookie  /**< */,
  5080                                            xcb_generic_error_t                         **e);
  5081  
  5082  /**
  5083   *
  5084   * @param c The connection
  5085   * @return A cookie
  5086   *
  5087   * Delivers a request to the X server.
  5088   *
  5089   */
  5090  xcb_input_change_keyboard_device_cookie_t
  5091  xcb_input_change_keyboard_device (xcb_connection_t *c,
  5092                                    uint8_t           device_id);
  5093  
  5094  /**
  5095   *
  5096   * @param c The connection
  5097   * @return A cookie
  5098   *
  5099   * Delivers a request to the X server.
  5100   *
  5101   * This form can be used only if the request will cause
  5102   * a reply to be generated. Any returned error will be
  5103   * placed in the event queue.
  5104   */
  5105  xcb_input_change_keyboard_device_cookie_t
  5106  xcb_input_change_keyboard_device_unchecked (xcb_connection_t *c,
  5107                                              uint8_t           device_id);
  5108  
  5109  /**
  5110   * Return the reply
  5111   * @param c      The connection
  5112   * @param cookie The cookie
  5113   * @param e      The xcb_generic_error_t supplied
  5114   *
  5115   * Returns the reply of the request asked by
  5116   *
  5117   * The parameter @p e supplied to this function must be NULL if
  5118   * xcb_input_change_keyboard_device_unchecked(). is used.
  5119   * Otherwise, it stores the error if any.
  5120   *
  5121   * The returned value must be freed by the caller using free().
  5122   */
  5123  xcb_input_change_keyboard_device_reply_t *
  5124  xcb_input_change_keyboard_device_reply (xcb_connection_t                           *c,
  5125                                          xcb_input_change_keyboard_device_cookie_t   cookie  /**< */,
  5126                                          xcb_generic_error_t                       **e);
  5127  
  5128  /**
  5129   *
  5130   * @param c The connection
  5131   * @return A cookie
  5132   *
  5133   * Delivers a request to the X server.
  5134   *
  5135   */
  5136  xcb_input_change_pointer_device_cookie_t
  5137  xcb_input_change_pointer_device (xcb_connection_t *c,
  5138                                   uint8_t           x_axis,
  5139                                   uint8_t           y_axis,
  5140                                   uint8_t           device_id);
  5141  
  5142  /**
  5143   *
  5144   * @param c The connection
  5145   * @return A cookie
  5146   *
  5147   * Delivers a request to the X server.
  5148   *
  5149   * This form can be used only if the request will cause
  5150   * a reply to be generated. Any returned error will be
  5151   * placed in the event queue.
  5152   */
  5153  xcb_input_change_pointer_device_cookie_t
  5154  xcb_input_change_pointer_device_unchecked (xcb_connection_t *c,
  5155                                             uint8_t           x_axis,
  5156                                             uint8_t           y_axis,
  5157                                             uint8_t           device_id);
  5158  
  5159  /**
  5160   * Return the reply
  5161   * @param c      The connection
  5162   * @param cookie The cookie
  5163   * @param e      The xcb_generic_error_t supplied
  5164   *
  5165   * Returns the reply of the request asked by
  5166   *
  5167   * The parameter @p e supplied to this function must be NULL if
  5168   * xcb_input_change_pointer_device_unchecked(). is used.
  5169   * Otherwise, it stores the error if any.
  5170   *
  5171   * The returned value must be freed by the caller using free().
  5172   */
  5173  xcb_input_change_pointer_device_reply_t *
  5174  xcb_input_change_pointer_device_reply (xcb_connection_t                          *c,
  5175                                         xcb_input_change_pointer_device_cookie_t   cookie  /**< */,
  5176                                         xcb_generic_error_t                      **e);
  5177  
  5178  int
  5179  xcb_input_grab_device_sizeof (const void  *_buffer);
  5180  
  5181  /**
  5182   *
  5183   * @param c The connection
  5184   * @return A cookie
  5185   *
  5186   * Delivers a request to the X server.
  5187   *
  5188   */
  5189  xcb_input_grab_device_cookie_t
  5190  xcb_input_grab_device (xcb_connection_t              *c,
  5191                         xcb_window_t                   grab_window,
  5192                         xcb_timestamp_t                time,
  5193                         uint16_t                       num_classes,
  5194                         uint8_t                        this_device_mode,
  5195                         uint8_t                        other_device_mode,
  5196                         uint8_t                        owner_events,
  5197                         uint8_t                        device_id,
  5198                         const xcb_input_event_class_t *classes);
  5199  
  5200  /**
  5201   *
  5202   * @param c The connection
  5203   * @return A cookie
  5204   *
  5205   * Delivers a request to the X server.
  5206   *
  5207   * This form can be used only if the request will cause
  5208   * a reply to be generated. Any returned error will be
  5209   * placed in the event queue.
  5210   */
  5211  xcb_input_grab_device_cookie_t
  5212  xcb_input_grab_device_unchecked (xcb_connection_t              *c,
  5213                                   xcb_window_t                   grab_window,
  5214                                   xcb_timestamp_t                time,
  5215                                   uint16_t                       num_classes,
  5216                                   uint8_t                        this_device_mode,
  5217                                   uint8_t                        other_device_mode,
  5218                                   uint8_t                        owner_events,
  5219                                   uint8_t                        device_id,
  5220                                   const xcb_input_event_class_t *classes);
  5221  
  5222  /**
  5223   * Return the reply
  5224   * @param c      The connection
  5225   * @param cookie The cookie
  5226   * @param e      The xcb_generic_error_t supplied
  5227   *
  5228   * Returns the reply of the request asked by
  5229   *
  5230   * The parameter @p e supplied to this function must be NULL if
  5231   * xcb_input_grab_device_unchecked(). is used.
  5232   * Otherwise, it stores the error if any.
  5233   *
  5234   * The returned value must be freed by the caller using free().
  5235   */
  5236  xcb_input_grab_device_reply_t *
  5237  xcb_input_grab_device_reply (xcb_connection_t                *c,
  5238                               xcb_input_grab_device_cookie_t   cookie  /**< */,
  5239                               xcb_generic_error_t            **e);
  5240  
  5241  /**
  5242   *
  5243   * @param c The connection
  5244   * @return A cookie
  5245   *
  5246   * Delivers a request to the X server.
  5247   *
  5248   * This form can be used only if the request will not cause
  5249   * a reply to be generated. Any returned error will be
  5250   * saved for handling by xcb_request_check().
  5251   */
  5252  xcb_void_cookie_t
  5253  xcb_input_ungrab_device_checked (xcb_connection_t *c,
  5254                                   xcb_timestamp_t   time,
  5255                                   uint8_t           device_id);
  5256  
  5257  /**
  5258   *
  5259   * @param c The connection
  5260   * @return A cookie
  5261   *
  5262   * Delivers a request to the X server.
  5263   *
  5264   */
  5265  xcb_void_cookie_t
  5266  xcb_input_ungrab_device (xcb_connection_t *c,
  5267                           xcb_timestamp_t   time,
  5268                           uint8_t           device_id);
  5269  
  5270  int
  5271  xcb_input_grab_device_key_sizeof (const void  *_buffer);
  5272  
  5273  /**
  5274   *
  5275   * @param c The connection
  5276   * @return A cookie
  5277   *
  5278   * Delivers a request to the X server.
  5279   *
  5280   * This form can be used only if the request will not cause
  5281   * a reply to be generated. Any returned error will be
  5282   * saved for handling by xcb_request_check().
  5283   */
  5284  xcb_void_cookie_t
  5285  xcb_input_grab_device_key_checked (xcb_connection_t              *c,
  5286                                     xcb_window_t                   grab_window,
  5287                                     uint16_t                       num_classes,
  5288                                     uint16_t                       modifiers,
  5289                                     uint8_t                        modifier_device,
  5290                                     uint8_t                        grabbed_device,
  5291                                     uint8_t                        key,
  5292                                     uint8_t                        this_device_mode,
  5293                                     uint8_t                        other_device_mode,
  5294                                     uint8_t                        owner_events,
  5295                                     const xcb_input_event_class_t *classes);
  5296  
  5297  /**
  5298   *
  5299   * @param c The connection
  5300   * @return A cookie
  5301   *
  5302   * Delivers a request to the X server.
  5303   *
  5304   */
  5305  xcb_void_cookie_t
  5306  xcb_input_grab_device_key (xcb_connection_t              *c,
  5307                             xcb_window_t                   grab_window,
  5308                             uint16_t                       num_classes,
  5309                             uint16_t                       modifiers,
  5310                             uint8_t                        modifier_device,
  5311                             uint8_t                        grabbed_device,
  5312                             uint8_t                        key,
  5313                             uint8_t                        this_device_mode,
  5314                             uint8_t                        other_device_mode,
  5315                             uint8_t                        owner_events,
  5316                             const xcb_input_event_class_t *classes);
  5317  
  5318  xcb_input_event_class_t *
  5319  xcb_input_grab_device_key_classes (const xcb_input_grab_device_key_request_t *R);
  5320  
  5321  int
  5322  xcb_input_grab_device_key_classes_length (const xcb_input_grab_device_key_request_t *R);
  5323  
  5324  xcb_generic_iterator_t
  5325  xcb_input_grab_device_key_classes_end (const xcb_input_grab_device_key_request_t *R);
  5326  
  5327  /**
  5328   *
  5329   * @param c The connection
  5330   * @return A cookie
  5331   *
  5332   * Delivers a request to the X server.
  5333   *
  5334   * This form can be used only if the request will not cause
  5335   * a reply to be generated. Any returned error will be
  5336   * saved for handling by xcb_request_check().
  5337   */
  5338  xcb_void_cookie_t
  5339  xcb_input_ungrab_device_key_checked (xcb_connection_t *c,
  5340                                       xcb_window_t      grabWindow,
  5341                                       uint16_t          modifiers,
  5342                                       uint8_t           modifier_device,
  5343                                       uint8_t           key,
  5344                                       uint8_t           grabbed_device);
  5345  
  5346  /**
  5347   *
  5348   * @param c The connection
  5349   * @return A cookie
  5350   *
  5351   * Delivers a request to the X server.
  5352   *
  5353   */
  5354  xcb_void_cookie_t
  5355  xcb_input_ungrab_device_key (xcb_connection_t *c,
  5356                               xcb_window_t      grabWindow,
  5357                               uint16_t          modifiers,
  5358                               uint8_t           modifier_device,
  5359                               uint8_t           key,
  5360                               uint8_t           grabbed_device);
  5361  
  5362  int
  5363  xcb_input_grab_device_button_sizeof (const void  *_buffer);
  5364  
  5365  /**
  5366   *
  5367   * @param c The connection
  5368   * @return A cookie
  5369   *
  5370   * Delivers a request to the X server.
  5371   *
  5372   * This form can be used only if the request will not cause
  5373   * a reply to be generated. Any returned error will be
  5374   * saved for handling by xcb_request_check().
  5375   */
  5376  xcb_void_cookie_t
  5377  xcb_input_grab_device_button_checked (xcb_connection_t              *c,
  5378                                        xcb_window_t                   grab_window,
  5379                                        uint8_t                        grabbed_device,
  5380                                        uint8_t                        modifier_device,
  5381                                        uint16_t                       num_classes,
  5382                                        uint16_t                       modifiers,
  5383                                        uint8_t                        this_device_mode,
  5384                                        uint8_t                        other_device_mode,
  5385                                        uint8_t                        button,
  5386                                        uint8_t                        owner_events,
  5387                                        const xcb_input_event_class_t *classes);
  5388  
  5389  /**
  5390   *
  5391   * @param c The connection
  5392   * @return A cookie
  5393   *
  5394   * Delivers a request to the X server.
  5395   *
  5396   */
  5397  xcb_void_cookie_t
  5398  xcb_input_grab_device_button (xcb_connection_t              *c,
  5399                                xcb_window_t                   grab_window,
  5400                                uint8_t                        grabbed_device,
  5401                                uint8_t                        modifier_device,
  5402                                uint16_t                       num_classes,
  5403                                uint16_t                       modifiers,
  5404                                uint8_t                        this_device_mode,
  5405                                uint8_t                        other_device_mode,
  5406                                uint8_t                        button,
  5407                                uint8_t                        owner_events,
  5408                                const xcb_input_event_class_t *classes);
  5409  
  5410  xcb_input_event_class_t *
  5411  xcb_input_grab_device_button_classes (const xcb_input_grab_device_button_request_t *R);
  5412  
  5413  int
  5414  xcb_input_grab_device_button_classes_length (const xcb_input_grab_device_button_request_t *R);
  5415  
  5416  xcb_generic_iterator_t
  5417  xcb_input_grab_device_button_classes_end (const xcb_input_grab_device_button_request_t *R);
  5418  
  5419  /**
  5420   *
  5421   * @param c The connection
  5422   * @return A cookie
  5423   *
  5424   * Delivers a request to the X server.
  5425   *
  5426   * This form can be used only if the request will not cause
  5427   * a reply to be generated. Any returned error will be
  5428   * saved for handling by xcb_request_check().
  5429   */
  5430  xcb_void_cookie_t
  5431  xcb_input_ungrab_device_button_checked (xcb_connection_t *c,
  5432                                          xcb_window_t      grab_window,
  5433                                          uint16_t          modifiers,
  5434                                          uint8_t           modifier_device,
  5435                                          uint8_t           button,
  5436                                          uint8_t           grabbed_device);
  5437  
  5438  /**
  5439   *
  5440   * @param c The connection
  5441   * @return A cookie
  5442   *
  5443   * Delivers a request to the X server.
  5444   *
  5445   */
  5446  xcb_void_cookie_t
  5447  xcb_input_ungrab_device_button (xcb_connection_t *c,
  5448                                  xcb_window_t      grab_window,
  5449                                  uint16_t          modifiers,
  5450                                  uint8_t           modifier_device,
  5451                                  uint8_t           button,
  5452                                  uint8_t           grabbed_device);
  5453  
  5454  /**
  5455   *
  5456   * @param c The connection
  5457   * @return A cookie
  5458   *
  5459   * Delivers a request to the X server.
  5460   *
  5461   * This form can be used only if the request will not cause
  5462   * a reply to be generated. Any returned error will be
  5463   * saved for handling by xcb_request_check().
  5464   */
  5465  xcb_void_cookie_t
  5466  xcb_input_allow_device_events_checked (xcb_connection_t *c,
  5467                                         xcb_timestamp_t   time,
  5468                                         uint8_t           mode,
  5469                                         uint8_t           device_id);
  5470  
  5471  /**
  5472   *
  5473   * @param c The connection
  5474   * @return A cookie
  5475   *
  5476   * Delivers a request to the X server.
  5477   *
  5478   */
  5479  xcb_void_cookie_t
  5480  xcb_input_allow_device_events (xcb_connection_t *c,
  5481                                 xcb_timestamp_t   time,
  5482                                 uint8_t           mode,
  5483                                 uint8_t           device_id);
  5484  
  5485  /**
  5486   *
  5487   * @param c The connection
  5488   * @return A cookie
  5489   *
  5490   * Delivers a request to the X server.
  5491   *
  5492   */
  5493  xcb_input_get_device_focus_cookie_t
  5494  xcb_input_get_device_focus (xcb_connection_t *c,
  5495                              uint8_t           device_id);
  5496  
  5497  /**
  5498   *
  5499   * @param c The connection
  5500   * @return A cookie
  5501   *
  5502   * Delivers a request to the X server.
  5503   *
  5504   * This form can be used only if the request will cause
  5505   * a reply to be generated. Any returned error will be
  5506   * placed in the event queue.
  5507   */
  5508  xcb_input_get_device_focus_cookie_t
  5509  xcb_input_get_device_focus_unchecked (xcb_connection_t *c,
  5510                                        uint8_t           device_id);
  5511  
  5512  /**
  5513   * Return the reply
  5514   * @param c      The connection
  5515   * @param cookie The cookie
  5516   * @param e      The xcb_generic_error_t supplied
  5517   *
  5518   * Returns the reply of the request asked by
  5519   *
  5520   * The parameter @p e supplied to this function must be NULL if
  5521   * xcb_input_get_device_focus_unchecked(). is used.
  5522   * Otherwise, it stores the error if any.
  5523   *
  5524   * The returned value must be freed by the caller using free().
  5525   */
  5526  xcb_input_get_device_focus_reply_t *
  5527  xcb_input_get_device_focus_reply (xcb_connection_t                     *c,
  5528                                    xcb_input_get_device_focus_cookie_t   cookie  /**< */,
  5529                                    xcb_generic_error_t                 **e);
  5530  
  5531  /**
  5532   *
  5533   * @param c The connection
  5534   * @return A cookie
  5535   *
  5536   * Delivers a request to the X server.
  5537   *
  5538   * This form can be used only if the request will not cause
  5539   * a reply to be generated. Any returned error will be
  5540   * saved for handling by xcb_request_check().
  5541   */
  5542  xcb_void_cookie_t
  5543  xcb_input_set_device_focus_checked (xcb_connection_t *c,
  5544                                      xcb_window_t      focus,
  5545                                      xcb_timestamp_t   time,
  5546                                      uint8_t           revert_to,
  5547                                      uint8_t           device_id);
  5548  
  5549  /**
  5550   *
  5551   * @param c The connection
  5552   * @return A cookie
  5553   *
  5554   * Delivers a request to the X server.
  5555   *
  5556   */
  5557  xcb_void_cookie_t
  5558  xcb_input_set_device_focus (xcb_connection_t *c,
  5559                              xcb_window_t      focus,
  5560                              xcb_timestamp_t   time,
  5561                              uint8_t           revert_to,
  5562                              uint8_t           device_id);
  5563  
  5564  /**
  5565   * Get the next element of the iterator
  5566   * @param i Pointer to a xcb_input_kbd_feedback_state_iterator_t
  5567   *
  5568   * Get the next element in the iterator. The member rem is
  5569   * decreased by one. The member data points to the next
  5570   * element. The member index is increased by sizeof(xcb_input_kbd_feedback_state_t)
  5571   */
  5572  void
  5573  xcb_input_kbd_feedback_state_next (xcb_input_kbd_feedback_state_iterator_t *i);
  5574  
  5575  /**
  5576   * Return the iterator pointing to the last element
  5577   * @param i An xcb_input_kbd_feedback_state_iterator_t
  5578   * @return  The iterator pointing to the last element
  5579   *
  5580   * Set the current element in the iterator to the last element.
  5581   * The member rem is set to 0. The member data points to the
  5582   * last element.
  5583   */
  5584  xcb_generic_iterator_t
  5585  xcb_input_kbd_feedback_state_end (xcb_input_kbd_feedback_state_iterator_t i);
  5586  
  5587  /**
  5588   * Get the next element of the iterator
  5589   * @param i Pointer to a xcb_input_ptr_feedback_state_iterator_t
  5590   *
  5591   * Get the next element in the iterator. The member rem is
  5592   * decreased by one. The member data points to the next
  5593   * element. The member index is increased by sizeof(xcb_input_ptr_feedback_state_t)
  5594   */
  5595  void
  5596  xcb_input_ptr_feedback_state_next (xcb_input_ptr_feedback_state_iterator_t *i);
  5597  
  5598  /**
  5599   * Return the iterator pointing to the last element
  5600   * @param i An xcb_input_ptr_feedback_state_iterator_t
  5601   * @return  The iterator pointing to the last element
  5602   *
  5603   * Set the current element in the iterator to the last element.
  5604   * The member rem is set to 0. The member data points to the
  5605   * last element.
  5606   */
  5607  xcb_generic_iterator_t
  5608  xcb_input_ptr_feedback_state_end (xcb_input_ptr_feedback_state_iterator_t i);
  5609  
  5610  /**
  5611   * Get the next element of the iterator
  5612   * @param i Pointer to a xcb_input_integer_feedback_state_iterator_t
  5613   *
  5614   * Get the next element in the iterator. The member rem is
  5615   * decreased by one. The member data points to the next
  5616   * element. The member index is increased by sizeof(xcb_input_integer_feedback_state_t)
  5617   */
  5618  void
  5619  xcb_input_integer_feedback_state_next (xcb_input_integer_feedback_state_iterator_t *i);
  5620  
  5621  /**
  5622   * Return the iterator pointing to the last element
  5623   * @param i An xcb_input_integer_feedback_state_iterator_t
  5624   * @return  The iterator pointing to the last element
  5625   *
  5626   * Set the current element in the iterator to the last element.
  5627   * The member rem is set to 0. The member data points to the
  5628   * last element.
  5629   */
  5630  xcb_generic_iterator_t
  5631  xcb_input_integer_feedback_state_end (xcb_input_integer_feedback_state_iterator_t i);
  5632  
  5633  int
  5634  xcb_input_string_feedback_state_sizeof (const void  *_buffer);
  5635  
  5636  xcb_keysym_t *
  5637  xcb_input_string_feedback_state_keysyms (const xcb_input_string_feedback_state_t *R);
  5638  
  5639  int
  5640  xcb_input_string_feedback_state_keysyms_length (const xcb_input_string_feedback_state_t *R);
  5641  
  5642  xcb_generic_iterator_t
  5643  xcb_input_string_feedback_state_keysyms_end (const xcb_input_string_feedback_state_t *R);
  5644  
  5645  /**
  5646   * Get the next element of the iterator
  5647   * @param i Pointer to a xcb_input_string_feedback_state_iterator_t
  5648   *
  5649   * Get the next element in the iterator. The member rem is
  5650   * decreased by one. The member data points to the next
  5651   * element. The member index is increased by sizeof(xcb_input_string_feedback_state_t)
  5652   */
  5653  void
  5654  xcb_input_string_feedback_state_next (xcb_input_string_feedback_state_iterator_t *i);
  5655  
  5656  /**
  5657   * Return the iterator pointing to the last element
  5658   * @param i An xcb_input_string_feedback_state_iterator_t
  5659   * @return  The iterator pointing to the last element
  5660   *
  5661   * Set the current element in the iterator to the last element.
  5662   * The member rem is set to 0. The member data points to the
  5663   * last element.
  5664   */
  5665  xcb_generic_iterator_t
  5666  xcb_input_string_feedback_state_end (xcb_input_string_feedback_state_iterator_t i);
  5667  
  5668  /**
  5669   * Get the next element of the iterator
  5670   * @param i Pointer to a xcb_input_bell_feedback_state_iterator_t
  5671   *
  5672   * Get the next element in the iterator. The member rem is
  5673   * decreased by one. The member data points to the next
  5674   * element. The member index is increased by sizeof(xcb_input_bell_feedback_state_t)
  5675   */
  5676  void
  5677  xcb_input_bell_feedback_state_next (xcb_input_bell_feedback_state_iterator_t *i);
  5678  
  5679  /**
  5680   * Return the iterator pointing to the last element
  5681   * @param i An xcb_input_bell_feedback_state_iterator_t
  5682   * @return  The iterator pointing to the last element
  5683   *
  5684   * Set the current element in the iterator to the last element.
  5685   * The member rem is set to 0. The member data points to the
  5686   * last element.
  5687   */
  5688  xcb_generic_iterator_t
  5689  xcb_input_bell_feedback_state_end (xcb_input_bell_feedback_state_iterator_t i);
  5690  
  5691  /**
  5692   * Get the next element of the iterator
  5693   * @param i Pointer to a xcb_input_led_feedback_state_iterator_t
  5694   *
  5695   * Get the next element in the iterator. The member rem is
  5696   * decreased by one. The member data points to the next
  5697   * element. The member index is increased by sizeof(xcb_input_led_feedback_state_t)
  5698   */
  5699  void
  5700  xcb_input_led_feedback_state_next (xcb_input_led_feedback_state_iterator_t *i);
  5701  
  5702  /**
  5703   * Return the iterator pointing to the last element
  5704   * @param i An xcb_input_led_feedback_state_iterator_t
  5705   * @return  The iterator pointing to the last element
  5706   *
  5707   * Set the current element in the iterator to the last element.
  5708   * The member rem is set to 0. The member data points to the
  5709   * last element.
  5710   */
  5711  xcb_generic_iterator_t
  5712  xcb_input_led_feedback_state_end (xcb_input_led_feedback_state_iterator_t i);
  5713  
  5714  xcb_keysym_t *
  5715  xcb_input_feedback_state_data_string_keysyms (const xcb_input_feedback_state_data_t *S);
  5716  
  5717  int
  5718  xcb_input_feedback_state_data_string_keysyms_length (const xcb_input_feedback_state_t *R,
  5719                                                       const xcb_input_feedback_state_data_t *S);
  5720  
  5721  xcb_generic_iterator_t
  5722  xcb_input_feedback_state_data_string_keysyms_end (const xcb_input_feedback_state_t *R,
  5723                                                    const xcb_input_feedback_state_data_t *S);
  5724  
  5725  int
  5726  xcb_input_feedback_state_data_serialize (void                                  **_buffer,
  5727                                           uint8_t                                 class_id,
  5728                                           const xcb_input_feedback_state_data_t  *_aux);
  5729  
  5730  int
  5731  xcb_input_feedback_state_data_unpack (const void                       *_buffer,
  5732                                        uint8_t                           class_id,
  5733                                        xcb_input_feedback_state_data_t  *_aux);
  5734  
  5735  int
  5736  xcb_input_feedback_state_data_sizeof (const void  *_buffer,
  5737                                        uint8_t      class_id);
  5738  
  5739  int
  5740  xcb_input_feedback_state_sizeof (const void  *_buffer);
  5741  
  5742  /**
  5743   * Get the next element of the iterator
  5744   * @param i Pointer to a xcb_input_feedback_state_iterator_t
  5745   *
  5746   * Get the next element in the iterator. The member rem is
  5747   * decreased by one. The member data points to the next
  5748   * element. The member index is increased by sizeof(xcb_input_feedback_state_t)
  5749   */
  5750  void
  5751  xcb_input_feedback_state_next (xcb_input_feedback_state_iterator_t *i);
  5752  
  5753  /**
  5754   * Return the iterator pointing to the last element
  5755   * @param i An xcb_input_feedback_state_iterator_t
  5756   * @return  The iterator pointing to the last element
  5757   *
  5758   * Set the current element in the iterator to the last element.
  5759   * The member rem is set to 0. The member data points to the
  5760   * last element.
  5761   */
  5762  xcb_generic_iterator_t
  5763  xcb_input_feedback_state_end (xcb_input_feedback_state_iterator_t i);
  5764  
  5765  int
  5766  xcb_input_get_feedback_control_sizeof (const void  *_buffer);
  5767  
  5768  /**
  5769   *
  5770   * @param c The connection
  5771   * @return A cookie
  5772   *
  5773   * Delivers a request to the X server.
  5774   *
  5775   */
  5776  xcb_input_get_feedback_control_cookie_t
  5777  xcb_input_get_feedback_control (xcb_connection_t *c,
  5778                                  uint8_t           device_id);
  5779  
  5780  /**
  5781   *
  5782   * @param c The connection
  5783   * @return A cookie
  5784   *
  5785   * Delivers a request to the X server.
  5786   *
  5787   * This form can be used only if the request will cause
  5788   * a reply to be generated. Any returned error will be
  5789   * placed in the event queue.
  5790   */
  5791  xcb_input_get_feedback_control_cookie_t
  5792  xcb_input_get_feedback_control_unchecked (xcb_connection_t *c,
  5793                                            uint8_t           device_id);
  5794  
  5795  int
  5796  xcb_input_get_feedback_control_feedbacks_length (const xcb_input_get_feedback_control_reply_t *R);
  5797  
  5798  xcb_input_feedback_state_iterator_t
  5799  xcb_input_get_feedback_control_feedbacks_iterator (const xcb_input_get_feedback_control_reply_t *R);
  5800  
  5801  /**
  5802   * Return the reply
  5803   * @param c      The connection
  5804   * @param cookie The cookie
  5805   * @param e      The xcb_generic_error_t supplied
  5806   *
  5807   * Returns the reply of the request asked by
  5808   *
  5809   * The parameter @p e supplied to this function must be NULL if
  5810   * xcb_input_get_feedback_control_unchecked(). is used.
  5811   * Otherwise, it stores the error if any.
  5812   *
  5813   * The returned value must be freed by the caller using free().
  5814   */
  5815  xcb_input_get_feedback_control_reply_t *
  5816  xcb_input_get_feedback_control_reply (xcb_connection_t                         *c,
  5817                                        xcb_input_get_feedback_control_cookie_t   cookie  /**< */,
  5818                                        xcb_generic_error_t                     **e);
  5819  
  5820  /**
  5821   * Get the next element of the iterator
  5822   * @param i Pointer to a xcb_input_kbd_feedback_ctl_iterator_t
  5823   *
  5824   * Get the next element in the iterator. The member rem is
  5825   * decreased by one. The member data points to the next
  5826   * element. The member index is increased by sizeof(xcb_input_kbd_feedback_ctl_t)
  5827   */
  5828  void
  5829  xcb_input_kbd_feedback_ctl_next (xcb_input_kbd_feedback_ctl_iterator_t *i);
  5830  
  5831  /**
  5832   * Return the iterator pointing to the last element
  5833   * @param i An xcb_input_kbd_feedback_ctl_iterator_t
  5834   * @return  The iterator pointing to the last element
  5835   *
  5836   * Set the current element in the iterator to the last element.
  5837   * The member rem is set to 0. The member data points to the
  5838   * last element.
  5839   */
  5840  xcb_generic_iterator_t
  5841  xcb_input_kbd_feedback_ctl_end (xcb_input_kbd_feedback_ctl_iterator_t i);
  5842  
  5843  /**
  5844   * Get the next element of the iterator
  5845   * @param i Pointer to a xcb_input_ptr_feedback_ctl_iterator_t
  5846   *
  5847   * Get the next element in the iterator. The member rem is
  5848   * decreased by one. The member data points to the next
  5849   * element. The member index is increased by sizeof(xcb_input_ptr_feedback_ctl_t)
  5850   */
  5851  void
  5852  xcb_input_ptr_feedback_ctl_next (xcb_input_ptr_feedback_ctl_iterator_t *i);
  5853  
  5854  /**
  5855   * Return the iterator pointing to the last element
  5856   * @param i An xcb_input_ptr_feedback_ctl_iterator_t
  5857   * @return  The iterator pointing to the last element
  5858   *
  5859   * Set the current element in the iterator to the last element.
  5860   * The member rem is set to 0. The member data points to the
  5861   * last element.
  5862   */
  5863  xcb_generic_iterator_t
  5864  xcb_input_ptr_feedback_ctl_end (xcb_input_ptr_feedback_ctl_iterator_t i);
  5865  
  5866  /**
  5867   * Get the next element of the iterator
  5868   * @param i Pointer to a xcb_input_integer_feedback_ctl_iterator_t
  5869   *
  5870   * Get the next element in the iterator. The member rem is
  5871   * decreased by one. The member data points to the next
  5872   * element. The member index is increased by sizeof(xcb_input_integer_feedback_ctl_t)
  5873   */
  5874  void
  5875  xcb_input_integer_feedback_ctl_next (xcb_input_integer_feedback_ctl_iterator_t *i);
  5876  
  5877  /**
  5878   * Return the iterator pointing to the last element
  5879   * @param i An xcb_input_integer_feedback_ctl_iterator_t
  5880   * @return  The iterator pointing to the last element
  5881   *
  5882   * Set the current element in the iterator to the last element.
  5883   * The member rem is set to 0. The member data points to the
  5884   * last element.
  5885   */
  5886  xcb_generic_iterator_t
  5887  xcb_input_integer_feedback_ctl_end (xcb_input_integer_feedback_ctl_iterator_t i);
  5888  
  5889  int
  5890  xcb_input_string_feedback_ctl_sizeof (const void  *_buffer);
  5891  
  5892  xcb_keysym_t *
  5893  xcb_input_string_feedback_ctl_keysyms (const xcb_input_string_feedback_ctl_t *R);
  5894  
  5895  int
  5896  xcb_input_string_feedback_ctl_keysyms_length (const xcb_input_string_feedback_ctl_t *R);
  5897  
  5898  xcb_generic_iterator_t
  5899  xcb_input_string_feedback_ctl_keysyms_end (const xcb_input_string_feedback_ctl_t *R);
  5900  
  5901  /**
  5902   * Get the next element of the iterator
  5903   * @param i Pointer to a xcb_input_string_feedback_ctl_iterator_t
  5904   *
  5905   * Get the next element in the iterator. The member rem is
  5906   * decreased by one. The member data points to the next
  5907   * element. The member index is increased by sizeof(xcb_input_string_feedback_ctl_t)
  5908   */
  5909  void
  5910  xcb_input_string_feedback_ctl_next (xcb_input_string_feedback_ctl_iterator_t *i);
  5911  
  5912  /**
  5913   * Return the iterator pointing to the last element
  5914   * @param i An xcb_input_string_feedback_ctl_iterator_t
  5915   * @return  The iterator pointing to the last element
  5916   *
  5917   * Set the current element in the iterator to the last element.
  5918   * The member rem is set to 0. The member data points to the
  5919   * last element.
  5920   */
  5921  xcb_generic_iterator_t
  5922  xcb_input_string_feedback_ctl_end (xcb_input_string_feedback_ctl_iterator_t i);
  5923  
  5924  /**
  5925   * Get the next element of the iterator
  5926   * @param i Pointer to a xcb_input_bell_feedback_ctl_iterator_t
  5927   *
  5928   * Get the next element in the iterator. The member rem is
  5929   * decreased by one. The member data points to the next
  5930   * element. The member index is increased by sizeof(xcb_input_bell_feedback_ctl_t)
  5931   */
  5932  void
  5933  xcb_input_bell_feedback_ctl_next (xcb_input_bell_feedback_ctl_iterator_t *i);
  5934  
  5935  /**
  5936   * Return the iterator pointing to the last element
  5937   * @param i An xcb_input_bell_feedback_ctl_iterator_t
  5938   * @return  The iterator pointing to the last element
  5939   *
  5940   * Set the current element in the iterator to the last element.
  5941   * The member rem is set to 0. The member data points to the
  5942   * last element.
  5943   */
  5944  xcb_generic_iterator_t
  5945  xcb_input_bell_feedback_ctl_end (xcb_input_bell_feedback_ctl_iterator_t i);
  5946  
  5947  /**
  5948   * Get the next element of the iterator
  5949   * @param i Pointer to a xcb_input_led_feedback_ctl_iterator_t
  5950   *
  5951   * Get the next element in the iterator. The member rem is
  5952   * decreased by one. The member data points to the next
  5953   * element. The member index is increased by sizeof(xcb_input_led_feedback_ctl_t)
  5954   */
  5955  void
  5956  xcb_input_led_feedback_ctl_next (xcb_input_led_feedback_ctl_iterator_t *i);
  5957  
  5958  /**
  5959   * Return the iterator pointing to the last element
  5960   * @param i An xcb_input_led_feedback_ctl_iterator_t
  5961   * @return  The iterator pointing to the last element
  5962   *
  5963   * Set the current element in the iterator to the last element.
  5964   * The member rem is set to 0. The member data points to the
  5965   * last element.
  5966   */
  5967  xcb_generic_iterator_t
  5968  xcb_input_led_feedback_ctl_end (xcb_input_led_feedback_ctl_iterator_t i);
  5969  
  5970  xcb_keysym_t *
  5971  xcb_input_feedback_ctl_data_string_keysyms (const xcb_input_feedback_ctl_data_t *S);
  5972  
  5973  int
  5974  xcb_input_feedback_ctl_data_string_keysyms_length (const xcb_input_feedback_ctl_t *R,
  5975                                                     const xcb_input_feedback_ctl_data_t *S);
  5976  
  5977  xcb_generic_iterator_t
  5978  xcb_input_feedback_ctl_data_string_keysyms_end (const xcb_input_feedback_ctl_t *R,
  5979                                                  const xcb_input_feedback_ctl_data_t *S);
  5980  
  5981  int
  5982  xcb_input_feedback_ctl_data_serialize (void                                **_buffer,
  5983                                         uint8_t                               class_id,
  5984                                         const xcb_input_feedback_ctl_data_t  *_aux);
  5985  
  5986  int
  5987  xcb_input_feedback_ctl_data_unpack (const void                     *_buffer,
  5988                                      uint8_t                         class_id,
  5989                                      xcb_input_feedback_ctl_data_t  *_aux);
  5990  
  5991  int
  5992  xcb_input_feedback_ctl_data_sizeof (const void  *_buffer,
  5993                                      uint8_t      class_id);
  5994  
  5995  int
  5996  xcb_input_feedback_ctl_sizeof (const void  *_buffer);
  5997  
  5998  /**
  5999   * Get the next element of the iterator
  6000   * @param i Pointer to a xcb_input_feedback_ctl_iterator_t
  6001   *
  6002   * Get the next element in the iterator. The member rem is
  6003   * decreased by one. The member data points to the next
  6004   * element. The member index is increased by sizeof(xcb_input_feedback_ctl_t)
  6005   */
  6006  void
  6007  xcb_input_feedback_ctl_next (xcb_input_feedback_ctl_iterator_t *i);
  6008  
  6009  /**
  6010   * Return the iterator pointing to the last element
  6011   * @param i An xcb_input_feedback_ctl_iterator_t
  6012   * @return  The iterator pointing to the last element
  6013   *
  6014   * Set the current element in the iterator to the last element.
  6015   * The member rem is set to 0. The member data points to the
  6016   * last element.
  6017   */
  6018  xcb_generic_iterator_t
  6019  xcb_input_feedback_ctl_end (xcb_input_feedback_ctl_iterator_t i);
  6020  
  6021  int
  6022  xcb_input_change_feedback_control_sizeof (const void  *_buffer);
  6023  
  6024  /**
  6025   *
  6026   * @param c The connection
  6027   * @return A cookie
  6028   *
  6029   * Delivers a request to the X server.
  6030   *
  6031   * This form can be used only if the request will not cause
  6032   * a reply to be generated. Any returned error will be
  6033   * saved for handling by xcb_request_check().
  6034   */
  6035  xcb_void_cookie_t
  6036  xcb_input_change_feedback_control_checked (xcb_connection_t         *c,
  6037                                             uint32_t                  mask,
  6038                                             uint8_t                   device_id,
  6039                                             uint8_t                   feedback_id,
  6040                                             xcb_input_feedback_ctl_t *feedback);
  6041  
  6042  /**
  6043   *
  6044   * @param c The connection
  6045   * @return A cookie
  6046   *
  6047   * Delivers a request to the X server.
  6048   *
  6049   */
  6050  xcb_void_cookie_t
  6051  xcb_input_change_feedback_control (xcb_connection_t         *c,
  6052                                     uint32_t                  mask,
  6053                                     uint8_t                   device_id,
  6054                                     uint8_t                   feedback_id,
  6055                                     xcb_input_feedback_ctl_t *feedback);
  6056  
  6057  xcb_input_feedback_ctl_t *
  6058  xcb_input_change_feedback_control_feedback (const xcb_input_change_feedback_control_request_t *R);
  6059  
  6060  int
  6061  xcb_input_get_device_key_mapping_sizeof (const void  *_buffer);
  6062  
  6063  /**
  6064   *
  6065   * @param c The connection
  6066   * @return A cookie
  6067   *
  6068   * Delivers a request to the X server.
  6069   *
  6070   */
  6071  xcb_input_get_device_key_mapping_cookie_t
  6072  xcb_input_get_device_key_mapping (xcb_connection_t     *c,
  6073                                    uint8_t               device_id,
  6074                                    xcb_input_key_code_t  first_keycode,
  6075                                    uint8_t               count);
  6076  
  6077  /**
  6078   *
  6079   * @param c The connection
  6080   * @return A cookie
  6081   *
  6082   * Delivers a request to the X server.
  6083   *
  6084   * This form can be used only if the request will cause
  6085   * a reply to be generated. Any returned error will be
  6086   * placed in the event queue.
  6087   */
  6088  xcb_input_get_device_key_mapping_cookie_t
  6089  xcb_input_get_device_key_mapping_unchecked (xcb_connection_t     *c,
  6090                                              uint8_t               device_id,
  6091                                              xcb_input_key_code_t  first_keycode,
  6092                                              uint8_t               count);
  6093  
  6094  xcb_keysym_t *
  6095  xcb_input_get_device_key_mapping_keysyms (const xcb_input_get_device_key_mapping_reply_t *R);
  6096  
  6097  int
  6098  xcb_input_get_device_key_mapping_keysyms_length (const xcb_input_get_device_key_mapping_reply_t *R);
  6099  
  6100  xcb_generic_iterator_t
  6101  xcb_input_get_device_key_mapping_keysyms_end (const xcb_input_get_device_key_mapping_reply_t *R);
  6102  
  6103  /**
  6104   * Return the reply
  6105   * @param c      The connection
  6106   * @param cookie The cookie
  6107   * @param e      The xcb_generic_error_t supplied
  6108   *
  6109   * Returns the reply of the request asked by
  6110   *
  6111   * The parameter @p e supplied to this function must be NULL if
  6112   * xcb_input_get_device_key_mapping_unchecked(). is used.
  6113   * Otherwise, it stores the error if any.
  6114   *
  6115   * The returned value must be freed by the caller using free().
  6116   */
  6117  xcb_input_get_device_key_mapping_reply_t *
  6118  xcb_input_get_device_key_mapping_reply (xcb_connection_t                           *c,
  6119                                          xcb_input_get_device_key_mapping_cookie_t   cookie  /**< */,
  6120                                          xcb_generic_error_t                       **e);
  6121  
  6122  int
  6123  xcb_input_change_device_key_mapping_sizeof (const void  *_buffer);
  6124  
  6125  /**
  6126   *
  6127   * @param c The connection
  6128   * @return A cookie
  6129   *
  6130   * Delivers a request to the X server.
  6131   *
  6132   * This form can be used only if the request will not cause
  6133   * a reply to be generated. Any returned error will be
  6134   * saved for handling by xcb_request_check().
  6135   */
  6136  xcb_void_cookie_t
  6137  xcb_input_change_device_key_mapping_checked (xcb_connection_t     *c,
  6138                                               uint8_t               device_id,
  6139                                               xcb_input_key_code_t  first_keycode,
  6140                                               uint8_t               keysyms_per_keycode,
  6141                                               uint8_t               keycode_count,
  6142                                               const xcb_keysym_t   *keysyms);
  6143  
  6144  /**
  6145   *
  6146   * @param c The connection
  6147   * @return A cookie
  6148   *
  6149   * Delivers a request to the X server.
  6150   *
  6151   */
  6152  xcb_void_cookie_t
  6153  xcb_input_change_device_key_mapping (xcb_connection_t     *c,
  6154                                       uint8_t               device_id,
  6155                                       xcb_input_key_code_t  first_keycode,
  6156                                       uint8_t               keysyms_per_keycode,
  6157                                       uint8_t               keycode_count,
  6158                                       const xcb_keysym_t   *keysyms);
  6159  
  6160  xcb_keysym_t *
  6161  xcb_input_change_device_key_mapping_keysyms (const xcb_input_change_device_key_mapping_request_t *R);
  6162  
  6163  int
  6164  xcb_input_change_device_key_mapping_keysyms_length (const xcb_input_change_device_key_mapping_request_t *R);
  6165  
  6166  xcb_generic_iterator_t
  6167  xcb_input_change_device_key_mapping_keysyms_end (const xcb_input_change_device_key_mapping_request_t *R);
  6168  
  6169  int
  6170  xcb_input_get_device_modifier_mapping_sizeof (const void  *_buffer);
  6171  
  6172  /**
  6173   *
  6174   * @param c The connection
  6175   * @return A cookie
  6176   *
  6177   * Delivers a request to the X server.
  6178   *
  6179   */
  6180  xcb_input_get_device_modifier_mapping_cookie_t
  6181  xcb_input_get_device_modifier_mapping (xcb_connection_t *c,
  6182                                         uint8_t           device_id);
  6183  
  6184  /**
  6185   *
  6186   * @param c The connection
  6187   * @return A cookie
  6188   *
  6189   * Delivers a request to the X server.
  6190   *
  6191   * This form can be used only if the request will cause
  6192   * a reply to be generated. Any returned error will be
  6193   * placed in the event queue.
  6194   */
  6195  xcb_input_get_device_modifier_mapping_cookie_t
  6196  xcb_input_get_device_modifier_mapping_unchecked (xcb_connection_t *c,
  6197                                                   uint8_t           device_id);
  6198  
  6199  uint8_t *
  6200  xcb_input_get_device_modifier_mapping_keymaps (const xcb_input_get_device_modifier_mapping_reply_t *R);
  6201  
  6202  int
  6203  xcb_input_get_device_modifier_mapping_keymaps_length (const xcb_input_get_device_modifier_mapping_reply_t *R);
  6204  
  6205  xcb_generic_iterator_t
  6206  xcb_input_get_device_modifier_mapping_keymaps_end (const xcb_input_get_device_modifier_mapping_reply_t *R);
  6207  
  6208  /**
  6209   * Return the reply
  6210   * @param c      The connection
  6211   * @param cookie The cookie
  6212   * @param e      The xcb_generic_error_t supplied
  6213   *
  6214   * Returns the reply of the request asked by
  6215   *
  6216   * The parameter @p e supplied to this function must be NULL if
  6217   * xcb_input_get_device_modifier_mapping_unchecked(). is used.
  6218   * Otherwise, it stores the error if any.
  6219   *
  6220   * The returned value must be freed by the caller using free().
  6221   */
  6222  xcb_input_get_device_modifier_mapping_reply_t *
  6223  xcb_input_get_device_modifier_mapping_reply (xcb_connection_t                                *c,
  6224                                               xcb_input_get_device_modifier_mapping_cookie_t   cookie  /**< */,
  6225                                               xcb_generic_error_t                            **e);
  6226  
  6227  int
  6228  xcb_input_set_device_modifier_mapping_sizeof (const void  *_buffer);
  6229  
  6230  /**
  6231   *
  6232   * @param c The connection
  6233   * @return A cookie
  6234   *
  6235   * Delivers a request to the X server.
  6236   *
  6237   */
  6238  xcb_input_set_device_modifier_mapping_cookie_t
  6239  xcb_input_set_device_modifier_mapping (xcb_connection_t *c,
  6240                                         uint8_t           device_id,
  6241                                         uint8_t           keycodes_per_modifier,
  6242                                         const uint8_t    *keymaps);
  6243  
  6244  /**
  6245   *
  6246   * @param c The connection
  6247   * @return A cookie
  6248   *
  6249   * Delivers a request to the X server.
  6250   *
  6251   * This form can be used only if the request will cause
  6252   * a reply to be generated. Any returned error will be
  6253   * placed in the event queue.
  6254   */
  6255  xcb_input_set_device_modifier_mapping_cookie_t
  6256  xcb_input_set_device_modifier_mapping_unchecked (xcb_connection_t *c,
  6257                                                   uint8_t           device_id,
  6258                                                   uint8_t           keycodes_per_modifier,
  6259                                                   const uint8_t    *keymaps);
  6260  
  6261  /**
  6262   * Return the reply
  6263   * @param c      The connection
  6264   * @param cookie The cookie
  6265   * @param e      The xcb_generic_error_t supplied
  6266   *
  6267   * Returns the reply of the request asked by
  6268   *
  6269   * The parameter @p e supplied to this function must be NULL if
  6270   * xcb_input_set_device_modifier_mapping_unchecked(). is used.
  6271   * Otherwise, it stores the error if any.
  6272   *
  6273   * The returned value must be freed by the caller using free().
  6274   */
  6275  xcb_input_set_device_modifier_mapping_reply_t *
  6276  xcb_input_set_device_modifier_mapping_reply (xcb_connection_t                                *c,
  6277                                               xcb_input_set_device_modifier_mapping_cookie_t   cookie  /**< */,
  6278                                               xcb_generic_error_t                            **e);
  6279  
  6280  int
  6281  xcb_input_get_device_button_mapping_sizeof (const void  *_buffer);
  6282  
  6283  /**
  6284   *
  6285   * @param c The connection
  6286   * @return A cookie
  6287   *
  6288   * Delivers a request to the X server.
  6289   *
  6290   */
  6291  xcb_input_get_device_button_mapping_cookie_t
  6292  xcb_input_get_device_button_mapping (xcb_connection_t *c,
  6293                                       uint8_t           device_id);
  6294  
  6295  /**
  6296   *
  6297   * @param c The connection
  6298   * @return A cookie
  6299   *
  6300   * Delivers a request to the X server.
  6301   *
  6302   * This form can be used only if the request will cause
  6303   * a reply to be generated. Any returned error will be
  6304   * placed in the event queue.
  6305   */
  6306  xcb_input_get_device_button_mapping_cookie_t
  6307  xcb_input_get_device_button_mapping_unchecked (xcb_connection_t *c,
  6308                                                 uint8_t           device_id);
  6309  
  6310  uint8_t *
  6311  xcb_input_get_device_button_mapping_map (const xcb_input_get_device_button_mapping_reply_t *R);
  6312  
  6313  int
  6314  xcb_input_get_device_button_mapping_map_length (const xcb_input_get_device_button_mapping_reply_t *R);
  6315  
  6316  xcb_generic_iterator_t
  6317  xcb_input_get_device_button_mapping_map_end (const xcb_input_get_device_button_mapping_reply_t *R);
  6318  
  6319  /**
  6320   * Return the reply
  6321   * @param c      The connection
  6322   * @param cookie The cookie
  6323   * @param e      The xcb_generic_error_t supplied
  6324   *
  6325   * Returns the reply of the request asked by
  6326   *
  6327   * The parameter @p e supplied to this function must be NULL if
  6328   * xcb_input_get_device_button_mapping_unchecked(). is used.
  6329   * Otherwise, it stores the error if any.
  6330   *
  6331   * The returned value must be freed by the caller using free().
  6332   */
  6333  xcb_input_get_device_button_mapping_reply_t *
  6334  xcb_input_get_device_button_mapping_reply (xcb_connection_t                              *c,
  6335                                             xcb_input_get_device_button_mapping_cookie_t   cookie  /**< */,
  6336                                             xcb_generic_error_t                          **e);
  6337  
  6338  int
  6339  xcb_input_set_device_button_mapping_sizeof (const void  *_buffer);
  6340  
  6341  /**
  6342   *
  6343   * @param c The connection
  6344   * @return A cookie
  6345   *
  6346   * Delivers a request to the X server.
  6347   *
  6348   */
  6349  xcb_input_set_device_button_mapping_cookie_t
  6350  xcb_input_set_device_button_mapping (xcb_connection_t *c,
  6351                                       uint8_t           device_id,
  6352                                       uint8_t           map_size,
  6353                                       const uint8_t    *map);
  6354  
  6355  /**
  6356   *
  6357   * @param c The connection
  6358   * @return A cookie
  6359   *
  6360   * Delivers a request to the X server.
  6361   *
  6362   * This form can be used only if the request will cause
  6363   * a reply to be generated. Any returned error will be
  6364   * placed in the event queue.
  6365   */
  6366  xcb_input_set_device_button_mapping_cookie_t
  6367  xcb_input_set_device_button_mapping_unchecked (xcb_connection_t *c,
  6368                                                 uint8_t           device_id,
  6369                                                 uint8_t           map_size,
  6370                                                 const uint8_t    *map);
  6371  
  6372  /**
  6373   * Return the reply
  6374   * @param c      The connection
  6375   * @param cookie The cookie
  6376   * @param e      The xcb_generic_error_t supplied
  6377   *
  6378   * Returns the reply of the request asked by
  6379   *
  6380   * The parameter @p e supplied to this function must be NULL if
  6381   * xcb_input_set_device_button_mapping_unchecked(). is used.
  6382   * Otherwise, it stores the error if any.
  6383   *
  6384   * The returned value must be freed by the caller using free().
  6385   */
  6386  xcb_input_set_device_button_mapping_reply_t *
  6387  xcb_input_set_device_button_mapping_reply (xcb_connection_t                              *c,
  6388                                             xcb_input_set_device_button_mapping_cookie_t   cookie  /**< */,
  6389                                             xcb_generic_error_t                          **e);
  6390  
  6391  /**
  6392   * Get the next element of the iterator
  6393   * @param i Pointer to a xcb_input_key_state_iterator_t
  6394   *
  6395   * Get the next element in the iterator. The member rem is
  6396   * decreased by one. The member data points to the next
  6397   * element. The member index is increased by sizeof(xcb_input_key_state_t)
  6398   */
  6399  void
  6400  xcb_input_key_state_next (xcb_input_key_state_iterator_t *i);
  6401  
  6402  /**
  6403   * Return the iterator pointing to the last element
  6404   * @param i An xcb_input_key_state_iterator_t
  6405   * @return  The iterator pointing to the last element
  6406   *
  6407   * Set the current element in the iterator to the last element.
  6408   * The member rem is set to 0. The member data points to the
  6409   * last element.
  6410   */
  6411  xcb_generic_iterator_t
  6412  xcb_input_key_state_end (xcb_input_key_state_iterator_t i);
  6413  
  6414  /**
  6415   * Get the next element of the iterator
  6416   * @param i Pointer to a xcb_input_button_state_iterator_t
  6417   *
  6418   * Get the next element in the iterator. The member rem is
  6419   * decreased by one. The member data points to the next
  6420   * element. The member index is increased by sizeof(xcb_input_button_state_t)
  6421   */
  6422  void
  6423  xcb_input_button_state_next (xcb_input_button_state_iterator_t *i);
  6424  
  6425  /**
  6426   * Return the iterator pointing to the last element
  6427   * @param i An xcb_input_button_state_iterator_t
  6428   * @return  The iterator pointing to the last element
  6429   *
  6430   * Set the current element in the iterator to the last element.
  6431   * The member rem is set to 0. The member data points to the
  6432   * last element.
  6433   */
  6434  xcb_generic_iterator_t
  6435  xcb_input_button_state_end (xcb_input_button_state_iterator_t i);
  6436  
  6437  int
  6438  xcb_input_valuator_state_sizeof (const void  *_buffer);
  6439  
  6440  int32_t *
  6441  xcb_input_valuator_state_valuators (const xcb_input_valuator_state_t *R);
  6442  
  6443  int
  6444  xcb_input_valuator_state_valuators_length (const xcb_input_valuator_state_t *R);
  6445  
  6446  xcb_generic_iterator_t
  6447  xcb_input_valuator_state_valuators_end (const xcb_input_valuator_state_t *R);
  6448  
  6449  /**
  6450   * Get the next element of the iterator
  6451   * @param i Pointer to a xcb_input_valuator_state_iterator_t
  6452   *
  6453   * Get the next element in the iterator. The member rem is
  6454   * decreased by one. The member data points to the next
  6455   * element. The member index is increased by sizeof(xcb_input_valuator_state_t)
  6456   */
  6457  void
  6458  xcb_input_valuator_state_next (xcb_input_valuator_state_iterator_t *i);
  6459  
  6460  /**
  6461   * Return the iterator pointing to the last element
  6462   * @param i An xcb_input_valuator_state_iterator_t
  6463   * @return  The iterator pointing to the last element
  6464   *
  6465   * Set the current element in the iterator to the last element.
  6466   * The member rem is set to 0. The member data points to the
  6467   * last element.
  6468   */
  6469  xcb_generic_iterator_t
  6470  xcb_input_valuator_state_end (xcb_input_valuator_state_iterator_t i);
  6471  
  6472  int32_t *
  6473  xcb_input_input_state_data_valuator_valuators (const xcb_input_input_state_data_t *S);
  6474  
  6475  int
  6476  xcb_input_input_state_data_valuator_valuators_length (const xcb_input_input_state_t *R,
  6477                                                        const xcb_input_input_state_data_t *S);
  6478  
  6479  xcb_generic_iterator_t
  6480  xcb_input_input_state_data_valuator_valuators_end (const xcb_input_input_state_t *R,
  6481                                                     const xcb_input_input_state_data_t *S);
  6482  
  6483  int
  6484  xcb_input_input_state_data_serialize (void                               **_buffer,
  6485                                        uint8_t                              class_id,
  6486                                        const xcb_input_input_state_data_t  *_aux);
  6487  
  6488  int
  6489  xcb_input_input_state_data_unpack (const void                    *_buffer,
  6490                                     uint8_t                        class_id,
  6491                                     xcb_input_input_state_data_t  *_aux);
  6492  
  6493  int
  6494  xcb_input_input_state_data_sizeof (const void  *_buffer,
  6495                                     uint8_t      class_id);
  6496  
  6497  int
  6498  xcb_input_input_state_sizeof (const void  *_buffer);
  6499  
  6500  /**
  6501   * Get the next element of the iterator
  6502   * @param i Pointer to a xcb_input_input_state_iterator_t
  6503   *
  6504   * Get the next element in the iterator. The member rem is
  6505   * decreased by one. The member data points to the next
  6506   * element. The member index is increased by sizeof(xcb_input_input_state_t)
  6507   */
  6508  void
  6509  xcb_input_input_state_next (xcb_input_input_state_iterator_t *i);
  6510  
  6511  /**
  6512   * Return the iterator pointing to the last element
  6513   * @param i An xcb_input_input_state_iterator_t
  6514   * @return  The iterator pointing to the last element
  6515   *
  6516   * Set the current element in the iterator to the last element.
  6517   * The member rem is set to 0. The member data points to the
  6518   * last element.
  6519   */
  6520  xcb_generic_iterator_t
  6521  xcb_input_input_state_end (xcb_input_input_state_iterator_t i);
  6522  
  6523  int
  6524  xcb_input_query_device_state_sizeof (const void  *_buffer);
  6525  
  6526  /**
  6527   *
  6528   * @param c The connection
  6529   * @return A cookie
  6530   *
  6531   * Delivers a request to the X server.
  6532   *
  6533   */
  6534  xcb_input_query_device_state_cookie_t
  6535  xcb_input_query_device_state (xcb_connection_t *c,
  6536                                uint8_t           device_id);
  6537  
  6538  /**
  6539   *
  6540   * @param c The connection
  6541   * @return A cookie
  6542   *
  6543   * Delivers a request to the X server.
  6544   *
  6545   * This form can be used only if the request will cause
  6546   * a reply to be generated. Any returned error will be
  6547   * placed in the event queue.
  6548   */
  6549  xcb_input_query_device_state_cookie_t
  6550  xcb_input_query_device_state_unchecked (xcb_connection_t *c,
  6551                                          uint8_t           device_id);
  6552  
  6553  int
  6554  xcb_input_query_device_state_classes_length (const xcb_input_query_device_state_reply_t *R);
  6555  
  6556  xcb_input_input_state_iterator_t
  6557  xcb_input_query_device_state_classes_iterator (const xcb_input_query_device_state_reply_t *R);
  6558  
  6559  /**
  6560   * Return the reply
  6561   * @param c      The connection
  6562   * @param cookie The cookie
  6563   * @param e      The xcb_generic_error_t supplied
  6564   *
  6565   * Returns the reply of the request asked by
  6566   *
  6567   * The parameter @p e supplied to this function must be NULL if
  6568   * xcb_input_query_device_state_unchecked(). is used.
  6569   * Otherwise, it stores the error if any.
  6570   *
  6571   * The returned value must be freed by the caller using free().
  6572   */
  6573  xcb_input_query_device_state_reply_t *
  6574  xcb_input_query_device_state_reply (xcb_connection_t                       *c,
  6575                                      xcb_input_query_device_state_cookie_t   cookie  /**< */,
  6576                                      xcb_generic_error_t                   **e);
  6577  
  6578  /**
  6579   *
  6580   * @param c The connection
  6581   * @return A cookie
  6582   *
  6583   * Delivers a request to the X server.
  6584   *
  6585   * This form can be used only if the request will not cause
  6586   * a reply to be generated. Any returned error will be
  6587   * saved for handling by xcb_request_check().
  6588   */
  6589  xcb_void_cookie_t
  6590  xcb_input_device_bell_checked (xcb_connection_t *c,
  6591                                 uint8_t           device_id,
  6592                                 uint8_t           feedback_id,
  6593                                 uint8_t           feedback_class,
  6594                                 int8_t            percent);
  6595  
  6596  /**
  6597   *
  6598   * @param c The connection
  6599   * @return A cookie
  6600   *
  6601   * Delivers a request to the X server.
  6602   *
  6603   */
  6604  xcb_void_cookie_t
  6605  xcb_input_device_bell (xcb_connection_t *c,
  6606                         uint8_t           device_id,
  6607                         uint8_t           feedback_id,
  6608                         uint8_t           feedback_class,
  6609                         int8_t            percent);
  6610  
  6611  int
  6612  xcb_input_set_device_valuators_sizeof (const void  *_buffer);
  6613  
  6614  /**
  6615   *
  6616   * @param c The connection
  6617   * @return A cookie
  6618   *
  6619   * Delivers a request to the X server.
  6620   *
  6621   */
  6622  xcb_input_set_device_valuators_cookie_t
  6623  xcb_input_set_device_valuators (xcb_connection_t *c,
  6624                                  uint8_t           device_id,
  6625                                  uint8_t           first_valuator,
  6626                                  uint8_t           num_valuators,
  6627                                  const int32_t    *valuators);
  6628  
  6629  /**
  6630   *
  6631   * @param c The connection
  6632   * @return A cookie
  6633   *
  6634   * Delivers a request to the X server.
  6635   *
  6636   * This form can be used only if the request will cause
  6637   * a reply to be generated. Any returned error will be
  6638   * placed in the event queue.
  6639   */
  6640  xcb_input_set_device_valuators_cookie_t
  6641  xcb_input_set_device_valuators_unchecked (xcb_connection_t *c,
  6642                                            uint8_t           device_id,
  6643                                            uint8_t           first_valuator,
  6644                                            uint8_t           num_valuators,
  6645                                            const int32_t    *valuators);
  6646  
  6647  /**
  6648   * Return the reply
  6649   * @param c      The connection
  6650   * @param cookie The cookie
  6651   * @param e      The xcb_generic_error_t supplied
  6652   *
  6653   * Returns the reply of the request asked by
  6654   *
  6655   * The parameter @p e supplied to this function must be NULL if
  6656   * xcb_input_set_device_valuators_unchecked(). is used.
  6657   * Otherwise, it stores the error if any.
  6658   *
  6659   * The returned value must be freed by the caller using free().
  6660   */
  6661  xcb_input_set_device_valuators_reply_t *
  6662  xcb_input_set_device_valuators_reply (xcb_connection_t                         *c,
  6663                                        xcb_input_set_device_valuators_cookie_t   cookie  /**< */,
  6664                                        xcb_generic_error_t                     **e);
  6665  
  6666  int
  6667  xcb_input_device_resolution_state_sizeof (const void  *_buffer);
  6668  
  6669  uint32_t *
  6670  xcb_input_device_resolution_state_resolution_values (const xcb_input_device_resolution_state_t *R);
  6671  
  6672  int
  6673  xcb_input_device_resolution_state_resolution_values_length (const xcb_input_device_resolution_state_t *R);
  6674  
  6675  xcb_generic_iterator_t
  6676  xcb_input_device_resolution_state_resolution_values_end (const xcb_input_device_resolution_state_t *R);
  6677  
  6678  uint32_t *
  6679  xcb_input_device_resolution_state_resolution_min (const xcb_input_device_resolution_state_t *R);
  6680  
  6681  int
  6682  xcb_input_device_resolution_state_resolution_min_length (const xcb_input_device_resolution_state_t *R);
  6683  
  6684  xcb_generic_iterator_t
  6685  xcb_input_device_resolution_state_resolution_min_end (const xcb_input_device_resolution_state_t *R);
  6686  
  6687  uint32_t *
  6688  xcb_input_device_resolution_state_resolution_max (const xcb_input_device_resolution_state_t *R);
  6689  
  6690  int
  6691  xcb_input_device_resolution_state_resolution_max_length (const xcb_input_device_resolution_state_t *R);
  6692  
  6693  xcb_generic_iterator_t
  6694  xcb_input_device_resolution_state_resolution_max_end (const xcb_input_device_resolution_state_t *R);
  6695  
  6696  /**
  6697   * Get the next element of the iterator
  6698   * @param i Pointer to a xcb_input_device_resolution_state_iterator_t
  6699   *
  6700   * Get the next element in the iterator. The member rem is
  6701   * decreased by one. The member data points to the next
  6702   * element. The member index is increased by sizeof(xcb_input_device_resolution_state_t)
  6703   */
  6704  void
  6705  xcb_input_device_resolution_state_next (xcb_input_device_resolution_state_iterator_t *i);
  6706  
  6707  /**
  6708   * Return the iterator pointing to the last element
  6709   * @param i An xcb_input_device_resolution_state_iterator_t
  6710   * @return  The iterator pointing to the last element
  6711   *
  6712   * Set the current element in the iterator to the last element.
  6713   * The member rem is set to 0. The member data points to the
  6714   * last element.
  6715   */
  6716  xcb_generic_iterator_t
  6717  xcb_input_device_resolution_state_end (xcb_input_device_resolution_state_iterator_t i);
  6718  
  6719  /**
  6720   * Get the next element of the iterator
  6721   * @param i Pointer to a xcb_input_device_abs_calib_state_iterator_t
  6722   *
  6723   * Get the next element in the iterator. The member rem is
  6724   * decreased by one. The member data points to the next
  6725   * element. The member index is increased by sizeof(xcb_input_device_abs_calib_state_t)
  6726   */
  6727  void
  6728  xcb_input_device_abs_calib_state_next (xcb_input_device_abs_calib_state_iterator_t *i);
  6729  
  6730  /**
  6731   * Return the iterator pointing to the last element
  6732   * @param i An xcb_input_device_abs_calib_state_iterator_t
  6733   * @return  The iterator pointing to the last element
  6734   *
  6735   * Set the current element in the iterator to the last element.
  6736   * The member rem is set to 0. The member data points to the
  6737   * last element.
  6738   */
  6739  xcb_generic_iterator_t
  6740  xcb_input_device_abs_calib_state_end (xcb_input_device_abs_calib_state_iterator_t i);
  6741  
  6742  /**
  6743   * Get the next element of the iterator
  6744   * @param i Pointer to a xcb_input_device_abs_area_state_iterator_t
  6745   *
  6746   * Get the next element in the iterator. The member rem is
  6747   * decreased by one. The member data points to the next
  6748   * element. The member index is increased by sizeof(xcb_input_device_abs_area_state_t)
  6749   */
  6750  void
  6751  xcb_input_device_abs_area_state_next (xcb_input_device_abs_area_state_iterator_t *i);
  6752  
  6753  /**
  6754   * Return the iterator pointing to the last element
  6755   * @param i An xcb_input_device_abs_area_state_iterator_t
  6756   * @return  The iterator pointing to the last element
  6757   *
  6758   * Set the current element in the iterator to the last element.
  6759   * The member rem is set to 0. The member data points to the
  6760   * last element.
  6761   */
  6762  xcb_generic_iterator_t
  6763  xcb_input_device_abs_area_state_end (xcb_input_device_abs_area_state_iterator_t i);
  6764  
  6765  /**
  6766   * Get the next element of the iterator
  6767   * @param i Pointer to a xcb_input_device_core_state_iterator_t
  6768   *
  6769   * Get the next element in the iterator. The member rem is
  6770   * decreased by one. The member data points to the next
  6771   * element. The member index is increased by sizeof(xcb_input_device_core_state_t)
  6772   */
  6773  void
  6774  xcb_input_device_core_state_next (xcb_input_device_core_state_iterator_t *i);
  6775  
  6776  /**
  6777   * Return the iterator pointing to the last element
  6778   * @param i An xcb_input_device_core_state_iterator_t
  6779   * @return  The iterator pointing to the last element
  6780   *
  6781   * Set the current element in the iterator to the last element.
  6782   * The member rem is set to 0. The member data points to the
  6783   * last element.
  6784   */
  6785  xcb_generic_iterator_t
  6786  xcb_input_device_core_state_end (xcb_input_device_core_state_iterator_t i);
  6787  
  6788  /**
  6789   * Get the next element of the iterator
  6790   * @param i Pointer to a xcb_input_device_enable_state_iterator_t
  6791   *
  6792   * Get the next element in the iterator. The member rem is
  6793   * decreased by one. The member data points to the next
  6794   * element. The member index is increased by sizeof(xcb_input_device_enable_state_t)
  6795   */
  6796  void
  6797  xcb_input_device_enable_state_next (xcb_input_device_enable_state_iterator_t *i);
  6798  
  6799  /**
  6800   * Return the iterator pointing to the last element
  6801   * @param i An xcb_input_device_enable_state_iterator_t
  6802   * @return  The iterator pointing to the last element
  6803   *
  6804   * Set the current element in the iterator to the last element.
  6805   * The member rem is set to 0. The member data points to the
  6806   * last element.
  6807   */
  6808  xcb_generic_iterator_t
  6809  xcb_input_device_enable_state_end (xcb_input_device_enable_state_iterator_t i);
  6810  
  6811  uint32_t *
  6812  xcb_input_device_state_data_resolution_resolution_values (const xcb_input_device_state_data_t *S);
  6813  
  6814  int
  6815  xcb_input_device_state_data_resolution_resolution_values_length (const xcb_input_device_state_t *R,
  6816                                                                   const xcb_input_device_state_data_t *S);
  6817  
  6818  xcb_generic_iterator_t
  6819  xcb_input_device_state_data_resolution_resolution_values_end (const xcb_input_device_state_t *R,
  6820                                                                const xcb_input_device_state_data_t *S);
  6821  
  6822  uint32_t *
  6823  xcb_input_device_state_data_resolution_resolution_min (const xcb_input_device_state_data_t *S);
  6824  
  6825  int
  6826  xcb_input_device_state_data_resolution_resolution_min_length (const xcb_input_device_state_t *R,
  6827                                                                const xcb_input_device_state_data_t *S);
  6828  
  6829  xcb_generic_iterator_t
  6830  xcb_input_device_state_data_resolution_resolution_min_end (const xcb_input_device_state_t *R,
  6831                                                             const xcb_input_device_state_data_t *S);
  6832  
  6833  uint32_t *
  6834  xcb_input_device_state_data_resolution_resolution_max (const xcb_input_device_state_data_t *S);
  6835  
  6836  int
  6837  xcb_input_device_state_data_resolution_resolution_max_length (const xcb_input_device_state_t *R,
  6838                                                                const xcb_input_device_state_data_t *S);
  6839  
  6840  xcb_generic_iterator_t
  6841  xcb_input_device_state_data_resolution_resolution_max_end (const xcb_input_device_state_t *R,
  6842                                                             const xcb_input_device_state_data_t *S);
  6843  
  6844  int
  6845  xcb_input_device_state_data_serialize (void                                **_buffer,
  6846                                         uint16_t                              control_id,
  6847                                         const xcb_input_device_state_data_t  *_aux);
  6848  
  6849  int
  6850  xcb_input_device_state_data_unpack (const void                     *_buffer,
  6851                                      uint16_t                        control_id,
  6852                                      xcb_input_device_state_data_t  *_aux);
  6853  
  6854  int
  6855  xcb_input_device_state_data_sizeof (const void  *_buffer,
  6856                                      uint16_t     control_id);
  6857  
  6858  int
  6859  xcb_input_device_state_sizeof (const void  *_buffer);
  6860  
  6861  /**
  6862   * Get the next element of the iterator
  6863   * @param i Pointer to a xcb_input_device_state_iterator_t
  6864   *
  6865   * Get the next element in the iterator. The member rem is
  6866   * decreased by one. The member data points to the next
  6867   * element. The member index is increased by sizeof(xcb_input_device_state_t)
  6868   */
  6869  void
  6870  xcb_input_device_state_next (xcb_input_device_state_iterator_t *i);
  6871  
  6872  /**
  6873   * Return the iterator pointing to the last element
  6874   * @param i An xcb_input_device_state_iterator_t
  6875   * @return  The iterator pointing to the last element
  6876   *
  6877   * Set the current element in the iterator to the last element.
  6878   * The member rem is set to 0. The member data points to the
  6879   * last element.
  6880   */
  6881  xcb_generic_iterator_t
  6882  xcb_input_device_state_end (xcb_input_device_state_iterator_t i);
  6883  
  6884  int
  6885  xcb_input_get_device_control_sizeof (const void  *_buffer);
  6886  
  6887  /**
  6888   *
  6889   * @param c The connection
  6890   * @return A cookie
  6891   *
  6892   * Delivers a request to the X server.
  6893   *
  6894   */
  6895  xcb_input_get_device_control_cookie_t
  6896  xcb_input_get_device_control (xcb_connection_t *c,
  6897                                uint16_t          control_id,
  6898                                uint8_t           device_id);
  6899  
  6900  /**
  6901   *
  6902   * @param c The connection
  6903   * @return A cookie
  6904   *
  6905   * Delivers a request to the X server.
  6906   *
  6907   * This form can be used only if the request will cause
  6908   * a reply to be generated. Any returned error will be
  6909   * placed in the event queue.
  6910   */
  6911  xcb_input_get_device_control_cookie_t
  6912  xcb_input_get_device_control_unchecked (xcb_connection_t *c,
  6913                                          uint16_t          control_id,
  6914                                          uint8_t           device_id);
  6915  
  6916  xcb_input_device_state_t *
  6917  xcb_input_get_device_control_control (const xcb_input_get_device_control_reply_t *R);
  6918  
  6919  /**
  6920   * Return the reply
  6921   * @param c      The connection
  6922   * @param cookie The cookie
  6923   * @param e      The xcb_generic_error_t supplied
  6924   *
  6925   * Returns the reply of the request asked by
  6926   *
  6927   * The parameter @p e supplied to this function must be NULL if
  6928   * xcb_input_get_device_control_unchecked(). is used.
  6929   * Otherwise, it stores the error if any.
  6930   *
  6931   * The returned value must be freed by the caller using free().
  6932   */
  6933  xcb_input_get_device_control_reply_t *
  6934  xcb_input_get_device_control_reply (xcb_connection_t                       *c,
  6935                                      xcb_input_get_device_control_cookie_t   cookie  /**< */,
  6936                                      xcb_generic_error_t                   **e);
  6937  
  6938  int
  6939  xcb_input_device_resolution_ctl_sizeof (const void  *_buffer);
  6940  
  6941  uint32_t *
  6942  xcb_input_device_resolution_ctl_resolution_values (const xcb_input_device_resolution_ctl_t *R);
  6943  
  6944  int
  6945  xcb_input_device_resolution_ctl_resolution_values_length (const xcb_input_device_resolution_ctl_t *R);
  6946  
  6947  xcb_generic_iterator_t
  6948  xcb_input_device_resolution_ctl_resolution_values_end (const xcb_input_device_resolution_ctl_t *R);
  6949  
  6950  /**
  6951   * Get the next element of the iterator
  6952   * @param i Pointer to a xcb_input_device_resolution_ctl_iterator_t
  6953   *
  6954   * Get the next element in the iterator. The member rem is
  6955   * decreased by one. The member data points to the next
  6956   * element. The member index is increased by sizeof(xcb_input_device_resolution_ctl_t)
  6957   */
  6958  void
  6959  xcb_input_device_resolution_ctl_next (xcb_input_device_resolution_ctl_iterator_t *i);
  6960  
  6961  /**
  6962   * Return the iterator pointing to the last element
  6963   * @param i An xcb_input_device_resolution_ctl_iterator_t
  6964   * @return  The iterator pointing to the last element
  6965   *
  6966   * Set the current element in the iterator to the last element.
  6967   * The member rem is set to 0. The member data points to the
  6968   * last element.
  6969   */
  6970  xcb_generic_iterator_t
  6971  xcb_input_device_resolution_ctl_end (xcb_input_device_resolution_ctl_iterator_t i);
  6972  
  6973  /**
  6974   * Get the next element of the iterator
  6975   * @param i Pointer to a xcb_input_device_abs_calib_ctl_iterator_t
  6976   *
  6977   * Get the next element in the iterator. The member rem is
  6978   * decreased by one. The member data points to the next
  6979   * element. The member index is increased by sizeof(xcb_input_device_abs_calib_ctl_t)
  6980   */
  6981  void
  6982  xcb_input_device_abs_calib_ctl_next (xcb_input_device_abs_calib_ctl_iterator_t *i);
  6983  
  6984  /**
  6985   * Return the iterator pointing to the last element
  6986   * @param i An xcb_input_device_abs_calib_ctl_iterator_t
  6987   * @return  The iterator pointing to the last element
  6988   *
  6989   * Set the current element in the iterator to the last element.
  6990   * The member rem is set to 0. The member data points to the
  6991   * last element.
  6992   */
  6993  xcb_generic_iterator_t
  6994  xcb_input_device_abs_calib_ctl_end (xcb_input_device_abs_calib_ctl_iterator_t i);
  6995  
  6996  /**
  6997   * Get the next element of the iterator
  6998   * @param i Pointer to a xcb_input_device_abs_area_ctrl_iterator_t
  6999   *
  7000   * Get the next element in the iterator. The member rem is
  7001   * decreased by one. The member data points to the next
  7002   * element. The member index is increased by sizeof(xcb_input_device_abs_area_ctrl_t)
  7003   */
  7004  void
  7005  xcb_input_device_abs_area_ctrl_next (xcb_input_device_abs_area_ctrl_iterator_t *i);
  7006  
  7007  /**
  7008   * Return the iterator pointing to the last element
  7009   * @param i An xcb_input_device_abs_area_ctrl_iterator_t
  7010   * @return  The iterator pointing to the last element
  7011   *
  7012   * Set the current element in the iterator to the last element.
  7013   * The member rem is set to 0. The member data points to the
  7014   * last element.
  7015   */
  7016  xcb_generic_iterator_t
  7017  xcb_input_device_abs_area_ctrl_end (xcb_input_device_abs_area_ctrl_iterator_t i);
  7018  
  7019  /**
  7020   * Get the next element of the iterator
  7021   * @param i Pointer to a xcb_input_device_core_ctrl_iterator_t
  7022   *
  7023   * Get the next element in the iterator. The member rem is
  7024   * decreased by one. The member data points to the next
  7025   * element. The member index is increased by sizeof(xcb_input_device_core_ctrl_t)
  7026   */
  7027  void
  7028  xcb_input_device_core_ctrl_next (xcb_input_device_core_ctrl_iterator_t *i);
  7029  
  7030  /**
  7031   * Return the iterator pointing to the last element
  7032   * @param i An xcb_input_device_core_ctrl_iterator_t
  7033   * @return  The iterator pointing to the last element
  7034   *
  7035   * Set the current element in the iterator to the last element.
  7036   * The member rem is set to 0. The member data points to the
  7037   * last element.
  7038   */
  7039  xcb_generic_iterator_t
  7040  xcb_input_device_core_ctrl_end (xcb_input_device_core_ctrl_iterator_t i);
  7041  
  7042  /**
  7043   * Get the next element of the iterator
  7044   * @param i Pointer to a xcb_input_device_enable_ctrl_iterator_t
  7045   *
  7046   * Get the next element in the iterator. The member rem is
  7047   * decreased by one. The member data points to the next
  7048   * element. The member index is increased by sizeof(xcb_input_device_enable_ctrl_t)
  7049   */
  7050  void
  7051  xcb_input_device_enable_ctrl_next (xcb_input_device_enable_ctrl_iterator_t *i);
  7052  
  7053  /**
  7054   * Return the iterator pointing to the last element
  7055   * @param i An xcb_input_device_enable_ctrl_iterator_t
  7056   * @return  The iterator pointing to the last element
  7057   *
  7058   * Set the current element in the iterator to the last element.
  7059   * The member rem is set to 0. The member data points to the
  7060   * last element.
  7061   */
  7062  xcb_generic_iterator_t
  7063  xcb_input_device_enable_ctrl_end (xcb_input_device_enable_ctrl_iterator_t i);
  7064  
  7065  uint32_t *
  7066  xcb_input_device_ctl_data_resolution_resolution_values (const xcb_input_device_ctl_data_t *S);
  7067  
  7068  int
  7069  xcb_input_device_ctl_data_resolution_resolution_values_length (const xcb_input_device_ctl_t *R,
  7070                                                                 const xcb_input_device_ctl_data_t *S);
  7071  
  7072  xcb_generic_iterator_t
  7073  xcb_input_device_ctl_data_resolution_resolution_values_end (const xcb_input_device_ctl_t *R,
  7074                                                              const xcb_input_device_ctl_data_t *S);
  7075  
  7076  int
  7077  xcb_input_device_ctl_data_serialize (void                              **_buffer,
  7078                                       uint16_t                            control_id,
  7079                                       const xcb_input_device_ctl_data_t  *_aux);
  7080  
  7081  int
  7082  xcb_input_device_ctl_data_unpack (const void                   *_buffer,
  7083                                    uint16_t                      control_id,
  7084                                    xcb_input_device_ctl_data_t  *_aux);
  7085  
  7086  int
  7087  xcb_input_device_ctl_data_sizeof (const void  *_buffer,
  7088                                    uint16_t     control_id);
  7089  
  7090  int
  7091  xcb_input_device_ctl_sizeof (const void  *_buffer);
  7092  
  7093  /**
  7094   * Get the next element of the iterator
  7095   * @param i Pointer to a xcb_input_device_ctl_iterator_t
  7096   *
  7097   * Get the next element in the iterator. The member rem is
  7098   * decreased by one. The member data points to the next
  7099   * element. The member index is increased by sizeof(xcb_input_device_ctl_t)
  7100   */
  7101  void
  7102  xcb_input_device_ctl_next (xcb_input_device_ctl_iterator_t *i);
  7103  
  7104  /**
  7105   * Return the iterator pointing to the last element
  7106   * @param i An xcb_input_device_ctl_iterator_t
  7107   * @return  The iterator pointing to the last element
  7108   *
  7109   * Set the current element in the iterator to the last element.
  7110   * The member rem is set to 0. The member data points to the
  7111   * last element.
  7112   */
  7113  xcb_generic_iterator_t
  7114  xcb_input_device_ctl_end (xcb_input_device_ctl_iterator_t i);
  7115  
  7116  int
  7117  xcb_input_change_device_control_sizeof (const void  *_buffer);
  7118  
  7119  /**
  7120   *
  7121   * @param c The connection
  7122   * @return A cookie
  7123   *
  7124   * Delivers a request to the X server.
  7125   *
  7126   */
  7127  xcb_input_change_device_control_cookie_t
  7128  xcb_input_change_device_control (xcb_connection_t       *c,
  7129                                   uint16_t                control_id,
  7130                                   uint8_t                 device_id,
  7131                                   xcb_input_device_ctl_t *control);
  7132  
  7133  /**
  7134   *
  7135   * @param c The connection
  7136   * @return A cookie
  7137   *
  7138   * Delivers a request to the X server.
  7139   *
  7140   * This form can be used only if the request will cause
  7141   * a reply to be generated. Any returned error will be
  7142   * placed in the event queue.
  7143   */
  7144  xcb_input_change_device_control_cookie_t
  7145  xcb_input_change_device_control_unchecked (xcb_connection_t       *c,
  7146                                             uint16_t                control_id,
  7147                                             uint8_t                 device_id,
  7148                                             xcb_input_device_ctl_t *control);
  7149  
  7150  /**
  7151   * Return the reply
  7152   * @param c      The connection
  7153   * @param cookie The cookie
  7154   * @param e      The xcb_generic_error_t supplied
  7155   *
  7156   * Returns the reply of the request asked by
  7157   *
  7158   * The parameter @p e supplied to this function must be NULL if
  7159   * xcb_input_change_device_control_unchecked(). is used.
  7160   * Otherwise, it stores the error if any.
  7161   *
  7162   * The returned value must be freed by the caller using free().
  7163   */
  7164  xcb_input_change_device_control_reply_t *
  7165  xcb_input_change_device_control_reply (xcb_connection_t                          *c,
  7166                                         xcb_input_change_device_control_cookie_t   cookie  /**< */,
  7167                                         xcb_generic_error_t                      **e);
  7168  
  7169  int
  7170  xcb_input_list_device_properties_sizeof (const void  *_buffer);
  7171  
  7172  /**
  7173   *
  7174   * @param c The connection
  7175   * @return A cookie
  7176   *
  7177   * Delivers a request to the X server.
  7178   *
  7179   */
  7180  xcb_input_list_device_properties_cookie_t
  7181  xcb_input_list_device_properties (xcb_connection_t *c,
  7182                                    uint8_t           device_id);
  7183  
  7184  /**
  7185   *
  7186   * @param c The connection
  7187   * @return A cookie
  7188   *
  7189   * Delivers a request to the X server.
  7190   *
  7191   * This form can be used only if the request will cause
  7192   * a reply to be generated. Any returned error will be
  7193   * placed in the event queue.
  7194   */
  7195  xcb_input_list_device_properties_cookie_t
  7196  xcb_input_list_device_properties_unchecked (xcb_connection_t *c,
  7197                                              uint8_t           device_id);
  7198  
  7199  xcb_atom_t *
  7200  xcb_input_list_device_properties_atoms (const xcb_input_list_device_properties_reply_t *R);
  7201  
  7202  int
  7203  xcb_input_list_device_properties_atoms_length (const xcb_input_list_device_properties_reply_t *R);
  7204  
  7205  xcb_generic_iterator_t
  7206  xcb_input_list_device_properties_atoms_end (const xcb_input_list_device_properties_reply_t *R);
  7207  
  7208  /**
  7209   * Return the reply
  7210   * @param c      The connection
  7211   * @param cookie The cookie
  7212   * @param e      The xcb_generic_error_t supplied
  7213   *
  7214   * Returns the reply of the request asked by
  7215   *
  7216   * The parameter @p e supplied to this function must be NULL if
  7217   * xcb_input_list_device_properties_unchecked(). is used.
  7218   * Otherwise, it stores the error if any.
  7219   *
  7220   * The returned value must be freed by the caller using free().
  7221   */
  7222  xcb_input_list_device_properties_reply_t *
  7223  xcb_input_list_device_properties_reply (xcb_connection_t                           *c,
  7224                                          xcb_input_list_device_properties_cookie_t   cookie  /**< */,
  7225                                          xcb_generic_error_t                       **e);
  7226  
  7227  uint8_t *
  7228  xcb_input_change_device_property_items_data_8 (const xcb_input_change_device_property_items_t *S);
  7229  
  7230  int
  7231  xcb_input_change_device_property_items_data_8_length (const xcb_input_change_device_property_request_t *R,
  7232                                                        const xcb_input_change_device_property_items_t *S);
  7233  
  7234  xcb_generic_iterator_t
  7235  xcb_input_change_device_property_items_data_8_end (const xcb_input_change_device_property_request_t *R,
  7236                                                     const xcb_input_change_device_property_items_t *S);
  7237  
  7238  uint16_t *
  7239  xcb_input_change_device_property_items_data_16 (const xcb_input_change_device_property_items_t *S);
  7240  
  7241  int
  7242  xcb_input_change_device_property_items_data_16_length (const xcb_input_change_device_property_request_t *R,
  7243                                                         const xcb_input_change_device_property_items_t *S);
  7244  
  7245  xcb_generic_iterator_t
  7246  xcb_input_change_device_property_items_data_16_end (const xcb_input_change_device_property_request_t *R,
  7247                                                      const xcb_input_change_device_property_items_t *S);
  7248  
  7249  uint32_t *
  7250  xcb_input_change_device_property_items_data_32 (const xcb_input_change_device_property_items_t *S);
  7251  
  7252  int
  7253  xcb_input_change_device_property_items_data_32_length (const xcb_input_change_device_property_request_t *R,
  7254                                                         const xcb_input_change_device_property_items_t *S);
  7255  
  7256  xcb_generic_iterator_t
  7257  xcb_input_change_device_property_items_data_32_end (const xcb_input_change_device_property_request_t *R,
  7258                                                      const xcb_input_change_device_property_items_t *S);
  7259  
  7260  int
  7261  xcb_input_change_device_property_items_serialize (void                                           **_buffer,
  7262                                                    uint32_t                                         num_items,
  7263                                                    uint8_t                                          format,
  7264                                                    const xcb_input_change_device_property_items_t  *_aux);
  7265  
  7266  int
  7267  xcb_input_change_device_property_items_unpack (const void                                *_buffer,
  7268                                                 uint32_t                                   num_items,
  7269                                                 uint8_t                                    format,
  7270                                                 xcb_input_change_device_property_items_t  *_aux);
  7271  
  7272  int
  7273  xcb_input_change_device_property_items_sizeof (const void  *_buffer,
  7274                                                 uint32_t     num_items,
  7275                                                 uint8_t      format);
  7276  
  7277  int
  7278  xcb_input_change_device_property_sizeof (const void  *_buffer);
  7279  
  7280  /**
  7281   *
  7282   * @param c The connection
  7283   * @return A cookie
  7284   *
  7285   * Delivers a request to the X server.
  7286   *
  7287   * This form can be used only if the request will not cause
  7288   * a reply to be generated. Any returned error will be
  7289   * saved for handling by xcb_request_check().
  7290   */
  7291  xcb_void_cookie_t
  7292  xcb_input_change_device_property_checked (xcb_connection_t *c,
  7293                                            xcb_atom_t        property,
  7294                                            xcb_atom_t        type,
  7295                                            uint8_t           device_id,
  7296                                            uint8_t           format,
  7297                                            uint8_t           mode,
  7298                                            uint32_t          num_items,
  7299                                            const void       *items);
  7300  
  7301  /**
  7302   *
  7303   * @param c The connection
  7304   * @return A cookie
  7305   *
  7306   * Delivers a request to the X server.
  7307   *
  7308   */
  7309  xcb_void_cookie_t
  7310  xcb_input_change_device_property (xcb_connection_t *c,
  7311                                    xcb_atom_t        property,
  7312                                    xcb_atom_t        type,
  7313                                    uint8_t           device_id,
  7314                                    uint8_t           format,
  7315                                    uint8_t           mode,
  7316                                    uint32_t          num_items,
  7317                                    const void       *items);
  7318  
  7319  /**
  7320   *
  7321   * @param c The connection
  7322   * @return A cookie
  7323   *
  7324   * Delivers a request to the X server.
  7325   *
  7326   * This form can be used only if the request will not cause
  7327   * a reply to be generated. Any returned error will be
  7328   * saved for handling by xcb_request_check().
  7329   */
  7330  xcb_void_cookie_t
  7331  xcb_input_change_device_property_aux_checked (xcb_connection_t                               *c,
  7332                                                xcb_atom_t                                      property,
  7333                                                xcb_atom_t                                      type,
  7334                                                uint8_t                                         device_id,
  7335                                                uint8_t                                         format,
  7336                                                uint8_t                                         mode,
  7337                                                uint32_t                                        num_items,
  7338                                                const xcb_input_change_device_property_items_t *items);
  7339  
  7340  /**
  7341   *
  7342   * @param c The connection
  7343   * @return A cookie
  7344   *
  7345   * Delivers a request to the X server.
  7346   *
  7347   */
  7348  xcb_void_cookie_t
  7349  xcb_input_change_device_property_aux (xcb_connection_t                               *c,
  7350                                        xcb_atom_t                                      property,
  7351                                        xcb_atom_t                                      type,
  7352                                        uint8_t                                         device_id,
  7353                                        uint8_t                                         format,
  7354                                        uint8_t                                         mode,
  7355                                        uint32_t                                        num_items,
  7356                                        const xcb_input_change_device_property_items_t *items);
  7357  
  7358  void *
  7359  xcb_input_change_device_property_items (const xcb_input_change_device_property_request_t *R);
  7360  
  7361  /**
  7362   *
  7363   * @param c The connection
  7364   * @return A cookie
  7365   *
  7366   * Delivers a request to the X server.
  7367   *
  7368   * This form can be used only if the request will not cause
  7369   * a reply to be generated. Any returned error will be
  7370   * saved for handling by xcb_request_check().
  7371   */
  7372  xcb_void_cookie_t
  7373  xcb_input_delete_device_property_checked (xcb_connection_t *c,
  7374                                            xcb_atom_t        property,
  7375                                            uint8_t           device_id);
  7376  
  7377  /**
  7378   *
  7379   * @param c The connection
  7380   * @return A cookie
  7381   *
  7382   * Delivers a request to the X server.
  7383   *
  7384   */
  7385  xcb_void_cookie_t
  7386  xcb_input_delete_device_property (xcb_connection_t *c,
  7387                                    xcb_atom_t        property,
  7388                                    uint8_t           device_id);
  7389  
  7390  uint8_t *
  7391  xcb_input_get_device_property_items_data_8 (const xcb_input_get_device_property_items_t *S);
  7392  
  7393  int
  7394  xcb_input_get_device_property_items_data_8_length (const xcb_input_get_device_property_reply_t *R,
  7395                                                     const xcb_input_get_device_property_items_t *S);
  7396  
  7397  xcb_generic_iterator_t
  7398  xcb_input_get_device_property_items_data_8_end (const xcb_input_get_device_property_reply_t *R,
  7399                                                  const xcb_input_get_device_property_items_t *S);
  7400  
  7401  uint16_t *
  7402  xcb_input_get_device_property_items_data_16 (const xcb_input_get_device_property_items_t *S);
  7403  
  7404  int
  7405  xcb_input_get_device_property_items_data_16_length (const xcb_input_get_device_property_reply_t *R,
  7406                                                      const xcb_input_get_device_property_items_t *S);
  7407  
  7408  xcb_generic_iterator_t
  7409  xcb_input_get_device_property_items_data_16_end (const xcb_input_get_device_property_reply_t *R,
  7410                                                   const xcb_input_get_device_property_items_t *S);
  7411  
  7412  uint32_t *
  7413  xcb_input_get_device_property_items_data_32 (const xcb_input_get_device_property_items_t *S);
  7414  
  7415  int
  7416  xcb_input_get_device_property_items_data_32_length (const xcb_input_get_device_property_reply_t *R,
  7417                                                      const xcb_input_get_device_property_items_t *S);
  7418  
  7419  xcb_generic_iterator_t
  7420  xcb_input_get_device_property_items_data_32_end (const xcb_input_get_device_property_reply_t *R,
  7421                                                   const xcb_input_get_device_property_items_t *S);
  7422  
  7423  int
  7424  xcb_input_get_device_property_items_serialize (void                                        **_buffer,
  7425                                                 uint32_t                                      num_items,
  7426                                                 uint8_t                                       format,
  7427                                                 const xcb_input_get_device_property_items_t  *_aux);
  7428  
  7429  int
  7430  xcb_input_get_device_property_items_unpack (const void                             *_buffer,
  7431                                              uint32_t                                num_items,
  7432                                              uint8_t                                 format,
  7433                                              xcb_input_get_device_property_items_t  *_aux);
  7434  
  7435  int
  7436  xcb_input_get_device_property_items_sizeof (const void  *_buffer,
  7437                                              uint32_t     num_items,
  7438                                              uint8_t      format);
  7439  
  7440  int
  7441  xcb_input_get_device_property_sizeof (const void  *_buffer);
  7442  
  7443  /**
  7444   *
  7445   * @param c The connection
  7446   * @return A cookie
  7447   *
  7448   * Delivers a request to the X server.
  7449   *
  7450   */
  7451  xcb_input_get_device_property_cookie_t
  7452  xcb_input_get_device_property (xcb_connection_t *c,
  7453                                 xcb_atom_t        property,
  7454                                 xcb_atom_t        type,
  7455                                 uint32_t          offset,
  7456                                 uint32_t          len,
  7457                                 uint8_t           device_id,
  7458                                 uint8_t           _delete);
  7459  
  7460  /**
  7461   *
  7462   * @param c The connection
  7463   * @return A cookie
  7464   *
  7465   * Delivers a request to the X server.
  7466   *
  7467   * This form can be used only if the request will cause
  7468   * a reply to be generated. Any returned error will be
  7469   * placed in the event queue.
  7470   */
  7471  xcb_input_get_device_property_cookie_t
  7472  xcb_input_get_device_property_unchecked (xcb_connection_t *c,
  7473                                           xcb_atom_t        property,
  7474                                           xcb_atom_t        type,
  7475                                           uint32_t          offset,
  7476                                           uint32_t          len,
  7477                                           uint8_t           device_id,
  7478                                           uint8_t           _delete);
  7479  
  7480  void *
  7481  xcb_input_get_device_property_items (const xcb_input_get_device_property_reply_t *R);
  7482  
  7483  /**
  7484   * Return the reply
  7485   * @param c      The connection
  7486   * @param cookie The cookie
  7487   * @param e      The xcb_generic_error_t supplied
  7488   *
  7489   * Returns the reply of the request asked by
  7490   *
  7491   * The parameter @p e supplied to this function must be NULL if
  7492   * xcb_input_get_device_property_unchecked(). is used.
  7493   * Otherwise, it stores the error if any.
  7494   *
  7495   * The returned value must be freed by the caller using free().
  7496   */
  7497  xcb_input_get_device_property_reply_t *
  7498  xcb_input_get_device_property_reply (xcb_connection_t                        *c,
  7499                                       xcb_input_get_device_property_cookie_t   cookie  /**< */,
  7500                                       xcb_generic_error_t                    **e);
  7501  
  7502  /**
  7503   * Get the next element of the iterator
  7504   * @param i Pointer to a xcb_input_group_info_iterator_t
  7505   *
  7506   * Get the next element in the iterator. The member rem is
  7507   * decreased by one. The member data points to the next
  7508   * element. The member index is increased by sizeof(xcb_input_group_info_t)
  7509   */
  7510  void
  7511  xcb_input_group_info_next (xcb_input_group_info_iterator_t *i);
  7512  
  7513  /**
  7514   * Return the iterator pointing to the last element
  7515   * @param i An xcb_input_group_info_iterator_t
  7516   * @return  The iterator pointing to the last element
  7517   *
  7518   * Set the current element in the iterator to the last element.
  7519   * The member rem is set to 0. The member data points to the
  7520   * last element.
  7521   */
  7522  xcb_generic_iterator_t
  7523  xcb_input_group_info_end (xcb_input_group_info_iterator_t i);
  7524  
  7525  /**
  7526   * Get the next element of the iterator
  7527   * @param i Pointer to a xcb_input_modifier_info_iterator_t
  7528   *
  7529   * Get the next element in the iterator. The member rem is
  7530   * decreased by one. The member data points to the next
  7531   * element. The member index is increased by sizeof(xcb_input_modifier_info_t)
  7532   */
  7533  void
  7534  xcb_input_modifier_info_next (xcb_input_modifier_info_iterator_t *i);
  7535  
  7536  /**
  7537   * Return the iterator pointing to the last element
  7538   * @param i An xcb_input_modifier_info_iterator_t
  7539   * @return  The iterator pointing to the last element
  7540   *
  7541   * Set the current element in the iterator to the last element.
  7542   * The member rem is set to 0. The member data points to the
  7543   * last element.
  7544   */
  7545  xcb_generic_iterator_t
  7546  xcb_input_modifier_info_end (xcb_input_modifier_info_iterator_t i);
  7547  
  7548  int
  7549  xcb_input_xi_query_pointer_sizeof (const void  *_buffer);
  7550  
  7551  /**
  7552   *
  7553   * @param c The connection
  7554   * @return A cookie
  7555   *
  7556   * Delivers a request to the X server.
  7557   *
  7558   */
  7559  xcb_input_xi_query_pointer_cookie_t
  7560  xcb_input_xi_query_pointer (xcb_connection_t      *c,
  7561                              xcb_window_t           window,
  7562                              xcb_input_device_id_t  deviceid);
  7563  
  7564  /**
  7565   *
  7566   * @param c The connection
  7567   * @return A cookie
  7568   *
  7569   * Delivers a request to the X server.
  7570   *
  7571   * This form can be used only if the request will cause
  7572   * a reply to be generated. Any returned error will be
  7573   * placed in the event queue.
  7574   */
  7575  xcb_input_xi_query_pointer_cookie_t
  7576  xcb_input_xi_query_pointer_unchecked (xcb_connection_t      *c,
  7577                                        xcb_window_t           window,
  7578                                        xcb_input_device_id_t  deviceid);
  7579  
  7580  uint32_t *
  7581  xcb_input_xi_query_pointer_buttons (const xcb_input_xi_query_pointer_reply_t *R);
  7582  
  7583  int
  7584  xcb_input_xi_query_pointer_buttons_length (const xcb_input_xi_query_pointer_reply_t *R);
  7585  
  7586  xcb_generic_iterator_t
  7587  xcb_input_xi_query_pointer_buttons_end (const xcb_input_xi_query_pointer_reply_t *R);
  7588  
  7589  /**
  7590   * Return the reply
  7591   * @param c      The connection
  7592   * @param cookie The cookie
  7593   * @param e      The xcb_generic_error_t supplied
  7594   *
  7595   * Returns the reply of the request asked by
  7596   *
  7597   * The parameter @p e supplied to this function must be NULL if
  7598   * xcb_input_xi_query_pointer_unchecked(). is used.
  7599   * Otherwise, it stores the error if any.
  7600   *
  7601   * The returned value must be freed by the caller using free().
  7602   */
  7603  xcb_input_xi_query_pointer_reply_t *
  7604  xcb_input_xi_query_pointer_reply (xcb_connection_t                     *c,
  7605                                    xcb_input_xi_query_pointer_cookie_t   cookie  /**< */,
  7606                                    xcb_generic_error_t                 **e);
  7607  
  7608  /**
  7609   *
  7610   * @param c The connection
  7611   * @return A cookie
  7612   *
  7613   * Delivers a request to the X server.
  7614   *
  7615   * This form can be used only if the request will not cause
  7616   * a reply to be generated. Any returned error will be
  7617   * saved for handling by xcb_request_check().
  7618   */
  7619  xcb_void_cookie_t
  7620  xcb_input_xi_warp_pointer_checked (xcb_connection_t      *c,
  7621                                     xcb_window_t           src_win,
  7622                                     xcb_window_t           dst_win,
  7623                                     xcb_input_fp1616_t     src_x,
  7624                                     xcb_input_fp1616_t     src_y,
  7625                                     uint16_t               src_width,
  7626                                     uint16_t               src_height,
  7627                                     xcb_input_fp1616_t     dst_x,
  7628                                     xcb_input_fp1616_t     dst_y,
  7629                                     xcb_input_device_id_t  deviceid);
  7630  
  7631  /**
  7632   *
  7633   * @param c The connection
  7634   * @return A cookie
  7635   *
  7636   * Delivers a request to the X server.
  7637   *
  7638   */
  7639  xcb_void_cookie_t
  7640  xcb_input_xi_warp_pointer (xcb_connection_t      *c,
  7641                             xcb_window_t           src_win,
  7642                             xcb_window_t           dst_win,
  7643                             xcb_input_fp1616_t     src_x,
  7644                             xcb_input_fp1616_t     src_y,
  7645                             uint16_t               src_width,
  7646                             uint16_t               src_height,
  7647                             xcb_input_fp1616_t     dst_x,
  7648                             xcb_input_fp1616_t     dst_y,
  7649                             xcb_input_device_id_t  deviceid);
  7650  
  7651  /**
  7652   *
  7653   * @param c The connection
  7654   * @return A cookie
  7655   *
  7656   * Delivers a request to the X server.
  7657   *
  7658   * This form can be used only if the request will not cause
  7659   * a reply to be generated. Any returned error will be
  7660   * saved for handling by xcb_request_check().
  7661   */
  7662  xcb_void_cookie_t
  7663  xcb_input_xi_change_cursor_checked (xcb_connection_t      *c,
  7664                                      xcb_window_t           window,
  7665                                      xcb_cursor_t           cursor,
  7666                                      xcb_input_device_id_t  deviceid);
  7667  
  7668  /**
  7669   *
  7670   * @param c The connection
  7671   * @return A cookie
  7672   *
  7673   * Delivers a request to the X server.
  7674   *
  7675   */
  7676  xcb_void_cookie_t
  7677  xcb_input_xi_change_cursor (xcb_connection_t      *c,
  7678                              xcb_window_t           window,
  7679                              xcb_cursor_t           cursor,
  7680                              xcb_input_device_id_t  deviceid);
  7681  
  7682  int
  7683  xcb_input_add_master_sizeof (const void  *_buffer);
  7684  
  7685  char *
  7686  xcb_input_add_master_name (const xcb_input_add_master_t *R);
  7687  
  7688  int
  7689  xcb_input_add_master_name_length (const xcb_input_add_master_t *R);
  7690  
  7691  xcb_generic_iterator_t
  7692  xcb_input_add_master_name_end (const xcb_input_add_master_t *R);
  7693  
  7694  /**
  7695   * Get the next element of the iterator
  7696   * @param i Pointer to a xcb_input_add_master_iterator_t
  7697   *
  7698   * Get the next element in the iterator. The member rem is
  7699   * decreased by one. The member data points to the next
  7700   * element. The member index is increased by sizeof(xcb_input_add_master_t)
  7701   */
  7702  void
  7703  xcb_input_add_master_next (xcb_input_add_master_iterator_t *i);
  7704  
  7705  /**
  7706   * Return the iterator pointing to the last element
  7707   * @param i An xcb_input_add_master_iterator_t
  7708   * @return  The iterator pointing to the last element
  7709   *
  7710   * Set the current element in the iterator to the last element.
  7711   * The member rem is set to 0. The member data points to the
  7712   * last element.
  7713   */
  7714  xcb_generic_iterator_t
  7715  xcb_input_add_master_end (xcb_input_add_master_iterator_t i);
  7716  
  7717  /**
  7718   * Get the next element of the iterator
  7719   * @param i Pointer to a xcb_input_remove_master_iterator_t
  7720   *
  7721   * Get the next element in the iterator. The member rem is
  7722   * decreased by one. The member data points to the next
  7723   * element. The member index is increased by sizeof(xcb_input_remove_master_t)
  7724   */
  7725  void
  7726  xcb_input_remove_master_next (xcb_input_remove_master_iterator_t *i);
  7727  
  7728  /**
  7729   * Return the iterator pointing to the last element
  7730   * @param i An xcb_input_remove_master_iterator_t
  7731   * @return  The iterator pointing to the last element
  7732   *
  7733   * Set the current element in the iterator to the last element.
  7734   * The member rem is set to 0. The member data points to the
  7735   * last element.
  7736   */
  7737  xcb_generic_iterator_t
  7738  xcb_input_remove_master_end (xcb_input_remove_master_iterator_t i);
  7739  
  7740  /**
  7741   * Get the next element of the iterator
  7742   * @param i Pointer to a xcb_input_attach_slave_iterator_t
  7743   *
  7744   * Get the next element in the iterator. The member rem is
  7745   * decreased by one. The member data points to the next
  7746   * element. The member index is increased by sizeof(xcb_input_attach_slave_t)
  7747   */
  7748  void
  7749  xcb_input_attach_slave_next (xcb_input_attach_slave_iterator_t *i);
  7750  
  7751  /**
  7752   * Return the iterator pointing to the last element
  7753   * @param i An xcb_input_attach_slave_iterator_t
  7754   * @return  The iterator pointing to the last element
  7755   *
  7756   * Set the current element in the iterator to the last element.
  7757   * The member rem is set to 0. The member data points to the
  7758   * last element.
  7759   */
  7760  xcb_generic_iterator_t
  7761  xcb_input_attach_slave_end (xcb_input_attach_slave_iterator_t i);
  7762  
  7763  /**
  7764   * Get the next element of the iterator
  7765   * @param i Pointer to a xcb_input_detach_slave_iterator_t
  7766   *
  7767   * Get the next element in the iterator. The member rem is
  7768   * decreased by one. The member data points to the next
  7769   * element. The member index is increased by sizeof(xcb_input_detach_slave_t)
  7770   */
  7771  void
  7772  xcb_input_detach_slave_next (xcb_input_detach_slave_iterator_t *i);
  7773  
  7774  /**
  7775   * Return the iterator pointing to the last element
  7776   * @param i An xcb_input_detach_slave_iterator_t
  7777   * @return  The iterator pointing to the last element
  7778   *
  7779   * Set the current element in the iterator to the last element.
  7780   * The member rem is set to 0. The member data points to the
  7781   * last element.
  7782   */
  7783  xcb_generic_iterator_t
  7784  xcb_input_detach_slave_end (xcb_input_detach_slave_iterator_t i);
  7785  
  7786  char *
  7787  xcb_input_hierarchy_change_data_add_master_name (const xcb_input_hierarchy_change_data_t *S);
  7788  
  7789  int
  7790  xcb_input_hierarchy_change_data_add_master_name_length (const xcb_input_hierarchy_change_t *R,
  7791                                                          const xcb_input_hierarchy_change_data_t *S);
  7792  
  7793  xcb_generic_iterator_t
  7794  xcb_input_hierarchy_change_data_add_master_name_end (const xcb_input_hierarchy_change_t *R,
  7795                                                       const xcb_input_hierarchy_change_data_t *S);
  7796  
  7797  int
  7798  xcb_input_hierarchy_change_data_serialize (void                                    **_buffer,
  7799                                             uint16_t                                  type,
  7800                                             const xcb_input_hierarchy_change_data_t  *_aux);
  7801  
  7802  int
  7803  xcb_input_hierarchy_change_data_unpack (const void                         *_buffer,
  7804                                          uint16_t                            type,
  7805                                          xcb_input_hierarchy_change_data_t  *_aux);
  7806  
  7807  int
  7808  xcb_input_hierarchy_change_data_sizeof (const void  *_buffer,
  7809                                          uint16_t     type);
  7810  
  7811  int
  7812  xcb_input_hierarchy_change_sizeof (const void  *_buffer);
  7813  
  7814  /**
  7815   * Get the next element of the iterator
  7816   * @param i Pointer to a xcb_input_hierarchy_change_iterator_t
  7817   *
  7818   * Get the next element in the iterator. The member rem is
  7819   * decreased by one. The member data points to the next
  7820   * element. The member index is increased by sizeof(xcb_input_hierarchy_change_t)
  7821   */
  7822  void
  7823  xcb_input_hierarchy_change_next (xcb_input_hierarchy_change_iterator_t *i);
  7824  
  7825  /**
  7826   * Return the iterator pointing to the last element
  7827   * @param i An xcb_input_hierarchy_change_iterator_t
  7828   * @return  The iterator pointing to the last element
  7829   *
  7830   * Set the current element in the iterator to the last element.
  7831   * The member rem is set to 0. The member data points to the
  7832   * last element.
  7833   */
  7834  xcb_generic_iterator_t
  7835  xcb_input_hierarchy_change_end (xcb_input_hierarchy_change_iterator_t i);
  7836  
  7837  int
  7838  xcb_input_xi_change_hierarchy_sizeof (const void  *_buffer);
  7839  
  7840  /**
  7841   *
  7842   * @param c The connection
  7843   * @return A cookie
  7844   *
  7845   * Delivers a request to the X server.
  7846   *
  7847   * This form can be used only if the request will not cause
  7848   * a reply to be generated. Any returned error will be
  7849   * saved for handling by xcb_request_check().
  7850   */
  7851  xcb_void_cookie_t
  7852  xcb_input_xi_change_hierarchy_checked (xcb_connection_t                   *c,
  7853                                         uint8_t                             num_changes,
  7854                                         const xcb_input_hierarchy_change_t *changes);
  7855  
  7856  /**
  7857   *
  7858   * @param c The connection
  7859   * @return A cookie
  7860   *
  7861   * Delivers a request to the X server.
  7862   *
  7863   */
  7864  xcb_void_cookie_t
  7865  xcb_input_xi_change_hierarchy (xcb_connection_t                   *c,
  7866                                 uint8_t                             num_changes,
  7867                                 const xcb_input_hierarchy_change_t *changes);
  7868  
  7869  int
  7870  xcb_input_xi_change_hierarchy_changes_length (const xcb_input_xi_change_hierarchy_request_t *R);
  7871  
  7872  xcb_input_hierarchy_change_iterator_t
  7873  xcb_input_xi_change_hierarchy_changes_iterator (const xcb_input_xi_change_hierarchy_request_t *R);
  7874  
  7875  /**
  7876   *
  7877   * @param c The connection
  7878   * @return A cookie
  7879   *
  7880   * Delivers a request to the X server.
  7881   *
  7882   * This form can be used only if the request will not cause
  7883   * a reply to be generated. Any returned error will be
  7884   * saved for handling by xcb_request_check().
  7885   */
  7886  xcb_void_cookie_t
  7887  xcb_input_xi_set_client_pointer_checked (xcb_connection_t      *c,
  7888                                           xcb_window_t           window,
  7889                                           xcb_input_device_id_t  deviceid);
  7890  
  7891  /**
  7892   *
  7893   * @param c The connection
  7894   * @return A cookie
  7895   *
  7896   * Delivers a request to the X server.
  7897   *
  7898   */
  7899  xcb_void_cookie_t
  7900  xcb_input_xi_set_client_pointer (xcb_connection_t      *c,
  7901                                   xcb_window_t           window,
  7902                                   xcb_input_device_id_t  deviceid);
  7903  
  7904  /**
  7905   *
  7906   * @param c The connection
  7907   * @return A cookie
  7908   *
  7909   * Delivers a request to the X server.
  7910   *
  7911   */
  7912  xcb_input_xi_get_client_pointer_cookie_t
  7913  xcb_input_xi_get_client_pointer (xcb_connection_t *c,
  7914                                   xcb_window_t      window);
  7915  
  7916  /**
  7917   *
  7918   * @param c The connection
  7919   * @return A cookie
  7920   *
  7921   * Delivers a request to the X server.
  7922   *
  7923   * This form can be used only if the request will cause
  7924   * a reply to be generated. Any returned error will be
  7925   * placed in the event queue.
  7926   */
  7927  xcb_input_xi_get_client_pointer_cookie_t
  7928  xcb_input_xi_get_client_pointer_unchecked (xcb_connection_t *c,
  7929                                             xcb_window_t      window);
  7930  
  7931  /**
  7932   * Return the reply
  7933   * @param c      The connection
  7934   * @param cookie The cookie
  7935   * @param e      The xcb_generic_error_t supplied
  7936   *
  7937   * Returns the reply of the request asked by
  7938   *
  7939   * The parameter @p e supplied to this function must be NULL if
  7940   * xcb_input_xi_get_client_pointer_unchecked(). is used.
  7941   * Otherwise, it stores the error if any.
  7942   *
  7943   * The returned value must be freed by the caller using free().
  7944   */
  7945  xcb_input_xi_get_client_pointer_reply_t *
  7946  xcb_input_xi_get_client_pointer_reply (xcb_connection_t                          *c,
  7947                                         xcb_input_xi_get_client_pointer_cookie_t   cookie  /**< */,
  7948                                         xcb_generic_error_t                      **e);
  7949  
  7950  int
  7951  xcb_input_event_mask_sizeof (const void  *_buffer);
  7952  
  7953  uint32_t *
  7954  xcb_input_event_mask_mask (const xcb_input_event_mask_t *R);
  7955  
  7956  int
  7957  xcb_input_event_mask_mask_length (const xcb_input_event_mask_t *R);
  7958  
  7959  xcb_generic_iterator_t
  7960  xcb_input_event_mask_mask_end (const xcb_input_event_mask_t *R);
  7961  
  7962  /**
  7963   * Get the next element of the iterator
  7964   * @param i Pointer to a xcb_input_event_mask_iterator_t
  7965   *
  7966   * Get the next element in the iterator. The member rem is
  7967   * decreased by one. The member data points to the next
  7968   * element. The member index is increased by sizeof(xcb_input_event_mask_t)
  7969   */
  7970  void
  7971  xcb_input_event_mask_next (xcb_input_event_mask_iterator_t *i);
  7972  
  7973  /**
  7974   * Return the iterator pointing to the last element
  7975   * @param i An xcb_input_event_mask_iterator_t
  7976   * @return  The iterator pointing to the last element
  7977   *
  7978   * Set the current element in the iterator to the last element.
  7979   * The member rem is set to 0. The member data points to the
  7980   * last element.
  7981   */
  7982  xcb_generic_iterator_t
  7983  xcb_input_event_mask_end (xcb_input_event_mask_iterator_t i);
  7984  
  7985  int
  7986  xcb_input_xi_select_events_sizeof (const void  *_buffer);
  7987  
  7988  /**
  7989   *
  7990   * @param c The connection
  7991   * @return A cookie
  7992   *
  7993   * Delivers a request to the X server.
  7994   *
  7995   * This form can be used only if the request will not cause
  7996   * a reply to be generated. Any returned error will be
  7997   * saved for handling by xcb_request_check().
  7998   */
  7999  xcb_void_cookie_t
  8000  xcb_input_xi_select_events_checked (xcb_connection_t             *c,
  8001                                      xcb_window_t                  window,
  8002                                      uint16_t                      num_mask,
  8003                                      const xcb_input_event_mask_t *masks);
  8004  
  8005  /**
  8006   *
  8007   * @param c The connection
  8008   * @return A cookie
  8009   *
  8010   * Delivers a request to the X server.
  8011   *
  8012   */
  8013  xcb_void_cookie_t
  8014  xcb_input_xi_select_events (xcb_connection_t             *c,
  8015                              xcb_window_t                  window,
  8016                              uint16_t                      num_mask,
  8017                              const xcb_input_event_mask_t *masks);
  8018  
  8019  int
  8020  xcb_input_xi_select_events_masks_length (const xcb_input_xi_select_events_request_t *R);
  8021  
  8022  xcb_input_event_mask_iterator_t
  8023  xcb_input_xi_select_events_masks_iterator (const xcb_input_xi_select_events_request_t *R);
  8024  
  8025  /**
  8026   *
  8027   * @param c The connection
  8028   * @return A cookie
  8029   *
  8030   * Delivers a request to the X server.
  8031   *
  8032   */
  8033  xcb_input_xi_query_version_cookie_t
  8034  xcb_input_xi_query_version (xcb_connection_t *c,
  8035                              uint16_t          major_version,
  8036                              uint16_t          minor_version);
  8037  
  8038  /**
  8039   *
  8040   * @param c The connection
  8041   * @return A cookie
  8042   *
  8043   * Delivers a request to the X server.
  8044   *
  8045   * This form can be used only if the request will cause
  8046   * a reply to be generated. Any returned error will be
  8047   * placed in the event queue.
  8048   */
  8049  xcb_input_xi_query_version_cookie_t
  8050  xcb_input_xi_query_version_unchecked (xcb_connection_t *c,
  8051                                        uint16_t          major_version,
  8052                                        uint16_t          minor_version);
  8053  
  8054  /**
  8055   * Return the reply
  8056   * @param c      The connection
  8057   * @param cookie The cookie
  8058   * @param e      The xcb_generic_error_t supplied
  8059   *
  8060   * Returns the reply of the request asked by
  8061   *
  8062   * The parameter @p e supplied to this function must be NULL if
  8063   * xcb_input_xi_query_version_unchecked(). is used.
  8064   * Otherwise, it stores the error if any.
  8065   *
  8066   * The returned value must be freed by the caller using free().
  8067   */
  8068  xcb_input_xi_query_version_reply_t *
  8069  xcb_input_xi_query_version_reply (xcb_connection_t                     *c,
  8070                                    xcb_input_xi_query_version_cookie_t   cookie  /**< */,
  8071                                    xcb_generic_error_t                 **e);
  8072  
  8073  int
  8074  xcb_input_button_class_sizeof (const void  *_buffer);
  8075  
  8076  uint32_t *
  8077  xcb_input_button_class_state (const xcb_input_button_class_t *R);
  8078  
  8079  int
  8080  xcb_input_button_class_state_length (const xcb_input_button_class_t *R);
  8081  
  8082  xcb_generic_iterator_t
  8083  xcb_input_button_class_state_end (const xcb_input_button_class_t *R);
  8084  
  8085  xcb_atom_t *
  8086  xcb_input_button_class_labels (const xcb_input_button_class_t *R);
  8087  
  8088  int
  8089  xcb_input_button_class_labels_length (const xcb_input_button_class_t *R);
  8090  
  8091  xcb_generic_iterator_t
  8092  xcb_input_button_class_labels_end (const xcb_input_button_class_t *R);
  8093  
  8094  /**
  8095   * Get the next element of the iterator
  8096   * @param i Pointer to a xcb_input_button_class_iterator_t
  8097   *
  8098   * Get the next element in the iterator. The member rem is
  8099   * decreased by one. The member data points to the next
  8100   * element. The member index is increased by sizeof(xcb_input_button_class_t)
  8101   */
  8102  void
  8103  xcb_input_button_class_next (xcb_input_button_class_iterator_t *i);
  8104  
  8105  /**
  8106   * Return the iterator pointing to the last element
  8107   * @param i An xcb_input_button_class_iterator_t
  8108   * @return  The iterator pointing to the last element
  8109   *
  8110   * Set the current element in the iterator to the last element.
  8111   * The member rem is set to 0. The member data points to the
  8112   * last element.
  8113   */
  8114  xcb_generic_iterator_t
  8115  xcb_input_button_class_end (xcb_input_button_class_iterator_t i);
  8116  
  8117  int
  8118  xcb_input_key_class_sizeof (const void  *_buffer);
  8119  
  8120  uint32_t *
  8121  xcb_input_key_class_keys (const xcb_input_key_class_t *R);
  8122  
  8123  int
  8124  xcb_input_key_class_keys_length (const xcb_input_key_class_t *R);
  8125  
  8126  xcb_generic_iterator_t
  8127  xcb_input_key_class_keys_end (const xcb_input_key_class_t *R);
  8128  
  8129  /**
  8130   * Get the next element of the iterator
  8131   * @param i Pointer to a xcb_input_key_class_iterator_t
  8132   *
  8133   * Get the next element in the iterator. The member rem is
  8134   * decreased by one. The member data points to the next
  8135   * element. The member index is increased by sizeof(xcb_input_key_class_t)
  8136   */
  8137  void
  8138  xcb_input_key_class_next (xcb_input_key_class_iterator_t *i);
  8139  
  8140  /**
  8141   * Return the iterator pointing to the last element
  8142   * @param i An xcb_input_key_class_iterator_t
  8143   * @return  The iterator pointing to the last element
  8144   *
  8145   * Set the current element in the iterator to the last element.
  8146   * The member rem is set to 0. The member data points to the
  8147   * last element.
  8148   */
  8149  xcb_generic_iterator_t
  8150  xcb_input_key_class_end (xcb_input_key_class_iterator_t i);
  8151  
  8152  /**
  8153   * Get the next element of the iterator
  8154   * @param i Pointer to a xcb_input_scroll_class_iterator_t
  8155   *
  8156   * Get the next element in the iterator. The member rem is
  8157   * decreased by one. The member data points to the next
  8158   * element. The member index is increased by sizeof(xcb_input_scroll_class_t)
  8159   */
  8160  void
  8161  xcb_input_scroll_class_next (xcb_input_scroll_class_iterator_t *i);
  8162  
  8163  /**
  8164   * Return the iterator pointing to the last element
  8165   * @param i An xcb_input_scroll_class_iterator_t
  8166   * @return  The iterator pointing to the last element
  8167   *
  8168   * Set the current element in the iterator to the last element.
  8169   * The member rem is set to 0. The member data points to the
  8170   * last element.
  8171   */
  8172  xcb_generic_iterator_t
  8173  xcb_input_scroll_class_end (xcb_input_scroll_class_iterator_t i);
  8174  
  8175  /**
  8176   * Get the next element of the iterator
  8177   * @param i Pointer to a xcb_input_touch_class_iterator_t
  8178   *
  8179   * Get the next element in the iterator. The member rem is
  8180   * decreased by one. The member data points to the next
  8181   * element. The member index is increased by sizeof(xcb_input_touch_class_t)
  8182   */
  8183  void
  8184  xcb_input_touch_class_next (xcb_input_touch_class_iterator_t *i);
  8185  
  8186  /**
  8187   * Return the iterator pointing to the last element
  8188   * @param i An xcb_input_touch_class_iterator_t
  8189   * @return  The iterator pointing to the last element
  8190   *
  8191   * Set the current element in the iterator to the last element.
  8192   * The member rem is set to 0. The member data points to the
  8193   * last element.
  8194   */
  8195  xcb_generic_iterator_t
  8196  xcb_input_touch_class_end (xcb_input_touch_class_iterator_t i);
  8197  
  8198  /**
  8199   * Get the next element of the iterator
  8200   * @param i Pointer to a xcb_input_valuator_class_iterator_t
  8201   *
  8202   * Get the next element in the iterator. The member rem is
  8203   * decreased by one. The member data points to the next
  8204   * element. The member index is increased by sizeof(xcb_input_valuator_class_t)
  8205   */
  8206  void
  8207  xcb_input_valuator_class_next (xcb_input_valuator_class_iterator_t *i);
  8208  
  8209  /**
  8210   * Return the iterator pointing to the last element
  8211   * @param i An xcb_input_valuator_class_iterator_t
  8212   * @return  The iterator pointing to the last element
  8213   *
  8214   * Set the current element in the iterator to the last element.
  8215   * The member rem is set to 0. The member data points to the
  8216   * last element.
  8217   */
  8218  xcb_generic_iterator_t
  8219  xcb_input_valuator_class_end (xcb_input_valuator_class_iterator_t i);
  8220  
  8221  uint32_t *
  8222  xcb_input_device_class_data_key_keys (const xcb_input_device_class_data_t *S);
  8223  
  8224  int
  8225  xcb_input_device_class_data_key_keys_length (const xcb_input_device_class_t *R,
  8226                                               const xcb_input_device_class_data_t *S);
  8227  
  8228  xcb_generic_iterator_t
  8229  xcb_input_device_class_data_key_keys_end (const xcb_input_device_class_t *R,
  8230                                            const xcb_input_device_class_data_t *S);
  8231  
  8232  uint32_t *
  8233  xcb_input_device_class_data_button_state (const xcb_input_device_class_data_t *S);
  8234  
  8235  int
  8236  xcb_input_device_class_data_button_state_length (const xcb_input_device_class_t *R,
  8237                                                   const xcb_input_device_class_data_t *S);
  8238  
  8239  xcb_generic_iterator_t
  8240  xcb_input_device_class_data_button_state_end (const xcb_input_device_class_t *R,
  8241                                                const xcb_input_device_class_data_t *S);
  8242  
  8243  xcb_atom_t *
  8244  xcb_input_device_class_data_button_labels (const xcb_input_device_class_data_t *S);
  8245  
  8246  int
  8247  xcb_input_device_class_data_button_labels_length (const xcb_input_device_class_t *R,
  8248                                                    const xcb_input_device_class_data_t *S);
  8249  
  8250  xcb_generic_iterator_t
  8251  xcb_input_device_class_data_button_labels_end (const xcb_input_device_class_t *R,
  8252                                                 const xcb_input_device_class_data_t *S);
  8253  
  8254  int
  8255  xcb_input_device_class_data_serialize (void                                **_buffer,
  8256                                         uint16_t                              type,
  8257                                         const xcb_input_device_class_data_t  *_aux);
  8258  
  8259  int
  8260  xcb_input_device_class_data_unpack (const void                     *_buffer,
  8261                                      uint16_t                        type,
  8262                                      xcb_input_device_class_data_t  *_aux);
  8263  
  8264  int
  8265  xcb_input_device_class_data_sizeof (const void  *_buffer,
  8266                                      uint16_t     type);
  8267  
  8268  int
  8269  xcb_input_device_class_sizeof (const void  *_buffer);
  8270  
  8271  /**
  8272   * Get the next element of the iterator
  8273   * @param i Pointer to a xcb_input_device_class_iterator_t
  8274   *
  8275   * Get the next element in the iterator. The member rem is
  8276   * decreased by one. The member data points to the next
  8277   * element. The member index is increased by sizeof(xcb_input_device_class_t)
  8278   */
  8279  void
  8280  xcb_input_device_class_next (xcb_input_device_class_iterator_t *i);
  8281  
  8282  /**
  8283   * Return the iterator pointing to the last element
  8284   * @param i An xcb_input_device_class_iterator_t
  8285   * @return  The iterator pointing to the last element
  8286   *
  8287   * Set the current element in the iterator to the last element.
  8288   * The member rem is set to 0. The member data points to the
  8289   * last element.
  8290   */
  8291  xcb_generic_iterator_t
  8292  xcb_input_device_class_end (xcb_input_device_class_iterator_t i);
  8293  
  8294  int
  8295  xcb_input_xi_device_info_sizeof (const void  *_buffer);
  8296  
  8297  char *
  8298  xcb_input_xi_device_info_name (const xcb_input_xi_device_info_t *R);
  8299  
  8300  int
  8301  xcb_input_xi_device_info_name_length (const xcb_input_xi_device_info_t *R);
  8302  
  8303  xcb_generic_iterator_t
  8304  xcb_input_xi_device_info_name_end (const xcb_input_xi_device_info_t *R);
  8305  
  8306  int
  8307  xcb_input_xi_device_info_classes_length (const xcb_input_xi_device_info_t *R);
  8308  
  8309  xcb_input_device_class_iterator_t
  8310  xcb_input_xi_device_info_classes_iterator (const xcb_input_xi_device_info_t *R);
  8311  
  8312  /**
  8313   * Get the next element of the iterator
  8314   * @param i Pointer to a xcb_input_xi_device_info_iterator_t
  8315   *
  8316   * Get the next element in the iterator. The member rem is
  8317   * decreased by one. The member data points to the next
  8318   * element. The member index is increased by sizeof(xcb_input_xi_device_info_t)
  8319   */
  8320  void
  8321  xcb_input_xi_device_info_next (xcb_input_xi_device_info_iterator_t *i);
  8322  
  8323  /**
  8324   * Return the iterator pointing to the last element
  8325   * @param i An xcb_input_xi_device_info_iterator_t
  8326   * @return  The iterator pointing to the last element
  8327   *
  8328   * Set the current element in the iterator to the last element.
  8329   * The member rem is set to 0. The member data points to the
  8330   * last element.
  8331   */
  8332  xcb_generic_iterator_t
  8333  xcb_input_xi_device_info_end (xcb_input_xi_device_info_iterator_t i);
  8334  
  8335  int
  8336  xcb_input_xi_query_device_sizeof (const void  *_buffer);
  8337  
  8338  /**
  8339   *
  8340   * @param c The connection
  8341   * @return A cookie
  8342   *
  8343   * Delivers a request to the X server.
  8344   *
  8345   */
  8346  xcb_input_xi_query_device_cookie_t
  8347  xcb_input_xi_query_device (xcb_connection_t      *c,
  8348                             xcb_input_device_id_t  deviceid);
  8349  
  8350  /**
  8351   *
  8352   * @param c The connection
  8353   * @return A cookie
  8354   *
  8355   * Delivers a request to the X server.
  8356   *
  8357   * This form can be used only if the request will cause
  8358   * a reply to be generated. Any returned error will be
  8359   * placed in the event queue.
  8360   */
  8361  xcb_input_xi_query_device_cookie_t
  8362  xcb_input_xi_query_device_unchecked (xcb_connection_t      *c,
  8363                                       xcb_input_device_id_t  deviceid);
  8364  
  8365  int
  8366  xcb_input_xi_query_device_infos_length (const xcb_input_xi_query_device_reply_t *R);
  8367  
  8368  xcb_input_xi_device_info_iterator_t
  8369  xcb_input_xi_query_device_infos_iterator (const xcb_input_xi_query_device_reply_t *R);
  8370  
  8371  /**
  8372   * Return the reply
  8373   * @param c      The connection
  8374   * @param cookie The cookie
  8375   * @param e      The xcb_generic_error_t supplied
  8376   *
  8377   * Returns the reply of the request asked by
  8378   *
  8379   * The parameter @p e supplied to this function must be NULL if
  8380   * xcb_input_xi_query_device_unchecked(). is used.
  8381   * Otherwise, it stores the error if any.
  8382   *
  8383   * The returned value must be freed by the caller using free().
  8384   */
  8385  xcb_input_xi_query_device_reply_t *
  8386  xcb_input_xi_query_device_reply (xcb_connection_t                    *c,
  8387                                   xcb_input_xi_query_device_cookie_t   cookie  /**< */,
  8388                                   xcb_generic_error_t                **e);
  8389  
  8390  /**
  8391   *
  8392   * @param c The connection
  8393   * @return A cookie
  8394   *
  8395   * Delivers a request to the X server.
  8396   *
  8397   * This form can be used only if the request will not cause
  8398   * a reply to be generated. Any returned error will be
  8399   * saved for handling by xcb_request_check().
  8400   */
  8401  xcb_void_cookie_t
  8402  xcb_input_xi_set_focus_checked (xcb_connection_t      *c,
  8403                                  xcb_window_t           window,
  8404                                  xcb_timestamp_t        time,
  8405                                  xcb_input_device_id_t  deviceid);
  8406  
  8407  /**
  8408   *
  8409   * @param c The connection
  8410   * @return A cookie
  8411   *
  8412   * Delivers a request to the X server.
  8413   *
  8414   */
  8415  xcb_void_cookie_t
  8416  xcb_input_xi_set_focus (xcb_connection_t      *c,
  8417                          xcb_window_t           window,
  8418                          xcb_timestamp_t        time,
  8419                          xcb_input_device_id_t  deviceid);
  8420  
  8421  /**
  8422   *
  8423   * @param c The connection
  8424   * @return A cookie
  8425   *
  8426   * Delivers a request to the X server.
  8427   *
  8428   */
  8429  xcb_input_xi_get_focus_cookie_t
  8430  xcb_input_xi_get_focus (xcb_connection_t      *c,
  8431                          xcb_input_device_id_t  deviceid);
  8432  
  8433  /**
  8434   *
  8435   * @param c The connection
  8436   * @return A cookie
  8437   *
  8438   * Delivers a request to the X server.
  8439   *
  8440   * This form can be used only if the request will cause
  8441   * a reply to be generated. Any returned error will be
  8442   * placed in the event queue.
  8443   */
  8444  xcb_input_xi_get_focus_cookie_t
  8445  xcb_input_xi_get_focus_unchecked (xcb_connection_t      *c,
  8446                                    xcb_input_device_id_t  deviceid);
  8447  
  8448  /**
  8449   * Return the reply
  8450   * @param c      The connection
  8451   * @param cookie The cookie
  8452   * @param e      The xcb_generic_error_t supplied
  8453   *
  8454   * Returns the reply of the request asked by
  8455   *
  8456   * The parameter @p e supplied to this function must be NULL if
  8457   * xcb_input_xi_get_focus_unchecked(). is used.
  8458   * Otherwise, it stores the error if any.
  8459   *
  8460   * The returned value must be freed by the caller using free().
  8461   */
  8462  xcb_input_xi_get_focus_reply_t *
  8463  xcb_input_xi_get_focus_reply (xcb_connection_t                 *c,
  8464                                xcb_input_xi_get_focus_cookie_t   cookie  /**< */,
  8465                                xcb_generic_error_t             **e);
  8466  
  8467  int
  8468  xcb_input_xi_grab_device_sizeof (const void  *_buffer);
  8469  
  8470  /**
  8471   *
  8472   * @param c The connection
  8473   * @return A cookie
  8474   *
  8475   * Delivers a request to the X server.
  8476   *
  8477   */
  8478  xcb_input_xi_grab_device_cookie_t
  8479  xcb_input_xi_grab_device (xcb_connection_t      *c,
  8480                            xcb_window_t           window,
  8481                            xcb_timestamp_t        time,
  8482                            xcb_cursor_t           cursor,
  8483                            xcb_input_device_id_t  deviceid,
  8484                            uint8_t                mode,
  8485                            uint8_t                paired_device_mode,
  8486                            uint8_t                owner_events,
  8487                            uint16_t               mask_len,
  8488                            const uint32_t        *mask);
  8489  
  8490  /**
  8491   *
  8492   * @param c The connection
  8493   * @return A cookie
  8494   *
  8495   * Delivers a request to the X server.
  8496   *
  8497   * This form can be used only if the request will cause
  8498   * a reply to be generated. Any returned error will be
  8499   * placed in the event queue.
  8500   */
  8501  xcb_input_xi_grab_device_cookie_t
  8502  xcb_input_xi_grab_device_unchecked (xcb_connection_t      *c,
  8503                                      xcb_window_t           window,
  8504                                      xcb_timestamp_t        time,
  8505                                      xcb_cursor_t           cursor,
  8506                                      xcb_input_device_id_t  deviceid,
  8507                                      uint8_t                mode,
  8508                                      uint8_t                paired_device_mode,
  8509                                      uint8_t                owner_events,
  8510                                      uint16_t               mask_len,
  8511                                      const uint32_t        *mask);
  8512  
  8513  /**
  8514   * Return the reply
  8515   * @param c      The connection
  8516   * @param cookie The cookie
  8517   * @param e      The xcb_generic_error_t supplied
  8518   *
  8519   * Returns the reply of the request asked by
  8520   *
  8521   * The parameter @p e supplied to this function must be NULL if
  8522   * xcb_input_xi_grab_device_unchecked(). is used.
  8523   * Otherwise, it stores the error if any.
  8524   *
  8525   * The returned value must be freed by the caller using free().
  8526   */
  8527  xcb_input_xi_grab_device_reply_t *
  8528  xcb_input_xi_grab_device_reply (xcb_connection_t                   *c,
  8529                                  xcb_input_xi_grab_device_cookie_t   cookie  /**< */,
  8530                                  xcb_generic_error_t               **e);
  8531  
  8532  /**
  8533   *
  8534   * @param c The connection
  8535   * @return A cookie
  8536   *
  8537   * Delivers a request to the X server.
  8538   *
  8539   * This form can be used only if the request will not cause
  8540   * a reply to be generated. Any returned error will be
  8541   * saved for handling by xcb_request_check().
  8542   */
  8543  xcb_void_cookie_t
  8544  xcb_input_xi_ungrab_device_checked (xcb_connection_t      *c,
  8545                                      xcb_timestamp_t        time,
  8546                                      xcb_input_device_id_t  deviceid);
  8547  
  8548  /**
  8549   *
  8550   * @param c The connection
  8551   * @return A cookie
  8552   *
  8553   * Delivers a request to the X server.
  8554   *
  8555   */
  8556  xcb_void_cookie_t
  8557  xcb_input_xi_ungrab_device (xcb_connection_t      *c,
  8558                              xcb_timestamp_t        time,
  8559                              xcb_input_device_id_t  deviceid);
  8560  
  8561  /**
  8562   *
  8563   * @param c The connection
  8564   * @return A cookie
  8565   *
  8566   * Delivers a request to the X server.
  8567   *
  8568   * This form can be used only if the request will not cause
  8569   * a reply to be generated. Any returned error will be
  8570   * saved for handling by xcb_request_check().
  8571   */
  8572  xcb_void_cookie_t
  8573  xcb_input_xi_allow_events_checked (xcb_connection_t      *c,
  8574                                     xcb_timestamp_t        time,
  8575                                     xcb_input_device_id_t  deviceid,
  8576                                     uint8_t                event_mode,
  8577                                     uint32_t               touchid,
  8578                                     xcb_window_t           grab_window);
  8579  
  8580  /**
  8581   *
  8582   * @param c The connection
  8583   * @return A cookie
  8584   *
  8585   * Delivers a request to the X server.
  8586   *
  8587   */
  8588  xcb_void_cookie_t
  8589  xcb_input_xi_allow_events (xcb_connection_t      *c,
  8590                             xcb_timestamp_t        time,
  8591                             xcb_input_device_id_t  deviceid,
  8592                             uint8_t                event_mode,
  8593                             uint32_t               touchid,
  8594                             xcb_window_t           grab_window);
  8595  
  8596  /**
  8597   * Get the next element of the iterator
  8598   * @param i Pointer to a xcb_input_grab_modifier_info_iterator_t
  8599   *
  8600   * Get the next element in the iterator. The member rem is
  8601   * decreased by one. The member data points to the next
  8602   * element. The member index is increased by sizeof(xcb_input_grab_modifier_info_t)
  8603   */
  8604  void
  8605  xcb_input_grab_modifier_info_next (xcb_input_grab_modifier_info_iterator_t *i);
  8606  
  8607  /**
  8608   * Return the iterator pointing to the last element
  8609   * @param i An xcb_input_grab_modifier_info_iterator_t
  8610   * @return  The iterator pointing to the last element
  8611   *
  8612   * Set the current element in the iterator to the last element.
  8613   * The member rem is set to 0. The member data points to the
  8614   * last element.
  8615   */
  8616  xcb_generic_iterator_t
  8617  xcb_input_grab_modifier_info_end (xcb_input_grab_modifier_info_iterator_t i);
  8618  
  8619  int
  8620  xcb_input_xi_passive_grab_device_sizeof (const void  *_buffer);
  8621  
  8622  /**
  8623   *
  8624   * @param c The connection
  8625   * @return A cookie
  8626   *
  8627   * Delivers a request to the X server.
  8628   *
  8629   */
  8630  xcb_input_xi_passive_grab_device_cookie_t
  8631  xcb_input_xi_passive_grab_device (xcb_connection_t      *c,
  8632                                    xcb_timestamp_t        time,
  8633                                    xcb_window_t           grab_window,
  8634                                    xcb_cursor_t           cursor,
  8635                                    uint32_t               detail,
  8636                                    xcb_input_device_id_t  deviceid,
  8637                                    uint16_t               num_modifiers,
  8638                                    uint16_t               mask_len,
  8639                                    uint8_t                grab_type,
  8640                                    uint8_t                grab_mode,
  8641                                    uint8_t                paired_device_mode,
  8642                                    uint8_t                owner_events,
  8643                                    const uint32_t        *mask,
  8644                                    const uint32_t        *modifiers);
  8645  
  8646  /**
  8647   *
  8648   * @param c The connection
  8649   * @return A cookie
  8650   *
  8651   * Delivers a request to the X server.
  8652   *
  8653   * This form can be used only if the request will cause
  8654   * a reply to be generated. Any returned error will be
  8655   * placed in the event queue.
  8656   */
  8657  xcb_input_xi_passive_grab_device_cookie_t
  8658  xcb_input_xi_passive_grab_device_unchecked (xcb_connection_t      *c,
  8659                                              xcb_timestamp_t        time,
  8660                                              xcb_window_t           grab_window,
  8661                                              xcb_cursor_t           cursor,
  8662                                              uint32_t               detail,
  8663                                              xcb_input_device_id_t  deviceid,
  8664                                              uint16_t               num_modifiers,
  8665                                              uint16_t               mask_len,
  8666                                              uint8_t                grab_type,
  8667                                              uint8_t                grab_mode,
  8668                                              uint8_t                paired_device_mode,
  8669                                              uint8_t                owner_events,
  8670                                              const uint32_t        *mask,
  8671                                              const uint32_t        *modifiers);
  8672  
  8673  xcb_input_grab_modifier_info_t *
  8674  xcb_input_xi_passive_grab_device_modifiers (const xcb_input_xi_passive_grab_device_reply_t *R);
  8675  
  8676  int
  8677  xcb_input_xi_passive_grab_device_modifiers_length (const xcb_input_xi_passive_grab_device_reply_t *R);
  8678  
  8679  xcb_input_grab_modifier_info_iterator_t
  8680  xcb_input_xi_passive_grab_device_modifiers_iterator (const xcb_input_xi_passive_grab_device_reply_t *R);
  8681  
  8682  /**
  8683   * Return the reply
  8684   * @param c      The connection
  8685   * @param cookie The cookie
  8686   * @param e      The xcb_generic_error_t supplied
  8687   *
  8688   * Returns the reply of the request asked by
  8689   *
  8690   * The parameter @p e supplied to this function must be NULL if
  8691   * xcb_input_xi_passive_grab_device_unchecked(). is used.
  8692   * Otherwise, it stores the error if any.
  8693   *
  8694   * The returned value must be freed by the caller using free().
  8695   */
  8696  xcb_input_xi_passive_grab_device_reply_t *
  8697  xcb_input_xi_passive_grab_device_reply (xcb_connection_t                           *c,
  8698                                          xcb_input_xi_passive_grab_device_cookie_t   cookie  /**< */,
  8699                                          xcb_generic_error_t                       **e);
  8700  
  8701  int
  8702  xcb_input_xi_passive_ungrab_device_sizeof (const void  *_buffer);
  8703  
  8704  /**
  8705   *
  8706   * @param c The connection
  8707   * @return A cookie
  8708   *
  8709   * Delivers a request to the X server.
  8710   *
  8711   * This form can be used only if the request will not cause
  8712   * a reply to be generated. Any returned error will be
  8713   * saved for handling by xcb_request_check().
  8714   */
  8715  xcb_void_cookie_t
  8716  xcb_input_xi_passive_ungrab_device_checked (xcb_connection_t      *c,
  8717                                              xcb_window_t           grab_window,
  8718                                              uint32_t               detail,
  8719                                              xcb_input_device_id_t  deviceid,
  8720                                              uint16_t               num_modifiers,
  8721                                              uint8_t                grab_type,
  8722                                              const uint32_t        *modifiers);
  8723  
  8724  /**
  8725   *
  8726   * @param c The connection
  8727   * @return A cookie
  8728   *
  8729   * Delivers a request to the X server.
  8730   *
  8731   */
  8732  xcb_void_cookie_t
  8733  xcb_input_xi_passive_ungrab_device (xcb_connection_t      *c,
  8734                                      xcb_window_t           grab_window,
  8735                                      uint32_t               detail,
  8736                                      xcb_input_device_id_t  deviceid,
  8737                                      uint16_t               num_modifiers,
  8738                                      uint8_t                grab_type,
  8739                                      const uint32_t        *modifiers);
  8740  
  8741  uint32_t *
  8742  xcb_input_xi_passive_ungrab_device_modifiers (const xcb_input_xi_passive_ungrab_device_request_t *R);
  8743  
  8744  int
  8745  xcb_input_xi_passive_ungrab_device_modifiers_length (const xcb_input_xi_passive_ungrab_device_request_t *R);
  8746  
  8747  xcb_generic_iterator_t
  8748  xcb_input_xi_passive_ungrab_device_modifiers_end (const xcb_input_xi_passive_ungrab_device_request_t *R);
  8749  
  8750  int
  8751  xcb_input_xi_list_properties_sizeof (const void  *_buffer);
  8752  
  8753  /**
  8754   *
  8755   * @param c The connection
  8756   * @return A cookie
  8757   *
  8758   * Delivers a request to the X server.
  8759   *
  8760   */
  8761  xcb_input_xi_list_properties_cookie_t
  8762  xcb_input_xi_list_properties (xcb_connection_t      *c,
  8763                                xcb_input_device_id_t  deviceid);
  8764  
  8765  /**
  8766   *
  8767   * @param c The connection
  8768   * @return A cookie
  8769   *
  8770   * Delivers a request to the X server.
  8771   *
  8772   * This form can be used only if the request will cause
  8773   * a reply to be generated. Any returned error will be
  8774   * placed in the event queue.
  8775   */
  8776  xcb_input_xi_list_properties_cookie_t
  8777  xcb_input_xi_list_properties_unchecked (xcb_connection_t      *c,
  8778                                          xcb_input_device_id_t  deviceid);
  8779  
  8780  xcb_atom_t *
  8781  xcb_input_xi_list_properties_properties (const xcb_input_xi_list_properties_reply_t *R);
  8782  
  8783  int
  8784  xcb_input_xi_list_properties_properties_length (const xcb_input_xi_list_properties_reply_t *R);
  8785  
  8786  xcb_generic_iterator_t
  8787  xcb_input_xi_list_properties_properties_end (const xcb_input_xi_list_properties_reply_t *R);
  8788  
  8789  /**
  8790   * Return the reply
  8791   * @param c      The connection
  8792   * @param cookie The cookie
  8793   * @param e      The xcb_generic_error_t supplied
  8794   *
  8795   * Returns the reply of the request asked by
  8796   *
  8797   * The parameter @p e supplied to this function must be NULL if
  8798   * xcb_input_xi_list_properties_unchecked(). is used.
  8799   * Otherwise, it stores the error if any.
  8800   *
  8801   * The returned value must be freed by the caller using free().
  8802   */
  8803  xcb_input_xi_list_properties_reply_t *
  8804  xcb_input_xi_list_properties_reply (xcb_connection_t                       *c,
  8805                                      xcb_input_xi_list_properties_cookie_t   cookie  /**< */,
  8806                                      xcb_generic_error_t                   **e);
  8807  
  8808  uint8_t *
  8809  xcb_input_xi_change_property_items_data_8 (const xcb_input_xi_change_property_items_t *S);
  8810  
  8811  int
  8812  xcb_input_xi_change_property_items_data_8_length (const xcb_input_xi_change_property_request_t *R,
  8813                                                    const xcb_input_xi_change_property_items_t *S);
  8814  
  8815  xcb_generic_iterator_t
  8816  xcb_input_xi_change_property_items_data_8_end (const xcb_input_xi_change_property_request_t *R,
  8817                                                 const xcb_input_xi_change_property_items_t *S);
  8818  
  8819  uint16_t *
  8820  xcb_input_xi_change_property_items_data_16 (const xcb_input_xi_change_property_items_t *S);
  8821  
  8822  int
  8823  xcb_input_xi_change_property_items_data_16_length (const xcb_input_xi_change_property_request_t *R,
  8824                                                     const xcb_input_xi_change_property_items_t *S);
  8825  
  8826  xcb_generic_iterator_t
  8827  xcb_input_xi_change_property_items_data_16_end (const xcb_input_xi_change_property_request_t *R,
  8828                                                  const xcb_input_xi_change_property_items_t *S);
  8829  
  8830  uint32_t *
  8831  xcb_input_xi_change_property_items_data_32 (const xcb_input_xi_change_property_items_t *S);
  8832  
  8833  int
  8834  xcb_input_xi_change_property_items_data_32_length (const xcb_input_xi_change_property_request_t *R,
  8835                                                     const xcb_input_xi_change_property_items_t *S);
  8836  
  8837  xcb_generic_iterator_t
  8838  xcb_input_xi_change_property_items_data_32_end (const xcb_input_xi_change_property_request_t *R,
  8839                                                  const xcb_input_xi_change_property_items_t *S);
  8840  
  8841  int
  8842  xcb_input_xi_change_property_items_serialize (void                                       **_buffer,
  8843                                                uint32_t                                     num_items,
  8844                                                uint8_t                                      format,
  8845                                                const xcb_input_xi_change_property_items_t  *_aux);
  8846  
  8847  int
  8848  xcb_input_xi_change_property_items_unpack (const void                            *_buffer,
  8849                                             uint32_t                               num_items,
  8850                                             uint8_t                                format,
  8851                                             xcb_input_xi_change_property_items_t  *_aux);
  8852  
  8853  int
  8854  xcb_input_xi_change_property_items_sizeof (const void  *_buffer,
  8855                                             uint32_t     num_items,
  8856                                             uint8_t      format);
  8857  
  8858  int
  8859  xcb_input_xi_change_property_sizeof (const void  *_buffer);
  8860  
  8861  /**
  8862   *
  8863   * @param c The connection
  8864   * @return A cookie
  8865   *
  8866   * Delivers a request to the X server.
  8867   *
  8868   * This form can be used only if the request will not cause
  8869   * a reply to be generated. Any returned error will be
  8870   * saved for handling by xcb_request_check().
  8871   */
  8872  xcb_void_cookie_t
  8873  xcb_input_xi_change_property_checked (xcb_connection_t      *c,
  8874                                        xcb_input_device_id_t  deviceid,
  8875                                        uint8_t                mode,
  8876                                        uint8_t                format,
  8877                                        xcb_atom_t             property,
  8878                                        xcb_atom_t             type,
  8879                                        uint32_t               num_items,
  8880                                        const void            *items);
  8881  
  8882  /**
  8883   *
  8884   * @param c The connection
  8885   * @return A cookie
  8886   *
  8887   * Delivers a request to the X server.
  8888   *
  8889   */
  8890  xcb_void_cookie_t
  8891  xcb_input_xi_change_property (xcb_connection_t      *c,
  8892                                xcb_input_device_id_t  deviceid,
  8893                                uint8_t                mode,
  8894                                uint8_t                format,
  8895                                xcb_atom_t             property,
  8896                                xcb_atom_t             type,
  8897                                uint32_t               num_items,
  8898                                const void            *items);
  8899  
  8900  /**
  8901   *
  8902   * @param c The connection
  8903   * @return A cookie
  8904   *
  8905   * Delivers a request to the X server.
  8906   *
  8907   * This form can be used only if the request will not cause
  8908   * a reply to be generated. Any returned error will be
  8909   * saved for handling by xcb_request_check().
  8910   */
  8911  xcb_void_cookie_t
  8912  xcb_input_xi_change_property_aux_checked (xcb_connection_t                           *c,
  8913                                            xcb_input_device_id_t                       deviceid,
  8914                                            uint8_t                                     mode,
  8915                                            uint8_t                                     format,
  8916                                            xcb_atom_t                                  property,
  8917                                            xcb_atom_t                                  type,
  8918                                            uint32_t                                    num_items,
  8919                                            const xcb_input_xi_change_property_items_t *items);
  8920  
  8921  /**
  8922   *
  8923   * @param c The connection
  8924   * @return A cookie
  8925   *
  8926   * Delivers a request to the X server.
  8927   *
  8928   */
  8929  xcb_void_cookie_t
  8930  xcb_input_xi_change_property_aux (xcb_connection_t                           *c,
  8931                                    xcb_input_device_id_t                       deviceid,
  8932                                    uint8_t                                     mode,
  8933                                    uint8_t                                     format,
  8934                                    xcb_atom_t                                  property,
  8935                                    xcb_atom_t                                  type,
  8936                                    uint32_t                                    num_items,
  8937                                    const xcb_input_xi_change_property_items_t *items);
  8938  
  8939  void *
  8940  xcb_input_xi_change_property_items (const xcb_input_xi_change_property_request_t *R);
  8941  
  8942  /**
  8943   *
  8944   * @param c The connection
  8945   * @return A cookie
  8946   *
  8947   * Delivers a request to the X server.
  8948   *
  8949   * This form can be used only if the request will not cause
  8950   * a reply to be generated. Any returned error will be
  8951   * saved for handling by xcb_request_check().
  8952   */
  8953  xcb_void_cookie_t
  8954  xcb_input_xi_delete_property_checked (xcb_connection_t      *c,
  8955                                        xcb_input_device_id_t  deviceid,
  8956                                        xcb_atom_t             property);
  8957  
  8958  /**
  8959   *
  8960   * @param c The connection
  8961   * @return A cookie
  8962   *
  8963   * Delivers a request to the X server.
  8964   *
  8965   */
  8966  xcb_void_cookie_t
  8967  xcb_input_xi_delete_property (xcb_connection_t      *c,
  8968                                xcb_input_device_id_t  deviceid,
  8969                                xcb_atom_t             property);
  8970  
  8971  uint8_t *
  8972  xcb_input_xi_get_property_items_data_8 (const xcb_input_xi_get_property_items_t *S);
  8973  
  8974  int
  8975  xcb_input_xi_get_property_items_data_8_length (const xcb_input_xi_get_property_reply_t *R,
  8976                                                 const xcb_input_xi_get_property_items_t *S);
  8977  
  8978  xcb_generic_iterator_t
  8979  xcb_input_xi_get_property_items_data_8_end (const xcb_input_xi_get_property_reply_t *R,
  8980                                              const xcb_input_xi_get_property_items_t *S);
  8981  
  8982  uint16_t *
  8983  xcb_input_xi_get_property_items_data_16 (const xcb_input_xi_get_property_items_t *S);
  8984  
  8985  int
  8986  xcb_input_xi_get_property_items_data_16_length (const xcb_input_xi_get_property_reply_t *R,
  8987                                                  const xcb_input_xi_get_property_items_t *S);
  8988  
  8989  xcb_generic_iterator_t
  8990  xcb_input_xi_get_property_items_data_16_end (const xcb_input_xi_get_property_reply_t *R,
  8991                                               const xcb_input_xi_get_property_items_t *S);
  8992  
  8993  uint32_t *
  8994  xcb_input_xi_get_property_items_data_32 (const xcb_input_xi_get_property_items_t *S);
  8995  
  8996  int
  8997  xcb_input_xi_get_property_items_data_32_length (const xcb_input_xi_get_property_reply_t *R,
  8998                                                  const xcb_input_xi_get_property_items_t *S);
  8999  
  9000  xcb_generic_iterator_t
  9001  xcb_input_xi_get_property_items_data_32_end (const xcb_input_xi_get_property_reply_t *R,
  9002                                               const xcb_input_xi_get_property_items_t *S);
  9003  
  9004  int
  9005  xcb_input_xi_get_property_items_serialize (void                                    **_buffer,
  9006                                             uint32_t                                  num_items,
  9007                                             uint8_t                                   format,
  9008                                             const xcb_input_xi_get_property_items_t  *_aux);
  9009  
  9010  int
  9011  xcb_input_xi_get_property_items_unpack (const void                         *_buffer,
  9012                                          uint32_t                            num_items,
  9013                                          uint8_t                             format,
  9014                                          xcb_input_xi_get_property_items_t  *_aux);
  9015  
  9016  int
  9017  xcb_input_xi_get_property_items_sizeof (const void  *_buffer,
  9018                                          uint32_t     num_items,
  9019                                          uint8_t      format);
  9020  
  9021  int
  9022  xcb_input_xi_get_property_sizeof (const void  *_buffer);
  9023  
  9024  /**
  9025   *
  9026   * @param c The connection
  9027   * @return A cookie
  9028   *
  9029   * Delivers a request to the X server.
  9030   *
  9031   */
  9032  xcb_input_xi_get_property_cookie_t
  9033  xcb_input_xi_get_property (xcb_connection_t      *c,
  9034                             xcb_input_device_id_t  deviceid,
  9035                             uint8_t                _delete,
  9036                             xcb_atom_t             property,
  9037                             xcb_atom_t             type,
  9038                             uint32_t               offset,
  9039                             uint32_t               len);
  9040  
  9041  /**
  9042   *
  9043   * @param c The connection
  9044   * @return A cookie
  9045   *
  9046   * Delivers a request to the X server.
  9047   *
  9048   * This form can be used only if the request will cause
  9049   * a reply to be generated. Any returned error will be
  9050   * placed in the event queue.
  9051   */
  9052  xcb_input_xi_get_property_cookie_t
  9053  xcb_input_xi_get_property_unchecked (xcb_connection_t      *c,
  9054                                       xcb_input_device_id_t  deviceid,
  9055                                       uint8_t                _delete,
  9056                                       xcb_atom_t             property,
  9057                                       xcb_atom_t             type,
  9058                                       uint32_t               offset,
  9059                                       uint32_t               len);
  9060  
  9061  void *
  9062  xcb_input_xi_get_property_items (const xcb_input_xi_get_property_reply_t *R);
  9063  
  9064  /**
  9065   * Return the reply
  9066   * @param c      The connection
  9067   * @param cookie The cookie
  9068   * @param e      The xcb_generic_error_t supplied
  9069   *
  9070   * Returns the reply of the request asked by
  9071   *
  9072   * The parameter @p e supplied to this function must be NULL if
  9073   * xcb_input_xi_get_property_unchecked(). is used.
  9074   * Otherwise, it stores the error if any.
  9075   *
  9076   * The returned value must be freed by the caller using free().
  9077   */
  9078  xcb_input_xi_get_property_reply_t *
  9079  xcb_input_xi_get_property_reply (xcb_connection_t                    *c,
  9080                                   xcb_input_xi_get_property_cookie_t   cookie  /**< */,
  9081                                   xcb_generic_error_t                **e);
  9082  
  9083  int
  9084  xcb_input_xi_get_selected_events_sizeof (const void  *_buffer);
  9085  
  9086  /**
  9087   *
  9088   * @param c The connection
  9089   * @return A cookie
  9090   *
  9091   * Delivers a request to the X server.
  9092   *
  9093   */
  9094  xcb_input_xi_get_selected_events_cookie_t
  9095  xcb_input_xi_get_selected_events (xcb_connection_t *c,
  9096                                    xcb_window_t      window);
  9097  
  9098  /**
  9099   *
  9100   * @param c The connection
  9101   * @return A cookie
  9102   *
  9103   * Delivers a request to the X server.
  9104   *
  9105   * This form can be used only if the request will cause
  9106   * a reply to be generated. Any returned error will be
  9107   * placed in the event queue.
  9108   */
  9109  xcb_input_xi_get_selected_events_cookie_t
  9110  xcb_input_xi_get_selected_events_unchecked (xcb_connection_t *c,
  9111                                              xcb_window_t      window);
  9112  
  9113  int
  9114  xcb_input_xi_get_selected_events_masks_length (const xcb_input_xi_get_selected_events_reply_t *R);
  9115  
  9116  xcb_input_event_mask_iterator_t
  9117  xcb_input_xi_get_selected_events_masks_iterator (const xcb_input_xi_get_selected_events_reply_t *R);
  9118  
  9119  /**
  9120   * Return the reply
  9121   * @param c      The connection
  9122   * @param cookie The cookie
  9123   * @param e      The xcb_generic_error_t supplied
  9124   *
  9125   * Returns the reply of the request asked by
  9126   *
  9127   * The parameter @p e supplied to this function must be NULL if
  9128   * xcb_input_xi_get_selected_events_unchecked(). is used.
  9129   * Otherwise, it stores the error if any.
  9130   *
  9131   * The returned value must be freed by the caller using free().
  9132   */
  9133  xcb_input_xi_get_selected_events_reply_t *
  9134  xcb_input_xi_get_selected_events_reply (xcb_connection_t                           *c,
  9135                                          xcb_input_xi_get_selected_events_cookie_t   cookie  /**< */,
  9136                                          xcb_generic_error_t                       **e);
  9137  
  9138  /**
  9139   * Get the next element of the iterator
  9140   * @param i Pointer to a xcb_input_barrier_release_pointer_info_iterator_t
  9141   *
  9142   * Get the next element in the iterator. The member rem is
  9143   * decreased by one. The member data points to the next
  9144   * element. The member index is increased by sizeof(xcb_input_barrier_release_pointer_info_t)
  9145   */
  9146  void
  9147  xcb_input_barrier_release_pointer_info_next (xcb_input_barrier_release_pointer_info_iterator_t *i);
  9148  
  9149  /**
  9150   * Return the iterator pointing to the last element
  9151   * @param i An xcb_input_barrier_release_pointer_info_iterator_t
  9152   * @return  The iterator pointing to the last element
  9153   *
  9154   * Set the current element in the iterator to the last element.
  9155   * The member rem is set to 0. The member data points to the
  9156   * last element.
  9157   */
  9158  xcb_generic_iterator_t
  9159  xcb_input_barrier_release_pointer_info_end (xcb_input_barrier_release_pointer_info_iterator_t i);
  9160  
  9161  int
  9162  xcb_input_xi_barrier_release_pointer_sizeof (const void  *_buffer);
  9163  
  9164  /**
  9165   *
  9166   * @param c The connection
  9167   * @return A cookie
  9168   *
  9169   * Delivers a request to the X server.
  9170   *
  9171   * This form can be used only if the request will not cause
  9172   * a reply to be generated. Any returned error will be
  9173   * saved for handling by xcb_request_check().
  9174   */
  9175  xcb_void_cookie_t
  9176  xcb_input_xi_barrier_release_pointer_checked (xcb_connection_t                               *c,
  9177                                                uint32_t                                        num_barriers,
  9178                                                const xcb_input_barrier_release_pointer_info_t *barriers);
  9179  
  9180  /**
  9181   *
  9182   * @param c The connection
  9183   * @return A cookie
  9184   *
  9185   * Delivers a request to the X server.
  9186   *
  9187   */
  9188  xcb_void_cookie_t
  9189  xcb_input_xi_barrier_release_pointer (xcb_connection_t                               *c,
  9190                                        uint32_t                                        num_barriers,
  9191                                        const xcb_input_barrier_release_pointer_info_t *barriers);
  9192  
  9193  xcb_input_barrier_release_pointer_info_t *
  9194  xcb_input_xi_barrier_release_pointer_barriers (const xcb_input_xi_barrier_release_pointer_request_t *R);
  9195  
  9196  int
  9197  xcb_input_xi_barrier_release_pointer_barriers_length (const xcb_input_xi_barrier_release_pointer_request_t *R);
  9198  
  9199  xcb_input_barrier_release_pointer_info_iterator_t
  9200  xcb_input_xi_barrier_release_pointer_barriers_iterator (const xcb_input_xi_barrier_release_pointer_request_t *R);
  9201  
  9202  int
  9203  xcb_input_device_changed_sizeof (const void  *_buffer);
  9204  
  9205  int
  9206  xcb_input_device_changed_classes_length (const xcb_input_device_changed_event_t *R);
  9207  
  9208  xcb_input_device_class_iterator_t
  9209  xcb_input_device_changed_classes_iterator (const xcb_input_device_changed_event_t *R);
  9210  
  9211  int
  9212  xcb_input_key_press_sizeof (const void  *_buffer);
  9213  
  9214  uint32_t *
  9215  xcb_input_key_press_button_mask (const xcb_input_key_press_event_t *R);
  9216  
  9217  int
  9218  xcb_input_key_press_button_mask_length (const xcb_input_key_press_event_t *R);
  9219  
  9220  xcb_generic_iterator_t
  9221  xcb_input_key_press_button_mask_end (const xcb_input_key_press_event_t *R);
  9222  
  9223  uint32_t *
  9224  xcb_input_key_press_valuator_mask (const xcb_input_key_press_event_t *R);
  9225  
  9226  int
  9227  xcb_input_key_press_valuator_mask_length (const xcb_input_key_press_event_t *R);
  9228  
  9229  xcb_generic_iterator_t
  9230  xcb_input_key_press_valuator_mask_end (const xcb_input_key_press_event_t *R);
  9231  
  9232  xcb_input_fp3232_t *
  9233  xcb_input_key_press_axisvalues (const xcb_input_key_press_event_t *R);
  9234  
  9235  int
  9236  xcb_input_key_press_axisvalues_length (const xcb_input_key_press_event_t *R);
  9237  
  9238  xcb_input_fp3232_iterator_t
  9239  xcb_input_key_press_axisvalues_iterator (const xcb_input_key_press_event_t *R);
  9240  
  9241  int
  9242  xcb_input_key_release_sizeof (const void  *_buffer  /**< */);
  9243  
  9244  int
  9245  xcb_input_button_press_sizeof (const void  *_buffer);
  9246  
  9247  uint32_t *
  9248  xcb_input_button_press_button_mask (const xcb_input_button_press_event_t *R);
  9249  
  9250  int
  9251  xcb_input_button_press_button_mask_length (const xcb_input_button_press_event_t *R);
  9252  
  9253  xcb_generic_iterator_t
  9254  xcb_input_button_press_button_mask_end (const xcb_input_button_press_event_t *R);
  9255  
  9256  uint32_t *
  9257  xcb_input_button_press_valuator_mask (const xcb_input_button_press_event_t *R);
  9258  
  9259  int
  9260  xcb_input_button_press_valuator_mask_length (const xcb_input_button_press_event_t *R);
  9261  
  9262  xcb_generic_iterator_t
  9263  xcb_input_button_press_valuator_mask_end (const xcb_input_button_press_event_t *R);
  9264  
  9265  xcb_input_fp3232_t *
  9266  xcb_input_button_press_axisvalues (const xcb_input_button_press_event_t *R);
  9267  
  9268  int
  9269  xcb_input_button_press_axisvalues_length (const xcb_input_button_press_event_t *R);
  9270  
  9271  xcb_input_fp3232_iterator_t
  9272  xcb_input_button_press_axisvalues_iterator (const xcb_input_button_press_event_t *R);
  9273  
  9274  int
  9275  xcb_input_button_release_sizeof (const void  *_buffer  /**< */);
  9276  
  9277  int
  9278  xcb_input_motion_sizeof (const void  *_buffer  /**< */);
  9279  
  9280  int
  9281  xcb_input_enter_sizeof (const void  *_buffer);
  9282  
  9283  uint32_t *
  9284  xcb_input_enter_buttons (const xcb_input_enter_event_t *R);
  9285  
  9286  int
  9287  xcb_input_enter_buttons_length (const xcb_input_enter_event_t *R);
  9288  
  9289  xcb_generic_iterator_t
  9290  xcb_input_enter_buttons_end (const xcb_input_enter_event_t *R);
  9291  
  9292  int
  9293  xcb_input_leave_sizeof (const void  *_buffer  /**< */);
  9294  
  9295  int
  9296  xcb_input_focus_in_sizeof (const void  *_buffer  /**< */);
  9297  
  9298  int
  9299  xcb_input_focus_out_sizeof (const void  *_buffer  /**< */);
  9300  
  9301  /**
  9302   * Get the next element of the iterator
  9303   * @param i Pointer to a xcb_input_hierarchy_info_iterator_t
  9304   *
  9305   * Get the next element in the iterator. The member rem is
  9306   * decreased by one. The member data points to the next
  9307   * element. The member index is increased by sizeof(xcb_input_hierarchy_info_t)
  9308   */
  9309  void
  9310  xcb_input_hierarchy_info_next (xcb_input_hierarchy_info_iterator_t *i);
  9311  
  9312  /**
  9313   * Return the iterator pointing to the last element
  9314   * @param i An xcb_input_hierarchy_info_iterator_t
  9315   * @return  The iterator pointing to the last element
  9316   *
  9317   * Set the current element in the iterator to the last element.
  9318   * The member rem is set to 0. The member data points to the
  9319   * last element.
  9320   */
  9321  xcb_generic_iterator_t
  9322  xcb_input_hierarchy_info_end (xcb_input_hierarchy_info_iterator_t i);
  9323  
  9324  int
  9325  xcb_input_hierarchy_sizeof (const void  *_buffer);
  9326  
  9327  xcb_input_hierarchy_info_t *
  9328  xcb_input_hierarchy_infos (const xcb_input_hierarchy_event_t *R);
  9329  
  9330  int
  9331  xcb_input_hierarchy_infos_length (const xcb_input_hierarchy_event_t *R);
  9332  
  9333  xcb_input_hierarchy_info_iterator_t
  9334  xcb_input_hierarchy_infos_iterator (const xcb_input_hierarchy_event_t *R);
  9335  
  9336  int
  9337  xcb_input_raw_key_press_sizeof (const void  *_buffer);
  9338  
  9339  uint32_t *
  9340  xcb_input_raw_key_press_valuator_mask (const xcb_input_raw_key_press_event_t *R);
  9341  
  9342  int
  9343  xcb_input_raw_key_press_valuator_mask_length (const xcb_input_raw_key_press_event_t *R);
  9344  
  9345  xcb_generic_iterator_t
  9346  xcb_input_raw_key_press_valuator_mask_end (const xcb_input_raw_key_press_event_t *R);
  9347  
  9348  xcb_input_fp3232_t *
  9349  xcb_input_raw_key_press_axisvalues (const xcb_input_raw_key_press_event_t *R);
  9350  
  9351  int
  9352  xcb_input_raw_key_press_axisvalues_length (const xcb_input_raw_key_press_event_t *R);
  9353  
  9354  xcb_input_fp3232_iterator_t
  9355  xcb_input_raw_key_press_axisvalues_iterator (const xcb_input_raw_key_press_event_t *R);
  9356  
  9357  xcb_input_fp3232_t *
  9358  xcb_input_raw_key_press_axisvalues_raw (const xcb_input_raw_key_press_event_t *R);
  9359  
  9360  int
  9361  xcb_input_raw_key_press_axisvalues_raw_length (const xcb_input_raw_key_press_event_t *R);
  9362  
  9363  xcb_input_fp3232_iterator_t
  9364  xcb_input_raw_key_press_axisvalues_raw_iterator (const xcb_input_raw_key_press_event_t *R);
  9365  
  9366  int
  9367  xcb_input_raw_key_release_sizeof (const void  *_buffer  /**< */);
  9368  
  9369  int
  9370  xcb_input_raw_button_press_sizeof (const void  *_buffer);
  9371  
  9372  uint32_t *
  9373  xcb_input_raw_button_press_valuator_mask (const xcb_input_raw_button_press_event_t *R);
  9374  
  9375  int
  9376  xcb_input_raw_button_press_valuator_mask_length (const xcb_input_raw_button_press_event_t *R);
  9377  
  9378  xcb_generic_iterator_t
  9379  xcb_input_raw_button_press_valuator_mask_end (const xcb_input_raw_button_press_event_t *R);
  9380  
  9381  xcb_input_fp3232_t *
  9382  xcb_input_raw_button_press_axisvalues (const xcb_input_raw_button_press_event_t *R);
  9383  
  9384  int
  9385  xcb_input_raw_button_press_axisvalues_length (const xcb_input_raw_button_press_event_t *R);
  9386  
  9387  xcb_input_fp3232_iterator_t
  9388  xcb_input_raw_button_press_axisvalues_iterator (const xcb_input_raw_button_press_event_t *R);
  9389  
  9390  xcb_input_fp3232_t *
  9391  xcb_input_raw_button_press_axisvalues_raw (const xcb_input_raw_button_press_event_t *R);
  9392  
  9393  int
  9394  xcb_input_raw_button_press_axisvalues_raw_length (const xcb_input_raw_button_press_event_t *R);
  9395  
  9396  xcb_input_fp3232_iterator_t
  9397  xcb_input_raw_button_press_axisvalues_raw_iterator (const xcb_input_raw_button_press_event_t *R);
  9398  
  9399  int
  9400  xcb_input_raw_button_release_sizeof (const void  *_buffer  /**< */);
  9401  
  9402  int
  9403  xcb_input_raw_motion_sizeof (const void  *_buffer  /**< */);
  9404  
  9405  int
  9406  xcb_input_touch_begin_sizeof (const void  *_buffer);
  9407  
  9408  uint32_t *
  9409  xcb_input_touch_begin_button_mask (const xcb_input_touch_begin_event_t *R);
  9410  
  9411  int
  9412  xcb_input_touch_begin_button_mask_length (const xcb_input_touch_begin_event_t *R);
  9413  
  9414  xcb_generic_iterator_t
  9415  xcb_input_touch_begin_button_mask_end (const xcb_input_touch_begin_event_t *R);
  9416  
  9417  uint32_t *
  9418  xcb_input_touch_begin_valuator_mask (const xcb_input_touch_begin_event_t *R);
  9419  
  9420  int
  9421  xcb_input_touch_begin_valuator_mask_length (const xcb_input_touch_begin_event_t *R);
  9422  
  9423  xcb_generic_iterator_t
  9424  xcb_input_touch_begin_valuator_mask_end (const xcb_input_touch_begin_event_t *R);
  9425  
  9426  xcb_input_fp3232_t *
  9427  xcb_input_touch_begin_axisvalues (const xcb_input_touch_begin_event_t *R);
  9428  
  9429  int
  9430  xcb_input_touch_begin_axisvalues_length (const xcb_input_touch_begin_event_t *R);
  9431  
  9432  xcb_input_fp3232_iterator_t
  9433  xcb_input_touch_begin_axisvalues_iterator (const xcb_input_touch_begin_event_t *R);
  9434  
  9435  int
  9436  xcb_input_touch_update_sizeof (const void  *_buffer  /**< */);
  9437  
  9438  int
  9439  xcb_input_touch_end_sizeof (const void  *_buffer  /**< */);
  9440  
  9441  int
  9442  xcb_input_raw_touch_begin_sizeof (const void  *_buffer);
  9443  
  9444  uint32_t *
  9445  xcb_input_raw_touch_begin_valuator_mask (const xcb_input_raw_touch_begin_event_t *R);
  9446  
  9447  int
  9448  xcb_input_raw_touch_begin_valuator_mask_length (const xcb_input_raw_touch_begin_event_t *R);
  9449  
  9450  xcb_generic_iterator_t
  9451  xcb_input_raw_touch_begin_valuator_mask_end (const xcb_input_raw_touch_begin_event_t *R);
  9452  
  9453  xcb_input_fp3232_t *
  9454  xcb_input_raw_touch_begin_axisvalues (const xcb_input_raw_touch_begin_event_t *R);
  9455  
  9456  int
  9457  xcb_input_raw_touch_begin_axisvalues_length (const xcb_input_raw_touch_begin_event_t *R);
  9458  
  9459  xcb_input_fp3232_iterator_t
  9460  xcb_input_raw_touch_begin_axisvalues_iterator (const xcb_input_raw_touch_begin_event_t *R);
  9461  
  9462  xcb_input_fp3232_t *
  9463  xcb_input_raw_touch_begin_axisvalues_raw (const xcb_input_raw_touch_begin_event_t *R);
  9464  
  9465  int
  9466  xcb_input_raw_touch_begin_axisvalues_raw_length (const xcb_input_raw_touch_begin_event_t *R);
  9467  
  9468  xcb_input_fp3232_iterator_t
  9469  xcb_input_raw_touch_begin_axisvalues_raw_iterator (const xcb_input_raw_touch_begin_event_t *R);
  9470  
  9471  int
  9472  xcb_input_raw_touch_update_sizeof (const void  *_buffer  /**< */);
  9473  
  9474  int
  9475  xcb_input_raw_touch_end_sizeof (const void  *_buffer  /**< */);
  9476  
  9477  /**
  9478   * Get the next element of the iterator
  9479   * @param i Pointer to a xcb_input_event_for_send_iterator_t
  9480   *
  9481   * Get the next element in the iterator. The member rem is
  9482   * decreased by one. The member data points to the next
  9483   * element. The member index is increased by sizeof(xcb_input_event_for_send_t)
  9484   */
  9485  void
  9486  xcb_input_event_for_send_next (xcb_input_event_for_send_iterator_t *i);
  9487  
  9488  /**
  9489   * Return the iterator pointing to the last element
  9490   * @param i An xcb_input_event_for_send_iterator_t
  9491   * @return  The iterator pointing to the last element
  9492   *
  9493   * Set the current element in the iterator to the last element.
  9494   * The member rem is set to 0. The member data points to the
  9495   * last element.
  9496   */
  9497  xcb_generic_iterator_t
  9498  xcb_input_event_for_send_end (xcb_input_event_for_send_iterator_t i);
  9499  
  9500  int
  9501  xcb_input_send_extension_event_sizeof (const void  *_buffer);
  9502  
  9503  /**
  9504   *
  9505   * @param c The connection
  9506   * @return A cookie
  9507   *
  9508   * Delivers a request to the X server.
  9509   *
  9510   * This form can be used only if the request will not cause
  9511   * a reply to be generated. Any returned error will be
  9512   * saved for handling by xcb_request_check().
  9513   */
  9514  xcb_void_cookie_t
  9515  xcb_input_send_extension_event_checked (xcb_connection_t                 *c,
  9516                                          xcb_window_t                      destination,
  9517                                          uint8_t                           device_id,
  9518                                          uint8_t                           propagate,
  9519                                          uint16_t                          num_classes,
  9520                                          uint8_t                           num_events,
  9521                                          const xcb_input_event_for_send_t *events,
  9522                                          const xcb_input_event_class_t    *classes);
  9523  
  9524  /**
  9525   *
  9526   * @param c The connection
  9527   * @return A cookie
  9528   *
  9529   * Delivers a request to the X server.
  9530   *
  9531   */
  9532  xcb_void_cookie_t
  9533  xcb_input_send_extension_event (xcb_connection_t                 *c,
  9534                                  xcb_window_t                      destination,
  9535                                  uint8_t                           device_id,
  9536                                  uint8_t                           propagate,
  9537                                  uint16_t                          num_classes,
  9538                                  uint8_t                           num_events,
  9539                                  const xcb_input_event_for_send_t *events,
  9540                                  const xcb_input_event_class_t    *classes);
  9541  
  9542  xcb_input_event_for_send_t *
  9543  xcb_input_send_extension_event_events (const xcb_input_send_extension_event_request_t *R);
  9544  
  9545  int
  9546  xcb_input_send_extension_event_events_length (const xcb_input_send_extension_event_request_t *R);
  9547  
  9548  xcb_input_event_for_send_iterator_t
  9549  xcb_input_send_extension_event_events_iterator (const xcb_input_send_extension_event_request_t *R);
  9550  
  9551  xcb_input_event_class_t *
  9552  xcb_input_send_extension_event_classes (const xcb_input_send_extension_event_request_t *R);
  9553  
  9554  int
  9555  xcb_input_send_extension_event_classes_length (const xcb_input_send_extension_event_request_t *R);
  9556  
  9557  xcb_generic_iterator_t
  9558  xcb_input_send_extension_event_classes_end (const xcb_input_send_extension_event_request_t *R);
  9559  
  9560  
  9561  #ifdef __cplusplus
  9562  }
  9563  #endif
  9564  
  9565  #endif
  9566  
  9567  /**
  9568   * @}
  9569   */