1XkbFreeDeviceInfo(3) XKB FUNCTIONS XkbFreeDeviceInfo(3)
2
3
4
6 XkbFreeDeviceInfo - Free an XkbDeviceInfoRec structure
7
9 void XkbFreeDeviceInfo (XkbDeviceInfoPtr device_info, unsigned int
10 which, Bool free_all);
11
13 - device_info
14 pointer to XkbDeviceInfoRec in which to free items
15
16 - which
17 mask of components of device_info to free
18
19 - free_all
20 True => free everything, including device_info
21
23 If free_all is True, the XkbFreeDeviceInfo frees all components of
24 device_info and the XkbDeviceInfoRec structure pointed to by
25 device_info itself. If free_all is False, the value of which determines
26 which subcomponents are freed. which is an inclusive OR of one or more
27 of the values from Table 1. If which contains XkbXI_ButtonActionsMask,
28 all button actions associated with device_info are freed,
29 device_info->btn_acts is set to NULL, and device_info->num_btns is set
30 to zero. If which contains all bits in XkbXI_IndicatorsMask, all XkbDe‐
31 viceLedInfoRec structures associated with device_info are freed,
32 device_info->leds is set to NULL, and device_info->sz_leds and
33 device_info->num_leds are set to zero. If which contains XkbXI_Indica‐
34 torMapsMask, all indicator maps associated with device_info are
35 cleared, but the number of LEDs and the leds structures themselves is
36 preserved. If which contains XkbXI_IndicatorNamesMask, all indicator
37 names associated with device_info are cleared, but the number of LEDs
38 and the leds structures themselves is preserved. If which contains
39 XkbXI_IndicatorStateMask, the indicator state associated with the
40 device_info leds are set to zeros but the number of LEDs and the leds
41 structures themselves is preserved.
42 Table 1 XkbDeviceInfoRec Mask Bits
43 ____________________________________________________________________________________
44 Name XkbDeviceInfoRec Value Capability If Set
45 Fields Effected
46 ____________________________________________________________________________________
47 XkbXI_KeyboardsMask (1L <<0) Clients can use all
48 Xkb requests and events
49 with KeyClass devices
50 supported by the input
51 device extension.
52
53 XkbXI_ButtonActionsMask num_btns (1L <<1) Clients can assign key
54 btn_acts actions to buttons
55 non-KeyClass input
56 extension devices.
57
58 XkbXI_IndicatorNamesMask leds->names (1L <<2) Clients can assign
59 names to indicators on
60 non-KeyClass input
61 extension devices.
62
63 XkbXI_IndicatorMapsMask leds->maps (1L <<3) Clients can assign
64 indicator maps to
65 indicators on
66 non-KeyClass input
67 extension devices.
68
69 XkbXI_IndicatorStateMask leds->state (1L <<4) Clients can request
70 the status of indicators
71 on non-KeyClass input
72 extension devices.
73
74 XkbXI_IndicatorsMask sz_leds (0x1c) XkbXI_IndicatorNamesMask |
75 num_leds XkbXI_IndicatorMapsMask |
76 leds->* XkbXI_IndicatorStateMask
77
78 XkbXI_UnsupportedFeaturesMask unsupported (1L <<15)
79
80 XkbXI_AllDeviceFeaturesMask Those selected (0x1e) XkbXI_IndicatorsMask |
81 by Value Column XkbSI_ButtonActionsMask
82 masks
83
84 XkbXI_AllFeaturesMask Those selected (0x1f) XkbSI_AllDeviceFeaturesMask |
85 by Value Column XkbSI_KeyboardsMask
86 masks
87
88 XkbXI_AllDetailsMask Those selected (0x801f) XkbXI_AllFeaturesMask |
89 by Value column XkbXI_UnsupportedFeaturesMask
90 masks
91
93 Information about X Input Extension devices is transferred between a
94 client program and the Xkb extension in an XkbDeviceInfoRec structure:
95
96 typedef struct {
97 char * name; /∗ name for device */
98 Atom type; /∗ name for class of devices */
99 unsigned short device_spec; /∗ device of interest */
100 Bool has_own_state; /∗ True=>this device has its own state */
101 unsigned short supported; /∗ bits indicating supported capabilities */
102 unsigned short unsupported; /∗ bits indicating unsupported capabilities */
103 unsigned short num_btns; /∗ number of entries in btn_acts */
104 XkbAction * btn_acts; /∗ button actions */
105 unsigned short sz_leds; /∗ total number of entries in LEDs vector */
106 unsigned short num_leds; /∗ number of valid entries in LEDs vector */
107 unsigned short dflt_kbd_fb; /∗ input extension ID of default (core kbd) indicator */
108 unsigned short dflt_led_fb; /∗ input extension ID of default indicator feedback */
109 XkbDeviceLedInfoPtr leds; /∗ LED descriptions */
110 } XkbDeviceInfoRec, *XkbDeviceInfoPtr;
111
112 typedef struct {
113 unsigned short led_class; /∗ class for this LED device*/
114 unsigned short led_id; /∗ ID for this LED device */
115 unsigned int phys_indicators; /∗ bits for which LEDs physically present */
116 unsigned int maps_present; /∗ bits for which LEDs have maps in maps */
117 unsigned int names_present; /∗ bits for which LEDs are in names */
118 unsigned int state; /∗ 1 bit => corresponding LED is on */
119 Atom names[XkbNumIndicators]; /∗ names for LEDs */
120 XkbIndicatorMapRec maps; /∗ indicator maps for each LED */
121 } XkbDeviceLedInfoRec, *XkbDeviceLedInfoPtr;
122
123
124
125
126X Version 11 libX11 1.6.4 XkbFreeDeviceInfo(3)