X-Git-Url: https://diplodocus.org/git/xorg-xinput/blobdiff_plain/7458e7dde70f5d9ff281848fb1a56e9a5f1dd783..82d338548e22ae271f50592e759794dd7536a207:/src/list.c diff --git a/src/list.c b/src/list.c index 09eaa0a..2313fbd 100644 --- a/src/list.c +++ b/src/list.c @@ -150,35 +150,47 @@ void print_classes_xi2(Display* display, XIAnyClassInfo **classes, int num_classes) { - int i; + int i, j; printf("\tReporting %d classes:\n", num_classes); for (i = 0; i < num_classes; i++) { + printf("\t\tClass originated from: %d\n", classes[i]->sourceid); switch(classes[i]->type) { - case ButtonClass: + case XIButtonClass: { XIButtonClassInfo *b = (XIButtonClassInfo*)classes[i]; printf("\t\tButtons supported: %d\n", b->num_buttons); + printf("\t\tButton labels:"); + for (j = 0; j < b->num_buttons; j++) + printf(" %s", (b->labels[j]) ? XGetAtomName(display, b->labels[j]) : "None"); + printf("\n"); + printf("\t\tButton state:"); + for (j = 0; j < b->state.mask_len * 8; j++) + if (XIMaskIsSet(b->state.mask, j)) + printf(" %d", j); + printf("\n"); } break; - case KeyClass: + case XIKeyClass: { XIKeyClassInfo *k = (XIKeyClassInfo*)classes[i]; printf("\t\tKeycodes supported: %d\n", k->num_keycodes); } break; - case ValuatorClass: + case XIValuatorClass: { XIValuatorClassInfo *v = (XIValuatorClassInfo*)classes[i]; printf("\t\tDetail for Valuator %d:\n", v->number); - printf("\t\t Name: %s\n", XGetAtomName(display, v->name)); + printf("\t\t Label: %s\n", v->label ? XGetAtomName(display, v->label) : "None"); printf("\t\t Range: %f - %f\n", v->min, v->max); printf("\t\t Resolution: %d units/m\n", v->resolution); printf("\t\t Mode: %s\n", v->mode == Absolute ? "absolute" : "relative"); + if (v->mode == Absolute) + printf("\t\t Current value: %f\n", v->value); } break; } @@ -243,7 +255,6 @@ list_xi2(Display *display, } info = XIQueryDevice(display, XIAllDevices, &ndevices); - dev = info; for(i = 0; i < ndevices; i++) {