1,input_mt_init_slots函数 函数定义: int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots, unsigned int flags) dev:MT设备对应的input_dev,因为MT设备隶属于input_dev num_slots:设备要使用slot数量,也就是触摸点的数量 flags:其他一些flags信息 2,input_mt_slot函数 此函数用于TypeB类型,此函数用于产生ABS_MT_SLOT事件,告诉内核当前上报的是哪个触摸点的坐标数据。 函数定义: static inline void input_mt_slot(struct input_dev *dev, int slot) dev:MT设备对应的input_dev slot:当前发送的是哪个slot的坐标信息,也就是那个触摸点,那就是硬件发送过来的信息ID 3,input_mt_report_slot_state函数 用于产生ABS_MT_TRACKING_ID 和 ABS_MT_TOOL_TYPE事件给slot关联一个ABS_MT_TRACKING_ID ,ABS_MT_TOOL_TYPE 事 件 指 定 触 摸 类 型 函数定义: bool input_mt_report_slot_state(struct input_dev *dev, unsigned int tool_type, bool active) dev:MT设备对应的input_dev。 tool_type:触摸类型 active:ture,连续触摸,input子系统内核汇自动分配一个ABS_MT_TRACKING_ID给slot。false,触摸点抬起。表示某个触摸点无效了,input子系统就会给内核分配一个-1给slot,表示触摸点移除
|