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.7.5 XkbGetDeviceInfo(3)
Generated by dwww version 1.14 on Fri Jan 24 06:00:32 CET 2025.