#
# This file is part of Checkbox.
#
# Copyright 2008 Canonical Ltd.
#
# Checkbox is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3,
# as published by the Free Software Foundation.

#
# Checkbox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Checkbox.  If not, see <http://www.gnu.org/licenses/>.


# See linux/input.h
class Input:
    KEY_RESERVED            = 0
    KEY_ESC                 = 1
    KEY_1                   = 2
    KEY_2                   = 3
    KEY_3                   = 4
    KEY_4                   = 5
    KEY_5                   = 6
    KEY_6                   = 7
    KEY_7                   = 8
    KEY_8                   = 9
    KEY_9                   = 10
    KEY_0                   = 11
    KEY_MINUS               = 12
    KEY_EQUAL               = 13
    KEY_BACKSPACE           = 14
    KEY_TAB                 = 15
    KEY_Q                   = 16
    KEY_W                   = 17
    KEY_E                   = 18
    KEY_R                   = 19
    KEY_T                   = 20
    KEY_Y                   = 21
    KEY_U                   = 22
    KEY_I                   = 23
    KEY_O                   = 24
    KEY_P                   = 25
    KEY_LEFTBRACE           = 26
    KEY_RIGHTBRACE          = 27
    KEY_ENTER               = 28
    KEY_LEFTCTRL            = 29
    KEY_A                   = 30
    KEY_S                   = 31
    KEY_D                   = 32
    KEY_F                   = 33
    KEY_G                   = 34
    KEY_H                   = 35
    KEY_J                   = 36
    KEY_K                   = 37
    KEY_L                   = 38
    KEY_SEMICOLON           = 39
    KEY_APOSTROPHE          = 40
    KEY_GRAVE               = 41
    KEY_LEFTSHIFT           = 42
    KEY_BACKSLASH           = 43
    KEY_Z                   = 44
    KEY_X                   = 45
    KEY_C                   = 46
    KEY_V                   = 47
    KEY_B                   = 48
    KEY_N                   = 49
    KEY_M                   = 50
    KEY_COMMA               = 51
    KEY_DOT                 = 52
    KEY_SLASH               = 53
    KEY_RIGHTSHIFT          = 54
    KEY_KPASTERISK          = 55
    KEY_LEFTALT             = 56
    KEY_SPACE               = 57
    KEY_CAPSLOCK            = 58
    KEY_F1                  = 59
    KEY_F2                  = 60
    KEY_F3                  = 61
    KEY_F4                  = 62
    KEY_F5                  = 63
    KEY_F6                  = 64
    KEY_F7                  = 65
    KEY_F8                  = 66
    KEY_F9                  = 67
    KEY_F10                 = 68
    KEY_NUMLOCK             = 69
    KEY_SCROLLLOCK          = 70
    KEY_KP7                 = 71
    KEY_KP8                 = 72
    KEY_KP9                 = 73
    KEY_KPMINUS             = 74
    KEY_KP4                 = 75
    KEY_KP5                 = 76
    KEY_KP6                 = 77
    KEY_KPPLUS              = 78
    KEY_KP1                 = 79
    KEY_KP2                 = 80
    KEY_KP3                 = 81
    KEY_KP0                 = 82
    KEY_KPDOT               = 83

    KEY_ZENKAKUHANKAKU      = 85
    KEY_102ND               = 86
    KEY_F11                 = 87
    KEY_F12                 = 88
    KEY_RO                  = 89
    KEY_KATAKANA            = 90
    KEY_HIRAGANA            = 91
    KEY_HENKAN              = 92
    KEY_KATAKANAHIRAGANA    = 93
    KEY_MUHENKAN            = 94
    KEY_KPJPCOMMA           = 95
    KEY_KPENTER             = 96
    KEY_RIGHTCTRL           = 97
    KEY_KPSLASH             = 98
    KEY_SYSRQ               = 99
    KEY_RIGHTALT            = 100
    KEY_LINEFEED            = 101
    KEY_HOME                = 102
    KEY_UP                  = 103
    KEY_PAGEUP              = 104
    KEY_LEFT                = 105
    KEY_RIGHT               = 106
    KEY_END                 = 107
    KEY_DOWN                = 108
    KEY_PAGEDOWN            = 109
    KEY_INSERT              = 110
    KEY_DELETE              = 111
    KEY_MACRO               = 112
    KEY_MUTE                = 113
    KEY_VOLUMEDOWN          = 114
    KEY_VOLUMEUP            = 115
    KEY_POWER               = 116     # SC System Power Down
    KEY_KPEQUAL             = 117
    KEY_KPPLUSMINUS         = 118
    KEY_PAUSE               = 119
    KEY_SCALE               = 120     # AL Compiz Scale (Expose)

    KEY_KPCOMMA             = 121
    KEY_HANGEUL             = 122
    KEY_HANGUEL             = KEY_HANGEUL
    KEY_HANJA               = 123
    KEY_YEN                 = 124
    KEY_LEFTMETA            = 125
    KEY_RIGHTMETA           = 126
    KEY_COMPOSE             = 127

    KEY_STOP                = 128     # AC Stop
    KEY_AGAIN               = 129
    KEY_PROPS               = 130     # AC Properties
    KEY_UNDO                = 131     # AC Undo
    KEY_FRONT               = 132
    KEY_COPY                = 133     # AC Copy
    KEY_OPEN                = 134     # AC Open
    KEY_PASTE               = 135     # AC Paste
    KEY_FIND                = 136     # AC Search
    KEY_CUT                 = 137     # AC Cut
    KEY_HELP                = 138     # AL Integrated Help Center
    KEY_MENU                = 139     # Menu (show menu)
    KEY_CALC                = 140     # AL Calculator
    KEY_SETUP               = 141
    KEY_SLEEP               = 142     # SC System Sleep
    KEY_WAKEUP              = 143     # System Wake Up
    KEY_FILE                = 144     # AL Local Machine Browser
    KEY_SENDFILE            = 145
    KEY_DELETEFILE          = 146
    KEY_XFER                = 147
    KEY_PROG1               = 148
    KEY_PROG2               = 149
    KEY_WWW                 = 150     # AL Internet Browser
    KEY_MSDOS               = 151
    KEY_COFFEE              = 152     # AL Terminal Lock/Screensaver
    KEY_SCREENLOCK          = KEY_COFFEE
    KEY_DIRECTION           = 153
    KEY_CYCLEWINDOWS        = 154
    KEY_MAIL                = 155
    KEY_BOOKMARKS           = 156     # AC Bookmarks
    KEY_COMPUTER            = 157
    KEY_BACK                = 158     # AC Back
    KEY_FORWARD             = 159     # AC Forward
    KEY_CLOSECD             = 160
    KEY_EJECTCD             = 161
    KEY_EJECTCLOSECD        = 162
    KEY_NEXTSONG            = 163
    KEY_PLAYPAUSE           = 164
    KEY_PREVIOUSSONG        = 165
    KEY_STOPCD              = 166
    KEY_RECORD              = 167
    KEY_REWIND              = 168
    KEY_PHONE               = 169     # Media Select Telephone
    KEY_ISO                 = 170
    KEY_CONFIG              = 171     # AL Consumer Control Configuration
    KEY_HOMEPAGE            = 172     # AC Home
    KEY_REFRESH             = 173     # AC Refresh
    KEY_EXIT                = 174     # AC Exit
    KEY_MOVE                = 175
    KEY_EDIT                = 176
    KEY_SCROLLUP            = 177
    KEY_SCROLLDOWN          = 178
    KEY_KPLEFTPAREN         = 179
    KEY_KPRIGHTPAREN        = 180
    KEY_NEW                 = 181     # AC New
    KEY_REDO                = 182     # AC Redo/Repeat

    KEY_F13                 = 183
    KEY_F14                 = 184
    KEY_F15                 = 185
    KEY_F16                 = 186
    KEY_F17                 = 187
    KEY_F18                 = 188
    KEY_F19                 = 189
    KEY_F20                 = 190
    KEY_F21                 = 191
    KEY_F22                 = 192
    KEY_F23                 = 193
    KEY_F24                 = 194

    KEY_PLAYCD              = 200
    KEY_PAUSECD             = 201
    KEY_PROG3               = 202
    KEY_PROG4               = 203
    KEY_DASHBOARD           = 204     # AL Dashboard
    KEY_SUSPEND             = 205
    KEY_CLOSE               = 206     # AC Close
    KEY_PLAY                = 207
    KEY_FASTFORWARD         = 208
    KEY_BASSBOOST           = 209
    KEY_PRINT               = 210     # AC Print
    KEY_HP                  = 211
    KEY_CAMERA              = 212
    KEY_SOUND               = 213
    KEY_QUESTION            = 214
    KEY_EMAIL               = 215
    KEY_CHAT                = 216
    KEY_SEARCH              = 217
    KEY_CONNECT             = 218
    KEY_FINANCE             = 219     # AL Checkbook/Finance
    KEY_SPORT               = 220
    KEY_SHOP                = 221
    KEY_ALTERASE            = 222
    KEY_CANCEL              = 223     # AC Cancel
    KEY_BRIGHTNESSDOWN      = 224
    KEY_BRIGHTNESSUP        = 225
    KEY_MEDIA               = 226

    KEY_SWITCHVIDEOMODE     = 227     # Cycle between available video
                                      # outputs (Monitor/LCD/TV-out/etc)
    KEY_KBDILLUMTOGGLE      = 228
    KEY_KBDILLUMDOWN        = 229
    KEY_KBDILLUMUP          = 230

    KEY_SEND                = 231     # AC Send
    KEY_REPLY               = 232     # AC Reply
    KEY_FORWARDMAIL         = 233     # AC Forward Msg
    KEY_SAVE                = 234     # AC Save
    KEY_DOCUMENTS           = 235

    KEY_BATTERY             = 236

    KEY_BLUETOOTH           = 237
    KEY_WLAN                = 238
    KEY_UWB                 = 239

    KEY_UNKNOWN             = 240

    KEY_VIDEO_NEXT          = 241     # drive next video source
    KEY_VIDEO_PREV          = 242     # drive previous video source
    KEY_BRIGHTNESS_CYCLE    = 243     # brightness up, after max is min
    KEY_BRIGHTNESS_ZERO     = 244     # brightness off, use ambient
    KEY_DISPLAY_OFF         = 245     # display device to off state

    KEY_WIMAX               = 246

    # Range = 248 - 255 is reserved for special needs of AT keyboard driver

    BTN_MISC                = 0x100
    BTN_0                   = 0x100
    BTN_1                   = 0x101
    BTN_2                   = 0x102
    BTN_3                   = 0x103
    BTN_4                   = 0x104
    BTN_5                   = 0x105
    BTN_6                   = 0x106
    BTN_7                   = 0x107
    BTN_8                   = 0x108
    BTN_9                   = 0x109

    BTN_MOUSE               = 0x110
    BTN_LEFT                = 0x110
    BTN_RIGHT               = 0x111
    BTN_MIDDLE              = 0x112
    BTN_SIDE                = 0x113
    BTN_EXTRA               = 0x114
    BTN_FORWARD             = 0x115
    BTN_BACK                = 0x116
    BTN_TASK                = 0x117

    BTN_JOYSTICK            = 0x120
    BTN_TRIGGER             = 0x120
    BTN_THUMB               = 0x121
    BTN_THUMB2              = 0x122
    BTN_TOP                 = 0x123
    BTN_TOP2                = 0x124
    BTN_PINKIE              = 0x125
    BTN_BASE                = 0x126
    BTN_BASE2               = 0x127
    BTN_BASE3               = 0x128
    BTN_BASE4               = 0x129
    BTN_BASE5               = 0x12a
    BTN_BASE6               = 0x12b
    BTN_DEAD                = 0x12f

    BTN_GAMEPAD             = 0x130
    BTN_A                   = 0x130
    BTN_B                   = 0x131
    BTN_C                   = 0x132
    BTN_X                   = 0x133
    BTN_Y                   = 0x134
    BTN_Z                   = 0x135
    BTN_TL                  = 0x136
    BTN_TR                  = 0x137
    BTN_TL2                 = 0x138
    BTN_TR2                 = 0x139
    BTN_SELECT              = 0x13a
    BTN_START               = 0x13b
    BTN_MODE                = 0x13c
    BTN_THUMBL              = 0x13d
    BTN_THUMBR              = 0x13e

    BTN_DIGI                = 0x140
    BTN_TOOL_PEN            = 0x140
    BTN_TOOL_RUBBER         = 0x141
    BTN_TOOL_BRUSH          = 0x142
    BTN_TOOL_PENCIL         = 0x143
    BTN_TOOL_AIRBRUSH       = 0x144
    BTN_TOOL_FINGER         = 0x145
    BTN_TOOL_MOUSE          = 0x146
    BTN_TOOL_LENS           = 0x147
    BTN_TOUCH               = 0x14a
    BTN_STYLUS              = 0x14b
    BTN_STYLUS2             = 0x14c
    BTN_TOOL_DOUBLETAP      = 0x14d
    BTN_TOOL_TRIPLETAP      = 0x14e

    BTN_WHEEL               = 0x150
    BTN_GEAR_DOWN           = 0x150
    BTN_GEAR_UP             = 0x151

    KEY_OK                  = 0x160
    KEY_SELECT              = 0x161
    KEY_GOTO                = 0x162
    KEY_CLEAR               = 0x163
    KEY_POWER2              = 0x164
    KEY_OPTION              = 0x165
    KEY_INFO                = 0x166   # AL OEM Features/Tips/Tutorial
    KEY_TIME                = 0x167
    KEY_VENDOR              = 0x168
    KEY_ARCHIVE             = 0x169
    KEY_PROGRAM             = 0x16a   # Media Select Program Guide
    KEY_CHANNEL             = 0x16b
    KEY_FAVORITES           = 0x16c
    KEY_EPG                 = 0x16d
    KEY_PVR                 = 0x16e   # Media Select Home
    KEY_MHP                 = 0x16f
    KEY_LANGUAGE            = 0x170
    KEY_TITLE               = 0x171
    KEY_SUBTITLE            = 0x172
    KEY_ANGLE               = 0x173
    KEY_ZOOM                = 0x174
    KEY_MODE                = 0x175
    KEY_KEYBOARD            = 0x176
    KEY_SCREEN              = 0x177
    KEY_PC                  = 0x178   # Media Select Computer
    KEY_TV                  = 0x179   # Media Select TV
    KEY_TV2                 = 0x17a   # Media Select Cable
    KEY_VCR                 = 0x17b   # Media Select VCR
    KEY_VCR2                = 0x17c   # VCR Plus
    KEY_SAT                 = 0x17d   # Media Select Satellite
    KEY_SAT2                = 0x17e
    KEY_CD                  = 0x17f   # Media Select CD
    KEY_TAPE                = 0x180   # Media Select Tape
    KEY_RADIO               = 0x181
    KEY_TUNER               = 0x182   # Media Select Tuner
    KEY_PLAYER              = 0x183
    KEY_TEXT                = 0x184
    KEY_DVD                 = 0x185   # Media Select DVD
    KEY_AUX                 = 0x186
    KEY_MP3                 = 0x187
    KEY_AUDIO               = 0x188
    KEY_VIDEO               = 0x189
    KEY_DIRECTORY           = 0x18a
    KEY_LIST                = 0x18b
    KEY_MEMO                = 0x18c   # Media Select Messages
    KEY_CALENDAR            = 0x18d
    KEY_RED                 = 0x18e
    KEY_GREEN               = 0x18f
    KEY_YELLOW              = 0x190
    KEY_BLUE                = 0x191
    KEY_CHANNELUP           = 0x192   # Channel Increment
    KEY_CHANNELDOWN         = 0x193   # Channel Decrement
    KEY_FIRST               = 0x194
    KEY_LAST                = 0x195   # Recall Last
    KEY_AB                  = 0x196
    KEY_NEXT                = 0x197
    KEY_RESTART             = 0x198
    KEY_SLOW                = 0x199
    KEY_SHUFFLE             = 0x19a
    KEY_BREAK               = 0x19b
    KEY_PREVIOUS            = 0x19c
    KEY_DIGITS              = 0x19d
    KEY_TEEN                = 0x19e
    KEY_TWEN                = 0x19f
    KEY_VIDEOPHONE          = 0x1a0   # Media Select Video Phone
    KEY_GAMES               = 0x1a1   # Media Select Games
    KEY_ZOOMIN              = 0x1a2   # AC Zoom In
    KEY_ZOOMOUT             = 0x1a3   # AC Zoom Out
    KEY_ZOOMRESET           = 0x1a4   # AC Zoom
    KEY_WORDPROCESSOR       = 0x1a5   # AL Word Processor
    KEY_EDITOR              = 0x1a6   # AL Text Editor
    KEY_SPREADSHEET         = 0x1a7   # AL Spreadsheet
    KEY_GRAPHICSEDITOR      = 0x1a8   # AL Graphics Editor
    KEY_PRESENTATION        = 0x1a9   # AL Presentation App
    KEY_DATABASE            = 0x1aa   # AL Database App
    KEY_NEWS                = 0x1ab   # AL Newsreader
    KEY_VOICEMAIL           = 0x1ac   # AL Voicemail
    KEY_ADDRESSBOOK         = 0x1ad   # AL Contacts/Address Book
    KEY_MESSENGER           = 0x1ae   # AL Instant Messaging
    KEY_DISPLAYTOGGLE       = 0x1af   # Turn display (LCD) on and off
    KEY_SPELLCHECK          = 0x1b0   # AL Spell Check
    KEY_LOGOFF              = 0x1b1   # AL Logoff

    KEY_DOLLAR              = 0x1b2
    KEY_EURO                = 0x1b3

    KEY_FRAMEBACK           = 0x1b4   # Consumer - transport controls
    KEY_FRAMEFORWARD        = 0x1b5
    KEY_CONTEXT_MENU        = 0x1b6   # GenDesc - system context menu
    KEY_MEDIA_REPEAT        = 0x1b7   # Consumer - transport control

    KEY_DEL_EOL             = 0x1c0
    KEY_DEL_EOS             = 0x1c1
    KEY_INS_LINE            = 0x1c2
    KEY_DEL_LINE            = 0x1c3

    KEY_FN                  = 0x1d0
    KEY_FN_ESC              = 0x1d1
    KEY_FN_F1               = 0x1d2
    KEY_FN_F2               = 0x1d3
    KEY_FN_F3               = 0x1d4
    KEY_FN_F4               = 0x1d5
    KEY_FN_F5               = 0x1d6
    KEY_FN_F6               = 0x1d7
    KEY_FN_F7               = 0x1d8
    KEY_FN_F8               = 0x1d9
    KEY_FN_F9               = 0x1da
    KEY_FN_F10              = 0x1db
    KEY_FN_F11              = 0x1dc
    KEY_FN_F12              = 0x1dd
    KEY_FN_1                = 0x1de
    KEY_FN_2                = 0x1df
    KEY_FN_D                = 0x1e0
    KEY_FN_E                = 0x1e1
    KEY_FN_F                = 0x1e2
    KEY_FN_S                = 0x1e3
    KEY_FN_B                = 0x1e4

    KEY_BRL_DOT1            = 0x1f1
    KEY_BRL_DOT2            = 0x1f2
    KEY_BRL_DOT3            = 0x1f3
    KEY_BRL_DOT4            = 0x1f4
    KEY_BRL_DOT5            = 0x1f5
    KEY_BRL_DOT6            = 0x1f6
    KEY_BRL_DOT7            = 0x1f7
    KEY_BRL_DOT8            = 0x1f8
    KEY_BRL_DOT9            = 0x1f9
    KEY_BRL_DOT10           = 0x1fa

    KEY_NUMERIC_0           = 0x200   # used by phones, remote controls,
    KEY_NUMERIC_1           = 0x201   # and other keypads
    KEY_NUMERIC_2           = 0x202
    KEY_NUMERIC_3           = 0x203
    KEY_NUMERIC_4           = 0x204
    KEY_NUMERIC_5           = 0x205
    KEY_NUMERIC_6           = 0x206
    KEY_NUMERIC_7           = 0x207
    KEY_NUMERIC_8           = 0x208
    KEY_NUMERIC_9           = 0x209
    KEY_NUMERIC_STAR        = 0x20a
    KEY_NUMERIC_POUND       = 0x20b

    # Relative axes

    REL_X                   = 0x00
    REL_Y                   = 0x01
    REL_Z                   = 0x02
    REL_RX                  = 0x03
    REL_RY                  = 0x04
    REL_RZ                  = 0x05
    REL_HWHEEL              = 0x06
    REL_DIAL                = 0x07
    REL_WHEEL               = 0x08
    REL_MISC                = 0x09
    REL_MAX                 = 0x0f
    REL_CNT                 = REL_MAX+1

    # Absolute axes

    ABS_X                   = 0x00
    ABS_Y                   = 0x01
    ABS_Z                   = 0x02
    ABS_RX                  = 0x03
    ABS_RY                  = 0x04
    ABS_RZ                  = 0x05
    ABS_THROTTLE            = 0x06
    ABS_RUDDER              = 0x07
    ABS_WHEEL               = 0x08
    ABS_GAS                 = 0x09
    ABS_BRAKE               = 0x0a
    ABS_HAT0X               = 0x10
    ABS_HAT0Y               = 0x11
    ABS_HAT1X               = 0x12
    ABS_HAT1Y               = 0x13
    ABS_HAT2X               = 0x14
    ABS_HAT2Y               = 0x15
    ABS_HAT3X               = 0x16
    ABS_HAT3Y               = 0x17
    ABS_PRESSURE            = 0x18
    ABS_DISTANCE            = 0x19
    ABS_TILT_X              = 0x1a
    ABS_TILT_Y              = 0x1b
    ABS_TOOL_WIDTH          = 0x1c
    ABS_VOLUME              = 0x20
    ABS_MISC                = 0x28
    ABS_MAX                 = 0x3f
    ABS_CNT                 = ABS_MAX+1

    # Switch events

    SW_LID                  = 0x00  # set = lid shut
    SW_TABLET_MODE          = 0x01  # set = tablet mode
    SW_HEADPHONE_INSERT     = 0x02  # set = inserted
    SW_RFKILL_ALL           = 0x03  # rfkill master switch, type "any"
                                    # set = radio enabled
    SW_RADIO                = SW_RFKILL_ALL   # deprecated
    SW_MICROPHONE_INSERT    = 0x04  # set = inserted
    SW_DOCK                 = 0x05  # set = plugged into dock
    SW_MAX                  = 0x0f
    SW_CNT                  = SW_MAX+1

    # Misc events

    MSC_SERIAL              = 0x00
    MSC_PULSELED            = 0x01
    MSC_GESTURE             = 0x02
    MSC_RAW                 = 0x03
    MSC_SCAN                = 0x04
    MSC_MAX                 = 0x07
    MSC_CNT                 = MSC_MAX+1

    # LEDs

    LED_NUML                = 0x00
    LED_CAPSL               = 0x01
    LED_SCROLLL             = 0x02
    LED_COMPOSE             = 0x03
    LED_KANA                = 0x04
    LED_SLEEP               = 0x05
    LED_SUSPEND             = 0x06
    LED_MUTE                = 0x07
    LED_MISC                = 0x08
    LED_MAIL                = 0x09
    LED_CHARGING            = 0x0a
    LED_MAX                 = 0x0f
    LED_CNT                 = LED_MAX+1

    # Autorepeat values

    REP_DELAY               = 0x00
    REP_PERIOD              = 0x01
    REP_MAX                 = 0x01
