看的话,不一定都能看懂,博客主要是记录,便于查阅,有一个整体的记忆。
input.h里面有4个结构体。
struct
|
------ input_value
|
------ input_dev
|
------ input_handler
|
------ input_handle
|
------ ff_device
struct input_value {
__u16 type; //按键,坐标,等
__u16 code; //上报的码,KEY_F1, KEY_HOME, KEY_Power等
__s32 value; // 按下,抬起,长按,x坐标值,y坐标值等
};
---------
struct input_dev - repesents an input device
struct input_handler - implements one of interfaces for input devices
struct input_handle - links input device with an input handler
白话:
1. input_dev代表一个输入设备,在驱动初始化是有一个input_dev对象,填充对象的成员,代表它的功能,并通过input_register_device(input_dev)注册一个输入设备。
2. 输入设备物理触发对应一个事件,产生相应中断,也就有相应的处理函数。就需要input_handler对象,该对象的成员是一些函数指针(指针变量,指向事件处理的函数)。
3. 上述两个(input_dev,input_handler)通过一个结构体联系起来,那就是input_handle。联系起来,及时这个结构体里面有上述两个结构体的指针,实例化对象时,有成员指向。
input_dev的注册函数时input_resiter_dev(input_dev).
input_hanlder的注册函数是input_register_handler(input_handler).
input_handle的注册函数是input_register_handle(input_handle).