void cavan_input_service_init(struct cavan_input_service *service, bool (*matcher)(struct cavan_event_matcher *, void *)) { cavan_event_service_init(&service->event_service, cavan_input_device_matcher); service->lcd_width = -1; service->lcd_height = -1; service->matcher = matcher; service->handler = NULL; }
int main(int argc, char *argv[]) { int ret; const char *dev_path; char name[64]; struct cavan_event_service service; assert(argc < 3); if (argc > 1) { if (file_test(argv[1], "c") < 0 && text_is_number(argv[1])) { sprintf(name, "/dev/input/event%s", argv[1]); dev_path = name; } else { dev_path = argv[1]; } } else { dev_path = NULL; } cavan_event_service_init(&service, cavan_event_simple_matcher); ret = cavan_event_service_start(&service, (void *) dev_path); if (ret < 0) { pr_red_info("cavan_event_service_start"); return ret; } cavan_event_service_join(&service); cavan_event_service_stop(&service); return ret; }