__set_bit(INPUT_PROP_DIRECT, input_dev->propbit);

INPUT_PROP_DIRECT特性表明设备的坐标直接和屏幕坐标向对应(无需琐碎的转换操作,像缩放,反转,旋转等)。非直接输入设备则需要一些必要的变换,比如触摸板上绝对到相对的变换。典型的直接输入设备有:触摸屏,手写板;非直接输入设备有:触摸板,鼠标。

frameworks/native/services/inputflinger/InputReader.cpp

if (getEventHub()->hasInputProperty(getDeviceId(), INPUT_PROP_DIRECT)) {

// The device is a touch screen.

mParameters.deviceType = Parameters::DEVICE_TYPE_TOUCH_SCREEN;

} else if (getEventHub()->hasInputProperty(getDeviceId(), INPUT_PROP_POINTER)) {

// The device is a pointing device like a track pad.

mParameters.deviceType = Parameters::DEVICE_TYPE_POINTER;

} else if (getEventHub()->hasRelativeAxis(getDeviceId(), REL_X)

|| getEventHub()->hasRelativeAxis(getDeviceId(), REL_Y)) {

// The device is a cursor device with a touch pad attached.

// By default don‘t use the touch pad to move the pointer.

mParameters.deviceType = Parameters::DEVICE_TYPE_TOUCH_PAD;

} else {

// The device is a touch pad of unknown purpose.

mParameters.deviceType = Parameters::DEVICE_TYPE_POINTER;

}

原文:https://www.cnblogs.com/seamoon23/p/11903745.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐