Input: make input_report_slot_state() return boolean
Let's make input_report_slot_state() return boolean representing whether the contact is active or not. This will allow writing code like: if (input_mt_report_slot_state(input, obj->mt_tool, obj->type != RMI_2D_OBJECT_NONE) { input_event(sensor->input, EV_ABS, ABS_MT_POSITION_X, obj->x); input_event(sensor->input, EV_ABS, ABS_MT_POSITION_Y, obj->y); ... } instead of: input_mt_report_slot_state(input, obj->mt_tool, obj->type != RMI_2D_OBJECT_NONE); if (obj->type != RMI_2D_OBJECT_NONE) { input_event(sensor->input, EV_ABS, ABS_MT_POSITION_X, obj->x); input_event(sensor->input, EV_ABS, ABS_MT_POSITION_Y, obj->y); ... } Reviewed-by: Henrik Rydberg <rydberg@bitmath.org> Acked-by: Benjamin Tissoires <benjamin.tissoires@redaht.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>hifive-unleashed-5.1
parent
645a397d32
commit
bf6247a70f
|
@ -131,8 +131,10 @@ EXPORT_SYMBOL(input_mt_destroy_slots);
|
||||||
* inactive, or if the tool type is changed, a new tracking id is
|
* inactive, or if the tool type is changed, a new tracking id is
|
||||||
* assigned to the slot. The tool type is only reported if the
|
* assigned to the slot. The tool type is only reported if the
|
||||||
* corresponding absbit field is set.
|
* corresponding absbit field is set.
|
||||||
|
*
|
||||||
|
* Returns true if contact is active.
|
||||||
*/
|
*/
|
||||||
void input_mt_report_slot_state(struct input_dev *dev,
|
bool input_mt_report_slot_state(struct input_dev *dev,
|
||||||
unsigned int tool_type, bool active)
|
unsigned int tool_type, bool active)
|
||||||
{
|
{
|
||||||
struct input_mt *mt = dev->mt;
|
struct input_mt *mt = dev->mt;
|
||||||
|
@ -140,14 +142,14 @@ void input_mt_report_slot_state(struct input_dev *dev,
|
||||||
int id;
|
int id;
|
||||||
|
|
||||||
if (!mt)
|
if (!mt)
|
||||||
return;
|
return false;
|
||||||
|
|
||||||
slot = &mt->slots[mt->slot];
|
slot = &mt->slots[mt->slot];
|
||||||
slot->frame = mt->frame;
|
slot->frame = mt->frame;
|
||||||
|
|
||||||
if (!active) {
|
if (!active) {
|
||||||
input_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
|
input_event(dev, EV_ABS, ABS_MT_TRACKING_ID, -1);
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
id = input_mt_get_value(slot, ABS_MT_TRACKING_ID);
|
id = input_mt_get_value(slot, ABS_MT_TRACKING_ID);
|
||||||
|
@ -156,6 +158,8 @@ void input_mt_report_slot_state(struct input_dev *dev,
|
||||||
|
|
||||||
input_event(dev, EV_ABS, ABS_MT_TRACKING_ID, id);
|
input_event(dev, EV_ABS, ABS_MT_TRACKING_ID, id);
|
||||||
input_event(dev, EV_ABS, ABS_MT_TOOL_TYPE, tool_type);
|
input_event(dev, EV_ABS, ABS_MT_TOOL_TYPE, tool_type);
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(input_mt_report_slot_state);
|
EXPORT_SYMBOL(input_mt_report_slot_state);
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,7 @@ static inline bool input_is_mt_axis(int axis)
|
||||||
return axis == ABS_MT_SLOT || input_is_mt_value(axis);
|
return axis == ABS_MT_SLOT || input_is_mt_value(axis);
|
||||||
}
|
}
|
||||||
|
|
||||||
void input_mt_report_slot_state(struct input_dev *dev,
|
bool input_mt_report_slot_state(struct input_dev *dev,
|
||||||
unsigned int tool_type, bool active);
|
unsigned int tool_type, bool active);
|
||||||
|
|
||||||
void input_mt_report_finger_count(struct input_dev *dev, int count);
|
void input_mt_report_finger_count(struct input_dev *dev, int count);
|
||||||
|
|
Loading…
Reference in New Issue