input.h
0001: #ifndef _INPUT_H
0002: #define _INPUT_H
0003:
0004:
0005:
0006:
0007:
0008:
0009:
0010:
0011:
0012: #include <sys/time.h>
0013: #include <sys/ioctl.h>
0014: #include <sys/types.h>
0015: #include <linux/types.h>
0016:
0017:
0018:
0019:
0020:
0021: struct input_event {
0022: struct timeval time;
0023: __u16 type;
0024: __u16 code;
0025: __s32 value;
0026: };
0027:
0028:
0029:
0030:
0031:
0032: #define EV_VERSION 0x010001
0033:
0034:
0035:
0036:
0037:
0038: struct input_id {
0039: __u16 bustype;
0040: __u16 vendor;
0041: __u16 product;
0042: __u16 version;
0043: };
0044:
0045:
0046:
0047: @value
0048: @minimum
0049: @maximum
0050: @fuzz
0051:
0052: @flat
0053:
0054: @resolution
0055:
0056:
0057:
0058:
0059:
0060:
0061:
0062:
0063:
0064: struct input_absinfo {
0065: __s32 value;
0066: __s32 minimum;
0067: __s32 maximum;
0068: __s32 fuzz;
0069: __s32 flat;
0070: __s32 resolution;
0071: };
0072:
0073:
0074:
0075: @scancode
0076: @len@scancode
0077: @index
0078: @flags
0079:
0080: @index@scancode
0081: @keycode
0082:
0083:
0084: @scancode@index
0085:
0086:
0087:
0088: struct input_keymap_entry {
0089: #define INPUT_KEYMAP_BY_INDEX (1 << 0)
0090: __u8 flags;
0091: __u8 len;
0092: __u16 index;
0093: __u32 keycode;
0094: __u8 scancode[32];
0095: };
0096:
0097: #define EVIOCGVERSION _IOR('E', 0x01, int)
0098: #define EVIOCGID _IOR('E', 0x02, struct input_id)
0099: #define EVIOCGREP _IOR('E', 0x03, unsigned int[2])
0100: #define EVIOCSREP _IOW('E', 0x03, unsigned int[2])
0101:
0102: #define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2])
0103: #define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry)
0104: #define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2])
0105: #define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry)
0106:
0107: #define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len)
0108: #define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len)
0109: #define EVIOCGUNIQ(len) _IOC(_IOC_READ, 'E', 0x08, len)
0110: #define EVIOCGPROP(len) _IOC(_IOC_READ, 'E', 0x09, len)
0111:
0112: #define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len)
0113: #define EVIOCGLED(len) _IOC(_IOC_READ, 'E', 0x19, len)
0114: #define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len)
0115: #define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len)
0116:
0117: #define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + (ev), len)
0118: #define EVIOCGABS(abs) _IOR('E', 0x40 + (abs), struct input_absinfo)
0119: #define EVIOCSABS(abs) _IOW('E', 0xc0 + (abs), struct input_absinfo)
0120:
0121: #define EVIOCSFF _IOC(_IOC_WRITE, 'E', 0x80, sizeof(struct ff_effect))
0122: #define EVIOCRMFF _IOW('E', 0x81, int)
0123: #define EVIOCGEFFECTS _IOR('E', 0x84, int)
0124:
0125: #define EVIOCGRAB _IOW('E', 0x90, int)
0126:
0127:
0128:
0129:
0130:
0131: #define INPUT_PROP_POINTER 0x00
0132: #define INPUT_PROP_DIRECT 0x01
0133: #define INPUT_PROP_BUTTONPAD 0x02
0134: #define INPUT_PROP_SEMI_MT 0x03
0135:
0136: #define INPUT_PROP_MAX 0x1f
0137: #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1)
0138:
0139:
0140:
0141:
0142:
0143: #define EV_SYN 0x00
0144: #define EV_KEY 0x01
0145: #define EV_REL 0x02
0146: #define EV_ABS 0x03
0147: #define EV_MSC 0x04
0148: #define EV_SW 0x05
0149: #define EV_LED 0x11
0150: #define EV_SND 0x12
0151: #define EV_REP 0x14
0152: #define EV_FF 0x15
0153: #define EV_PWR 0x16
0154: #define EV_FF_STATUS 0x17
0155: #define EV_MAX 0x1f
0156: #define EV_CNT (EV_MAX+1)
0157:
0158:
0159:
0160:
0161:
0162: #define SYN_REPORT 0
0163: #define SYN_CONFIG 1
0164: #define SYN_MT_REPORT 2
0165: #define SYN_DROPPED 3
0166:
0167:
0168:
0169:
0170:
0171: http://www.usb.org/developers/hidpage
0172:
0173:
0174:
0175:
0176:
0177:
0178: #define KEY_RESERVED 0
0179: #define KEY_ESC 1
0180: #define KEY_1 2
0181: #define KEY_2 3
0182: #define KEY_3 4
0183: #define KEY_4 5
0184: #define KEY_5 6
0185: #define KEY_6 7
0186: #define KEY_7 8
0187: #define KEY_8 9
0188: #define KEY_9 10
0189: #define KEY_0 11
0190: #define KEY_MINUS 12
0191: #define KEY_EQUAL 13
0192: #define KEY_BACKSPACE 14
0193: #define KEY_TAB 15
0194: #define KEY_Q 16
0195: #define KEY_W 17
0196: #define KEY_E 18
0197: #define KEY_R 19
0198: #define KEY_T 20
0199: #define KEY_Y 21
0200: #define KEY_U 22
0201: #define KEY_I 23
0202: #define KEY_O 24
0203: #define KEY_P 25
0204: #define KEY_LEFTBRACE 26
0205: #define KEY_RIGHTBRACE 27
0206: #define KEY_ENTER 28
0207: #define KEY_LEFTCTRL 29
0208: #define KEY_A 30
0209: #define KEY_S 31
0210: #define KEY_D 32
0211: #define KEY_F 33
0212: #define KEY_G 34
0213: #define KEY_H 35
0214: #define KEY_J 36
0215: #define KEY_K 37
0216: #define KEY_L 38
0217: #define KEY_SEMICOLON 39
0218: #define KEY_APOSTROPHE 40
0219: #define KEY_GRAVE 41
0220: #define KEY_LEFTSHIFT 42
0221: #define KEY_BACKSLASH 43
0222: #define KEY_Z 44
0223: #define KEY_X 45
0224: #define KEY_C 46
0225: #define KEY_V 47
0226: #define KEY_B 48
0227: #define KEY_N 49
0228: #define KEY_M 50
0229: #define KEY_COMMA 51
0230: #define KEY_DOT 52
0231: #define KEY_SLASH 53
0232: #define KEY_RIGHTSHIFT 54
0233: #define KEY_KPASTERISK 55
0234: #define KEY_LEFTALT 56
0235: #define KEY_SPACE 57
0236: #define KEY_CAPSLOCK 58
0237: #define KEY_F1 59
0238: #define KEY_F2 60
0239: #define KEY_F3 61
0240: #define KEY_F4 62
0241: #define KEY_F5 63
0242: #define KEY_F6 64
0243: #define KEY_F7 65
0244: #define KEY_F8 66
0245: #define KEY_F9 67
0246: #define KEY_F10 68
0247: #define KEY_NUMLOCK 69
0248: #define KEY_SCROLLLOCK 70
0249: #define KEY_KP7 71
0250: #define KEY_KP8 72
0251: #define KEY_KP9 73
0252: #define KEY_KPMINUS 74
0253: #define KEY_KP4 75
0254: #define KEY_KP5 76
0255: #define KEY_KP6 77
0256: #define KEY_KPPLUS 78
0257: #define KEY_KP1 79
0258: #define KEY_KP2 80
0259: #define KEY_KP3 81
0260: #define KEY_KP0 82
0261: #define KEY_KPDOT 83
0262:
0263: #define KEY_ZENKAKUHANKAKU 85
0264: #define KEY_102ND 86
0265: #define KEY_F11 87
0266: #define KEY_F12 88
0267: #define KEY_RO 89
0268: #define KEY_KATAKANA 90
0269: #define KEY_HIRAGANA 91
0270: #define KEY_HENKAN 92
0271: #define KEY_KATAKANAHIRAGANA 93
0272: #define KEY_MUHENKAN 94
0273: #define KEY_KPJPCOMMA 95
0274: #define KEY_KPENTER 96
0275: #define KEY_RIGHTCTRL 97
0276: #define KEY_KPSLASH 98
0277: #define KEY_SYSRQ 99
0278: #define KEY_RIGHTALT 100
0279: #define KEY_LINEFEED 101
0280: #define KEY_HOME 102
0281: #define KEY_UP 103
0282: #define KEY_PAGEUP 104
0283: #define KEY_LEFT 105
0284: #define KEY_RIGHT 106
0285: #define KEY_END 107
0286: #define KEY_DOWN 108
0287: #define KEY_PAGEDOWN 109
0288: #define KEY_INSERT 110
0289: #define KEY_DELETE 111
0290: #define KEY_MACRO 112
0291: #define KEY_MUTE 113
0292: #define KEY_VOLUMEDOWN 114
0293: #define KEY_VOLUMEUP 115
0294: #define KEY_POWER 116
0295: #define KEY_KPEQUAL 117
0296: #define KEY_KPPLUSMINUS 118
0297: #define KEY_PAUSE 119
0298: #define KEY_SCALE 120
0299:
0300: #define KEY_KPCOMMA 121
0301: #define KEY_HANGEUL 122
0302: #define KEY_HANGUEL KEY_HANGEUL
0303: #define KEY_HANJA 123
0304: #define KEY_YEN 124
0305: #define KEY_LEFTMETA 125
0306: #define KEY_RIGHTMETA 126
0307: #define KEY_COMPOSE 127
0308:
0309: #define KEY_STOP 128
0310: #define KEY_AGAIN 129
0311: #define KEY_PROPS 130
0312: #define KEY_UNDO 131
0313: #define KEY_FRONT 132
0314: #define KEY_COPY 133
0315: #define KEY_OPEN 134
0316: #define KEY_PASTE 135
0317: #define KEY_FIND 136
0318: #define KEY_CUT 137
0319: #define KEY_HELP 138
0320: #define KEY_MENU 139
0321: #define KEY_CALC 140
0322: #define KEY_SETUP 141
0323: #define KEY_SLEEP 142
0324: #define KEY_WAKEUP 143
0325: #define KEY_FILE 144
0326: #define KEY_SENDFILE 145
0327: #define KEY_DELETEFILE 146
0328: #define KEY_XFER 147
0329: #define KEY_PROG1 148
0330: #define KEY_PROG2 149
0331: #define KEY_WWW 150
0332: #define KEY_MSDOS 151
0333: #define KEY_COFFEE 152
0334: #define KEY_SCREENLOCK KEY_COFFEE
0335: #define KEY_DIRECTION 153
0336: #define KEY_CYCLEWINDOWS 154
0337: #define KEY_MAIL 155
0338: #define KEY_BOOKMARKS 156
0339: #define KEY_COMPUTER 157
0340: #define KEY_BACK 158
0341: #define KEY_FORWARD 159
0342: #define KEY_CLOSECD 160
0343: #define KEY_EJECTCD 161
0344: #define KEY_EJECTCLOSECD 162
0345: #define KEY_NEXTSONG 163
0346: #define KEY_PLAYPAUSE 164
0347: #define KEY_PREVIOUSSONG 165
0348: #define KEY_STOPCD 166
0349: #define KEY_RECORD 167
0350: #define KEY_REWIND 168
0351: #define KEY_PHONE 169
0352: #define KEY_ISO 170
0353: #define KEY_CONFIG 171
0354: #define KEY_HOMEPAGE 172
0355: #define KEY_REFRESH 173
0356: #define KEY_EXIT 174
0357: #define KEY_MOVE 175
0358: #define KEY_EDIT 176
0359: #define KEY_SCROLLUP 177
0360: #define KEY_SCROLLDOWN 178
0361: #define KEY_KPLEFTPAREN 179
0362: #define KEY_KPRIGHTPAREN 180
0363: #define KEY_NEW 181
0364: #define KEY_REDO 182
0365:
0366: #define KEY_F13 183
0367: #define KEY_F14 184
0368: #define KEY_F15 185
0369: #define KEY_F16 186
0370: #define KEY_F17 187
0371: #define KEY_F18 188
0372: #define KEY_F19 189
0373: #define KEY_F20 190
0374: #define KEY_F21 191
0375: #define KEY_F22 192
0376: #define KEY_F23 193
0377: #define KEY_F24 194
0378:
0379: #define KEY_PLAYCD 200
0380: #define KEY_PAUSECD 201
0381: #define KEY_PROG3 202
0382: #define KEY_PROG4 203
0383: #define KEY_DASHBOARD 204
0384: #define KEY_SUSPEND 205
0385: #define KEY_CLOSE 206
0386: #define KEY_PLAY 207
0387: #define KEY_FASTFORWARD 208
0388: #define KEY_BASSBOOST 209
0389: #define KEY_PRINT 210
0390: #define KEY_HP 211
0391: #define KEY_CAMERA 212
0392: #define KEY_SOUND 213
0393: #define KEY_QUESTION 214
0394: #define KEY_EMAIL 215
0395: #define KEY_CHAT 216
0396: #define KEY_SEARCH 217
0397: #define KEY_CONNECT 218
0398: #define KEY_FINANCE 219
0399: #define KEY_SPORT 220
0400: #define KEY_SHOP 221
0401: #define KEY_ALTERASE 222
0402: #define KEY_CANCEL 223
0403: #define KEY_BRIGHTNESSDOWN 224
0404: #define KEY_BRIGHTNESSUP 225
0405: #define KEY_MEDIA 226
0406:
0407: #define KEY_SWITCHVIDEOMODE 227
0408:
0409: #define KEY_KBDILLUMTOGGLE 228
0410: #define KEY_KBDILLUMDOWN 229
0411: #define KEY_KBDILLUMUP 230
0412:
0413: #define KEY_SEND 231
0414: #define KEY_REPLY 232
0415: #define KEY_FORWARDMAIL 233
0416: #define KEY_SAVE 234
0417: #define KEY_DOCUMENTS 235
0418:
0419: #define KEY_BATTERY 236
0420:
0421: #define KEY_BLUETOOTH 237
0422: #define KEY_WLAN 238
0423: #define KEY_UWB 239
0424:
0425: #define KEY_UNKNOWN 240
0426:
0427: #define KEY_VIDEO_NEXT 241
0428: #define KEY_VIDEO_PREV 242
0429: #define KEY_BRIGHTNESS_CYCLE 243
0430: #define KEY_BRIGHTNESS_ZERO 244
0431: #define KEY_DISPLAY_OFF 245
0432:
0433: #define KEY_WIMAX 246
0434: #define KEY_RFKILL 247
0435:
0436: #define KEY_MICMUTE 248
0437:
0438:
0439:
0440: #define BTN_MISC 0x100
0441: #define BTN_0 0x100
0442: #define BTN_1 0x101
0443: #define BTN_2 0x102
0444: #define BTN_3 0x103
0445: #define BTN_4 0x104
0446: #define BTN_5 0x105
0447: #define BTN_6 0x106
0448: #define BTN_7 0x107
0449: #define BTN_8 0x108
0450: #define BTN_9 0x109
0451:
0452: #define BTN_MOUSE 0x110
0453: #define BTN_LEFT 0x110
0454: #define BTN_RIGHT 0x111
0455: #define BTN_MIDDLE 0x112
0456: #define BTN_SIDE 0x113
0457: #define BTN_EXTRA 0x114
0458: #define BTN_FORWARD 0x115
0459: #define BTN_BACK 0x116
0460: #define BTN_TASK 0x117
0461:
0462: #define BTN_JOYSTICK 0x120
0463: #define BTN_TRIGGER 0x120
0464: #define BTN_THUMB 0x121
0465: #define BTN_THUMB2 0x122
0466: #define BTN_TOP 0x123
0467: #define BTN_TOP2 0x124
0468: #define BTN_PINKIE 0x125
0469: #define BTN_BASE 0x126
0470: #define BTN_BASE2 0x127
0471: #define BTN_BASE3 0x128
0472: #define BTN_BASE4 0x129
0473: #define BTN_BASE5 0x12a
0474: #define BTN_BASE6 0x12b
0475: #define BTN_DEAD 0x12f
0476:
0477: #define BTN_GAMEPAD 0x130
0478: #define BTN_A 0x130
0479: #define BTN_B 0x131
0480: #define BTN_C 0x132
0481: #define BTN_X 0x133
0482: #define BTN_Y 0x134
0483: #define BTN_Z 0x135
0484: #define BTN_TL 0x136
0485: #define BTN_TR 0x137
0486: #define BTN_TL2 0x138
0487: #define BTN_TR2 0x139
0488: #define BTN_SELECT 0x13a
0489: #define BTN_START 0x13b
0490: #define BTN_MODE 0x13c
0491: #define BTN_THUMBL 0x13d
0492: #define BTN_THUMBR 0x13e
0493:
0494: #define BTN_DIGI 0x140
0495: #define BTN_TOOL_PEN 0x140
0496: #define BTN_TOOL_RUBBER 0x141
0497: #define BTN_TOOL_BRUSH 0x142
0498: #define BTN_TOOL_PENCIL 0x143
0499: #define BTN_TOOL_AIRBRUSH 0x144
0500: #define BTN_TOOL_FINGER 0x145
0501: #define BTN_TOOL_MOUSE 0x146
0502: #define BTN_TOOL_LENS 0x147
0503: #define BTN_TOOL_QUINTTAP 0x148
0504: #define BTN_TOUCH 0x14a
0505: #define BTN_STYLUS 0x14b
0506: #define BTN_STYLUS2 0x14c
0507: #define BTN_TOOL_DOUBLETAP 0x14d
0508: #define BTN_TOOL_TRIPLETAP 0x14e
0509: #define BTN_TOOL_QUADTAP 0x14f
0510:
0511: #define BTN_WHEEL 0x150
0512: #define BTN_GEAR_DOWN 0x150
0513: #define BTN_GEAR_UP 0x151
0514:
0515: #define KEY_OK 0x160
0516: #define KEY_SELECT 0x161
0517: #define KEY_GOTO 0x162
0518: #define KEY_CLEAR 0x163
0519: #define KEY_POWER2 0x164
0520: #define KEY_OPTION 0x165
0521: #define KEY_INFO 0x166
0522: #define KEY_TIME 0x167
0523: #define KEY_VENDOR 0x168
0524: #define KEY_ARCHIVE 0x169
0525: #define KEY_PROGRAM 0x16a
0526: #define KEY_CHANNEL 0x16b
0527: #define KEY_FAVORITES 0x16c
0528: #define KEY_EPG 0x16d
0529: #define KEY_PVR 0x16e
0530: #define KEY_MHP 0x16f
0531: #define KEY_LANGUAGE 0x170
0532: #define KEY_TITLE 0x171
0533: #define KEY_SUBTITLE 0x172
0534: #define KEY_ANGLE 0x173
0535: #define KEY_ZOOM 0x174
0536: #define KEY_MODE 0x175
0537: #define KEY_KEYBOARD 0x176
0538: #define KEY_SCREEN 0x177
0539: #define KEY_PC 0x178
0540: #define KEY_TV 0x179
0541: #define KEY_TV2 0x17a
0542: #define KEY_VCR 0x17b
0543: #define KEY_VCR2 0x17c
0544: #define KEY_SAT 0x17d
0545: #define KEY_SAT2 0x17e
0546: #define KEY_CD 0x17f
0547: #define KEY_TAPE 0x180
0548: #define KEY_RADIO 0x181
0549: #define KEY_TUNER 0x182
0550: #define KEY_PLAYER 0x183
0551: #define KEY_TEXT 0x184
0552: #define KEY_DVD 0x185
0553: #define KEY_AUX 0x186
0554: #define KEY_MP3 0x187
0555: #define KEY_AUDIO 0x188
0556: #define KEY_VIDEO 0x189
0557: #define KEY_DIRECTORY 0x18a
0558: #define KEY_LIST 0x18b
0559: #define KEY_MEMO 0x18c
0560: #define KEY_CALENDAR 0x18d
0561: #define KEY_RED 0x18e
0562: #define KEY_GREEN 0x18f
0563: #define KEY_YELLOW 0x190
0564: #define KEY_BLUE 0x191
0565: #define KEY_CHANNELUP 0x192
0566: #define KEY_CHANNELDOWN 0x193
0567: #define KEY_FIRST 0x194
0568: #define KEY_LAST 0x195
0569: #define KEY_AB 0x196
0570: #define KEY_NEXT 0x197
0571: #define KEY_RESTART 0x198
0572: #define KEY_SLOW 0x199
0573: #define KEY_SHUFFLE 0x19a
0574: #define KEY_BREAK 0x19b
0575: #define KEY_PREVIOUS 0x19c
0576: #define KEY_DIGITS 0x19d
0577: #define KEY_TEEN 0x19e
0578: #define KEY_TWEN 0x19f
0579: #define KEY_VIDEOPHONE 0x1a0
0580: #define KEY_GAMES 0x1a1
0581: #define KEY_ZOOMIN 0x1a2
0582: #define KEY_ZOOMOUT 0x1a3
0583: #define KEY_ZOOMRESET 0x1a4
0584: #define KEY_WORDPROCESSOR 0x1a5
0585: #define KEY_EDITOR 0x1a6
0586: #define KEY_SPREADSHEET 0x1a7
0587: #define KEY_GRAPHICSEDITOR 0x1a8
0588: #define KEY_PRESENTATION 0x1a9
0589: #define KEY_DATABASE 0x1aa
0590: #define KEY_NEWS 0x1ab
0591: #define KEY_VOICEMAIL 0x1ac
0592: #define KEY_ADDRESSBOOK 0x1ad
0593: #define KEY_MESSENGER 0x1ae
0594: #define KEY_DISPLAYTOGGLE 0x1af
0595: #define KEY_SPELLCHECK 0x1b0
0596: #define KEY_LOGOFF 0x1b1
0597:
0598: #define KEY_DOLLAR 0x1b2
0599: #define KEY_EURO 0x1b3
0600:
0601: #define KEY_FRAMEBACK 0x1b4
0602: #define KEY_FRAMEFORWARD 0x1b5
0603: #define KEY_CONTEXT_MENU 0x1b6
0604: #define KEY_MEDIA_REPEAT 0x1b7
0605: #define KEY_10CHANNELSUP 0x1b8
0606: #define KEY_10CHANNELSDOWN 0x1b9
0607: #define KEY_IMAGES 0x1ba
0608:
0609: #define KEY_DEL_EOL 0x1c0
0610: #define KEY_DEL_EOS 0x1c1
0611: #define KEY_INS_LINE 0x1c2
0612: #define KEY_DEL_LINE 0x1c3
0613:
0614: #define KEY_FN 0x1d0
0615: #define KEY_FN_ESC 0x1d1
0616: #define KEY_FN_F1 0x1d2
0617: #define KEY_FN_F2 0x1d3
0618: #define KEY_FN_F3 0x1d4
0619: #define KEY_FN_F4 0x1d5
0620: #define KEY_FN_F5 0x1d6
0621: #define KEY_FN_F6 0x1d7
0622: #define KEY_FN_F7 0x1d8
0623: #define KEY_FN_F8 0x1d9
0624: #define KEY_FN_F9 0x1da
0625: #define KEY_FN_F10 0x1db
0626: #define KEY_FN_F11 0x1dc
0627: #define KEY_FN_F12 0x1dd
0628: #define KEY_FN_1 0x1de
0629: #define KEY_FN_2 0x1df
0630: #define KEY_FN_D 0x1e0
0631: #define KEY_FN_E 0x1e1
0632: #define KEY_FN_F 0x1e2
0633: #define KEY_FN_S 0x1e3
0634: #define KEY_FN_B 0x1e4
0635:
0636: #define KEY_BRL_DOT1 0x1f1
0637: #define KEY_BRL_DOT2 0x1f2
0638: #define KEY_BRL_DOT3 0x1f3
0639: #define KEY_BRL_DOT4 0x1f4
0640: #define KEY_BRL_DOT5 0x1f5
0641: #define KEY_BRL_DOT6 0x1f6
0642: #define KEY_BRL_DOT7 0x1f7
0643: #define KEY_BRL_DOT8 0x1f8
0644: #define KEY_BRL_DOT9 0x1f9
0645: #define KEY_BRL_DOT10 0x1fa
0646:
0647: #define KEY_NUMERIC_0 0x200
0648: #define KEY_NUMERIC_1 0x201
0649: #define KEY_NUMERIC_2 0x202
0650: #define KEY_NUMERIC_3 0x203
0651: #define KEY_NUMERIC_4 0x204
0652: #define KEY_NUMERIC_5 0x205
0653: #define KEY_NUMERIC_6 0x206
0654: #define KEY_NUMERIC_7 0x207
0655: #define KEY_NUMERIC_8 0x208
0656: #define KEY_NUMERIC_9 0x209
0657: #define KEY_NUMERIC_STAR 0x20a
0658: #define KEY_NUMERIC_POUND 0x20b
0659:
0660: #define KEY_CAMERA_FOCUS 0x210
0661: #define KEY_WPS_BUTTON 0x211
0662:
0663: #define KEY_TOUCHPAD_TOGGLE 0x212
0664: #define KEY_TOUCHPAD_ON 0x213
0665: #define KEY_TOUCHPAD_OFF 0x214
0666:
0667: #define KEY_CAMERA_ZOOMIN 0x215
0668: #define KEY_CAMERA_ZOOMOUT 0x216
0669: #define KEY_CAMERA_UP 0x217
0670: #define KEY_CAMERA_DOWN 0x218
0671: #define KEY_CAMERA_LEFT 0x219
0672: #define KEY_CAMERA_RIGHT 0x21a
0673:
0674: #define BTN_TRIGGER_HAPPY 0x2c0
0675: #define BTN_TRIGGER_HAPPY1 0x2c0
0676: #define BTN_TRIGGER_HAPPY2 0x2c1
0677: #define BTN_TRIGGER_HAPPY3 0x2c2
0678: #define BTN_TRIGGER_HAPPY4 0x2c3
0679: #define BTN_TRIGGER_HAPPY5 0x2c4
0680: #define BTN_TRIGGER_HAPPY6 0x2c5
0681: #define BTN_TRIGGER_HAPPY7 0x2c6
0682: #define BTN_TRIGGER_HAPPY8 0x2c7
0683: #define BTN_TRIGGER_HAPPY9 0x2c8
0684: #define BTN_TRIGGER_HAPPY10 0x2c9
0685: #define BTN_TRIGGER_HAPPY11 0x2ca
0686: #define BTN_TRIGGER_HAPPY12 0x2cb
0687: #define BTN_TRIGGER_HAPPY13 0x2cc
0688: #define BTN_TRIGGER_HAPPY14 0x2cd
0689: #define BTN_TRIGGER_HAPPY15 0x2ce
0690: #define BTN_TRIGGER_HAPPY16 0x2cf
0691: #define BTN_TRIGGER_HAPPY17 0x2d0
0692: #define BTN_TRIGGER_HAPPY18 0x2d1
0693: #define BTN_TRIGGER_HAPPY19 0x2d2
0694: #define BTN_TRIGGER_HAPPY20 0x2d3
0695: #define BTN_TRIGGER_HAPPY21 0x2d4
0696: #define BTN_TRIGGER_HAPPY22 0x2d5
0697: #define BTN_TRIGGER_HAPPY23 0x2d6
0698: #define BTN_TRIGGER_HAPPY24 0x2d7
0699: #define BTN_TRIGGER_HAPPY25 0x2d8
0700: #define BTN_TRIGGER_HAPPY26 0x2d9
0701: #define BTN_TRIGGER_HAPPY27 0x2da
0702: #define BTN_TRIGGER_HAPPY28 0x2db
0703: #define BTN_TRIGGER_HAPPY29 0x2dc
0704: #define BTN_TRIGGER_HAPPY30 0x2dd
0705: #define BTN_TRIGGER_HAPPY31 0x2de
0706: #define BTN_TRIGGER_HAPPY32 0x2df
0707: #define BTN_TRIGGER_HAPPY33 0x2e0
0708: #define BTN_TRIGGER_HAPPY34 0x2e1
0709: #define BTN_TRIGGER_HAPPY35 0x2e2
0710: #define BTN_TRIGGER_HAPPY36 0x2e3
0711: #define BTN_TRIGGER_HAPPY37 0x2e4
0712: #define BTN_TRIGGER_HAPPY38 0x2e5
0713: #define BTN_TRIGGER_HAPPY39 0x2e6
0714: #define BTN_TRIGGER_HAPPY40 0x2e7
0715:
0716:
0717: #define KEY_MIN_INTERESTING KEY_MUTE
0718: #define KEY_MAX 0x2ff
0719: #define KEY_CNT (KEY_MAX+1)
0720:
0721:
0722:
0723:
0724:
0725: #define REL_X 0x00
0726: #define REL_Y 0x01
0727: #define REL_Z 0x02
0728: #define REL_RX 0x03
0729: #define REL_RY 0x04
0730: #define REL_RZ 0x05
0731: #define REL_HWHEEL 0x06
0732: #define REL_DIAL 0x07
0733: #define REL_WHEEL 0x08
0734: #define REL_MISC 0x09
0735: #define REL_MAX 0x0f
0736: #define REL_CNT (REL_MAX+1)
0737:
0738:
0739:
0740:
0741:
0742: #define ABS_X 0x00
0743: #define ABS_Y 0x01
0744: #define ABS_Z 0x02
0745: #define ABS_RX 0x03
0746: #define ABS_RY 0x04
0747: #define ABS_RZ 0x05
0748: #define ABS_THROTTLE 0x06
0749: #define ABS_RUDDER 0x07
0750: #define ABS_WHEEL 0x08
0751: #define ABS_GAS 0x09
0752: #define ABS_BRAKE 0x0a
0753: #define ABS_HAT0X 0x10
0754: #define ABS_HAT0Y 0x11
0755: #define ABS_HAT1X 0x12
0756: #define ABS_HAT1Y 0x13
0757: #define ABS_HAT2X 0x14
0758: #define ABS_HAT2Y 0x15
0759: #define ABS_HAT3X 0x16
0760: #define ABS_HAT3Y 0x17
0761: #define ABS_PRESSURE 0x18
0762: #define ABS_DISTANCE 0x19
0763: #define ABS_TILT_X 0x1a
0764: #define ABS_TILT_Y 0x1b
0765: #define ABS_TOOL_WIDTH 0x1c
0766:
0767: #define ABS_VOLUME 0x20
0768:
0769: #define ABS_MISC 0x28
0770:
0771: #define ABS_MT_SLOT 0x2f
0772: #define ABS_MT_TOUCH_MAJOR 0x30
0773: #define ABS_MT_TOUCH_MINOR 0x31
0774: #define ABS_MT_WIDTH_MAJOR 0x32
0775: #define ABS_MT_WIDTH_MINOR 0x33
0776: #define ABS_MT_ORIENTATION 0x34
0777: #define ABS_MT_POSITION_X 0x35
0778: #define ABS_MT_POSITION_Y 0x36
0779: #define ABS_MT_TOOL_TYPE 0x37
0780: #define ABS_MT_BLOB_ID 0x38
0781: #define ABS_MT_TRACKING_ID 0x39
0782: #define ABS_MT_PRESSURE 0x3a
0783: #define ABS_MT_DISTANCE 0x3b
0784:
0785:
0786: #define ABS_MAX 0x3f
0787: #define ABS_CNT (ABS_MAX+1)
0788:
0789:
0790:
0791:
0792:
0793: #define SW_LID 0x00
0794: #define SW_TABLET_MODE 0x01
0795: #define SW_HEADPHONE_INSERT 0x02
0796: #define SW_RFKILL_ALL 0x03
0797:
0798: #define SW_RADIO SW_RFKILL_ALL
0799: #define SW_MICROPHONE_INSERT 0x04
0800: #define SW_DOCK 0x05
0801: #define SW_LINEOUT_INSERT 0x06
0802: #define SW_JACK_PHYSICAL_INSERT 0x07
0803: #define SW_VIDEOOUT_INSERT 0x08
0804: #define SW_CAMERA_LENS_COVER 0x09
0805: #define SW_KEYPAD_SLIDE 0x0a
0806: #define SW_FRONT_PROXIMITY 0x0b
0807: #define SW_ROTATE_LOCK 0x0c
0808: #define SW_LINEIN_INSERT 0x0d
0809: #define SW_MAX 0x0f
0810: #define SW_CNT (SW_MAX+1)
0811:
0812:
0813:
0814:
0815:
0816: #define MSC_SERIAL 0x00
0817: #define MSC_PULSELED 0x01
0818: #define MSC_GESTURE 0x02
0819: #define MSC_RAW 0x03
0820: #define MSC_SCAN 0x04
0821: #define MSC_MAX 0x07
0822: #define MSC_CNT (MSC_MAX+1)
0823:
0824:
0825:
0826:
0827:
0828: #define LED_NUML 0x00
0829: #define LED_CAPSL 0x01
0830: #define LED_SCROLLL 0x02
0831: #define LED_COMPOSE 0x03
0832: #define LED_KANA 0x04
0833: #define LED_SLEEP 0x05
0834: #define LED_SUSPEND 0x06
0835: #define LED_MUTE 0x07
0836: #define LED_MISC 0x08
0837: #define LED_MAIL 0x09
0838: #define LED_CHARGING 0x0a
0839: #define LED_MAX 0x0f
0840: #define LED_CNT (LED_MAX+1)
0841:
0842:
0843:
0844:
0845:
0846: #define REP_DELAY 0x00
0847: #define REP_PERIOD 0x01
0848: #define REP_MAX 0x01
0849: #define REP_CNT (REP_MAX+1)
0850:
0851:
0852:
0853:
0854:
0855: #define SND_CLICK 0x00
0856: #define SND_BELL 0x01
0857: #define SND_TONE 0x02
0858: #define SND_MAX 0x07
0859: #define SND_CNT (SND_MAX+1)
0860:
0861:
0862:
0863:
0864:
0865: #define ID_BUS 0
0866: #define ID_VENDOR 1
0867: #define ID_PRODUCT 2
0868: #define ID_VERSION 3
0869:
0870: #define BUS_PCI 0x01
0871: #define BUS_ISAPNP 0x02
0872: #define BUS_USB 0x03
0873: #define BUS_HIL 0x04
0874: #define BUS_BLUETOOTH 0x05
0875: #define BUS_VIRTUAL 0x06
0876:
0877: #define BUS_ISA 0x10
0878: #define BUS_I8042 0x11
0879: #define BUS_XTKBD 0x12
0880: #define BUS_RS232 0x13
0881: #define BUS_GAMEPORT 0x14
0882: #define BUS_PARPORT 0x15
0883: #define BUS_AMIGA 0x16
0884: #define BUS_ADB 0x17
0885: #define BUS_I2C 0x18
0886: #define BUS_HOST 0x19
0887: #define BUS_GSC 0x1A
0888: #define BUS_ATARI 0x1B
0889: #define BUS_SPI 0x1C
0890:
0891:
0892:
0893:
0894: #define MT_TOOL_FINGER 0
0895: #define MT_TOOL_PEN 1
0896: #define MT_TOOL_MAX 1
0897:
0898:
0899:
0900:
0901: #define FF_STATUS_STOPPED 0x00
0902: #define FF_STATUS_PLAYING 0x01
0903: #define FF_STATUS_MAX 0x01
0904:
0905:
0906:
0907:
0908:
0909:
0910:
0911:
0912:
0913:
0914:
0915:
0916:
0917: @length
0918: @delay
0919:
0920: struct ff_replay {
0921: __u16 length;
0922: __u16 delay;
0923: };
0924:
0925:
0926:
0927: @button
0928: @interval
0929:
0930: struct ff_trigger {
0931: __u16 button;
0932: __u16 interval;
0933: };
0934:
0935:
0936:
0937: @attack
0938: @attack
0939: @fade
0940: @fade
0941:
0942: @attack@fade
0943:
0944:
0945:
0946:
0947: struct ff_envelope {
0948: __u16 attack_length;
0949: __u16 attack_level;
0950: __u16 fade_length;
0951: __u16 fade_level;
0952: };
0953:
0954:
0955:
0956: @level
0957: @envelope
0958:
0959: struct ff_constant_effect {
0960: __s16 level;
0961: struct ff_envelope envelope;
0962: };
0963:
0964:
0965:
0966: @start
0967: @end
0968: @envelope
0969:
0970: struct ff_ramp_effect {
0971: __s16 start_level;
0972: __s16 end_level;
0973: struct ff_envelope envelope;
0974: };
0975:
0976:
0977:
0978: @right
0979: @left
0980: @right
0981:
0982: @left
0983: @deadband
0984: @center
0985:
0986: struct ff_condition_effect {
0987: __u16 right_saturation;
0988: __u16 left_saturation;
0989:
0990: __s16 right_coeff;
0991: __s16 left_coeff;
0992:
0993: __u16 deadband;
0994: __s16 center;
0995: };
0996:
0997:
0998:
0999: @waveform
1000: @period
1001: @magnitude
1002: @offset
1003: @phase
1004: @envelope
1005: @custom
1006: @custom
1007:
1008:
1009:
1010:
1011:
1012:
1013:
1014:
1015: struct ff_periodic_effect {
1016: __u16 waveform;
1017: __u16 period;
1018: __s16 magnitude;
1019: __s16 offset;
1020: __u16 phase;
1021:
1022: struct ff_envelope envelope;
1023:
1024: __u32 custom_len;
1025: __s16 *custom_data;
1026: };
1027:
1028:
1029:
1030: @strong
1031: @weak
1032:
1033:
1034:
1035:
1036: struct ff_rumble_effect {
1037: __u16 strong_magnitude;
1038: __u16 weak_magnitude;
1039: };
1040:
1041:
1042:
1043: @type
1044:
1045: @id
1046: @direction
1047: @trigger
1048: @replay
1049: @u
1050:
1051:
1052:
1053:
1054: @id
1055: @id
1056:
1057:
1058:
1059:
1060:
1061:
1062:
1063:
1064: struct ff_effect {
1065: __u16 type;
1066: __s16 id;
1067: __u16 direction;
1068: struct ff_trigger trigger;
1069: struct ff_replay replay;
1070:
1071: union {
1072: struct ff_constant_effect constant;
1073: struct ff_ramp_effect ramp;
1074: struct ff_periodic_effect periodic;
1075: struct ff_condition_effect condition[2];
1076: struct ff_rumble_effect rumble;
1077: } u;
1078: };
1079:
1080:
1081:
1082:
1083:
1084: #define FF_RUMBLE 0x50
1085: #define FF_PERIODIC 0x51
1086: #define FF_CONSTANT 0x52
1087: #define FF_SPRING 0x53
1088: #define FF_FRICTION 0x54
1089: #define FF_DAMPER 0x55
1090: #define FF_INERTIA 0x56
1091: #define FF_RAMP 0x57
1092:
1093: #define FF_EFFECT_MIN FF_RUMBLE
1094: #define FF_EFFECT_MAX FF_RAMP
1095:
1096:
1097:
1098:
1099:
1100: #define FF_SQUARE 0x58
1101: #define FF_TRIANGLE 0x59
1102: #define FF_SINE 0x5a
1103: #define FF_SAW_UP 0x5b
1104: #define FF_SAW_DOWN 0x5c
1105: #define FF_CUSTOM 0x5d
1106:
1107: #define FF_WAVEFORM_MIN FF_SQUARE
1108: #define FF_WAVEFORM_MAX FF_CUSTOM
1109:
1110:
1111:
1112:
1113:
1114: #define FF_GAIN 0x60
1115: #define FF_AUTOCENTER 0x61
1116:
1117: #define FF_MAX 0x7f
1118: #define FF_CNT (FF_MAX+1)
1119:
1120: #endif
1121:
© Andrew Scott 2006 -
2025,
All Rights Reserved