2012-08-13 4 views
0

Apple Magic Mouse에서 터치 이벤트를 얻기 위해 라이브러리를 작성하려고합니다. 개인 프레임 워크 인 MultitouchSupport.framework를 사용하고 있으며 아래 코드를 사용하여 멀티 터치 장치 목록을 가져옵니다. Magic Mouse에서 이벤트 만 가져오고 싶지만 랩톱 트랙 패드와 같은 모든 멀티 터치 장치의 터치 이벤트를 제외하고는 잘 작동합니다. 마우스를 모니터링하기 위해 어떤 유형의 장치를보고 있는지 어떻게 알 수 있습니까?MTDeviceRef가 어떤 종류의 멀티 터치 장치인지 어떻게 알 수 있습니까?

내가 이벤트를 수신하는 데 사용하는 코드는

 NSMutableArray* deviceList = (__bridge NSMutableArray*)MTDeviceCreateList(); //grab our device list 

    for(int i = 0; i<[deviceList count]; i++) //iterate available devices 
    { 
     MTRegisterContactFrameCallback([deviceList objectAtIndex:i], touchCallback); //assign callback for device 
     MTDeviceStart([deviceList objectAtIndex:i], 0); //start sending events 
    } 

그래서 내가 어떻게이 MTDeviceRefs는 매직 마우스 장치 청취를 시작 MTDeviceCreateList에서 반환 된 필터링 할 수 있습니다

? 아니면 적어도 기본 랩톱 트랙 패드를 걸러 내시겠습니까? 이 MultitouchSupport.framework를 사용하기위한 문서가 있습니까? 당신은

  • MTDeviceCreateDefault
  • MTDeviceCreateFromDeviceID
  • MTDeviceCreateFromGUID
  • MTDeviceCreateFromService

MultitouchSupport.framework되는 개인 프레임 워크 :

답변

2

MTDeviceRef를 얻기 위해 적어도 네 가지 다른 방법이 있습니다 반향해야 할 것이다. 엔지니어가이 함수에 전달해야하는 매개 변수가 무엇인지 이해해야합니다.

또한이 기능 중 하나에서 참조를 얻는 경우 MTDeviceRelease 기능으로 장치 참조를 해제해야합니다.

또는 MTDeviceIsBuiltIn 기능으로 트랙 패드를 걸러 낼 수 있습니다. 어쩌면 BuiltIn 의미 노트북 트랙 패드. 이것은 단지 야생 추측이며, 방금 MultitouchSupport 프레임 워크 바이너리의 심볼을 살펴 보았습니다. 함수 이름을 감안할 때 그 서명이 단지 추측, 실제로 시도하지 않은 것입니다, 다시 아마

BOOL MTDeviceIsBuiltIn(MTDeviceRef device)

입니다.

+0

그래서 항상 제한된 사용을 위해 충분히 좋은 트랙 패드가 된 첫 번째 항목을 필터링하는 결과가 나왔습니다. 그러나 이것들은 좋은 아이디어이며, 더 견고하게 만들어야 할 필요가있는 경우에는 그들을 조사 할 것입니다. 감사! – msfeldstein

+0

기호를 어떻게 보았습니까? 나는 nm를 사용하지만 나에게 많은 것을주지 않는다. 더 좋은 방법이 있을까? – msfeldstein

+0

또한 완전히 효과가 있습니다. – msfeldstein

관련 문제