XIQUERYDEVICE - Online Linux Manual PageSection : 3
Updated : 09/15/2021
Source :  ​
Note :  ​

NAMEXIQueryDevice, XIFreeDeviceInfo − get information about devices​.

SYNOPSIS#include <X11/extensions/XInput2​.h>XIDeviceInfo* XIQueryDevice( Display *display, int deviceid, int *ndevices_return);XIFreeDeviceInfo( XIDeviceInfo *info);deviceid Specifies the device to query or XIAllDevices or XIAllMasterDevices​.display Specifies the connection to the X server​.ndevices_return Returns the number of devices returned​.info A list of device XIDeviceInfo structs to be freed​.

DESCRIPTIONThe XIQueryDevice returns information about one or more input devices​. If the deviceid specifies a device, ndevices_return is 1 and the returned information describes only the requested device​. If deviceid is XIAllDevices or XIAllMasterDevices, ndevices_return is the number of devices or master devices, respectively, and the returned information represents all devices or all master devices, respectively​.To free the XIDeviceInfo array returned by XIQueryDevice, use XIFreeDeviceInfo​.For each input device requested, the XIQueryDevice returns an XIDeviceInfo structure​. Each structure contains information about the capabilities of one input device available to the server​.typedef struct { int deviceid; char *name; int use; int attachment; Bool enabled; int num_classes; XIAnyClassInfo **classes; } XIDeviceInfo;The deviceid is the numeric unique id of the device​. A deviceid is unique for the life−time of a device but a server may re−use the id once a device has been removed​.The name points to a null−terminated string specifying the identifier of the device​.The use and attachment fields specify the type of the device and the current attachment or pairing​. − If use is XIMasterPointer, the device is a master pointer and attachment specifies the deviceid of the paired master keyboard​. − If use is XIMasterKeyboard, the device is a master keyboard, and the attachment field specifies the paired master pointer​. − If use is XISlavePointer, the device is a slave device and currently attached to the master pointer specified in attachment​. − If use is XISlaveKeyboard, the device is a slave device an currently attached to the master keyboard specified in attachment​. − If use is XIFloatingSlave, the device is a slave device currently not attached to any master device​. The value of the attachment field for floating slave devices is undefined​.The enabled field specifies if the device is currently enabled and can send events​. Disabled devices will not send events​.The num_classes field specifies the number of input classes pointed to by classes​. The first two fields of all input classes are identical​.typedef struct { int type; int sourceid; } XIAnyClassInfo;The type field specifies the type of the input class​. Currently, the following types are defined: XIKeyClass, XIButtonClass, XIValuatorClass, XIScrollClass, XITouchClass, XIGestureClass​.In the future, additional types may be added​. Clients are required to ignore unknown input classes​.The sourceid is the deviceid this class originated from​. For master devices, the sourceid is typically the id of the slave device currently sending events​. For slave devices, the sourceid is typically the device's id​.A device may have zero or one XIButtonClass, denoting the device's capability to send button events​.typedef struct { int mask_len; unsigned char *mask; } XIButtonState;typedef struct { int type; int sourceid; int num_buttons; Atom *labels; XIButtonState state; } XIButtonClassInfo;The num_buttons field specifies the number of buttons available on this device​. A device that has an XIButtonClass must have at least one button​.labels is a list of num_buttons Atoms specifying the button labels for this device​. If the label is not None, then the label specifies the type of button in physical device order (i​.e​. as the buttons are numbered on the physical input device)​.The state is the current button state as seen by clients (i​.e​. after button mapping is applied)​. The mask_len field specifies the length of mask in bytes​. For each button on the device, the respective bit in mask is set if the button is currently logically down​.A device may have zero or one XIKeyClass, denoting the device's capability to send key events​.typedef struct { int type; int sourceid; int num_keycodes; int *keycodes; } XIKeyClassInfo;The num_keycodes field specifies the number of keycodes available on this device​. A device that has an XIKeyClass must have at least one keycode​.keycodes is a list of num_keycodes keycodes the device may send​.A device may have zero or more XIValuatorClass, denoting the device's capability to send coordinates​.typedef struct { int type; int sourceid; int number; Atom label; double min; double max; double value; int resolution; int mode; } XIValuatorClassInfo;The number field specifies the number of the axis on the physical device​.If the label field is not None, the value of label is an Atom describing the axis​.min and max are the minimum and maximum values allowed on this axis​. If both are zero, no minimum or maximum values are set on this device​. value is the current value of this axis​.The resolution field specifies the resolution of the device in units/m​.The mode specifies the mode of this axis​. If the mode is XIModeAbsolute this axis sends absolute coordinates​. If the mode is XIModeRelative, this device sends relative coordinates​.typedef struct { int type; int sourceid; int number; int scroll_type; double increment; int flags; } XIScrollClassInfo;This class describes scrolling capability on a valuator​. For each XIScrollClassInfo, an XIValuatorClassInfo with the same number is present on the device​.The number field specifies the valuator number on the physical device that this scroll information applies to​. See the respective XIValuatorClassInfo for detailed information on this valuator​.The scroll_type field specifies the type of scrolling, either XIScrollTypeVertical or XIScrollTypeHorizontal​.The increment specifies the value change considered one unit of scrolling down​.The flags field specifies flags that apply to this scrolling information:If XIScrollFlagNoEmulation is set, the server will not emulate legacy button events for valuator changes on this valuator​.If XIScrollFlagPreferred is set, this axis is the preferred axis for this scroll type and will be used for the emulation of XI_Motion events when the driver submits legacy scroll button events​.typedef struct { int type; int sourceid; int mode; int num_touches; } XITouchClassInfo;A device may have zero or one XITouchClassInfo, denoting multi−touch capability on the device​. A device with a XITouchClassInfo may send TouchBegin, TouchUpdate, TouchEnd and TouchOwnership events​.The mode field is either XIDirectTouch for direct−input touch devices such as touchscreens or XIDependentTouch for indirect input devices such as touchpads​. For XIDirectTouch devices, touch events are sent to window at the position the touch occurred​. For XIDependentTouch devices, touch events are sent to the window at the position of the device's sprite​.The num_touches field defines the maximum number of simultaneous touches the device supports​. A num_touches of 0 means the maximum number of simultaneous touches is undefined or unspecified​. This field should be used as a guide only, devices will lie about their capabilities​.A device with an XITouchClassInfo may still send pointer events​. The valuators must be defined with the respective XIValuatorClass classes​. A valuator may send both pointer and touch−events​.typedef struct { int type; int sourceid; int num_touches; } XIGestureClassInfo;A device may have zero or one XIGestureClassInfo, denoting touchpad gesture capability on the device​. A device with a XIGestureClassInfo may send GestureSwipeBegin, GestureSwipeUpdate, GestureSwipeEnd, GesturePinchBegin, GesturePinchUpdate, GesturePinchEnd​.The num_touches field defines the maximum number of simultaneous touches the device supports​. A num_touches of 0 means the maximum number of simultaneous touches is undefined or unspecified​. This field should be used as a guide only, devices will lie about their capabilities​.XIQueryDevice can generate a BadDevice error​.XIFreeDeviceInfo frees the information returned by XIQueryDevice​.

DIAGNOSTICSBadDevice An invalid device was specified​. The device does not exist or is not a pointer device​.
0
Johanes Gumabo
Data Size   :   17,292 byte
man-XIFreeDeviceInfo.3Build   :   2024-12-29, 07:25   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   3 / 260,378
Visitor ID   :     :  
Visitor IP   :   3.145.70.108   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.29
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.