1. NAME▲
XkbAddDeviceLedInfo - Initialize an XkbDeviceLedInfoRec structure
2. SYNOPSIS ▲
XkbDeviceLedInfoPtr XkbAddDeviceLedInfo (XkbDeviceInfoPtr device_info , unsigned int led_class , unsigned int led_id );
3. ARGUMENTS ▲
- - device_info
structure in which to add LED info - - led_class
input extension class for LED device of interest - - led_id
input extension ID for LED device of interest
4. DESCRIPTION ▲
XkbAddDeviceLedInfofirst checks to see whether an entry matching led_classand led_idalready exists in the device_info->ledsarray. If it finds a matching entry, it returns a pointer to that entry. Otherwise, it checks to be sure there is at least one empty entry in device_info->ledsand extends it if there is not enough room. It then increments device_info->num_ledsand fills in the next available entry in device_info->ledswith led_classand led_id. If successful, XkbAddDeviceLedInforeturns a pointer to the XkbDeviceLedInfoRec structure that was initialized. If unable to allocate sufficient storage, or if device_infopoints to an invalid XkbDeviceInfoRec structure, or if led_classor led_idare inappropriate, XkbAddDeviceLedInforeturns NULL. To allocate additional space for button actions in an XkbDeviceInfoRec structure, use XkbResizeDeviceButtonActions.
5. 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;
typedef
struct
{
unsigned
short
led_class; /(**
class for
this LED device*/
unsigned
short
led_id; /(**
ID for
this LED device */
unsigned
int
phys_indicators; /(**
bits for
which LEDs physically present */
unsigned
int
maps_present; /(**
bits for
which LEDs have maps in maps */
unsigned
int
names_present; /(**
bits for
which LEDs are in names */
unsigned
int
state; /(**
1
bit =>
corresponding LED is on */
Atom names[XkbNumIndicators]; /(**
names for
LEDs */
XkbIndicatorMapRec maps; /(**
indicator maps for
each LED */
}
XkbDeviceLedInfoRec, *
XkbDeviceLedInfoPtr;
6. SEE ALSO ▲
R XkbResizeDeviceButtonActions (3)