所以我在玩 IOKit 并从我的 PS3 控制器获取输入。它可以工作,我可以读取每个按钮和两个摇杆的状态。有点。我只能从触发器和 dpad 中得到一个 0 或 1 的整数值。当我在http://html5gamepad.com/上测试控制器时,我看到两者都有一个 0-1 的浮点值。有人知道如何获得模拟值吗?
我的输入值回调如下所示:
inputCallback(void * context, IOReturn result, void * sender, IOHIDValueRef valueRef)
{
if (IOHIDValueGetLength(valueRef) > 2) {
return;
}
IOHIDElementRef element = IOHIDValueGetElement(valueRef);
if (CFGetTypeID(element) != IOHIDElementGetTypeID()) {
return;
}
int usagePage = IOHIDElementGetUsagePage(element);
int usage = IOHIDElementGetUsage(element);
CFIndex value = IOHIDValueGetIntegerValue(valueRef);
switch (usagePage)
...
我在 OS X 10.10 上。
谢谢