hw-events.h revision c27f813900a3c114562efbb8df1065e94766fc48
1/* Copyright (C) 2007-2008 The Android Open Source Project 2** 3** This software is licensed under the terms of the GNU General Public 4** License version 2, as published by the Free Software Foundation, and 5** may be copied, distributed, and modified under those terms. 6** 7** This program is distributed in the hope that it will be useful, 8** but WITHOUT ANY WARRANTY; without even the implied warranty of 9** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10** GNU General Public License for more details. 11*/ 12#ifndef _ANDROID_HW_EVENTS_H 13#define _ANDROID_HW_EVENTS_H 14 15#include "android/utils/system.h" 16 17/* from the Linux kernel */ 18 19#define EVENT_TYPE_LIST \ 20 EV_TYPE(SYN,0x00) \ 21 EV_TYPE(KEY,0x01) \ 22 EV_TYPE(REL,0x02) \ 23 EV_TYPE(ABS,0x03) \ 24 EV_TYPE(MSC,0x04) \ 25 EV_TYPE(SW, 0x05) \ 26 EV_TYPE(LED,0x11) \ 27 EV_TYPE(SND,0x12) \ 28 EV_TYPE(REP,0x14) \ 29 EV_TYPE(FF, 0x15) \ 30 EV_TYPE(PWR,0x16) \ 31 EV_TYPE(FF_STATUS,0x17) \ 32 EV_TYPE(MAX,0x1f) 33 34#undef EV_TYPE 35#define EV_TYPE(n,v) GLUE(EV_,n) = v, 36typedef enum { 37 EVENT_TYPE_LIST 38} EventType; 39#undef EV_TYPE 40 41#define EVENT_BTN_LIST \ 42 BTN_CODE(MISC,0x100) \ 43 BTN_CODE(0,0x100) \ 44 BTN_CODE(1,0x101) \ 45 BTN_CODE(2,0x102) \ 46 BTN_CODE(3,0x103) \ 47 BTN_CODE(4,0x104) \ 48 BTN_CODE(5,0x105) \ 49 BTN_CODE(6,0x106) \ 50 BTN_CODE(7,0x107) \ 51 BTN_CODE(8,0x108) \ 52 BTN_CODE(9,0x109) \ 53 \ 54 BTN_CODE(MOUSE, 0x110) \ 55 BTN_CODE(LEFT, 0x110) \ 56 BTN_CODE(RIGHT, 0x111) \ 57 BTN_CODE(MIDDLE, 0x112) \ 58 BTN_CODE(SIDE, 0x113) \ 59 BTN_CODE(EXTRA, 0x114) \ 60 BTN_CODE(FORWARD,0x115) \ 61 BTN_CODE(BACK, 0x116) \ 62 BTN_CODE(TASK, 0x117) \ 63 \ 64 BTN_CODE(JOYSTICK,0x120) \ 65 BTN_CODE(TRIGGER, 0x120) \ 66 BTN_CODE(THUMB, 0x121) \ 67 BTN_CODE(THUMB2, 0x122) \ 68 BTN_CODE(TOP, 0x123) \ 69 BTN_CODE(TOP2, 0x124) \ 70 BTN_CODE(PINKIE, 0x125) \ 71 BTN_CODE(BASE, 0x126) \ 72 BTN_CODE(BASE2, 0x127) \ 73 BTN_CODE(BASE3, 0x128) \ 74 BTN_CODE(BASE4, 0x129) \ 75 BTN_CODE(BASE5, 0x12a) \ 76 BTN_CODE(BASE6, 0x12b) \ 77 BTN_CODE(DEAD, 0x12f) \ 78 \ 79 BTN_CODE(GAMEPAD, 0x130) \ 80 BTN_CODE(A, 0x130) \ 81 BTN_CODE(B, 0x131) \ 82 BTN_CODE(C, 0x132) \ 83 BTN_CODE(X, 0x133) \ 84 BTN_CODE(Y, 0x134) \ 85 BTN_CODE(Z, 0x135) \ 86 BTN_CODE(TL, 0x136) \ 87 BTN_CODE(TR, 0x137) \ 88 BTN_CODE(TL2, 0x138) \ 89 BTN_CODE(TR2, 0x139) \ 90 BTN_CODE(SELECT, 0x13a) \ 91 BTN_CODE(START, 0x13b) \ 92 BTN_CODE(MODE, 0x13c) \ 93 BTN_CODE(THUMBL, 0x13d) \ 94 BTN_CODE(THUMBR, 0x13e) \ 95 \ 96 BTN_CODE(DIGI, 0x140) \ 97 BTN_CODE(TOOL_PEN, 0x140) \ 98 BTN_CODE(TOOL_RUBBER, 0x141) \ 99 BTN_CODE(TOOL_BRUSH, 0x142) \ 100 BTN_CODE(TOOL_PENCIL, 0x143) \ 101 BTN_CODE(TOOL_AIRBRUSH, 0x144) \ 102 BTN_CODE(TOOL_FINGER, 0x145) \ 103 BTN_CODE(TOOL_MOUSE, 0x146) \ 104 BTN_CODE(TOOL_LENS, 0x147) \ 105 BTN_CODE(TOUCH, 0x14a) \ 106 BTN_CODE(STYLUS, 0x14b) \ 107 BTN_CODE(STYLUS2, 0x14c) \ 108 BTN_CODE(TOOL_DOUBLETAP, 0x14d) \ 109 BTN_CODE(TOOL_TRIPLETAP, 0x14e) \ 110 \ 111 BTN_CODE(WHEEL, 0x150) \ 112 BTN_CODE(GEAR_DOWN, 0x150) \ 113 BTN_CODE(GEAR_UP, 0x150) 114 115#undef BTN_CODE 116#define BTN_CODE(n,v) GLUE(BTN_,n) = v, 117typedef enum { 118 EVENT_BTN_LIST 119} EventBtnCode; 120#undef BTN_CODE 121 122#define EVENT_REL_LIST \ 123 REL_CODE(X, 0x00) \ 124 REL_CODE(Y, 0x01) 125 126#define REL_CODE(n,v) GLUE(REL_,n) = v, 127typedef enum { 128 EVENT_REL_LIST 129} EventRelCode; 130#undef REL_CODE 131 132#define EVENT_ABS_LIST \ 133 ABS_CODE(X, 0x00) \ 134 ABS_CODE(Y, 0x01) \ 135 ABS_CODE(Z, 0x02) \ 136 ABS_CODE(RX, 0x03) \ 137 ABS_CODE(RY, 0x04) \ 138 ABS_CODE(RZ, 0x05) \ 139 ABS_CODE(THROTTLE, 0x06) \ 140 ABS_CODE(RUDDER, 0x07) \ 141 ABS_CODE(WHEEL, 0x08) \ 142 ABS_CODE(GAS, 0x09) \ 143 ABS_CODE(BRAKE, 0x0a) \ 144 ABS_CODE(HAT0X, 0x10) \ 145 ABS_CODE(HAT0Y, 0x11) \ 146 ABS_CODE(HAT1X, 0x12) \ 147 ABS_CODE(HAT1Y, 0x13) \ 148 ABS_CODE(HAT2X, 0x14) \ 149 ABS_CODE(HAT2Y, 0x15) \ 150 ABS_CODE(HAT3X, 0x16) \ 151 ABS_CODE(HAT3Y, 0x17) \ 152 ABS_CODE(PRESSURE, 0x18) \ 153 ABS_CODE(DISTANCE, 0x19) \ 154 ABS_CODE(TILT_X, 0x1a) \ 155 ABS_CODE(TILT_Y, 0x1b) \ 156 ABS_CODE(TOOL_WIDTH, 0x1c) \ 157 ABS_CODE(VOLUME, 0x20) \ 158 ABS_CODE(MISC, 0x28) \ 159 ABS_CODE(MAX, 0x3f) 160 161#define ABS_CODE(n,v) GLUE(ABS_,n) = v, 162 163typedef enum { 164 EVENT_ABS_LIST 165} EventAbsCode; 166#undef ABS_CODE 167 168/* convert an event string specification like <type>:<code>:<value> 169 * into three integers. returns 0 on success, or -1 in case of error 170 */ 171extern int android_event_from_str( const char* name, 172 int *ptype, 173 int *pcode, 174 int *pvalue ); 175 176/* returns the list of valid event type string aliases */ 177extern int android_event_get_type_count( void ); 178extern char* android_event_bufprint_type_str( char* buff, char* end, int type_index ); 179 180/* returns the list of valid event code string aliases for a given event type */ 181extern int android_event_get_code_count( int type ); 182extern char* android_event_bufprint_code_str( char* buff, char* end, int type, int code_index ); 183 184#endif /* _ANDROID_HW_EVENTS_H */ 185