概述
关键结构体input_event信息:
struct input_event {
struct timeval time;
__u16 type;
__u16 code;
__s32 value;
};
type: 设备类型。可以设置为:
#define EV_SYN 0x00 表示设备支持所有的事件
#define EV_KEY 0x01 键盘或者按键,表示一个键码
#define EV_REL 0x02 鼠标设备,表示一个相对的光标位置结果
#define EV_ABS 0x03 手写板产生的值,其是一个绝对整数值
#define EV_MSC 0x04 其他类型
#define EV_LED 0x11 LED灯设备
#define EV_SND 0x12 蜂鸣器,输入声音
#define EV_REP 0x14 允许重复按键类型
#define EV_PWR 0x16 电源管理事件
#define EV_FF_STATUS 0x17
#define EV_MAX 0x1f
#define EV_CNT (EV_MAX+1)
code:根据Type的不同而含义不同。
例如:
Type为EV_KEY时,code表示键盘code或者鼠标Button值。
取值范围:
#define EV_SYN 0x00
到:
#define KEY_MIN_INTERESTING KEY_MUTE
#define KEY_MAX 0x2ff
#define KEY_CNT (KEY_MAX+1)
Type为EV_REL时,code表示操作的是哪个坐标轴,如:REL_X,REL_Y。(因为鼠标有x,y两个轴向,所以一次鼠标移动,会产生两个input_event)
取值范围:
#define REL_X 0x00
#define REL_Y 0x01
#define REL_Z 0x02
#define REL_RX 0x03
#define REL_RY 0x04
#define REL_RZ 0x05
#define REL_HWHEEL 0x06
#define REL_DIAL 0x07
#define REL_WHEEL 0x08
#define REL_MISC 0x09
#define REL_MAX 0x0f
#define REL_CNT (REL_MAX+1)
Type为EV_ABS时,code表示绝对坐标轴向。
value:根据Type的不同而含义不同。
例如:
Type为EV_KEY时,value: 0表示按键抬起。1表示按键按下。(4表示持续按下等?)。
Type为EV_REL时,value: 表明移动的值和方向(正负值)。
Type为EV_ABS时,code表示绝对位置。
最后
以上就是壮观季节为你收集整理的input_event结构体详解的全部内容,希望文章能够帮你解决input_event结构体详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复