Commit bf6247a7 authored by Dmitry Torokhov's avatar Dmitry Torokhov

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: default avatarHenrik Rydberg <rydberg@bitmath.org>
Acked-by: default avatarBenjamin Tissoires <benjamin.tissoires@redaht.com>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 645a397d
...@@ -131,8 +131,10 @@ EXPORT_SYMBOL(input_mt_destroy_slots); ...@@ -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, ...@@ -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, ...@@ -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) ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment