当前位置: 技术问答>linux和unix
多点触屏如何上报触控事件
来源: 互联网 发布时间:2017-05-27
本文导语: 我现在在做触摸屏驱动,点击安卓桌面上的按钮时,在驱动中能获得触摸屏上的坐标, 但按钮没有反应。 请问下面上报多点触控的代码有没有问题?还有如何调试这种问题? 谢谢! #define MAX_SUPPORT_POINTS 5 for (i ...
我现在在做触摸屏驱动,点击安卓桌面上的按钮时,在驱动中能获得触摸屏上的坐标, 但按钮没有反应。
请问下面上报多点触控的代码有没有问题?还有如何调试这种问题?
谢谢!
#define MAX_SUPPORT_POINTS 5
for (i = 0; i input_dev, i);
if (data->fingers[i].status) { //按下
input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, true);
input_report_abs(data->input_dev, ABS_MT_POSITION_X, data->fingers[i].x);
input_report_abs(data->input_dev, ABS_MT_POSITION_Y, data->fingers[i].y);
input_report_abs(data->input_dev, ABS_MT_PRESSURE, data->fingers[i].pressure);
input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, 1);
//input_report_abs(data->input_dev, ABS_MT_TRACKING_ID, i);
}
else
{
uppoint++;
input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, false);
}
}
if (uppoint == MAX_SUPPORT_POINTS) //没有触控
input_report_key(data->input_dev, BTN_TOUCH, 0);
else
input_report_key(data->input_dev, BTN_TOUCH, 1);
input_sync(data->input_dev);
请问下面上报多点触控的代码有没有问题?还有如何调试这种问题?
谢谢!
#define MAX_SUPPORT_POINTS 5
for (i = 0; i input_dev, i);
if (data->fingers[i].status) { //按下
input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, true);
input_report_abs(data->input_dev, ABS_MT_POSITION_X, data->fingers[i].x);
input_report_abs(data->input_dev, ABS_MT_POSITION_Y, data->fingers[i].y);
input_report_abs(data->input_dev, ABS_MT_PRESSURE, data->fingers[i].pressure);
input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, 1);
//input_report_abs(data->input_dev, ABS_MT_TRACKING_ID, i);
}
else
{
uppoint++;
input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, false);
}
}
if (uppoint == MAX_SUPPORT_POINTS) //没有触控
input_report_key(data->input_dev, BTN_TOUCH, 0);
else
input_report_key(data->input_dev, BTN_TOUCH, 1);
input_sync(data->input_dev);
|
家打印信息调吧 单看一段看不出来