b89529a10c
The current MT accessor function does not distinguish between the MT values and the slot specification event. Add an accessor function for the values only, and use it where appropriate. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
67 lines
1.6 KiB
C
67 lines
1.6 KiB
C
#ifndef _INPUT_MT_H
|
|
#define _INPUT_MT_H
|
|
|
|
/*
|
|
* Input Multitouch Library
|
|
*
|
|
* Copyright (c) 2010 Henrik Rydberg
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License version 2 as published by
|
|
* the Free Software Foundation.
|
|
*/
|
|
|
|
#include <linux/input.h>
|
|
|
|
#define TRKID_MAX 0xffff
|
|
|
|
/**
|
|
* struct input_mt_slot - represents the state of an input MT slot
|
|
* @abs: holds current values of ABS_MT axes for this slot
|
|
*/
|
|
struct input_mt_slot {
|
|
int abs[ABS_MT_LAST - ABS_MT_FIRST + 1];
|
|
};
|
|
|
|
static inline void input_mt_set_value(struct input_mt_slot *slot,
|
|
unsigned code, int value)
|
|
{
|
|
slot->abs[code - ABS_MT_FIRST] = value;
|
|
}
|
|
|
|
static inline int input_mt_get_value(const struct input_mt_slot *slot,
|
|
unsigned code)
|
|
{
|
|
return slot->abs[code - ABS_MT_FIRST];
|
|
}
|
|
|
|
int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots);
|
|
void input_mt_destroy_slots(struct input_dev *dev);
|
|
|
|
static inline int input_mt_new_trkid(struct input_dev *dev)
|
|
{
|
|
return dev->trkid++ & TRKID_MAX;
|
|
}
|
|
|
|
static inline void input_mt_slot(struct input_dev *dev, int slot)
|
|
{
|
|
input_event(dev, EV_ABS, ABS_MT_SLOT, slot);
|
|
}
|
|
|
|
static inline bool input_is_mt_value(int axis)
|
|
{
|
|
return axis >= ABS_MT_FIRST && axis <= ABS_MT_LAST;
|
|
}
|
|
|
|
static inline bool input_is_mt_axis(int axis)
|
|
{
|
|
return axis == ABS_MT_SLOT || input_is_mt_value(axis);
|
|
}
|
|
|
|
void input_mt_report_slot_state(struct input_dev *dev,
|
|
unsigned int tool_type, bool active);
|
|
|
|
void input_mt_report_finger_count(struct input_dev *dev, int count);
|
|
void input_mt_report_pointer_emulation(struct input_dev *dev, bool use_count);
|
|
|
|
#endif
|