在OS X中生成并发布多点触控事件,以使用外部摄像头控制mac

Nex*_*xD. 7 macos trackpad multi-touch kinect

我目前正在为我的大学研究项目.目标是使用Microsoft Kinect摄像头控制Mac.另一名学生正在编写Kinect驱动程序(它将安装在Mac后面的天花板或墙壁上的某个位置,并在Macs屏幕上输出所有手指的位置).

我有责任使用手指位置并对它们做出反应.目标是使用一根手指控制鼠标,并以同样的方式对多个手指做出反应,就像它们在触控板上一样.

我认为这将是简单而直接的,但事实并非如此.实际上很容易用一根手指控制鼠标光标(使用CGEvent),但不幸的是,没有用于创建和发布Multitouch-Gestures到系统的公共API.

我已经做了很多研究,包括在最低位置使用事件点击捕获所有CGEvents并尝试反汇编它们,但到目前为止还没有真正的进展.

比我偶然发现并意识到,即使是事件点击的最低位置也不够深入: 扩展Magic Mouse的功能:我需要一个kext吗?

当我做对了,内置的Trackpad(以及MagicMouse和MagicTrackpad)通过KEXT-Kernel-Extension与私有MultitouchSupport框架进行通信,该框架生成并以某种方式将传入数据发布到操作系统.

因此,我需要使用MultitouchSupport.framework中的私有API来执行与触控板相同的操作,对吧?或者我需要写一个KEXT-Extension?

如果我需要使用MultitouchSupport框架:我如何反汇编它以获得私有API?(我知道类转储,但这只适用于Objective-C-frameworks,而这个框架不是)

非常感谢您的回复!NexD.

Sha*_*lva 0

如果我理解您想要做的事情是尝试从 Kinect 跟踪手指,那么“目标是使用一根手指控制鼠标,并以相同的方式对多个手指做出反应”。但问题是 Kinect 只能捕获主要的身体关节。但我想你可以使用其他第三方库来做到这一点。这是我看到的一个示例项目。但它适用于 Windows。只是尝试在那里了解大局http://channel9.msdn.com/coding4fun/kinect/Finger-Tracking-with-Kinect-SDK-and-the-Kinect-for-XBox-360-Device