#include <X11/extensions/XIproto.h> /* for XI_Device***ChangedNotify */
static void
-print_info(XDeviceInfo *info, Bool shortformat)
+print_info(Display* dpy, XDeviceInfo *info, Bool shortformat)
{
int i,j;
XAnyClassPtr any;
if (shortformat)
return;
+ if(info->type != None)
+ printf("\tType is %s\n", XGetAtomName(dpy, info->type));
+
if (info->num_classes > 0) {
any = (XAnyClassPtr) (info->inputclassinfo);
for (i=0; i<info->num_classes; i++) {
do {
info = XListInputDevices(display, &num_devices);
for(loop=0; loop<num_devices; loop++) {
- print_info(info+loop, shortformat);
+ print_info(display, info+loop, shortformat);
}
} while(daemon);
} else {
fprintf(stderr, "unable to find device %s\n", argv[loop]);
ret = EXIT_FAILURE;
} else {
- print_info(info, shortformat);
+ print_info(display, info, shortformat);
}
}
return ret;
printf("%-40s\tid=%d\t[", dev->name, dev->deviceid);
switch(dev->use)
{
- case MasterPointer:
+ case XIMasterPointer:
printf("master pointer (%d)]\n", dev->attachment);
break;
- case MasterKeyboard:
+ case XIMasterKeyboard:
printf("master keyboard (%d)]\n", dev->attachment);
break;
- case SlavePointer:
+ case XISlavePointer:
printf("slave pointer (%d)]\n", dev->attachment);
break;
- case SlaveKeyboard:
+ case XISlaveKeyboard:
printf("slave keyboard (%d)]\n", dev->attachment);
break;
- case FloatingSlave:
+ case XIFloatingSlave:
printf("floating slave]\n");
break;
}
return EXIT_FAILURE;
}
- info = XIQueryDevice(display, AllDevices, &ndevices);
- dev = info;
+ info = XIQueryDevice(display, XIAllDevices, &ndevices);
for(i = 0; i < ndevices; i++)
{
dev = &info[i];
- if (dev->use == MasterPointer || dev->use == MasterKeyboard)
+ if (dev->use == XIMasterPointer || dev->use == XIMasterKeyboard)
{
- if (dev->use == MasterPointer)
+ if (dev->use == XIMasterPointer)
printf("⎡ ");
else
printf("⎣ ");
{
XIDeviceInfo* sd = &info[j];
- if ((sd->use == SlavePointer || sd->use == SlaveKeyboard) &&
+ if ((sd->use == XISlavePointer || sd->use == XISlaveKeyboard) &&
(sd->attachment == dev->deviceid))
{
- printf("%s ↳ ", dev->use == MasterPointer ? "⎜" : " ");
+ printf("%s ↳ ", dev->use == XIMasterPointer ? "⎜" : " ");
print_info_xi2(display, sd, shortformat);
}
}
}
}
+ for (i = 0; i < ndevices; i++)
+ {
+ dev = &info[i];
+ if (dev->use == XIFloatingSlave)
+ {
+ printf("∼ ");
+ print_info_xi2(display, dev, shortformat);
+ }
+ }
+
XIFreeDeviceInfo(info);
return EXIT_SUCCESS;