XQueryDeviceState(3X11)

XQueryDeviceState - query the state of an extension input device.

As shipped in IRIX 6.5.22. Unchanged since IRIX 6.5.

     NAME
          XQueryDeviceState - query the state of an extension input
          device.

     SYNTAX
          XQueryDeviceState(display, device)
                Display *display;
                XDevice *device;

     ARGUMENTS
          display     Specifies the connection to the X server.

          device      Specifies the device whose state is to be
                      queried.

     DESCRIPTION
          The XQueryDeviceState request queries the state of an input
          device.  The current state of keys and buttons (up or down),
          and valuators (current value) on the device is reported by
          this request.  Each key or button is represented by a bit in
          the XDeviceState structure that is returned.  Valuators on
          the device report 0 if they are reporting relative
          information, and the current value if they are reporting
          absolute information.

          XQueryDeviceState can generate a BadDevice error.

     STRUCTURES
          The XDeviceState structure contains:

          typedef struct {
               XID device_id;
               int num_classes;
               XInputClass *data;
          } XDeviceState;

          The XValuatorState structure contains:

          typedef struct {
               unsigned char class;
               unsigned char length;
               unsigned char num_valuators;
               unsigned char mode;
               int *valuators;
          } XValuatorState;

          The XKeyState structure contains:

          typedef struct {
               unsigned char class;
               unsigned char length;
               short         num_keys;
               char keys[32];
          } XKeyState;

          The XButtonState structure contains:

          typedef struct {
               unsigned char class;
               unsigned char length;
               short         num_buttons;
               char buttons[32];
          } XButtonState;

     DIAGNOSTICS
          BadDevice   An invalid device was specified.  The specified
                      device does not exist or has not been opened by
                      this client via XOpenInputDevice.  This error
                      may also occur if some other client has caused
                      the specified device to become the X keyboard or
                      X pointer device via the XChangeKeyboardDevice
                      or XChangePointerDevice requests.

     SEE ALSO
          Programming with Xlib