bionic (3) XkbAddDeviceLedInfo.3.gz

Provided by: libx11-doc_1.6.4-3ubuntu0.4_all bug

NAME

       XkbAddDeviceLedInfo - Initialize an XkbDeviceLedInfoRec structure

SYNOPSIS

       XkbDeviceLedInfoPtr  XkbAddDeviceLedInfo  (XkbDeviceInfoPtr device_info, unsigned int led_class, unsigned
              int led_id);

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

DESCRIPTION

       XkbAddDeviceLedInfo first checks to see whether an entry matching led_class and led_id already exists  in
       the device_info->leds array. 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->leds and extends it  if  there  is
       not  enough  room.  It  then  increments  device_info->num_leds  and fills in the next available entry in
       device_info->leds with led_class and led_id.

       If successful, XkbAddDeviceLedInfo returns a  pointer  to  the  XkbDeviceLedInfoRec  structure  that  was
       initialized.  If  unable  to  allocate  sufficient  storage,  or  if  device_info  points  to  an invalid
       XkbDeviceInfoRec structure, or if led_class or  led_id  are  inappropriate,  XkbAddDeviceLedInfo  returns
       NULL.

       To   allocate   additional   space   for   button   actions   in   an   XkbDeviceInfoRec  structure,  use
       XkbResizeDeviceButtonActions.

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;

SEE ALSO

       XkbResizeDeviceButtonActions(3)