diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2009-12-04 10:42:37 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-12-10 15:30:57 +1000 |
commit | bafa7b22388c812dfffac3a64233912a55708317 (patch) | |
tree | 1e8ec4bdab8129fba17d9de09c20f24176621891 | |
parent | 5ac72a6e4499e3f85b1b9268a674454b4040cf4f (diff) | |
download | xf86-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.c | 57 |
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) |