]> diplodocus.org Git - xorg-xinput/blobdiff - src/list.c
Require inputproto 1.9.99.12
[xorg-xinput] / src / list.c
index daebf3fca4d8271b7a9b91277c3907d15846f27a..2313fbdfbf3360cf52664f853685848b55e6da42 100644 (file)
@@ -150,35 +150,47 @@ void
 print_classes_xi2(Display* display, XIAnyClassInfo **classes,
                   int num_classes)
 {
 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("\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)
         {
         switch(classes[i]->type)
         {
-            case ButtonClass:
+            case XIButtonClass:
                 {
                     XIButtonClassInfo *b = (XIButtonClassInfo*)classes[i];
                     printf("\t\tButtons supported: %d\n", b->num_buttons);
                 {
                     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;
 
                 }
                 break;
-            case KeyClass:
+            case XIKeyClass:
                 {
                     XIKeyClassInfo *k = (XIKeyClassInfo*)classes[i];
                     printf("\t\tKeycodes supported: %d\n", k->num_keycodes);
                 }
                 break;
                 {
                     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);
                 {
                     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");
                     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;
         }
                 }
                 break;
         }
@@ -243,7 +255,6 @@ list_xi2(Display    *display,
     }
 
     info = XIQueryDevice(display, XIAllDevices, &ndevices);
     }
 
     info = XIQueryDevice(display, XIAllDevices, &ndevices);
-    dev = info;
 
     for(i = 0; i < ndevices; i++)
     {
 
     for(i = 0; i < ndevices; i++)
     {
@@ -270,6 +281,16 @@ list_xi2(Display   *display,
         }
     }
 
         }
     }
 
+    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;
 
     XIFreeDeviceInfo(info);
     return EXIT_SUCCESS;