我正在尝试使用 input.h 中的 EVIOCSABS 调用来调整不能与 SDL 正常工作的操纵杆的灵敏度。我认为 input_absinfo 结构的 fuzz 和 flat 成员会影响轴的灵敏度,但是在黑暗中拍摄了几次之后,我仍然对它们的工作原理感到困惑。我希望有人能指出我正确的方向。
谢谢你考虑我的问题!这是我在 Joystick 类中编写的代码:
int Joystick::configure_absinfo(int axis, int fuzz, int flat)
{
struct input_absinfo jabsx;
int result_code = ioctl(joystick_fd, EVIOCGABS(axis), &jabsx);
if (result_code < 0)
{
perror("ioctl GABS failed");
}
else
{
jabsx.fuzz = fuzz;
jabsx.flat = flat;
result_code = ioctl(joystick_fd, EVIOCSABS(axis), &jabsx);
if (result_code < 0)
{
perror("ioctl SABS failed");
}
}
return result_code;
}