1c0abf9e6Sopenharmony_ci// SPDX-License-Identifier: MIT 2c0abf9e6Sopenharmony_ci/* 3c0abf9e6Sopenharmony_ci * Copyright © 2021 Red Hat, Inc. 4c0abf9e6Sopenharmony_ci */ 5c0abf9e6Sopenharmony_ci 6c0abf9e6Sopenharmony_ci/* Lists all event types and codes currently known by libevdev. */ 7c0abf9e6Sopenharmony_ci 8c0abf9e6Sopenharmony_ci#include "config.h" 9c0abf9e6Sopenharmony_ci 10c0abf9e6Sopenharmony_ci#include <stdio.h> 11c0abf9e6Sopenharmony_ci#include <linux/input.h> 12c0abf9e6Sopenharmony_ci#include "libevdev/libevdev.h" 13c0abf9e6Sopenharmony_ci 14c0abf9e6Sopenharmony_cistatic void 15c0abf9e6Sopenharmony_cilist_event_codes(unsigned int type, unsigned int max) 16c0abf9e6Sopenharmony_ci{ 17c0abf9e6Sopenharmony_ci const char *typestr = libevdev_event_type_get_name(type); 18c0abf9e6Sopenharmony_ci 19c0abf9e6Sopenharmony_ci if (!typestr) 20c0abf9e6Sopenharmony_ci return; 21c0abf9e6Sopenharmony_ci 22c0abf9e6Sopenharmony_ci printf("- %s:\n", typestr); 23c0abf9e6Sopenharmony_ci 24c0abf9e6Sopenharmony_ci for (unsigned int code = 0; code <= max; code++) { 25c0abf9e6Sopenharmony_ci const char *str = libevdev_event_code_get_name(type, code); 26c0abf9e6Sopenharmony_ci 27c0abf9e6Sopenharmony_ci if (!str) 28c0abf9e6Sopenharmony_ci continue; 29c0abf9e6Sopenharmony_ci 30c0abf9e6Sopenharmony_ci printf(" %d: %s\n", code, str); 31c0abf9e6Sopenharmony_ci } 32c0abf9e6Sopenharmony_ci} 33c0abf9e6Sopenharmony_ci 34c0abf9e6Sopenharmony_ciint 35c0abf9e6Sopenharmony_cimain (int argc, char **argv) 36c0abf9e6Sopenharmony_ci{ 37c0abf9e6Sopenharmony_ci printf("codes:\n"); 38c0abf9e6Sopenharmony_ci for (unsigned int type = 0; type <= EV_MAX; type++) { 39c0abf9e6Sopenharmony_ci int max = libevdev_event_type_get_max(type); 40c0abf9e6Sopenharmony_ci if (max == -1) 41c0abf9e6Sopenharmony_ci continue; 42c0abf9e6Sopenharmony_ci 43c0abf9e6Sopenharmony_ci list_event_codes(type, (unsigned int)max); 44c0abf9e6Sopenharmony_ci } 45c0abf9e6Sopenharmony_ci 46c0abf9e6Sopenharmony_ci return 0; 47c0abf9e6Sopenharmony_ci} 48