blob: 169624ef1ac563ded549459992b2940489e22d0c [file] [log] [blame]
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.quake;
// Wrapper for native quake application
public class QuakeLib {
public static final int KEY_PRESS = 1;
public static final int KEY_RELEASE = 0;
public static final int MOTION_DOWN = 0;
public static final int MOTION_UP = 1;
public static final int MOTION_MOVE = 2;
public static final int MOTION_CANCEL = 3;
// copied from Quake keys.h
// these are the key numbers that should be passed to Key_Event
//
//
// these are the key numbers that should be passed to Key_Event
//
public static final int K_TAB = 9;
public static final int K_ENTER = 13;
public static final int K_ESCAPE = 27;
public static final int K_SPACE = 32;
// normal keys should be passed as lowercased ascii
public static final int K_BACKSPACE = 127;
public static final int K_UPARROW = 128;
public static final int K_DOWNARROW = 129;
public static final int K_LEFTARROW = 130;
public static final int K_RIGHTARROW = 131;
public static final int K_ALT = 132;
public static final int K_CTRL = 133;
public static final int K_SHIFT = 134;
public static final int K_F1 = 135;
public static final int K_F2 = 136;
public static final int K_F3 = 137;
public static final int K_F4 = 138;
public static final int K_F5 = 139;
public static final int K_F6 = 140;
public static final int K_F7 = 141;
public static final int K_F8 = 142;
public static final int K_F9 = 143;
public static final int K_F10 = 144;
public static final int K_F11 = 145;
public static final int K_F12 = 146;
public static final int K_INS = 147;
public static final int K_DEL = 148;
public static final int K_PGDN = 149;
public static final int K_PGUP = 150;
public static final int K_HOME = 151;
public static final int K_END = 152;
public static final int K_PAUSE = 255;
//
// mouse buttons generate virtual keys
//
public static final int K_MOUSE1 = 200;
public static final int K_MOUSE2 = 201;
public static final int K_MOUSE3 = 202;
//
// joystick buttons
//
public static final int K_JOY1 = 203;
public static final int K_JOY2 = 204;
public static final int K_JOY3 = 205;
public static final int K_JOY4 = 206;
//
// aux keys are for multi-buttoned joysticks to generate so they can use
// the normal binding process
//
public static final int K_AUX1 = 207;
public static final int K_AUX2 = 208;
public static final int K_AUX3 = 209;
public static final int K_AUX4 = 210;
public static final int K_AUX5 = 211;
public static final int K_AUX6 = 212;
public static final int K_AUX7 = 213;
public static final int K_AUX8 = 214;
public static final int K_AUX9 = 215;
public static final int K_AUX10 = 216;
public static final int K_AUX11 = 217;
public static final int K_AUX12 = 218;
public static final int K_AUX13 = 219;
public static final int K_AUX14 = 220;
public static final int K_AUX15 = 221;
public static final int K_AUX16 = 222;
public static final int K_AUX17 = 223;
public static final int K_AUX18 = 224;
public static final int K_AUX19 = 225;
public static final int K_AUX20 = 226;
public static final int K_AUX21 = 227;
public static final int K_AUX22 = 228;
public static final int K_AUX23 = 229;
public static final int K_AUX24 = 230;
public static final int K_AUX25 = 231;
public static final int K_AUX26 = 232;
public static final int K_AUX27 = 233;
public static final int K_AUX28 = 234;
public static final int K_AUX29 = 235;
public static final int K_AUX30 = 236;
public static final int K_AUX31 = 237;
public static final int K_AUX32 = 238;
// JACK: Intellimouse(c) Mouse Wheel Support
public static final int K_MWHEELUP = 239;
public static final int K_MWHEELDOWN = 240;
static {
System.loadLibrary("quake");
}
public QuakeLib() {
}
public native boolean init();
/**
* Used to report key events
* @param type KEY_PRESS or KEY_RELEASE
* @param value the key code.
* @return true if the event was handled.
*/
public native boolean event(int type, int value);
/**
* Used to report touch-screen events
* @param eventTime the time the event happened
* @param action the kind of action being performed -- one of either
* {@link #MOTION_DOWN}, {@link #MOTION_MOVE}, {@link #MOTION_UP},
* or {@link #MOTION_CANCEL}
* @param x the x coordinate in pixels
* @param y the y coordinate in pixels
* @param pressure the pressure 0..1, can be more than 1 sometimes
* @param size the size of the area pressed (radius in X or Y)
* @param deviceId the id of the device generating the events
* @return true if the event was handled.
*/
public native boolean motionEvent(long eventTime, int action,
float x, float y, float pressure, float size, int deviceId);
/**
* Used to report trackball events
* @param eventTime the time the event happened
* @param action the kind of action being performed -- one of either
* {@link #MOTION_DOWN}, {@link #MOTION_MOVE}, {@link #MOTION_UP},
* or {@link #MOTION_CANCEL}
* @param x the x motion in pixels
* @param y the y motion in pixels
* @return true if the event was handled.
*/
public native boolean trackballEvent(long eventTime, int action,
float x, float y);
/**
* @param width the current view width
* @param height the current view height
* @return true if quake is in "game" mode, false if it is in "menu" or
* "typing" mode.
*/
public native boolean step(int width, int height);
/**
* Tell Quake to quit. It will write out its config files and so forth.
*/
public native void quit();
}