diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-01-19 11:22:54 +0000 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-01-19 11:22:54 +0000 |
commit | a1926d1745114789687ac029ae8c58944b7d2256 (patch) | |
tree | c303e75615e378451a80b97bfd2c1ba54029d9bb /include/linux/input/mt.h | |
parent | 492e917635a0fa05439bb562fd51577efc9cef30 (diff) | |
parent | 52fc43f7c1c416b114e88ff39635c36e67ef15b6 (diff) | |
download | kernel_samsung_espresso10-a1926d1745114789687ac029ae8c58944b7d2256.zip kernel_samsung_espresso10-a1926d1745114789687ac029ae8c58944b7d2256.tar.gz kernel_samsung_espresso10-a1926d1745114789687ac029ae8c58944b7d2256.tar.bz2 |
Merge branch 'for-2.6.38' into for-2.6.39
Diffstat (limited to 'include/linux/input/mt.h')
-rw-r--r-- | include/linux/input/mt.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/include/linux/input/mt.h b/include/linux/input/mt.h new file mode 100644 index 0000000..b3ac06a --- /dev/null +++ b/include/linux/input/mt.h @@ -0,0 +1,57 @@ +#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); +} + +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 |