static void keys_cb(EV_P_ ev_io *w_, int revents)
{
- static char *type = "keys";
-
ev_io_keys *w = (ev_io_keys *)w_;
int fd = w->fd;
struct input_event ev;
break;
default:
fprintf(stderr, "unsupported event code: %d\n", ev.code);
- return;
+ key = '?';
+ //return;
}
- JSON_START();
- JSON_STR(type);
- JSON_NEXT();
- JSON_CHAR(key);
- JSON_END();
+ keys_json_print(fd, key);
}
}
int mt_keys_init(mt_keys_t *self, struct ev_loop *loop, int fd)
{
- int ev = open("/dev/input/by-path/platform-gpio-keys-event", O_RDONLY);
- if (fd == -1) {
- perror("/dev/input/by-path/platform-gpio-keys-event");
+ char *dev = getenv("INPUT");
+
+ if (!dev)
+ dev = "/dev/input/by-path/platform-gpio-keys-event";
+
+ int ev = open(dev, O_RDONLY);
+ if (ev == -1) {
+ perror(dev);
return -1;
}