当前位置: 技术问答>linux和unix
关于linux下输入子系统问题----为什么绝对鼠标无效,而相对可以?
来源: 互联网 发布时间:2016-08-14
本文导语: 目前做了一个虚拟鼠标的项目,参照的是http://blog.csdn.net/absurd/archive/2009/09/15/4553904.aspx 的代码。 现在相对鼠标可以实现,但是绝对鼠标一直实现不了。 相对鼠标初始化时只设置了以下: //然...
目前做了一个虚拟鼠标的项目,参照的是http://blog.csdn.net/absurd/archive/2009/09/15/4553904.aspx 的代码。
现在相对鼠标可以实现,但是绝对鼠标一直实现不了。
相对鼠标初始化时只设置了以下:
//然后,声明虚拟鼠标产生相对性事件:
set_bit(EV_REL, vmouse_idev->evbit);
//下一步,声明虚拟鼠标产生的事件的编码:
set_bit(REL_X, vmouse_idev->relbit);
set_bit(REL_Y, vmouse_idev->relbit);
绝对鼠标我也按照此方式设置成:
set_bit(EV_ABS, vmouse_idev->evbit);
set_bit(ABS_X, vmouse_idev->absbit);
set_bit(ABS_Y, vmouse_idev->absbit);
而在vmouse_write函数的中
相对鼠标
input_report_rel(vmouse_idev, REL_X, event.x);
input_report_rel(vmouse_idev, REL_Y, event.y);
input_sync (vmouse_idev);
绝对鼠标也参照相对鼠标值(如下)
input_report_abs(vmouse_dev, ABS_X, event.x & 0xfff);
input_report_abs(vmouse_dev, ABS_Y, event.y & 0xfff);
input_sync (vmouse_dev);
两者的实现几本上都相差无几,但为什么相对鼠标就可以让鼠标动起来,而绝对的却不行?希望大家帮忙看看!
现在相对鼠标可以实现,但是绝对鼠标一直实现不了。
相对鼠标初始化时只设置了以下:
//然后,声明虚拟鼠标产生相对性事件:
set_bit(EV_REL, vmouse_idev->evbit);
//下一步,声明虚拟鼠标产生的事件的编码:
set_bit(REL_X, vmouse_idev->relbit);
set_bit(REL_Y, vmouse_idev->relbit);
绝对鼠标我也按照此方式设置成:
set_bit(EV_ABS, vmouse_idev->evbit);
set_bit(ABS_X, vmouse_idev->absbit);
set_bit(ABS_Y, vmouse_idev->absbit);
而在vmouse_write函数的中
相对鼠标
input_report_rel(vmouse_idev, REL_X, event.x);
input_report_rel(vmouse_idev, REL_Y, event.y);
input_sync (vmouse_idev);
绝对鼠标也参照相对鼠标值(如下)
input_report_abs(vmouse_dev, ABS_X, event.x & 0xfff);
input_report_abs(vmouse_dev, ABS_Y, event.y & 0xfff);
input_sync (vmouse_dev);
两者的实现几本上都相差无几,但为什么相对鼠标就可以让鼠标动起来,而绝对的却不行?希望大家帮忙看看!
|
此外跟相对鼠标不同的是,
相对鼠标可以仅仅位移,绝对鼠标除了位移还一定有一个按下
lz注册ABS_PRESSURE 没
那个例子就是绝对鼠标的啊
相对鼠标可以仅仅位移,绝对鼠标除了位移还一定有一个按下
lz注册ABS_PRESSURE 没
那个例子就是绝对鼠标的啊
|
多参照当前内核的 drivers/input/touchscreen 下的例子
人家怎么做照抄还不行?
人家怎么做照抄还不行?
|
这个可以参考系统源码的说
|