63
60
#include <X11/extensions/extutil.h>
64
SizeClassInfo(xAnyClassPtr *any, int num_classes)
68
for (j = 0; j < num_classes; j++) {
69
switch ((*any)->class) {
71
size += sizeof(XKeyInfo);
74
size += sizeof(XButtonInfo);
80
v = (xValuatorInfoPtr) *any;
81
size += sizeof(XValuatorInfo) +
82
(v->num_axes * sizeof(XAxisInfo));
88
*any = (xAnyClassPtr) ((char *)(*any) + (*any)->length);
95
ParseClassInfo(xAnyClassPtr *any, XAnyClassPtr *Any, int num_classes)
99
for (j = 0; j < num_classes; j++) {
100
switch ((*any)->class) {
103
XKeyInfoPtr K = (XKeyInfoPtr) *Any;
104
xKeyInfoPtr k = (xKeyInfoPtr) *any;
107
K->length = sizeof(XKeyInfo);
108
K->min_keycode = k->min_keycode;
109
K->max_keycode = k->max_keycode;
110
K->num_keys = k->num_keys;
115
XButtonInfoPtr B = (XButtonInfoPtr) *Any;
116
xButtonInfoPtr b = (xButtonInfoPtr) *any;
118
B->class = ButtonClass;
119
B->length = sizeof(XButtonInfo);
120
B->num_buttons = b->num_buttons;
125
XValuatorInfoPtr V = (XValuatorInfoPtr) *Any;
126
xValuatorInfoPtr v = (xValuatorInfoPtr) *any;
130
V->class = ValuatorClass;
131
V->length = sizeof(XValuatorInfo) +
132
(v->num_axes * sizeof(XAxisInfo));
133
V->num_axes = v->num_axes;
134
V->motion_buffer = v->motion_buffer_size;
136
A = (XAxisInfoPtr) ((char *)V + sizeof(XValuatorInfo));
138
a = (xAxisInfoPtr) ((char *)(*any) + sizeof(xValuatorInfo));
139
for (k = 0; k < (int)v->num_axes; k++, a++, A++) {
140
A->min_value = a->min_value;
141
A->max_value = a->max_value;
142
A->resolution = a->resolution;
149
*any = (xAnyClassPtr) ((char *)(*any) + (*any)->length);
150
*Any = (XAnyClassPtr) ((char *)(*Any) + (*Any)->length);
67
XListInputDevices(dpy, ndevices)
68
register Display *dpy;
156
register Display *dpy,
72
160
xListInputDevicesReq *req;
111
199
any = (xAnyClassPtr) ((char *)list + (*ndevices * sizeof(xDeviceInfo)));
113
201
for (i = 0; i < *ndevices; i++, list++) {
114
for (j = 0; j < (int)list->num_classes; j++) {
115
switch (any->class) {
117
size += sizeof(XKeyInfo);
120
size += sizeof(XButtonInfo);
126
v = (xValuatorInfoPtr) any;
127
size += sizeof(XValuatorInfo) +
128
(v->num_axes * sizeof(XAxisInfo));
134
any = (xAnyClassPtr) ((char *)any + any->length);
202
size += SizeClassInfo(&any, (int)list->num_classes);
138
205
for (i = 0, nptr = (char *)any; i < *ndevices; i++) {
158
225
clist->use = list->use;
159
226
clist->num_classes = list->num_classes;
160
227
clist->inputclassinfo = Any;
161
for (j = 0; j < (int)list->num_classes; j++) {
162
switch (any->class) {
165
XKeyInfoPtr K = (XKeyInfoPtr) Any;
166
xKeyInfoPtr k = (xKeyInfoPtr) any;
169
K->length = sizeof(XKeyInfo);
170
K->min_keycode = k->min_keycode;
171
K->max_keycode = k->max_keycode;
172
K->num_keys = k->num_keys;
177
XButtonInfoPtr B = (XButtonInfoPtr) Any;
178
xButtonInfoPtr b = (xButtonInfoPtr) any;
180
B->class = ButtonClass;
181
B->length = sizeof(XButtonInfo);
182
B->num_buttons = b->num_buttons;
187
XValuatorInfoPtr V = (XValuatorInfoPtr) Any;
188
xValuatorInfoPtr v = (xValuatorInfoPtr) any;
192
V->class = ValuatorClass;
193
V->length = sizeof(XValuatorInfo) +
194
(v->num_axes * sizeof(XAxisInfo));
195
V->num_axes = v->num_axes;
196
V->motion_buffer = v->motion_buffer_size;
198
A = (XAxisInfoPtr) ((char *)V + sizeof(XValuatorInfo));
200
a = (xAxisInfoPtr) ((char *)any + sizeof(xValuatorInfo));
201
for (k = 0; k < (int)v->num_axes; k++, a++, A++) {
202
A->min_value = a->min_value;
203
A->max_value = a->max_value;
204
A->resolution = a->resolution;
211
any = (xAnyClassPtr) ((char *)any + any->length);
212
Any = (XAnyClassPtr) ((char *)Any + Any->length);
229
ParseClassInfo(&any, &Any, (int)list->num_classes);