X-Git-Url: https://diplodocus.org/git/xorg-xinput/blobdiff_plain/4ad33929e0f640dbc91004857ed2168006d21a71..a197551573663cab9e79e07e2de9d423c7a7a572:/src/xinput.c?ds=inline diff --git a/src/xinput.c b/src/xinput.c index 082175a..029b3fb 100644 --- a/src/xinput.c +++ b/src/xinput.c @@ -196,6 +196,43 @@ find_device_info(Display *display, return found; } +#ifdef HAVE_XI2 +int +xi2_find_device_id(Display *display, char *name) +{ + XIDeviceInfo *info; + int ndevices; + Bool is_id = True; + int i, id = -1; + + for(i = 0; i < strlen(name); i++) { + if (!isdigit(name[i])) { + is_id = False; + break; + } + } + + if (is_id) { + id = atoi(name); + } else + { + info = XIQueryDevice(display, AllDevices, &ndevices); + for(i = 0; i < ndevices; i++) + { + if ((is_id && info[i].deviceid == id) || + (!is_id && strcmp(info[i].name, name) == 0)) + { + id = info[i].deviceid; + break; + } + } + + XIFreeDeviceInfo(info); + } + return id;; +} +#endif + static void usage(void) {