Manual Page Result
0
Command: XkbGetDeviceInfo | Section: 3 | Source: OpenBSD | File: XkbGetDeviceInfo.3
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 key-
board, or to determine the status of indicator maps, indicator names or
button actions on a non-KeyClass extension device
SYNOPSIS
XkbDeviceInfoPtr XkbGetDeviceInfo (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 capa-
bilities of input devices other than the core X keyboard, or to deter-
mine 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 func-
tions, device_spec does not need to be a keyboard device. It must, how-
ever, indicate either the core keyboard or a valid X Input Extension
device.
The which parameter is a mask specifying optional information to be re-
turned. It is an inclusive OR of one or more of the values from Table 1
and causes the returned XkbDeviceInfoRec to contain values for the cor-
responding 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, supported, 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 inclusive OR of
zero or more bits from Table 1; each bit set indicates an optional Xkb
extension device feature supported by the server implementation, and a
client may modify the associated behavior.
If the XkbButtonActionsMask bit is set in which, the XkbDeviceInfoRec
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 feed-
back 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 XkbDevi-
ceInfoRec returned will have filled in the portions of the leds struc-
ture 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_IndicatorNames-
Mask, the names_present and names fields of the leds structure corre-
sponding to ind_class and ind_id are returned. If which contains Xk-
bXI_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 informa-
tion available via XkbGetDeviceInfo. These convenience functions mir-
ror some of the mask bits. The functions all take an XkbDeviceInfoPtr
as an input argument and operate on the X Input Extension device speci-
fied by the device_spec field of the structure. Only the parts of the
structure indicated in the function description are updated. The XkbDe-
viceInfoRec structure used in the function call can be obtained by
calling XkbGetDeviceInfo or can be allocated by calling XkbAllocDevice-
Info.
STRUCTURES
Information about X Input Extension devices is transferred between a
client program and the Xkb extension in an XkbDeviceInfoRec 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(3)
X Version 11 libX11 1.8.10 XkbGetDeviceInfo(3)