Tyl*_*ler 24 kernel objective-c device-driver multi-touch magic-mouse
我最近购买了一只Magic Mouse.它太棒了,充满了潜力.不幸的是,它受到软件支持的严重阻碍.我想解决这个问题.我做了很多研究,这些是我迄今为止关于事件链的调查结果:
在我发现上述所有内容之后,我将MultitouchSupport.framework文件进行了反汇编,并通过一些Google搜索,找到了如何将自己的回调插入链中,以便接收原始触摸事件数据.如果枚举设备列表,则可以为每个设备(触控板和鼠标)附加.这一发现将使我们能够创建一个在鼠标上使用多点触控的框架,但仅限于单个应用程序.请在此处查看我的帖子:Raw Multitouch Tracking.
我想在整个系统中为鼠标添加新功能,而不仅仅是一个应用程序.
为了做到这一点,我想出了如何使用Event Taps来查看最低级别的事件抽头是否允许我获取原始数据,解释它,并在其位置发送我自己的事件.不幸的是,这种情况并非如此.事件点击,即使在HID级别,仍然是在MultitouchSupport.framework中解释输入的步骤.
在此处查看我的事件点击尝试:事件点击 - 尝试原始多点触控.
一个有趣的旁注:当收到多点触控事件(例如滑动)时,会触发默认情况并打印出事件编号29.标题显示28为最大值.
关于我的问题,既然你掌握了所有的信息,并且已经看到了我的尝试:扩展Magic Mouse功能的最佳方法是什么?我知道我需要以足够低的水平插入一些东西,以便在处理输入并调度预定义事件之前获取输入.所以,把它归结为单句问题:
我的第一个目标是,如果您点击时设备上有两个手指,则可以发送中键按钮点击事件.显然,目前还有很多可以做的事情,但这对于拍摄来说似乎是一件好事.
提前致谢!
-Sastira
魔术鼠标和玻璃触控板之间的 MultitouchSupport.framework 中发生的情况有何不同?如果它基于 IOKit 设备属性,我怀疑您将需要一个模拟触控板但实际上与鼠标通信的 KEXT。Apple 有一些关于 Darwin 内核编程和内核扩展的文档:
(就我个人而言,我喜欢能够进行捏合放大和更多滑动/按钮手势的东西;事实上,Magic Mouse 是 Mighty Mouse 的四个按钮和 [尽管一直堵塞] 2D 滚轮的功能降级版。更新:最后今年我写了Sesamouse来做到这一点,并且它不需要 kext(只需一两周盯着十六进制转储:-) 请参阅我的其他答案以获取 deets 和源代码。)
归档时间: |
|
查看次数: |
4432 次 |
最近记录: |