summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2007-12-20 12:30:42 +1030
committerPeter Hutterer <peter@cs.unisa.edu.au>2007-12-20 12:30:42 +1030
commit69a5e9e7722fc3311e3d67075cf52b8987f9bc0f (patch)
treec0ef30e326c4570ebcf4441ead33a5ca55cea46d
parenta6feac1e18cdeffc42bc992faa8c95eaec420378 (diff)
Add support for BlobClass parsing and listing.blob
-rw-r--r--src/list.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/list.c b/src/list.c
index e288642..b7365db 100644
--- a/src/list.c
+++ b/src/list.c
@@ -35,6 +35,7 @@ print_info(XDeviceInfo *info, Bool shortformat)
XValuatorInfoPtr v;
XAxisInfoPtr a;
XAttachInfoPtr att;
+ XBlobInfoPtr blob;
printf("\"%s\"\tid=%ld\t[", info->name, info->id);
@@ -97,7 +98,47 @@ print_info(XDeviceInfo *info, Bool shortformat)
att = (XAttachInfoPtr)any;
printf("\tAttached to %d\n", att->attached);
break;
+ case BlobClass:
+ {
+ int num_axes, identifiers;
+ Atom* atom;
+ blob = (XBlobInfoPtr)any;
+ printf("\tNum_buttons is %d\n", blob->num_buttons);
+ printf("\tCapabilities are:\n");
+ if (blob->capabilities & BC_Elevation)
+ printf("\t\tElevation\n");
+ if (blob->capabilities & BC_Rotation)
+ printf("\t\tRotation\n");
+ if (blob->capabilities & BC_Multiblob)
+ printf("\t\tMultiblob\n");
+ if (blob->capabilities & BC_Multibutton)
+ printf("\t\tMultibutton\n");
+ if (blob->capabilities & BC_Intensity)
+ printf("\t\tIntensity\n");
+ if (blob->capabilities & BC_Data)
+ printf("\t\tData\n");
+ if (blob->capabilities & BC_Identifier)
+ printf("\t\tIdentifier\n");
+
+ num_axes = (blob->capabilities & BC_Elevation) ? 3 : 2;
+ a = (XAxisInfoPtr)&blob[1];
+ for (j=0; j < num_axes; j++, a++) {
+ printf("\tAxis %d :\n", j);
+ printf("\t\tMin_value is %d\n", a->min_value);
+ printf("\t\tMax_value is %d\n", a->max_value);
+ printf ("\t\tResolution is %d\n", a->resolution);
+ }
+ identifiers = blob->num_identifiers;
+ atom = blob->identifiers;
+ printf("\tKnown identifiers:\n");
+ while(identifiers--)
+ {
+ printf("\t%ld\n", *atom);
+ atom++;
+ }
+ }
+ break;
default:
printf ("unknown class\n");
}