MirBSD manpage: XFreeDeviceList(3), XListInputDevices(3)


XListInputDevices(3X11)    X FUNCTIONS    XListInputDevices(3X11)

NAME

     XListInputDevices, XFreeDeviceList - list available input
     devices

SYNTAX

     XDeviceInfo *XListInputDevices(Display *display, int
          *ndevices_return);

     int XFreeDeviceList(XDeviceInfo *list);

ARGUMENTS

     display     Specifies the connection to the X server.

     ndevices_return
                 Specifies a pointer to a variable where the
                 number of available devices can be returned.

     list        Specifies the list of devices to free.  The
                 XFreeDeviceList function frees the list of
                 available extension input devices.

DESCRIPTION

     The XListInputDevices request lists the available extension
     input devices.  This list includes the X pointer and X key-
     board, any other input devices that are currently accessible
     through the X server, and any input devices that are not
     currently accessible through the X server but could be
     accessed if requested.

     Some server implementations may make all input devices
     available at the time the server is initialized.  Others may
     wait until requested by a client to access an input device.
     In the latter case, it is possible that an input device will
     be listed as available at one time but not at another.

     For each input device available to the server, the XListIn-
     putDevices request returns an XDeviceInfo structure.  That
     structure contains a pointer to a list of structures, each
     of which contains information about one class of input sup-
     ported by the device.

     The XDeviceInfo structure is defined as follows:

          typedef struct _XDeviceInfo
          {
               XID       id;
               Atom      type;
               char      *name;
               int       num_classes;
               int       use;
               XAnyClassPtr   inputclassinfo;

XFree86                   Version 4.5.0                         1

XListInputDevices(3X11)    X FUNCTIONS    XListInputDevices(3X11)

          } XDeviceInfo;

     The id is a number in the range 0-128 that uniquely identi-
     fies the device.  It is assigned to the device when it is
     initialized by the server.

     The type field is of type Atom and indicates the nature of
     the device.

     The name field contains a pointer to a null-terminated
     string that corresponds to one of the defined device types.
     The name will correspond to one of the following strings
     (defined in the header file XI.h:

          XI_MOUSE
          XI_TABLET
          XI_KEYBOARD
          XI_TOUCHSCREEN
          XI_TOUCHPAD
          XI_BUTTONBOX
          XI_BARCODE
          XI_TRACKBALL
          XI_QUADRATURE
          XI_ID_MODULE
          XI_ONE_KNOB
          XI_NINE_KNOB
          XI_KNOB_BOX
          XI_SPACEBALL
          XI_DATAGLOVE
          XI_EYETRACKER
          XI_CURSORKEYS
          XI_FOOTMOUSE

     These names may be directly compared with the name field of
     the XDeviceInfo structure, or used in an XInternAtom request
     to return an atom that can be compared with the type field
     of the XDeviceInfo structure.

     The num_classes field is a number in the range 0-255 that
     specifies the number of input classes supported by the dev-
     ice for which information is returned by ListInputDevices.
     Some input classes, such as class Focus and class Proximity
     do not have any information to be returned by ListInputDev-
     ices.

     The use field specifies how the device is currently being
     used.  If the value is IsXKeyboard, the device is currently
     being used as the X keyboard.  If the value is IsXPointer,
     the device is currently being used as the X pointer.  If the
     value is IsXExtensionDevice, the device is available for use
     as an extension device.

XFree86                   Version 4.5.0                         2

XListInputDevices(3X11)    X FUNCTIONS    XListInputDevices(3X11)

     The inputclassinfo field contains a pointer to the first
     input-class specific data.  The first two fields are common
     to all classes.

     The class field is a number in the range 0-255. It uniquely
     identifies the class of input for which information is
     returned.  Currently defined classes are KeyClass, Button-
     Class, and ValuatorClass.

     The length field is a number in the range 0- 255. It speci-
     fies the number of bytes of data that are contained in this
     input class.  The length includes the class and length
     fields.

     The XKeyInfo structure describes the characteristics of the
     keys on the device.  It is defined as follows:

          typedef struct _XKeyInfo {
               XID            class;
               int            length;
               unsigned short      min_keycode;
               unsigned short      max_keycode;
               unsigned short      num_keys;
          } XKeyInfo;

     min_keycode is of type KEYCODE.  It specifies the minimum
     keycode that the device will report.  The minimum keycode
     will not be smaller than 8.

     max_keycode is of type KEYCODE.  It specifies the maximum
     keycode that the device will report.  The maximum keycode
     will not be larger than 255.

     num_keys specifies the number of keys that the device has.

     The XButtonInfo structure defines the characteristics of the
     buttons on the device.  It is defined as follows:

          typedef struct _XButtonInfo {
               XID       class;
               int       length;
               short          num_buttons;
          } XButtonInfo;

     num_buttons specifies the number of buttons that the device
     has.

     The XValuatorInfo structure defines the characteristics of
     the valuators on the device.  It is defined as follows:

     typedef struct _XValuatorInfo {
          XID            class;

XFree86                   Version 4.5.0                         3

XListInputDevices(3X11)    X FUNCTIONS    XListInputDevices(3X11)

          int            length;
          unsigned char       num_axes;
          unsigned char       mode;
          unsigned long       motion_buffer;
          XAxisInfoPtr        axes;
     } XValuatorInfo;

     num_axes contains the number of axes the device supports.

     mode is a constant that has one of the following
     values: Absolute or Relative.  Some devices allow the
     mode to be changed dynamically via the SetDeviceMode
     request.

     motion_buffer_size is a cardinal number that specifies
     the number of elements that can be contained in the
     motion history buffer for the device.

     The axes field contains a pointer to an XAxisInfo structure.

     The XAxisInfo structure is defined as follows:

          typedef struct _XAxisInfo {
               int  resolution;
               int  min_value;
               int  max_value;
          } XAxisInfo;

     The resolution contains a number in counts/meter.

     The min_val field contains a number that specifies the
     minimum value the device reports for this axis. For devices
     whose mode is Relative, the min_val field will contain 0.

     The max_val field contains a number that specifies the max-
     imum value the device reports for this axis. For devices
     whose mode is Relative, the max_val field will contain 0.

     To free the XDeviceInfo array created by XListInputDevices,
     use XFreeDeviceList.

DIAGNOSTICS

     none.

SEE ALSO

     Programming with Xlib

XFree86                   Version 4.5.0                         4

Generated on 2021-12-07 11:07:08 by $MirOS: src/scripts/roff2htm,v 1.103 2021/01/23 20:24:35 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2021 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.