summaryrefslogtreecommitdiff
path: root/src/XListDev.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/XListDev.c')
-rw-r--r--src/XListDev.c265
1 files changed, 127 insertions, 138 deletions
diff --git a/src/XListDev.c b/src/XListDev.c
index 279bede..e834e6a 100644
--- a/src/XListDev.c
+++ b/src/XListDev.c
@@ -63,185 +63,174 @@ SOFTWARE.
#include <X11/extensions/extutil.h>
#include "XIint.h"
-XDeviceInfo
-*XListInputDevices(dpy, ndevices)
- register Display *dpy;
- int *ndevices;
- {
- int size;
- xListInputDevicesReq *req;
- xListInputDevicesReply rep;
- xDeviceInfo *list, *slist = NULL;
- XDeviceInfo *sclist = NULL;
- XDeviceInfo *clist = NULL;
- xAnyClassPtr any, sav_any;
- XAnyClassPtr Any;
- char *nptr, *Nptr;
- register int i,j,k;
- register long rlen;
- XExtDisplayInfo *info = XInput_find_display (dpy);
-
- LockDisplay (dpy);
+XDeviceInfo * XListInputDevices(dpy, ndevices)
+ register Display *
+ dpy;
+ int *
+ ndevices;
+{
+ int size;
+ xListInputDevicesReq *req;
+ xListInputDevicesReply rep;
+ xDeviceInfo *list, *slist = NULL;
+ XDeviceInfo *sclist = NULL;
+ XDeviceInfo *clist = NULL;
+ xAnyClassPtr any, sav_any;
+ XAnyClassPtr Any;
+ char *nptr, *Nptr;
+ register int i, j, k;
+ register long rlen;
+ XExtDisplayInfo *info = XInput_find_display(dpy);
+
+ LockDisplay(dpy);
if (_XiCheckExtInit(dpy, XInput_Initial_Release) == -1)
return ((XDeviceInfo *) NULL);
- GetReq(ListInputDevices,req);
+ GetReq(ListInputDevices, req);
req->reqType = info->codes->major_opcode;
req->ReqType = X_ListInputDevices;
- if (! _XReply (dpy, (xReply *) &rep, 0, xFalse))
- {
+ if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) {
UnlockDisplay(dpy);
SyncHandle();
return (XDeviceInfo *) NULL;
- }
+ }
- if ((*ndevices = rep.ndevices)) /* at least 1 input device */
- {
- size = *ndevices * sizeof (XDeviceInfo);
- rlen = rep.length << 2; /* multiply length by 4 */
- list = (xDeviceInfo *) Xmalloc (rlen);
+ if ((*ndevices = rep.ndevices)) { /* at least 1 input device */
+ size = *ndevices * sizeof(XDeviceInfo);
+ rlen = rep.length << 2; /* multiply length by 4 */
+ list = (xDeviceInfo *) Xmalloc(rlen);
slist = list;
- if (!slist)
- {
- _XEatData (dpy, (unsigned long) rlen);
+ if (!slist) {
+ _XEatData(dpy, (unsigned long)rlen);
UnlockDisplay(dpy);
SyncHandle();
return (XDeviceInfo *) NULL;
- }
- _XRead (dpy, (char *)list, rlen);
+ }
+ _XRead(dpy, (char *)list, rlen);
- any = (xAnyClassPtr) ((char *) list +
- (*ndevices * sizeof(xDeviceInfo)));
+ any = (xAnyClassPtr) ((char *)list + (*ndevices * sizeof(xDeviceInfo)));
sav_any = any;
- for (i=0; i<*ndevices; i++, list++)
- {
- for (j=0; j<(int)list->num_classes; j++)
+ for (i = 0; i < *ndevices; i++, list++) {
+ for (j = 0; j < (int)list->num_classes; j++) {
+ switch (any->class) {
+ case KeyClass:
+ size += sizeof(XKeyInfo);
+ break;
+ case ButtonClass:
+ size += sizeof(XButtonInfo);
+ break;
+ case ValuatorClass:
{
- switch (any->class)
- {
- case KeyClass:
- size += sizeof (XKeyInfo);
- break;
- case ButtonClass:
- size += sizeof (XButtonInfo);
- break;
- case ValuatorClass:
- {
- xValuatorInfoPtr v;
- v = (xValuatorInfoPtr) any;
- size += sizeof (XValuatorInfo) +
- (v->num_axes * sizeof (XAxisInfo));
- break;
- }
- default:
- break;
- }
- any = (xAnyClassPtr) ((char *) any + any->length);
+ xValuatorInfoPtr v;
+
+ v = (xValuatorInfoPtr) any;
+ size += sizeof(XValuatorInfo) +
+ (v->num_axes * sizeof(XAxisInfo));
+ break;
+ }
+ default:
+ break;
}
+ any = (xAnyClassPtr) ((char *)any + any->length);
}
+ }
- for (i=0, nptr = (char *) any; i<*ndevices; i++)
- {
- size += *nptr +1;
+ for (i = 0, nptr = (char *)any; i < *ndevices; i++) {
+ size += *nptr + 1;
nptr += (*nptr + 1);
- }
+ }
- clist = (XDeviceInfoPtr) Xmalloc (size);
- if (!clist)
- {
- XFree ((char *)slist);
+ clist = (XDeviceInfoPtr) Xmalloc(size);
+ if (!clist) {
+ XFree((char *)slist);
UnlockDisplay(dpy);
SyncHandle();
return (XDeviceInfo *) NULL;
- }
+ }
sclist = clist;
- Any = (XAnyClassPtr) ((char *) clist +
- (*ndevices * sizeof (XDeviceInfo)));
+ Any = (XAnyClassPtr) ((char *)clist +
+ (*ndevices * sizeof(XDeviceInfo)));
list = slist;
any = sav_any;
- for (i=0; i<*ndevices; i++, list++, clist++)
- {
- clist->type = list->type;
+ for (i = 0; i < *ndevices; i++, list++, clist++) {
+ clist->type = list->type;
clist->id = list->id;
clist->use = list->use;
clist->num_classes = list->num_classes;
clist->inputclassinfo = Any;
- for (j=0; j<(int)list->num_classes; j++)
+ for (j = 0; j < (int)list->num_classes; j++) {
+ switch (any->class) {
+ case KeyClass:
+ {
+ XKeyInfoPtr K = (XKeyInfoPtr) Any;
+ xKeyInfoPtr k = (xKeyInfoPtr) any;
+
+ K->class = KeyClass;
+ K->length = sizeof(XKeyInfo);
+ K->min_keycode = k->min_keycode;
+ K->max_keycode = k->max_keycode;
+ K->num_keys = k->num_keys;
+ break;
+ }
+ case ButtonClass:
{
- switch (any->class)
- {
- case KeyClass:
- {
- XKeyInfoPtr K = (XKeyInfoPtr) Any;
- xKeyInfoPtr k = (xKeyInfoPtr) any;
- K->class = KeyClass;
- K->length = sizeof (XKeyInfo);
- K->min_keycode = k->min_keycode;
- K->max_keycode = k->max_keycode;
- K->num_keys = k->num_keys;
- break;
- }
- case ButtonClass:
- {
- XButtonInfoPtr B = (XButtonInfoPtr) Any;
- xButtonInfoPtr b = (xButtonInfoPtr) any;
- B->class = ButtonClass;
- B->length = sizeof (XButtonInfo);
- B->num_buttons = b->num_buttons;
- break;
- }
- case ValuatorClass:
- {
- XValuatorInfoPtr V = (XValuatorInfoPtr) Any;
- xValuatorInfoPtr v = (xValuatorInfoPtr) any;
- XAxisInfoPtr A;
- xAxisInfoPtr a;
+ XButtonInfoPtr B = (XButtonInfoPtr) Any;
+ xButtonInfoPtr b = (xButtonInfoPtr) any;
- V->class = ValuatorClass;
- V->length = sizeof (XValuatorInfo) +
- (v->num_axes * sizeof (XAxisInfo));
- V->num_axes = v->num_axes;
- V->motion_buffer = v->motion_buffer_size;
- V->mode = v->mode;
- A = (XAxisInfoPtr) ((char *) V + sizeof(XValuatorInfo));
- V->axes = A;
- a = (xAxisInfoPtr) ((char *) any +
- sizeof (xValuatorInfo));
- for (k=0; k<(int)v->num_axes; k++,a++,A++)
- {
- A->min_value = a->min_value;
- A->max_value = a->max_value;
- A->resolution = a->resolution;
- }
- break;
- }
- default:
- break;
+ B->class = ButtonClass;
+ B->length = sizeof(XButtonInfo);
+ B->num_buttons = b->num_buttons;
+ break;
+ }
+ case ValuatorClass:
+ {
+ XValuatorInfoPtr V = (XValuatorInfoPtr) Any;
+ xValuatorInfoPtr v = (xValuatorInfoPtr) any;
+ XAxisInfoPtr A;
+ xAxisInfoPtr a;
+
+ V->class = ValuatorClass;
+ V->length = sizeof(XValuatorInfo) +
+ (v->num_axes * sizeof(XAxisInfo));
+ V->num_axes = v->num_axes;
+ V->motion_buffer = v->motion_buffer_size;
+ V->mode = v->mode;
+ A = (XAxisInfoPtr) ((char *)V + sizeof(XValuatorInfo));
+ V->axes = A;
+ a = (xAxisInfoPtr) ((char *)any + sizeof(xValuatorInfo));
+ for (k = 0; k < (int)v->num_axes; k++, a++, A++) {
+ A->min_value = a->min_value;
+ A->max_value = a->max_value;
+ A->resolution = a->resolution;
}
- any = (xAnyClassPtr) ((char *) any + any->length);
- Any = (XAnyClassPtr) ((char *) Any + Any->length);
+ break;
}
+ default:
+ break;
+ }
+ any = (xAnyClassPtr) ((char *)any + any->length);
+ Any = (XAnyClassPtr) ((char *)Any + Any->length);
}
+ }
clist = sclist;
- nptr = (char *) any;
- Nptr = (char *) Any;
- for (i=0; i<*ndevices; i++,clist++)
- {
- clist->name = (char *) Nptr;
- memcpy (Nptr, nptr+1, *nptr);
+ nptr = (char *)any;
+ Nptr = (char *)Any;
+ for (i = 0; i < *ndevices; i++, clist++) {
+ clist->name = (char *)Nptr;
+ memcpy(Nptr, nptr + 1, *nptr);
Nptr += (*nptr);
*Nptr++ = '\0';
nptr += (*nptr + 1);
- }
}
+ }
- XFree ((char *)slist);
+ XFree((char *)slist);
UnlockDisplay(dpy);
SyncHandle();
return (sclist);
- }
+}
/***********************************************************************
*
@@ -249,11 +238,11 @@ XDeviceInfo
*
*/
-void XFreeDeviceList (list)
+void
+XFreeDeviceList(list)
XDeviceInfo *list;
- {
- if (list != NULL)
- {
- XFree ((char *) list);
- }
+{
+ if (list != NULL) {
+ XFree((char *)list);
}
+}