检测触控板上的绝对手指位置

时间:2013-07-15 18:01:13

标签: ubuntu driver trackpad

我在13" MacBook Pro (model 7,1. Mid-2010),我最近安装了Ubuntu 12.04 LTS。基本上我要做的是制作一个程序,当用户点击Mac触控板的右下角时调用右键菜单。

这里的主要问题是检测用户在触控板上的位置究竟在哪里。当然,使用NSTouch

在OSX中这很容易做到
- (void)touchesBeganWithEvent:(NSEvent *)event {
    NSSet *touches = [event touchesMatchingPhase:NSTouchPhaseBegan inView:self];
    for(NSTouch *touch in touches) {
        NSPoint normalizedPosition = touch.normalizedPosition;

        //points inside `normalizedPosition`
        //top center: (.5, 1), bottom left: (1, 0)
    }
}

然而,问题是在Ubuntu中做同样的事情(说实话,任何编程语言都可以)。现在,我已经看过像this这样的帖子了,因为我已经想出如何在OSX中做到这一点,我不认为这个问题是相关的。我也看过this帖子,但是,我并不是在寻找一种通用的,标准化的方法来检测手指的绝对位置。老实说,我很乐意让Ubuntu为Mac制作的触控板检测手指位置 。看见this AskUbuntu post,但回答者(虽然他做了一个很好的总结)似乎更普遍地说。

有人知道如何在Ubuntu中的NSTouch(或编译Ubuntu的编程语言)上获得类似normalizedPosition属性的内容吗?

1 个答案:

答案 0 :(得分:0)

您可以使用mtdev库执行此操作。从evtest开始,从输入所需的输入设备中找出输入设备和信息,然后使用mtdev库从C访问它。

另一个很棒的库可以完成我最初尝试做的事情(即,在触控板上创建一个可以调用右键菜单的区域)是mtrack库(以节省一些工作)。如果你想搜索代码,它还有从mtdev访问信息的例子。