void cavan_input_service_stop(struct cavan_input_service *service) { cavan_event_service_stop(&service->event_service); cavan_timer_service_stop(&service->timer_service); cavan_data_queue_stop(&service->queue); cavan_data_queue_deinit(&service->queue); pthread_mutex_destroy(&service->lock); }
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; }