diff options
Diffstat (limited to 'man/XListInputDevices.man')
-rw-r--r-- | man/XListInputDevices.man | 234 |
1 files changed, 234 insertions, 0 deletions
diff --git a/man/XListInputDevices.man b/man/XListInputDevices.man new file mode 100644 index 0000000..ea780c6 --- /dev/null +++ b/man/XListInputDevices.man @@ -0,0 +1,234 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XListDev.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XListInputDevices 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XListInputDevices, XFreeDeviceList \- list available input devices +.SH SYNTAX +XDeviceInfo *XListInputDevices\^(\^\fIdisplay\fP, \fIndevices_return\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + int *\fIndevices_return\fP\^; +.sp +XFreeDeviceList\^(\^\fIlist\fP\^) +.br + XDeviceInfo *\fIlist\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I ndevices_return +Specifies a pointer to a variable where the number of available devices can +be returned. +.TP 12 +.I list +Specifies the list of devices to free. The \fIXFreeDeviceList\fP function +frees the list of available extension input devices. +.SH DESCRIPTION +The \fIXListInputDevices\fP +request lists the available extension input devices. This list includes the +X pointer and X keyboard, 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. +.LP +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. +.LP +For each input device available to the server, the XListInputDevices +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 supported by the device. + +The XDeviceInfo structure is defined as follows: + +.DS +.nf +typedef struct _XDeviceInfo +{ + XID id; + Atom type; + char *name; + int num_classes; + int use; + XAnyClassPtr inputclassinfo; +} XDeviceInfo; +.fi +.DE +.LP +The id is a number in the range 0-128 that uniquely identifies +the device. It is assigned to the device when it is initialized by the server. +.LP +The type field is of type Atom and indicates the nature +of the device. +.LP +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 \fIXI.h\fP: +.LP +.DS +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 +.DE +.LP +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. +.LP +The num_classes field is a number in the +range 0-255 that specifies the number of input classes +supported by the device 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 ListInputDevices. +.LP +The use field specifies how the device is currently +being used. If the value is \fIIsXKeyboard\fP, the device is +currently being used as the X keyboard. If the value +is \fIIsXPointer\fP, the device is currently being used as +the X pointer. If the value is \fIIsXExtensionDevice\fP, the +device is available for use as an extension device. +.LP +The inputclassinfo field contains a pointer to the first input-class +specific data. The first two fields are common to all +classes. +.LP +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, ButtonClass, and ValuatorClass. +.LP +The length field is a number in the range 0- 255. +It specifies the number of bytes of data that are +contained in this input class. The length includes the +class and length fields. +.LP +The XKeyInfo structure describes the characteristics of the keys on the +device. It is defined as follows: +.LP +.DS +.nf +typedef struct _XKeyInfo { + XID class; + int length; + unsigned short min_keycode; + unsigned short max_keycode; + unsigned short num_keys; +} XKeyInfo; +.fi +.DE +.LP +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. +.LP +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. +.LP +num_keys specifies the number of keys that the device has. +.LP +The XButtonInfo structure defines the characteristics of the buttons +on the device. It is defined as follows: +.LP +.DS +.nf +typedef struct _XButtonInfo { + XID class; + int length; + short num_buttons; +} XButtonInfo; +.fi +.DE +.LP +num_buttons specifies the number of buttons that the device has. +.LP +The XValuatorInfo structure defines the characteristics of the valuators +on the device. It is defined as follows: +.LP +.DE +.nf +typedef struct _XValuatorInfo { + XID class; + int length; + unsigned char num_axes; + unsigned char mode; + unsigned long motion_buffer; + XAxisInfoPtr axes; +} XValuatorInfo; +.fi +.DS +num_axes contains the number of axes the device supports. +.LP +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. +.LP +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. +.LP +The axes field contains a pointer to an XAxisInfo structure. +.LP +The XAxisInfo structure is defined as follows: +.LP +.DS +.nf +typedef struct _XAxisInfo { + int resolution; + int min_value; + int max_value; +} XAxisInfo; +.fi +.DE +.LP +The resolution contains a number in counts/meter. +.LP +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. +.LP +The max_val field contains a number that specifies +the maximum value the device reports for this axis. +For devices whose mode is Relative, the max_val field +will contain 0. +.LP +To free the \fIXDeviceInfo\fP array created by \fIXListInputDevices\fP, +use \fIXFreeDeviceList\fP. +.SH DIAGNOSTICS +none. +.SH "SEE ALSO" +.br +\fI\*(xL\fP |