InputDevice.java revision c5ed5910c9ef066cec6a13bbb404ec57b1e92637
1c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown/* 2c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Copyright (C) 2010 The Android Open Source Project 3c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 4c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 5c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * you may not use this file except in compliance with the License. 6c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * You may obtain a copy of the License at 7c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 8c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * http://www.apache.org/licenses/LICENSE-2.0 9c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 10c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Unless required by applicable law or agreed to in writing, software 11c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 12c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * See the License for the specific language governing permissions and 14c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * limitations under the License. 15c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 16c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 17c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownpackage android.view; 18c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 19c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown/** 20c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Describes the capabilities of a particular input device. 21c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * <p> 22c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Each input device may support multiple classes of input. For example, a multifunction 23c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * keyboard may compose the capabilities of a standard keyboard together with a track pad mouse 24c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * or other pointing device. 25c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * </p><p> 26c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Some input devices present multiple distinguishable sources of input. For example, a 27c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * game pad may have two analog joysticks, a directional pad and a full complement of buttons. 28c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Applications can query the framework about the characteristics of each distinct source. 29c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * </p><p> 30c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * As a further wrinkle, different kinds of input sources uses different coordinate systems 31c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * to describe motion events. Refer to the comments on the input source constants for 32c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * the appropriate interpretation. 33c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 34c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownpublic final class InputDevice { 35c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown private int mId; 36c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown private String mName; 37c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown private int mSources; 38c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 39c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 40c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * A mask for input source classes. 41c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 42c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Each distinct input source constant has one or more input source class bits set to 43c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * specify the desired interpretation for its input events. 44c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 45c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_CLASS_MASK = 0x000000ff; 46c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 47c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 48c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source has buttons or keys. 49c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Examples: {@link #SOURCE_KEYBOARD}, {@link #SOURCE_GAMEPAD}, {@link #SOURCE_DPAD}. 50c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 51c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * A {@link KeyEvent} should be interpreted as a button or key press. 52c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 53c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Use {@link #hasKeyCode} to query whether the device supports a particular button or key. 54c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 55c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_CLASS_BUTTON = 0x00000001; 56c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 57c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 58c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a pointing device associated with a display. 59c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Examples: {@link #SOURCE_TOUCHSCREEN}, {@link #SOURCE_MOUSE}. 60c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 61c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * A {@link MotionEvent} should be interpreted as absolute coordinates in 62c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * display units according to the {@link View} hierarchy. Pointer down/up indicated when 63c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * the finger touches the display or when the selection button is pressed/released. 64c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 65c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Use {@link #getMotionRange} to query the range of the pointing device. Some devices permit 66c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * touches outside the display area so the effective range may be somewhat smaller or larger 67c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * than the actual display size. 68c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 69c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_CLASS_POINTER = 0x00000002; 70c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 71c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 72c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a trackball navigation device. 73c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Examples: {@link #SOURCE_TRACKBALL}. 74c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 75c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * A {@link MotionEvent} should be interpreted as relative movements in device-specific 76c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * units used for navigation purposes. Pointer down/up indicates when the selection button 77c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * is pressed/released. 78c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 79c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Use {@link #getMotionRange} to query the range of motion. 80c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 81c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_CLASS_TRACKBALL = 0x00000004; 82c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 83c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 84c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is an absolute positioning device not associated with a display 85c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * (unlike {@link #SOURCE_CLASS_POINTER}). 86c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 87c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * A {@link MotionEvent} should be interpreted as absolute coordinates in 88c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * device-specific surface units. 89c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 90c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Use {@link #getMotionRange} to query the range of positions. 91c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 92c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_CLASS_POSITION = 0x00000008; 93c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 94c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 95c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a joystick. 96c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 97c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * A {@link KeyEvent} should be interpreted as a joystick button press. 98c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 99c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * A {@link MotionEvent} should be interpreted in absolute coordinates as a joystick 100c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * position in normalized device-specific units nominally between -1.0 and 1.0. 101c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 102c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Use {@link #getMotionRange} to query the range and precision of motion. 103c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 104c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_CLASS_JOYSTICK = 0x00000010; 105c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 106c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 107c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is unknown. 108c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 109c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_UNKNOWN = 0x00000000; 110c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 111c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 112c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a keyboard. 113c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 114c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @see #SOURCE_CLASS_BUTTON 115c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 116c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_KEYBOARD = 0x00000100 | SOURCE_CLASS_BUTTON; 117c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 118c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 119c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a DPad. 120c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 121c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @see #SOURCE_CLASS_BUTTON 122c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 123c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_DPAD = 0x00000200 | SOURCE_CLASS_BUTTON; 124c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 125c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 126c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a gamepad. 127c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 128c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @see #SOURCE_CLASS_BUTTON 129c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 130c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_GAMEPAD = 0x00000400 | SOURCE_CLASS_BUTTON; 131c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 132c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 133c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a touch screen pointing device. 134c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 135c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @see #SOURCE_CLASS_POINTER 136c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 137c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_TOUCHSCREEN = 0x00001000 | SOURCE_CLASS_POINTER; 138c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 139c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 140c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a mouse pointing device. 141c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * This code is also used for other mouse-like pointing devices such as trackpads 142c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * and trackpoints. 143c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 144c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @see #SOURCE_CLASS_POINTER 145c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 146c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_MOUSE = 0x00002000 | SOURCE_CLASS_POINTER; 147c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 148c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 149c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a trackball. 150c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 151c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @see #SOURCE_CLASS_TRACKBALL 152c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 153c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_TRACKBALL = 0x00010000 | SOURCE_CLASS_TRACKBALL; 154c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 155c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 156c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a touch pad or digitizer tablet that is not 157c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * associated with a display (unlike {@link SOURCE_TOUCHSCREEN}). 158c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 159c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @see #SOURCE_CLASS_POSITION 160c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 161c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_TOUCHPAD = 0x00100000 | SOURCE_CLASS_POSITION; 162c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 163c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 164c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a joystick mounted on the left or is a standalone joystick. 165c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 166c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @see #SOURCE_CLASS_JOYSTICK 167c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 168c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_JOYSTICK_LEFT = 0x01000000 | SOURCE_CLASS_JOYSTICK; 169c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 170c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 171c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * The input source is a joystick mounted on the right. 172c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * 173c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @see #SOURCE_CLASS_JOYSTICK 174c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 175c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int SOURCE_JOYSTICK_RIGHT = 0x02000000 | SOURCE_CLASS_JOYSTICK; 176c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 177c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /* 178c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int MOTION_RANGE_X = 0; 179c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int MOTION_RANGE_Y = 1; 180c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int MOTION_RANGE_PRESSURE = 2; 181c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int MOTION_RANGE_SIZE = 3; 182c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int MOTION_RANGE_TOUCH_MAJOR = 4; 183c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int MOTION_RANGE_TOUCH_MINOR = 5; 184c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int MOTION_RANGE_TOOL_MAJOR = 6; 185c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int MOTION_RANGE_TOOL_MINOR = 7; 186c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final int MOTION_RANGE_ORIENTATION = 8; 187c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 188c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static InputDevice getDevice(int id) { 189c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown } 190c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 191c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 192c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 193c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Gets the name of this input device. 194c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @return The input device name. 195c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 196c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public String getName() { 197c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return mName; 198c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown } 199c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 200c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 201c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Gets the input sources supported by this input device as a combined bitfield. 202c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @return The supported input sources. 203c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 204c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public int getSources() { 205c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return mSources; 206c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown } 207c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 208c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /** 209c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * Gets the key character map associated with this input device. 210c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown * @return The key character map. 211c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown */ 212c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public KeyCharacterMap getKeyCharacterMap() { 213c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return KeyCharacterMap.load(mId); 214c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown } 215c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 216c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown /* 217c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 218c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public MotionRange getMotionRange(int range) { 219c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown } 220c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 221c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public boolean hasKeyCode(int keyCode) { 222c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown } 223c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 224c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public static final class MotionRange { 225c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public float min; 226c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public float max; 227c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public float range; 228c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public float flat; 229c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown public float fuzz; 230c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown }*/ 231c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown} 232