📄 event.c
字号:
#include <linux/input.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/poll.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#include <errno.h>#include <stdio.h>static int event_fd;int plugin_event_init( char *dev ){ event_fd = open( dev, O_RDONLY|O_NONBLOCK ); if( event_fd < 0 ) { perror( "event open" ); return -1; } return 0;}void plugin_event_cleanup( void ){ close( event_fd );}int plugin_event_read_nowait( int *code, int *value ){ int ret; struct input_event event; ret = read( event_fd, &event, sizeof(event) ); if( ret != sizeof(event) ) return -1; if( event.type != EV_KEY ) return -1; *code = event.code; *value = event.value; return 0;}int plugin_event_read( int *code, int *value ){ int ret; struct pollfd ufds; ufds.fd = event_fd; ufds.events = POLLIN; ufds.revents = 0; ret = poll( &ufds, 1, 0 ); if( ret > 0 ) { /* got event */ return plugin_event_read_nowait( code, value ); } /* timeout */ return -1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -