| /* |
| * Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef _CMT_H_ |
| #define _CMT_H_ |
| |
| #include <linux/input.h> |
| |
| #include <gesture.h> |
| #include <properties.h> |
| // todo(denniskempin): allow libevdev to be included before X headers |
| #include <libevdev/libevdev.h> |
| |
| #define DBG_VERB 7 |
| #define DBG(info, format, ...) \ |
| xf86IDrvMsgVerb((info), X_INFO, DBG_VERB, "%s():%d: " format, \ |
| __FUNCTION__, __LINE__, ##__VA_ARGS__) |
| |
| #define PROBE_DBG(info, format, ...) \ |
| xf86IDrvMsgVerb((info), X_PROBED, DBG_VERB, "%s():%d: " format, \ |
| __FUNCTION__, __LINE__, ##__VA_ARGS__) |
| |
| #define CONFIG_DBG(info, format, ...) \ |
| xf86IDrvMsgVerb((info), X_CONFIG, DBG_VERB, "%s():%d: " format, \ |
| __FUNCTION__, __LINE__, ##__VA_ARGS__) |
| |
| #define ERR(info, ...) \ |
| xf86IDrvMsg((info), X_ERROR, ##__VA_ARGS__) |
| |
| #define LONG_BITS (sizeof(long) * 8) |
| |
| /* Number of longs needed to hold the given number of bits */ |
| #define NLONGS(x) (((x) + LONG_BITS - 1) / LONG_BITS) |
| |
| /* Axes numbers. */ |
| enum CMT_AXIS { |
| CMT_AXIS_X = 0, |
| CMT_AXIS_Y, |
| CMT_AXIS_ORDINAL_X, |
| CMT_AXIS_ORDINAL_Y, |
| CMT_AXIS_SCROLL_X, |
| CMT_AXIS_SCROLL_Y, |
| CMT_AXIS_FLING_STATE, |
| CMT_AXIS_DBL_FLING_VX, |
| CMT_AXIS_DBL_FLING_VY, |
| CMT_AXIS_METRICS_TYPE, |
| CMT_AXIS_METRICS_DATA1, |
| CMT_AXIS_METRICS_DATA2, |
| CMT_AXIS_DBL_START_TIME, |
| CMT_AXIS_DBL_END_TIME, |
| CMT_AXIS_FINGER_COUNT, |
| CMT_AXIS_MT_POSITION_X, |
| CMT_AXIS_MT_POSITION_Y, |
| CMT_AXIS_MT_PRESSURE, |
| CMT_AXIS_MT_TOUCH_MAJOR, |
| CMT_AXIS_TOUCH_TIMESTAMP |
| }; |
| |
| #define CMT_NUM_AXES (CMT_AXIS_TOUCH_TIMESTAMP - CMT_AXIS_X + 1) |
| #define CMT_NUM_MT_AXES (CMT_AXIS_TOUCH_TIMESTAMP - CMT_AXIS_MT_POSITION_X + 1) |
| |
| /* Button numbers. */ |
| enum CMT_BUTTON { |
| CMT_BTN_LEFT = 1, |
| CMT_BTN_MIDDLE, |
| CMT_BTN_RIGHT, |
| CMT_BTN_BACK, |
| CMT_BTN_FORWARD |
| }; |
| |
| #define CMT_NUM_BUTTONS (CMT_BTN_FORWARD - CMT_BTN_LEFT + 1) |
| |
| typedef struct { |
| CmtProperties props; |
| EventStateRec evstate; |
| GestureRec gesture; |
| GesturesProp* prop_list; |
| Evdev evdev; |
| |
| char* device; |
| long handlers; |
| unsigned long prev_key_state[NLONGS(KEY_CNT)]; |
| } CmtDeviceRec, *CmtDevicePtr; |
| |
| #endif |