Index of Section 3 Manual Pages
| Interix / SUA | XkbGetDeviceInfo.3 | Interix / SUA |
XkbGetDeviceInfo(3) XKB FUNCTIONS XkbGetDeviceInfo(3)
NAME
XkbGetDeviceInfo - Determine whether the X server allows
Xkb access to particular capabilities of input devices
other than the core X keyboard, or to determine the status
of indicator maps, indicator names or button actions on a
non-KeyClass extension device
SYNOPSIS
XkbDeviceInfoPtr XkbGetDeviceInfo ( dpy, which,
device_spec, ind_class, ind_id )
Display * dpy;
unsigned int which;
unsigned int device_spec;
unsigned int ind_class;
unsigned int ind_id;
ARGUMENTS
- dpy connection to X server
- which
mask indicating information to return
- device_spec
device ID, or XkbUseCoreKbd
- ind_class
feedback class for indicator requests
- ind_id
feedback ID for indicator requests
DESCRIPTION
To determine whether the X server allows Xkb access to
particular capabilities of input devices other than the
core X keyboard, or to determine the status of indicator
maps, indicator names or button actions on a non-KeyClass
extension device, use XkbGetDeviceInfo.
XkbGetDeviceInfo returns information about the input
device specified by device_spec. Unlike the device_spec
parameter of most Xkb functions, device_spec does not need
to be a keyboard device. It must, however, indicate either
the core keyboard or a valid X Input Extension device.
The which parameter is a mask specifying optional informa-
tion to be returned. It is an inclusive OR of one or more
of the values from Table 1 and causes the returned XkbDe-
viceInfoRec to contain values for the corresponding fields
specified in the table.
Table 1 XkbDeviceInfoRec Mask Bits
____________________________________________________________________________________
Name XkbDeviceInfoRec Value Capability If Set
Fields Effected
____________________________________________________________________________________
XkbXI_KeyboardsMask (1L <<0) Clients can use all
Xkb requests and events
with KeyClass devices
supported by the input
device extension.
XkbXI_ButtonActionsMask num_btns (1L <<1) Clients can assign key
btn_acts actions to buttons
non-KeyClass input
extension devices.
XkbXI_IndicatorNamesMask leds->names (1L <<2) Clients can assign
names to indicators on
non-KeyClass input
extension devices.
XkbXI_IndicatorMapsMask leds->maps (1L <<3) Clients can assign
indicator maps to
indicators on
non-KeyClass input
extension devices.
XkbXI_IndicatorStateMask leds->state (1L <<4) Clients can request
the status of indicators
on non-KeyClass input
extension devices.
XkbXI_IndicatorsMask sz_leds (0x1c) XkbXI_IndicatorNamesMask |
num_leds XkbXI_IndicatorMapsMask |
leds->* XkbXI_IndicatorStateMask
XkbXI_UnsupportedFeaturesMask unsupported (1L <<15)
XkbXI_AllDeviceFeaturesMask Those selected (0x1e) XkbXI_IndicatorsMask |
by Value Column XkbSI_ButtonActionsMask
masks
XkbXI_AllFeaturesMask Those selected (0x1f) XkbSI_AllDeviceFeaturesMask |
by Value Column XkbSI_KeyboardsMask
masks
XkbXI_AllDetailsMask Those selected (0x801f) XkbXI_AllFeaturesMask |
by Value column XkbXI_UnsupportedFeaturesMask
masks
The XkbDeviceInfoRec returned by XkbGetDeviceInfo always
has values for name (may be a null string, ""), type, sup-
ported, unsupported, has_own_state, dflt_kbd_fd, and
dflt_kbd_fb. Other fields are filled in as specified by
which.
Upon return, the supported field will be set to the inclu-
sive OR of zero or more bits from Table 1; each bit set
indicates an optional Xkb extension device feature sup-
ported by the server implementation, and a client may mod-
ify the associated behavior.
If the XkbButtonActionsMask bit is set in which, the Xkb-
DeviceInfoRec returned will have the button actions
(btn_acts field) filled in for all buttons.
If which includes one of the bits in XkbXI_IndicatorsMask,
the feedback class of the indicators must be specified in
ind_class, and the feedback ID of the indicators must be
specified in ind_id. If the request does not include any
of the bits in XkbXI_IndicatorsMask, the ind_class and
ind_id parameters are ignored. The class and ID can be
obtained via the input device extension XListInputDevices
request.
If any of the XkbXI_IndicatorsMask bits are set in which,
the XkbDeviceInfoRec returned will have filled in the por-
tions of the leds structure corresponding to the indicator
feedback identified by ind_class and ind_id. The leds
vector of the XkbDeviceInfoRec is allocated if necessary
and sz_leds and num_leds filled in. The led_class, led_id
and phys_indicators fields of the leds entry corresponding
to ind_class and ind_id are always filled in. If which
contains XkbXI_IndicatorNamesMask, the names_present and
names fields of the leds structure corresponding to
ind_class and ind_id are returned. If which contains
XkbXI_IndicatorStateMask, the corresponding state field is
updated. If which contains XkbXI_IndicatorMapsMask, the
maps_present and maps fields are updated.
Xkb provides convenience functions to request subsets of
the information available via XkbGetDeviceInfo. These
convenience functions mirror some of the mask bits. The
functions all take an XkbDeviceInfoPtr as an input argu-
ment and operate on the X Input Extension device specified
by the device_spec field of the structure. Only the parts
of the structure indicated in the function description are
updated. The XkbDeviceInfoRec structure used in the func-
tion call can be obtained by calling XkbGetDeviceInfo or
can be allocated by calling XkbAllocDeviceInfo.
STRUCTURES
Information about X Input Extension devices is transferred
between a client program and the Xkb extension in an Xkb-
DeviceInfoRec structure:
typedef struct {
char * name; /* name for device */
Atom type; /* name for class of devices */
unsigned short device_spec; /* device of interest */
Bool has_own_state; /* True=>this device has its own state */
unsigned short supported; /* bits indicating supported capabilities */
unsigned short unsupported; /* bits indicating unsupported capabilities */
unsigned short num_btns; /* number of entries in btn_acts */
XkbAction * btn_acts; /* button actions */
unsigned short sz_leds; /* total number of entries in LEDs vector */
unsigned short num_leds; /* number of valid entries in LEDs vector */
unsigned short dflt_kbd_fb; /* input extension ID of default (core kbd) indicator */
unsigned short dflt_led_fb; /* input extension ID of default indicator feedback */
XkbDeviceLedInfoPtr leds; /* LED descriptions */
} XkbDeviceInfoRec, *XkbDeviceInfoPtr;
SEE ALSO
XkbAllocDeviceInfo(3), XListInputDevices(3X11)
X Version 11 libX11 1.1.5 XkbGetDeviceInfo(3)