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)