linux/include/linux/input/mt.h
<<
>>
Prefs
   1#ifndef _INPUT_MT_H
   2#define _INPUT_MT_H
   3
   4/*
   5 * Input Multitouch Library
   6 *
   7 * Copyright (c) 2010 Henrik Rydberg
   8 *
   9 * This program is free software; you can redistribute it and/or modify it
  10 * under the terms of the GNU General Public License version 2 as published by
  11 * the Free Software Foundation.
  12 */
  13
  14#include <linux/input.h>
  15
  16#define TRKID_MAX       0xffff
  17
  18/**
  19 * struct input_mt_slot - represents the state of an input MT slot
  20 * @abs: holds current values of ABS_MT axes for this slot
  21 */
  22struct input_mt_slot {
  23        int abs[ABS_MT_LAST - ABS_MT_FIRST + 1];
  24};
  25
  26static inline void input_mt_set_value(struct input_mt_slot *slot,
  27                                      unsigned code, int value)
  28{
  29        slot->abs[code - ABS_MT_FIRST] = value;
  30}
  31
  32static inline int input_mt_get_value(const struct input_mt_slot *slot,
  33                                     unsigned code)
  34{
  35        return slot->abs[code - ABS_MT_FIRST];
  36}
  37
  38int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots);
  39void input_mt_destroy_slots(struct input_dev *dev);
  40
  41static inline int input_mt_new_trkid(struct input_dev *dev)
  42{
  43        return dev->trkid++ & TRKID_MAX;
  44}
  45
  46static inline void input_mt_slot(struct input_dev *dev, int slot)
  47{
  48        input_event(dev, EV_ABS, ABS_MT_SLOT, slot);
  49}
  50
  51void input_mt_report_slot_state(struct input_dev *dev,
  52                                unsigned int tool_type, bool active);
  53
  54void input_mt_report_finger_count(struct input_dev *dev, int count);
  55void input_mt_report_pointer_emulation(struct input_dev *dev, bool use_count);
  56
  57#endif
  58