Logo Search packages:      
Sourcecode: scummvm version File versions  Download package

Event.java

package org.inodes.gus.scummvm;

import android.view.KeyEvent;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class Event {
      // Common::EventType enum.
      // Must be kept in sync with common/events.h
      public final static int EVENT_INVALID = 0;
      public final static int EVENT_KEYDOWN = 1;
      public final static int EVENT_KEYUP = 2;
      public final static int EVENT_MOUSEMOVE = 3;
      public final static int EVENT_LBUTTONDOWN = 4;
      public final static int EVENT_LBUTTONUP = 5;
      public final static int EVENT_RBUTTONDOWN = 6;
      public final static int EVENT_RBUTTONUP = 7;
      public final static int EVENT_WHEELUP = 8;
      public final static int EVENT_WHEELDOWN = 9;
      public final static int EVENT_QUIT = 10;
      public final static int EVENT_SCREEN_CHANGED = 11;
      public final static int EVENT_PREDICTIVE_DIALOG = 12;
      public final static int EVENT_MBUTTONDOWN = 13;
      public final static int EVENT_MBUTTONUP = 14;
      public final static int EVENT_MAINMENU = 15;
      public final static int EVENT_RTL = 16;

      // common/keyboard.h
      public final static int ASCII_F1 = 315;
      public final static int ASCII_F2 = 316;
      public final static int ASCII_F3 = 317;
      public final static int ASCII_F4 = 318;
      public final static int ASCII_F5 = 319;
      public final static int ASCII_F6 = 320;
      public final static int ASCII_F7 = 321;
      public final static int ASCII_F8 = 322;
      public final static int ASCII_F9 = 323;
      public final static int ASCII_F10 = 324;
      public final static int ASCII_F11 = 325;
      public final static int ASCII_F12 = 326;
      public final static int KBD_CTRL  = 1 << 0;
      public final static int KBD_ALT       = 1 << 1;
      public final static int KBD_SHIFT = 1 << 2;

      public final static int KEYCODE_INVALID = 0;
      public final static int KEYCODE_BACKSPACE = 8;
      public final static int KEYCODE_TAB = 9;
      public final static int KEYCODE_CLEAR = 12;
      public final static int KEYCODE_RETURN = 13;
      public final static int KEYCODE_PAUSE = 19;
      public final static int KEYCODE_ESCAPE = 27;
      public final static int KEYCODE_SPACE = 32;
      public final static int KEYCODE_EXCLAIM = 33;
      public final static int KEYCODE_QUOTEDBL = 34;
      public final static int KEYCODE_HASH = 35;
      public final static int KEYCODE_DOLLAR = 36;
      public final static int KEYCODE_AMPERSAND = 38;
      public final static int KEYCODE_QUOTE = 39;
      public final static int KEYCODE_LEFTPAREN = 40;
      public final static int KEYCODE_RIGHTPAREN = 41;
      public final static int KEYCODE_ASTERISK = 42;
      public final static int KEYCODE_PLUS = 43;
      public final static int KEYCODE_COMMA = 44;
      public final static int KEYCODE_MINUS = 45;
      public final static int KEYCODE_PERIOD = 46;
      public final static int KEYCODE_SLASH = 47;
      public final static int KEYCODE_0 = 48;
      public final static int KEYCODE_1 = 49;
      public final static int KEYCODE_2 = 50;
      public final static int KEYCODE_3 = 51;
      public final static int KEYCODE_4 = 52;
      public final static int KEYCODE_5 = 53;
      public final static int KEYCODE_6 = 54;
      public final static int KEYCODE_7 = 55;
      public final static int KEYCODE_8 = 56;
      public final static int KEYCODE_9 = 57;
      public final static int KEYCODE_COLON = 58;
      public final static int KEYCODE_SEMICOLON = 59;
      public final static int KEYCODE_LESS = 60;
      public final static int KEYCODE_EQUALS = 61;
      public final static int KEYCODE_GREATER = 62;
      public final static int KEYCODE_QUESTION = 63;
      public final static int KEYCODE_AT = 64;
      public final static int KEYCODE_LEFTBRACKET = 91;
      public final static int KEYCODE_BACKSLASH = 92;
      public final static int KEYCODE_RIGHTBRACKET = 93;
      public final static int KEYCODE_CARET = 94;
      public final static int KEYCODE_UNDERSCORE = 95;
      public final static int KEYCODE_BACKQUOTE = 96;
      public final static int KEYCODE_a = 97;
      public final static int KEYCODE_b = 98;
      public final static int KEYCODE_c = 99;
      public final static int KEYCODE_d = 100;
      public final static int KEYCODE_e = 101;
      public final static int KEYCODE_f = 102;
      public final static int KEYCODE_g = 103;
      public final static int KEYCODE_h = 104;
      public final static int KEYCODE_i = 105;
      public final static int KEYCODE_j = 106;
      public final static int KEYCODE_k = 107;
      public final static int KEYCODE_l = 108;
      public final static int KEYCODE_m = 109;
      public final static int KEYCODE_n = 110;
      public final static int KEYCODE_o = 111;
      public final static int KEYCODE_p = 112;
      public final static int KEYCODE_q = 113;
      public final static int KEYCODE_r = 114;
      public final static int KEYCODE_s = 115;
      public final static int KEYCODE_t = 116;
      public final static int KEYCODE_u = 117;
      public final static int KEYCODE_v = 118;
      public final static int KEYCODE_w = 119;
      public final static int KEYCODE_x = 120;
      public final static int KEYCODE_y = 121;
      public final static int KEYCODE_z = 122;
      public final static int KEYCODE_DELETE = 127;
      // Numeric keypad
      public final static int KEYCODE_KP0 = 256;
      public final static int KEYCODE_KP1 = 257;
      public final static int KEYCODE_KP2 = 258;
      public final static int KEYCODE_KP3 = 259;
      public final static int KEYCODE_KP4 = 260;
      public final static int KEYCODE_KP5 = 261;
      public final static int KEYCODE_KP6 = 262;
      public final static int KEYCODE_KP7 = 263;
      public final static int KEYCODE_KP8 = 264;
      public final static int KEYCODE_KP9 = 265;
      public final static int KEYCODE_KP_PERIOD = 266;
      public final static int KEYCODE_KP_DIVIDE = 267;
      public final static int KEYCODE_KP_MULTIPLY = 268;
      public final static int KEYCODE_KP_MINUS = 269;
      public final static int KEYCODE_KP_PLUS = 270;
      public final static int KEYCODE_KP_ENTER = 271;
      public final static int KEYCODE_KP_EQUALS = 272;
      // Arrows + Home/End pad
      public final static int KEYCODE_UP = 273;
      public final static int KEYCODE_DOWN = 274;
      public final static int KEYCODE_RIGHT = 275;
      public final static int KEYCODE_LEFT = 276;
      public final static int KEYCODE_INSERT = 277;
      public final static int KEYCODE_HOME = 278;
      public final static int KEYCODE_END = 279;
      public final static int KEYCODE_PAGEUP = 280;
      public final static int KEYCODE_PAGEDOWN = 281;
      // Function keys
      public final static int KEYCODE_F1 = 282;
      public final static int KEYCODE_F2 = 283;
      public final static int KEYCODE_F3 = 284;
      public final static int KEYCODE_F4 = 285;
      public final static int KEYCODE_F5 = 286;
      public final static int KEYCODE_F6 = 287;
      public final static int KEYCODE_F7 = 288;
      public final static int KEYCODE_F8 = 289;
      public final static int KEYCODE_F9 = 290;
      public final static int KEYCODE_F10 = 291;
      public final static int KEYCODE_F11 = 292;
      public final static int KEYCODE_F12 = 293;
      public final static int KEYCODE_F13 = 294;
      public final static int KEYCODE_F14 = 295;
      public final static int KEYCODE_F15 = 296;
      // Key state modifier keys
      public final static int KEYCODE_NUMLOCK = 300;
      public final static int KEYCODE_CAPSLOCK = 301;
      public final static int KEYCODE_SCROLLOCK = 302;
      public final static int KEYCODE_RSHIFT = 303;
      public final static int KEYCODE_LSHIFT = 304;
      public final static int KEYCODE_RCTRL = 305;
      public final static int KEYCODE_LCTRL = 306;
      public final static int KEYCODE_RALT = 307;
      public final static int KEYCODE_LALT = 308;
      public final static int KEYCODE_RMETA = 309;
      public final static int KEYCODE_LMETA = 310;
      public final static int KEYCODE_LSUPER = 311; // Left "Windows" key
      public final static int KEYCODE_RSUPER = 312; // Right "Windows" key
      public final static int KEYCODE_MODE = 313; // "Alt Gr" key
      public final static int KEYCODE_COMPOSE = 314; // Multi-key compose key
      // Miscellaneous function keys
      public final static int KEYCODE_HELP = 315;
      public final static int KEYCODE_PRINT = 316;
      public final static int KEYCODE_SYSREQ = 317;
      public final static int KEYCODE_BREAK = 318;
      public final static int KEYCODE_MENU = 319;
      public final static int KEYCODE_POWER = 320; // Power Macintosh power key
      public final static int KEYCODE_EURO = 321; // Some european keyboards
      public final static int KEYCODE_UNDO = 322; // Atari keyboard has Undo

      // Android KeyEvent keycode -> ScummVM keycode
      public final static Map<Integer, Integer> androidKeyMap;
      static {
            Map<Integer, Integer> map = new HashMap<Integer, Integer>();

            map.put(KeyEvent.KEYCODE_DEL, KEYCODE_BACKSPACE);
            map.put(KeyEvent.KEYCODE_TAB, KEYCODE_TAB);
            map.put(KeyEvent.KEYCODE_CLEAR, KEYCODE_CLEAR);
            map.put(KeyEvent.KEYCODE_ENTER, KEYCODE_RETURN);
            //map.put(??, KEYCODE_PAUSE);
            map.put(KeyEvent.KEYCODE_BACK, KEYCODE_ESCAPE);
            map.put(KeyEvent.KEYCODE_SPACE, KEYCODE_SPACE);
            //map.put(??, KEYCODE_EXCLAIM);
            //map.put(??, KEYCODE_QUOTEDBL);
            map.put(KeyEvent.KEYCODE_POUND, KEYCODE_HASH);
            //map.put(??, KEYCODE_DOLLAR);
            //map.put(??, KEYCODE_AMPERSAND);
            map.put(KeyEvent.KEYCODE_APOSTROPHE, KEYCODE_QUOTE);
            //map.put(??, KEYCODE_LEFTPAREN);
            //map.put(??, KEYCODE_RIGHTPAREN);
            //map.put(??, KEYCODE_ASTERISK);
            map.put(KeyEvent.KEYCODE_PLUS, KEYCODE_PLUS);
            map.put(KeyEvent.KEYCODE_COMMA, KEYCODE_COMMA);
            map.put(KeyEvent.KEYCODE_MINUS, KEYCODE_MINUS);
            map.put(KeyEvent.KEYCODE_PERIOD, KEYCODE_PERIOD);
            map.put(KeyEvent.KEYCODE_SLASH, KEYCODE_SLASH);
            map.put(KeyEvent.KEYCODE_0, KEYCODE_0);
            map.put(KeyEvent.KEYCODE_1, KEYCODE_1);
            map.put(KeyEvent.KEYCODE_2, KEYCODE_2);
            map.put(KeyEvent.KEYCODE_3, KEYCODE_3);
            map.put(KeyEvent.KEYCODE_4, KEYCODE_4);
            map.put(KeyEvent.KEYCODE_5, KEYCODE_5);
            map.put(KeyEvent.KEYCODE_6, KEYCODE_6);
            map.put(KeyEvent.KEYCODE_7, KEYCODE_7);
            map.put(KeyEvent.KEYCODE_8, KEYCODE_8);
            map.put(KeyEvent.KEYCODE_9, KEYCODE_9);
            //map.put(??, KEYCODE_COLON);
            map.put(KeyEvent.KEYCODE_SEMICOLON, KEYCODE_SEMICOLON);
            //map.put(??, KEYCODE_LESS);
            map.put(KeyEvent.KEYCODE_EQUALS, KEYCODE_EQUALS);
            //map.put(??, KEYCODE_GREATER);
            //map.put(??, KEYCODE_QUESTION);
            map.put(KeyEvent.KEYCODE_AT, KEYCODE_AT);
            map.put(KeyEvent.KEYCODE_LEFT_BRACKET, KEYCODE_LEFTBRACKET);
            map.put(KeyEvent.KEYCODE_BACKSLASH, KEYCODE_BACKSLASH);
            map.put(KeyEvent.KEYCODE_RIGHT_BRACKET, KEYCODE_RIGHTBRACKET);
            //map.put(??, KEYCODE_CARET);
            //map.put(??, KEYCODE_UNDERSCORE);
            //map.put(??, KEYCODE_BACKQUOTE);
            map.put(KeyEvent.KEYCODE_A, KEYCODE_a);
            map.put(KeyEvent.KEYCODE_B, KEYCODE_b);
            map.put(KeyEvent.KEYCODE_C, KEYCODE_c);
            map.put(KeyEvent.KEYCODE_D, KEYCODE_d);
            map.put(KeyEvent.KEYCODE_E, KEYCODE_e);
            map.put(KeyEvent.KEYCODE_F, KEYCODE_f);
            map.put(KeyEvent.KEYCODE_G, KEYCODE_g);
            map.put(KeyEvent.KEYCODE_H, KEYCODE_h);
            map.put(KeyEvent.KEYCODE_I, KEYCODE_i);
            map.put(KeyEvent.KEYCODE_J, KEYCODE_j);
            map.put(KeyEvent.KEYCODE_K, KEYCODE_k);
            map.put(KeyEvent.KEYCODE_L, KEYCODE_l);
            map.put(KeyEvent.KEYCODE_M, KEYCODE_m);
            map.put(KeyEvent.KEYCODE_N, KEYCODE_n);
            map.put(KeyEvent.KEYCODE_O, KEYCODE_o);
            map.put(KeyEvent.KEYCODE_P, KEYCODE_p);
            map.put(KeyEvent.KEYCODE_Q, KEYCODE_q);
            map.put(KeyEvent.KEYCODE_R, KEYCODE_r);
            map.put(KeyEvent.KEYCODE_S, KEYCODE_s);
            map.put(KeyEvent.KEYCODE_T, KEYCODE_t);
            map.put(KeyEvent.KEYCODE_U, KEYCODE_u);
            map.put(KeyEvent.KEYCODE_V, KEYCODE_v);
            map.put(KeyEvent.KEYCODE_W, KEYCODE_w);
            map.put(KeyEvent.KEYCODE_X, KEYCODE_x);
            map.put(KeyEvent.KEYCODE_Y, KEYCODE_y);
            map.put(KeyEvent.KEYCODE_Z, KEYCODE_z);
            //map.put(KeyEvent.KEYCODE_DEL, KEYCODE_DELETE); use BACKSPACE instead
            //map.put(??, KEYCODE_KP_*);
            map.put(KeyEvent.KEYCODE_DPAD_UP, KEYCODE_UP);
            map.put(KeyEvent.KEYCODE_DPAD_DOWN, KEYCODE_DOWN);
            map.put(KeyEvent.KEYCODE_DPAD_RIGHT, KEYCODE_RIGHT);
            map.put(KeyEvent.KEYCODE_DPAD_LEFT, KEYCODE_LEFT);
            //map.put(??, KEYCODE_INSERT);
            //map.put(??, KEYCODE_HOME);
            //map.put(??, KEYCODE_END);
            //map.put(??, KEYCODE_PAGEUP);
            //map.put(??, KEYCODE_PAGEDOWN);
            //map.put(??, KEYCODE_F{1-15});
            map.put(KeyEvent.KEYCODE_NUM, KEYCODE_NUMLOCK);
            //map.put(??, KEYCODE_CAPSLOCK);
            //map.put(??, KEYCODE_SCROLLLOCK);
            map.put(KeyEvent.KEYCODE_SHIFT_RIGHT, KEYCODE_RSHIFT);
            map.put(KeyEvent.KEYCODE_SHIFT_LEFT, KEYCODE_LSHIFT);
            //map.put(??, KEYCODE_RCTRL);
            //map.put(??, KEYCODE_LCTRL);
            map.put(KeyEvent.KEYCODE_ALT_RIGHT, KEYCODE_RALT);
            map.put(KeyEvent.KEYCODE_ALT_LEFT, KEYCODE_LALT);
            // ?? META, SUPER
            // ?? MODE, COMPOSE
            // ?? HELP, PRINT, SYSREQ, BREAK, EURO, UNDO
            map.put(KeyEvent.KEYCODE_MENU, KEYCODE_MENU);
            map.put(KeyEvent.KEYCODE_POWER, KEYCODE_POWER);

            androidKeyMap = Collections.unmodifiableMap(map);
      }

      public int type;
      public boolean synthetic;
      public int kbd_keycode;
      public int kbd_ascii;
      public int kbd_flags;
      public int mouse_x;
      public int mouse_y;
      public boolean mouse_relative;      // Used for trackball events

      public Event() {
            type = EVENT_INVALID;
            synthetic = false;
      }

      public Event(int type) {
            this.type = type;
            synthetic = false;
      }

      public static Event KeyboardEvent(int type, int keycode, int ascii,
                                                        int flags) {
            Event e = new Event();
            e.type = type;
            e.kbd_keycode = keycode;
            e.kbd_ascii = ascii;
            e.kbd_flags = flags;
            return e;
      }

      public static Event MouseEvent(int type, int x, int y) {
            Event e = new Event();
            e.type = type;
            e.mouse_x = x;
            e.mouse_y = y;
            return e;
      }
}

Generated by  Doxygen 1.6.0   Back to index