/* * Copyright (c) 2009-2015 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of 'jMonkeyEngine' nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package com.jme3.input.lwjgl; import static org.lwjgl.glfw.GLFW.*; import static com.jme3.input.KeyInput.*; public class GlfwKeyMap { private static final int[] glfwToJmeKeyMap = new int[GLFW_KEY_LAST + 1]; private static void reg(int jmeKey, int glfwKey) { glfwToJmeKeyMap[glfwKey] = jmeKey; } static { reg(KEY_ESCAPE, GLFW_KEY_ESCAPE); reg(KEY_1, GLFW_KEY_1); reg(KEY_2, GLFW_KEY_2); reg(KEY_3, GLFW_KEY_3); reg(KEY_4, GLFW_KEY_4); reg(KEY_5, GLFW_KEY_5); reg(KEY_6, GLFW_KEY_6); reg(KEY_7, GLFW_KEY_7); reg(KEY_8, GLFW_KEY_8); reg(KEY_9, GLFW_KEY_9); reg(KEY_0, GLFW_KEY_0); reg(KEY_MINUS, GLFW_KEY_MINUS); reg(KEY_EQUALS, GLFW_KEY_EQUAL); reg(KEY_BACK, GLFW_KEY_BACKSPACE); reg(KEY_TAB, GLFW_KEY_TAB); reg(KEY_Q, GLFW_KEY_Q); reg(KEY_W, GLFW_KEY_W); reg(KEY_E, GLFW_KEY_E); reg(KEY_R, GLFW_KEY_R); reg(KEY_T, GLFW_KEY_T); reg(KEY_Y, GLFW_KEY_Y); reg(KEY_U, GLFW_KEY_U); reg(KEY_I, GLFW_KEY_I); reg(KEY_O, GLFW_KEY_O); reg(KEY_P, GLFW_KEY_P); reg(KEY_LBRACKET, GLFW_KEY_LEFT_BRACKET); reg(KEY_RBRACKET, GLFW_KEY_RIGHT_BRACKET); reg(KEY_RETURN, GLFW_KEY_ENTER); reg(KEY_LCONTROL, GLFW_KEY_LEFT_CONTROL); reg(KEY_A, GLFW_KEY_A); reg(KEY_S, GLFW_KEY_S); reg(KEY_D, GLFW_KEY_D); reg(KEY_F, GLFW_KEY_F); reg(KEY_G, GLFW_KEY_G); reg(KEY_H, GLFW_KEY_H); reg(KEY_J, GLFW_KEY_J); reg(KEY_K, GLFW_KEY_K); reg(KEY_L, GLFW_KEY_L); reg(KEY_SEMICOLON, GLFW_KEY_SEMICOLON); reg(KEY_APOSTROPHE, GLFW_KEY_APOSTROPHE); reg(KEY_GRAVE, GLFW_KEY_GRAVE_ACCENT); reg(KEY_LSHIFT, GLFW_KEY_LEFT_SHIFT); reg(KEY_BACKSLASH, GLFW_KEY_BACKSLASH); reg(KEY_Z, GLFW_KEY_Z); reg(KEY_X, GLFW_KEY_X); reg(KEY_C, GLFW_KEY_C); reg(KEY_V, GLFW_KEY_V); reg(KEY_B, GLFW_KEY_B); reg(KEY_N, GLFW_KEY_N); reg(KEY_M, GLFW_KEY_M); reg(KEY_COMMA, GLFW_KEY_COMMA); reg(KEY_PERIOD, GLFW_KEY_PERIOD); reg(KEY_SLASH, GLFW_KEY_SLASH); reg(KEY_RSHIFT, GLFW_KEY_RIGHT_SHIFT); reg(KEY_MULTIPLY, GLFW_KEY_KP_MULTIPLY); reg(KEY_LMENU, GLFW_KEY_LEFT_ALT); reg(KEY_SPACE, GLFW_KEY_SPACE); reg(KEY_CAPITAL, GLFW_KEY_CAPS_LOCK); reg(KEY_F1, GLFW_KEY_F1); reg(KEY_F2, GLFW_KEY_F2); reg(KEY_F3, GLFW_KEY_F3); reg(KEY_F4, GLFW_KEY_F4); reg(KEY_F5, GLFW_KEY_F5); reg(KEY_F6, GLFW_KEY_F6); reg(KEY_F7, GLFW_KEY_F7); reg(KEY_F8, GLFW_KEY_F8); reg(KEY_F9, GLFW_KEY_F9); reg(KEY_F10, GLFW_KEY_F10); reg(KEY_NUMLOCK, GLFW_KEY_NUM_LOCK); reg(KEY_SCROLL, GLFW_KEY_SCROLL_LOCK); reg(KEY_NUMPAD7, GLFW_KEY_KP_7); reg(KEY_NUMPAD8, GLFW_KEY_KP_8); reg(KEY_NUMPAD9, GLFW_KEY_KP_9); reg(KEY_SUBTRACT, GLFW_KEY_KP_SUBTRACT); reg(KEY_NUMPAD4, GLFW_KEY_KP_4); reg(KEY_NUMPAD5, GLFW_KEY_KP_5); reg(KEY_NUMPAD6, GLFW_KEY_KP_6); reg(KEY_ADD, GLFW_KEY_KP_ADD); reg(KEY_NUMPAD1, GLFW_KEY_KP_1); reg(KEY_NUMPAD2, GLFW_KEY_KP_2); reg(KEY_NUMPAD3, GLFW_KEY_KP_3); reg(KEY_NUMPAD0, GLFW_KEY_KP_0); reg(KEY_DECIMAL, GLFW_KEY_KP_DECIMAL); reg(KEY_F11, GLFW_KEY_F11); reg(KEY_F12, GLFW_KEY_F12); reg(KEY_F13, GLFW_KEY_F13); reg(KEY_F14, GLFW_KEY_F14); reg(KEY_F15, GLFW_KEY_F15); //reg(KEY_KANA, GLFW_KEY_); //reg(KEY_CONVERT, GLFW_KEY_); //reg(KEY_NOCONVERT, GLFW_KEY_); //reg(KEY_YEN, GLFW_KEY_); //reg(KEY_NUMPADEQUALS, GLFW_KEY_); //reg(KEY_CIRCUMFLEX, GLFW_KEY_); //reg(KEY_AT, GLFW_KEY_); //reg(KEY_COLON, GLFW_KEY_); //reg(KEY_UNDERLINE, GLFW_KEY_); //reg(KEY_KANJI, GLFW_KEY_); //reg(KEY_STOP, GLFW_KEY_); //reg(KEY_AX, GLFW_KEY_); //reg(KEY_UNLABELED, GLFW_KEY_); reg(KEY_NUMPADENTER, GLFW_KEY_KP_ENTER); reg(KEY_RCONTROL, GLFW_KEY_RIGHT_CONTROL); //reg(KEY_NUMPADCOMMA, GLFW_KEY_); reg(KEY_DIVIDE, GLFW_KEY_KP_DIVIDE); reg(KEY_SYSRQ, GLFW_KEY_PRINT_SCREEN); reg(KEY_RMENU, GLFW_KEY_RIGHT_ALT); reg(KEY_PAUSE, GLFW_KEY_PAUSE); reg(KEY_HOME, GLFW_KEY_HOME); reg(KEY_UP, GLFW_KEY_UP); reg(KEY_PRIOR, GLFW_KEY_PAGE_UP); reg(KEY_LEFT, GLFW_KEY_LEFT); reg(KEY_RIGHT, GLFW_KEY_RIGHT); reg(KEY_END, GLFW_KEY_END); reg(KEY_DOWN, GLFW_KEY_DOWN); reg(KEY_NEXT, GLFW_KEY_PAGE_DOWN); reg(KEY_INSERT, GLFW_KEY_INSERT); reg(KEY_DELETE, GLFW_KEY_DELETE); reg(KEY_LMETA, GLFW_KEY_LEFT_SUPER); reg(KEY_RMETA, GLFW_KEY_RIGHT_SUPER); } public static int toJmeKeyCode(int glfwKey) { return glfwToJmeKeyMap[glfwKey]; } }