16ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/****************************************************************************
26ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************
36ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***
46ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   This header was automatically generated from a Linux kernel header
56ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   of the same name, to make information necessary for userspace to
66ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   call into the kernel available to libc.  It contains only constants,
76ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   structures, and macros generated from the original header, and thus,
86ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   contains no copyrightable information.
96ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***
106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************
116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************/
126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifndef _INPUT_H
136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define _INPUT_H
146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#include <sys/time.h>
166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#include <sys/ioctl.h>
176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#include <sys/types.h>
186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#include <asm/types.h>
196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct input_event {
216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct timeval time;
226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 type;
236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 code;
246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s32 value;
256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_VERSION 0x010000
286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct input_id {
306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 bustype;
316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 vendor;
326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 product;
336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 version;
346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct input_absinfo {
376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s32 value;
386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s32 minimum;
396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s32 maximum;
406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s32 fuzz;
416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s32 flat;
426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGVERSION _IOR('E', 0x01, int)
456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGID _IOR('E', 0x02, struct input_id)
466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGREP _IOR('E', 0x03, int[2])
476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCSREP _IOW('E', 0x03, int[2])
486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGKEYCODE _IOR('E', 0x04, int[2])
496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCSKEYCODE _IOW('E', 0x04, int[2])
506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len)
526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len)
536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGUNIQ(len) _IOC(_IOC_READ, 'E', 0x08, len)
546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len)
566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGLED(len) _IOC(_IOC_READ, 'E', 0x19, len)
576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len)
586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len)
596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + ev, len)
616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGABS(abs) _IOR('E', 0x40 + abs, struct input_absinfo)
626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCSABS(abs) _IOW('E', 0xc0 + abs, struct input_absinfo)
636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCSFF _IOC(_IOC_WRITE, 'E', 0x80, sizeof(struct ff_effect))
656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCRMFF _IOW('E', 0x81, int)
666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGEFFECTS _IOR('E', 0x84, int)
676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EVIOCGRAB _IOW('E', 0x90, int)
696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_SYN 0x00
716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_KEY 0x01
726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_REL 0x02
736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_ABS 0x03
746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_MSC 0x04
756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_SW 0x05
766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_LED 0x11
776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_SND 0x12
786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_REP 0x14
796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_FF 0x15
806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_PWR 0x16
816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_FF_STATUS 0x17
826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define EV_MAX 0x1f
836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SYN_REPORT 0
856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SYN_CONFIG 1
866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RESERVED 0
886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_ESC 1
896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_1 2
906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_2 3
916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_3 4
926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_4 5
936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_5 6
946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_6 7
956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_7 8
966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_8 9
976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_9 10
986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_0 11
996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MINUS 12
1006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_EQUAL 13
1016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BACKSPACE 14
1026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_TAB 15
1036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_Q 16
1046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_W 17
1056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_E 18
1066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_R 19
1076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_T 20
1086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_Y 21
1096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_U 22
1106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_I 23
1116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_O 24
1126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_P 25
1136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_LEFTBRACE 26
1146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RIGHTBRACE 27
1156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_ENTER 28
1166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_LEFTCTRL 29
1176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_A 30
1186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_S 31
1196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_D 32
1206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F 33
1216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_G 34
1226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_H 35
1236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_J 36
1246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_K 37
1256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_L 38
1266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SEMICOLON 39
1276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_APOSTROPHE 40
1286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_GRAVE 41
1296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_LEFTSHIFT 42
1306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BACKSLASH 43
1316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_Z 44
1326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_X 45
1336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_C 46
1346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_V 47
1356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_B 48
1366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_N 49
1376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_M 50
1386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_COMMA 51
1396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DOT 52
1406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SLASH 53
1416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RIGHTSHIFT 54
1426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPASTERISK 55
1436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_LEFTALT 56
1446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SPACE 57
1456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CAPSLOCK 58
1466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F1 59
1476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F2 60
1486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F3 61
1496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F4 62
1506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F5 63
1516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F6 64
1526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F7 65
1536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F8 66
1546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F9 67
1556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F10 68
1566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_NUMLOCK 69
1576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SCROLLLOCK 70
1586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KP7 71
1596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KP8 72
1606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KP9 73
1616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPMINUS 74
1626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KP4 75
1636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KP5 76
1646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KP6 77
1656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPPLUS 78
1666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KP1 79
1676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KP2 80
1686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KP3 81
1696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KP0 82
1706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPDOT 83
1716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_ZENKAKUHANKAKU 85
1736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_102ND 86
1746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F11 87
1756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F12 88
1766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RO 89
1776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KATAKANA 90
1786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_HIRAGANA 91
1796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_HENKAN 92
1806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KATAKANAHIRAGANA 93
1816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MUHENKAN 94
1826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPJPCOMMA 95
1836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPENTER 96
1846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RIGHTCTRL 97
1856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPSLASH 98
1866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SYSRQ 99
1876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RIGHTALT 100
1886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_LINEFEED 101
1896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_HOME 102
1906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_UP 103
1916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PAGEUP 104
1926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_LEFT 105
1936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RIGHT 106
1946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_END 107
1956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DOWN 108
1966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PAGEDOWN 109
1976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_INSERT 110
1986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DELETE 111
1996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MACRO 112
2006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MUTE 113
2016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_VOLUMEDOWN 114
2026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_VOLUMEUP 115
2036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_POWER 116
2046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPEQUAL 117
2056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPPLUSMINUS 118
2066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PAUSE 119
2076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPCOMMA 121
2096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_HANGEUL 122
2106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_HANGUEL KEY_HANGEUL
2116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_HANJA 123
2126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_YEN 124
2136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_LEFTMETA 125
2146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RIGHTMETA 126
2156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_COMPOSE 127
2166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_STOP 128
2186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_AGAIN 129
2196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PROPS 130
2206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_UNDO 131
2216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FRONT 132
2226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_COPY 133
2236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_OPEN 134
2246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PASTE 135
2256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FIND 136
2266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CUT 137
2276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_HELP 138
2286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MENU 139
2296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CALC 140
2306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SETUP 141
2316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SLEEP 142
2326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_WAKEUP 143
2336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FILE 144
2346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SENDFILE 145
2356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DELETEFILE 146
2366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_XFER 147
2376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PROG1 148
2386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PROG2 149
2396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_WWW 150
2406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MSDOS 151
2416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_COFFEE 152
2426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DIRECTION 153
2436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CYCLEWINDOWS 154
2446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MAIL 155
2456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BOOKMARKS 156
2466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_COMPUTER 157
2476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BACK 158
2486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FORWARD 159
2496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CLOSECD 160
2506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_EJECTCD 161
2516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_EJECTCLOSECD 162
2526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_NEXTSONG 163
2536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PLAYPAUSE 164
2546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PREVIOUSSONG 165
2556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_STOPCD 166
2566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RECORD 167
2576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_REWIND 168
2586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PHONE 169
2596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_ISO 170
2606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CONFIG 171
2616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_HOMEPAGE 172
2626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_REFRESH 173
2636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_EXIT 174
2646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MOVE 175
2656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_EDIT 176
2666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SCROLLUP 177
2676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SCROLLDOWN 178
2686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPLEFTPAREN 179
2696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KPRIGHTPAREN 180
2706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_NEW 181
2716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_REDO 182
2726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F13 183
2746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F14 184
2756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F15 185
2766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F16 186
2776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F17 187
2786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F18 188
2796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F19 189
2806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F20 190
2816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F21 191
2826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F22 192
2836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F23 193
2846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_F24 194
2856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PLAYCD 200
2876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PAUSECD 201
2886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PROG3 202
2896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PROG4 203
2906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SUSPEND 205
2916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CLOSE 206
2926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PLAY 207
2936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FASTFORWARD 208
2946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BASSBOOST 209
2956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PRINT 210
2966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_HP 211
2976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CAMERA 212
2986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SOUND 213
2996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_QUESTION 214
3006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_EMAIL 215
3016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CHAT 216
3026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SEARCH 217
3036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CONNECT 218
3046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FINANCE 219
3056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SPORT 220
3066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SHOP 221
3076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_ALTERASE 222
3086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CANCEL 223
3096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BRIGHTNESSDOWN 224
3106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BRIGHTNESSUP 225
3116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MEDIA 226
3126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_STAR 227
3146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SHARP 228
3156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SOFT1 229
3166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SOFT2 230
3176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SEND 231
3186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CENTER 232
3196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_HEADSETHOOK 233
3206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_0_5 234
3216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_2_5 235
3226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SWITCHVIDEOMODE 236
3246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KBDILLUMTOGGLE 237
3256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KBDILLUMDOWN 238
3266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KBDILLUMUP 239
3276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SEND 231
3296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_REPLY 232
3306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FORWARDMAIL 233
3316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SAVE 234
3326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DOCUMENTS 235
3336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BATTERY 236
3356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_UNKNOWN 240
3376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_MISC 0x100
3396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_0 0x100
3406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_1 0x101
3416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_2 0x102
3426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_3 0x103
3436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_4 0x104
3446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_5 0x105
3456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_6 0x106
3466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_7 0x107
3476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_8 0x108
3486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_9 0x109
3496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_MOUSE 0x110
3516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_LEFT 0x110
3526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_RIGHT 0x111
3536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_MIDDLE 0x112
3546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_SIDE 0x113
3556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_EXTRA 0x114
3566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_FORWARD 0x115
3576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_BACK 0x116
3586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TASK 0x117
3596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_JOYSTICK 0x120
3616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TRIGGER 0x120
3626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_THUMB 0x121
3636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_THUMB2 0x122
3646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOP 0x123
3656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOP2 0x124
3666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_PINKIE 0x125
3676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_BASE 0x126
3686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_BASE2 0x127
3696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_BASE3 0x128
3706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_BASE4 0x129
3716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_BASE5 0x12a
3726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_BASE6 0x12b
3736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_DEAD 0x12f
3746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_GAMEPAD 0x130
3766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_A 0x130
3776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_B 0x131
3786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_C 0x132
3796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_X 0x133
3806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_Y 0x134
3816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_Z 0x135
3826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TL 0x136
3836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TR 0x137
3846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TL2 0x138
3856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TR2 0x139
3866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_SELECT 0x13a
3876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_START 0x13b
3886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_MODE 0x13c
3896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_THUMBL 0x13d
3906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_THUMBR 0x13e
3916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_DIGI 0x140
3936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOOL_PEN 0x140
3946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOOL_RUBBER 0x141
3956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOOL_BRUSH 0x142
3966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOOL_PENCIL 0x143
3976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOOL_AIRBRUSH 0x144
3986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOOL_FINGER 0x145
3996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOOL_MOUSE 0x146
4006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOOL_LENS 0x147
4016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOUCH 0x14a
4026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_STYLUS 0x14b
4036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_STYLUS2 0x14c
4046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOOL_DOUBLETAP 0x14d
4056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_TOOL_TRIPLETAP 0x14e
4066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
4076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_WHEEL 0x150
4086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_GEAR_DOWN 0x150
4096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BTN_GEAR_UP 0x151
4106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
4116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_OK 0x160
4126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SELECT 0x161
4136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_GOTO 0x162
4146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CLEAR 0x163
4156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_POWER2 0x164
4166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_OPTION 0x165
4176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_INFO 0x166
4186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_TIME 0x167
4196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_VENDOR 0x168
4206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_ARCHIVE 0x169
4216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PROGRAM 0x16a
4226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CHANNEL 0x16b
4236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FAVORITES 0x16c
4246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_EPG 0x16d
4256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PVR 0x16e
4266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MHP 0x16f
4276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_LANGUAGE 0x170
4286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_TITLE 0x171
4296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SUBTITLE 0x172
4306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_ANGLE 0x173
4316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_ZOOM 0x174
4326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MODE 0x175
4336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_KEYBOARD 0x176
4346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SCREEN 0x177
4356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PC 0x178
4366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_TV 0x179
4376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_TV2 0x17a
4386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_VCR 0x17b
4396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_VCR2 0x17c
4406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SAT 0x17d
4416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SAT2 0x17e
4426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CD 0x17f
4436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_TAPE 0x180
4446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RADIO 0x181
4456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_TUNER 0x182
4466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PLAYER 0x183
4476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_TEXT 0x184
4486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DVD 0x185
4496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_AUX 0x186
4506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MP3 0x187
4516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_AUDIO 0x188
4526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_VIDEO 0x189
4536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DIRECTORY 0x18a
4546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_LIST 0x18b
4556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MEMO 0x18c
4566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CALENDAR 0x18d
4576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RED 0x18e
4586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_GREEN 0x18f
4596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_YELLOW 0x190
4606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BLUE 0x191
4616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CHANNELUP 0x192
4626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_CHANNELDOWN 0x193
4636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FIRST 0x194
4646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_LAST 0x195
4656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_AB 0x196
4666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_NEXT 0x197
4676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_RESTART 0x198
4686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SLOW 0x199
4696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_SHUFFLE 0x19a
4706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BREAK 0x19b
4716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_PREVIOUS 0x19c
4726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DIGITS 0x19d
4736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_TEEN 0x19e
4746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_TWEN 0x19f
4756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
4766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DEL_EOL 0x1c0
4776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DEL_EOS 0x1c1
4786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_INS_LINE 0x1c2
4796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_DEL_LINE 0x1c3
4806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
4816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN 0x1d0
4826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_ESC 0x1d1
4836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F1 0x1d2
4846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F2 0x1d3
4856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F3 0x1d4
4866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F4 0x1d5
4876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F5 0x1d6
4886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F6 0x1d7
4896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F7 0x1d8
4906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F8 0x1d9
4916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F9 0x1da
4926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F10 0x1db
4936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F11 0x1dc
4946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F12 0x1dd
4956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_1 0x1de
4966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_2 0x1df
4976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_D 0x1e0
4986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_E 0x1e1
4996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_F 0x1e2
5006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_S 0x1e3
5016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_FN_B 0x1e4
5026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
5036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BRL_DOT1 0x1f1
5046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BRL_DOT2 0x1f2
5056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BRL_DOT3 0x1f3
5066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BRL_DOT4 0x1f4
5076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BRL_DOT5 0x1f5
5086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BRL_DOT6 0x1f6
5096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BRL_DOT7 0x1f7
5106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_BRL_DOT8 0x1f8
5116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
5126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MIN_INTERESTING KEY_MUTE
5136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define KEY_MAX 0x1ff
5146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
5156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REL_X 0x00
5166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REL_Y 0x01
5176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REL_Z 0x02
5186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REL_RX 0x03
5196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REL_RY 0x04
5206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REL_RZ 0x05
5216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REL_HWHEEL 0x06
5226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REL_DIAL 0x07
5236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REL_WHEEL 0x08
5246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REL_MISC 0x09
5256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REL_MAX 0x0f
5266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
5276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_X 0x00
5286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_Y 0x01
5296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_Z 0x02
5306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_RX 0x03
5316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_RY 0x04
5326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_RZ 0x05
5336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_THROTTLE 0x06
5346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_RUDDER 0x07
5356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_WHEEL 0x08
5366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_GAS 0x09
5376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_BRAKE 0x0a
5386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_HAT0X 0x10
5396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_HAT0Y 0x11
5406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_HAT1X 0x12
5416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_HAT1Y 0x13
5426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_HAT2X 0x14
5436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_HAT2Y 0x15
5446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_HAT3X 0x16
5456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_HAT3Y 0x17
5466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_PRESSURE 0x18
5476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_DISTANCE 0x19
5486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_TILT_X 0x1a
5496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_TILT_Y 0x1b
5506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_TOOL_WIDTH 0x1c
5516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_VOLUME 0x20
5526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_MISC 0x28
5536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ABS_MAX 0x3f
5546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
5556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SW_LID 0x00
5566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SW_TABLET_MODE 0x01
5576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SW_HEADPHONE_INSERT 0x02
5586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SW_MAX 0x0f
5596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
5606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define MSC_SERIAL 0x00
5616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define MSC_PULSELED 0x01
5626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define MSC_GESTURE 0x02
5636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define MSC_RAW 0x03
5646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define MSC_SCAN 0x04
5656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define MSC_MAX 0x07
5666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
5676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_NUML 0x00
5686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_CAPSL 0x01
5696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_SCROLLL 0x02
5706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_COMPOSE 0x03
5716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_KANA 0x04
5726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_SLEEP 0x05
5736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_SUSPEND 0x06
5746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_MUTE 0x07
5756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_MISC 0x08
5766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_MAIL 0x09
5776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_CHARGING 0x0a
5786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define LED_MAX 0x0f
5796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
5806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REP_DELAY 0x00
5816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REP_PERIOD 0x01
5826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define REP_MAX 0x01
5836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
5846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SND_CLICK 0x00
5856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SND_BELL 0x01
5866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SND_TONE 0x02
5876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SND_MAX 0x07
5886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
5896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ID_BUS 0
5906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ID_VENDOR 1
5916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ID_PRODUCT 2
5926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define ID_VERSION 3
5936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
5946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_PCI 0x01
5956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_ISAPNP 0x02
5966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_USB 0x03
5976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_HIL 0x04
5986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_BLUETOOTH 0x05
5996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_ISA 0x10
6016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_I8042 0x11
6026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_XTKBD 0x12
6036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_RS232 0x13
6046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_GAMEPORT 0x14
6056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_PARPORT 0x15
6066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_AMIGA 0x16
6076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_ADB 0x17
6086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_I2C 0x18
6096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_HOST 0x19
6106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define BUS_GSC 0x1A
6116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_STATUS_STOPPED 0x00
6136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_STATUS_PLAYING 0x01
6146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_STATUS_MAX 0x01
6156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct ff_replay {
6176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 length;
6186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 delay;
6196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
6206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct ff_trigger {
6226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 button;
6236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 interval;
6246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
6256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct ff_envelope {
6276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 attack_length;
6286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 attack_level;
6296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 fade_length;
6306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 fade_level;
6316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
6326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct ff_constant_effect {
6346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s16 level;
6356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct ff_envelope envelope;
6366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
6376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct ff_ramp_effect {
6396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s16 start_level;
6406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s16 end_level;
6416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct ff_envelope envelope;
6426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
6436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct ff_condition_effect {
6456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 right_saturation;
6466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 left_saturation;
6476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s16 right_coeff;
6496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s16 left_coeff;
6506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 deadband;
6526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s16 center;
6536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
6556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct ff_periodic_effect {
6576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 waveform;
6586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 period;
6596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s16 magnitude;
6606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s16 offset;
6616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 phase;
6626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct ff_envelope envelope;
6646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 custom_len;
6666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s16 *custom_data;
6676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
6696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct ff_rumble_effect {
6716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 strong_magnitude;
6726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 weak_magnitude;
6736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
6746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct ff_effect {
6766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 type;
6776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __s16 id;
6796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 direction;
6816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct ff_trigger trigger;
6836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct ff_replay replay;
6846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh union {
6866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct ff_constant_effect constant;
6876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct ff_ramp_effect ramp;
6886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct ff_periodic_effect periodic;
6896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct ff_condition_effect condition[2];
6906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct ff_rumble_effect rumble;
6916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh } u;
6926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
6936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
6946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_RUMBLE 0x50
6956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_PERIODIC 0x51
6966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_CONSTANT 0x52
6976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_SPRING 0x53
6986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_FRICTION 0x54
6996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_DAMPER 0x55
7006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_INERTIA 0x56
7016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_RAMP 0x57
7026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
7036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_SQUARE 0x58
7046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_TRIANGLE 0x59
7056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_SINE 0x5a
7066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_SAW_UP 0x5b
7076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_SAW_DOWN 0x5c
7086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_CUSTOM 0x5d
7096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
7106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_GAIN 0x60
7116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_AUTOCENTER 0x61
7126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
7136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define FF_MAX 0x7f
7146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
7156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif
716