/* Copyright (C) 2009 The Android Open Source Project ** ** This software is licensed under the terms of the GNU General Public ** License version 2, as published by the Free Software Foundation, and ** may be copied, distributed, and modified under those terms. ** ** This program 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. */ #ifndef ANDROID_KEYCODE_H #define ANDROID_KEYCODE_H #include "linux_keycodes.h" /* Keep it consistent with linux/input.h */ typedef enum { kKeyCodeSoftLeft = KEY_SOFT1, kKeyCodeSoftRight = KEY_SOFT2, kKeyCodeHome = KEY_HOME, kKeyCodeBack = KEY_BACK, kKeyCodeCall = KEY_SEND, kKeyCodeEndCall = KEY_END, kKeyCode0 = KEY_0, kKeyCode1 = KEY_1, kKeyCode2 = KEY_2, kKeyCode3 = KEY_3, kKeyCode4 = KEY_4, kKeyCode5 = KEY_5, kKeyCode6 = KEY_6, kKeyCode7 = KEY_7, kKeyCode8 = KEY_8, kKeyCode9 = KEY_9, kKeyCodeStar = KEY_STAR, kKeyCodePound = KEY_SHARP, kKeyCodeDpadUp = KEY_UP, kKeyCodeDpadDown = KEY_DOWN, kKeyCodeDpadLeft = KEY_LEFT, kKeyCodeDpadRight = KEY_RIGHT, kKeyCodeDpadCenter = KEY_CENTER, kKeyCodeVolumeUp = KEY_VOLUMEUP, kKeyCodeVolumeDown = KEY_VOLUMEDOWN, kKeyCodePower = KEY_POWER, kKeyCodeCamera = KEY_CAMERA, kKeyCodeClear = KEY_CLEAR, kKeyCodeA = KEY_A, kKeyCodeB = KEY_B, kKeyCodeC = KEY_C, kKeyCodeD = KEY_D, kKeyCodeE = KEY_E, kKeyCodeF = KEY_F, kKeyCodeG = KEY_G, kKeyCodeH = KEY_H, kKeyCodeI = KEY_I, kKeyCodeJ = KEY_J, kKeyCodeK = KEY_K, kKeyCodeL = KEY_L, kKeyCodeM = KEY_M, kKeyCodeN = KEY_N, kKeyCodeO = KEY_O, kKeyCodeP = KEY_P, kKeyCodeQ = KEY_Q, kKeyCodeR = KEY_R, kKeyCodeS = KEY_S, kKeyCodeT = KEY_T, kKeyCodeU = KEY_U, kKeyCodeV = KEY_V, kKeyCodeW = KEY_W, kKeyCodeX = KEY_X, kKeyCodeY = KEY_Y, kKeyCodeZ = KEY_Z, kKeyCodeComma = KEY_COMMA, kKeyCodePeriod = KEY_DOT, kKeyCodeAltLeft = KEY_LEFTALT, kKeyCodeAltRight = KEY_RIGHTALT, kKeyCodeCapLeft = KEY_LEFTSHIFT, kKeyCodeCapRight = KEY_RIGHTSHIFT, kKeyCodeTab = KEY_TAB, kKeyCodeSpace = KEY_SPACE, kKeyCodeSym = KEY_COMPOSE, kKeyCodeExplorer = KEY_WWW, kKeyCodeEnvelope = KEY_MAIL, kKeyCodeNewline = KEY_ENTER, kKeyCodeDel = KEY_BACKSPACE, kKeyCodeGrave = 399, kKeyCodeMinus = KEY_MINUS, kKeyCodeEquals = KEY_EQUAL, kKeyCodeLeftBracket = KEY_LEFTBRACE, kKeyCodeRightBracket = KEY_RIGHTBRACE, kKeyCodeBackslash = KEY_BACKSLASH, kKeyCodeSemicolon = KEY_SEMICOLON, kKeyCodeApostrophe = KEY_APOSTROPHE, kKeyCodeSlash = KEY_SLASH, kKeyCodeAt = KEY_EMAIL, kKeyCodeNum = KEY_NUM, kKeyCodeHeadsetHook = KEY_HEADSETHOOK, kKeyCodeFocus = KEY_FOCUS, kKeyCodePlus = KEY_PLUS, kKeyCodeMenu = KEY_SOFT1, kKeyCodeNotification = KEY_NOTIFICATION, kKeyCodeSearch = KEY_SEARCH, kKeyCodeTV = KEY_TV, kKeyCodeEPG = KEY_PROGRAM, kKeyCodeDVR = KEY_PVR, kKeyCodePrevious = KEY_PREVIOUS, kKeyCodeNext = KEY_NEXT, kKeyCodePlay = KEY_PLAY, kKeyCodePause = KEY_PAUSE, kKeyCodeStop = KEY_STOP, kKeyCodeRewind = KEY_REWIND, kKeyCodeFastForward = KEY_FASTFORWARD, kKeyCodeBookmarks = KEY_BOOKMARKS, kKeyCodeCycleWindows = KEY_CYCLEWINDOWS, kKeyCodeChannelUp = KEY_CHANNELUP, kKeyCodeChannelDown = KEY_CHANNELDOWN, } AndroidKeyCode; /* This function is used to rotate D-Pad keycodes, while leaving other ones * untouched. 'code' is the input keycode, which will be returned as is if * it doesn't correspond to a D-Pad arrow. 'rotation' is the number of * *clockwise* 90 degrees rotations to perform on D-Pad keys. * * Here are examples: * android_keycode_rotate( kKeyCodeDpadUp, 1 ) => kKeyCodeDpadRight * android_keycode_rotate( kKeyCodeDpadRight, 2 ) => kKeyCodeDpadLeft * android_keycode_rotate( kKeyCodeDpadDown, 3 ) => kKeyCodeDpadRight * android_keycode_rotate( kKeyCodeSpace, n ) => kKeyCodeSpace independent of n */ extern AndroidKeyCode android_keycode_rotate( AndroidKeyCode code, int rotation ); #endif /* ANDROID_KEYCODE_H */