summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-12-04 10:42:37 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-12-10 15:30:57 +1000
commitbafa7b22388c812dfffac3a64233912a55708317 (patch)
tree1e8ec4bdab8129fba17d9de09c20f24176621891
parent5ac72a6e4499e3f85b1b9268a674454b4040cf4f (diff)
downloadxf86-input-wacom-bafa7b22388c812dfffac3a64233912a55708317.tar.gz
xsetwacom: implement 'xsetwacom get' for basic properties.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--tools/xsetwacom.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/tools/xsetwacom.c b/tools/xsetwacom.c
index 3a2c180..c70e4b5 100644
--- a/tools/xsetwacom.c
+++ b/tools/xsetwacom.c
@@ -919,6 +919,63 @@ out:
static void get(Display *dpy, int argc, char **argv)
{
+ param_t *param;
+ XDevice *dev = NULL;
+ Atom prop, type;
+ int format;
+ unsigned char* data;
+ unsigned long nitems, bytes_after;
+
+ if (argc < 2)
+ {
+ usage();
+ return;
+ }
+
+ dev = find_device(dpy, argv[0]);
+ if (!dev)
+ {
+ printf("Cannot find device '%s'.\n", argv[0]);
+ return;
+ }
+
+ param = find_parameter(argv[1]);
+ if (!param)
+ {
+ printf("Unknown parameter name '%s'.\n", argv[1]);
+ goto out;
+ } else if (param->func)
+ {
+ param->func(dpy, dev, param, argc - 2, &argv[2]);
+ goto out;
+ }
+
+ prop = XInternAtom(dpy, param->prop_name, True);
+ if (!prop)
+ {
+ fprintf(stderr, "Property for '%s' not available.\n",
+ param->name);
+ goto out;
+ }
+
+ XGetDeviceProperty(dpy, dev, prop, 0, 1000, False, AnyPropertyType,
+ &type, &format, &nitems, &bytes_after, &data);
+
+ switch(param->prop_format)
+ {
+ case 8:
+ printf(" %d\n", data[param->prop_offset]);
+ break;
+ case 32:
+ {
+ long *ldata = (long*)data;
+ printf(" %ld\n", ldata[param->prop_offset]);
+ break;
+ }
+ }
+
+out:
+ XCloseDevice(dpy, dev);
}
static void getdefault(Display *dpy)