14532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown/* 24532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * Copyright (C) 2012 The Android Open Source Project 34532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * 44532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 54532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * you may not use this file except in compliance with the License. 64532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * You may obtain a copy of the License at 74532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * 84532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * http://www.apache.org/licenses/LICENSE-2.0 94532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * 104532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * Unless required by applicable law or agreed to in writing, software 114532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 124532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * See the License for the specific language governing permissions and 144532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown * limitations under the License. 154532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown */ 164532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown 174532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brownpackage android.hardware.input; 184532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown 19fb290df3c9a6f37ec050163029e25844de2f8590RoboErikimport android.hardware.input.InputDeviceIdentifier; 209f25b7fdf216c9ef0bd2322cd223eeaf0d60f77fJeff Brownimport android.hardware.input.KeyboardLayout; 21af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78bJeff Brownimport android.hardware.input.IInputDevicesChangedListener; 2239e5e947447bc611205404ae6a4690656f1aa0f9Michael Wrightimport android.hardware.input.ITabletModeChangedListener; 23d6396d67201fb2b64d13070324bb115c9c23b08aJason Gereckeimport android.hardware.input.TouchCalibration; 24a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brownimport android.os.IBinder; 25ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brownimport android.view.InputDevice; 26ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brownimport android.view.InputEvent; 27d4eaef7f4c5a5d281de4fff272cd33e892e26264Jun Mukaiimport android.view.PointerIcon; 28d5f7ed9fe9dc3590f6ef9cb7470e29e836a95907Michael Wrightimport android.view.inputmethod.InputMethodInfo; 29d5f7ed9fe9dc3590f6ef9cb7470e29e836a95907Michael Wrightimport android.view.inputmethod.InputMethodSubtype; 30ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown 314532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown/** @hide */ 324532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Browninterface IInputManager { 33ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown // Gets input device information. 34ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown InputDevice getInputDevice(int deviceId); 35ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown int[] getInputDeviceIds(); 36ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown 37ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown // Reports whether the hardware supports the given keys; returns true if successful 38ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown boolean hasKeys(int deviceId, int sourceMask, in int[] keyCodes, out boolean[] keyExists); 39ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown 40ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown // Temporarily changes the pointer speed. 41ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown void tryPointerSpeed(int speed); 42ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown 43ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown // Injects an input event into the system. To inject into windows owned by other 44ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown // applications, the caller must have the INJECT_EVENTS permission. 45ac14351e16e1258f1cb54e2bf772b8be004eb2b8Jeff Brown boolean injectInputEvent(in InputEvent ev, int mode); 469f25b7fdf216c9ef0bd2322cd223eeaf0d60f77fJeff Brown 47d6396d67201fb2b64d13070324bb115c9c23b08aJason Gerecke // Calibrate input device position 48d52207423225bcd99e94276e9d0fc2cb5f905602Jason Gerecke TouchCalibration getTouchCalibrationForInputDevice(String inputDeviceDescriptor, int rotation); 49d52207423225bcd99e94276e9d0fc2cb5f905602Jason Gerecke void setTouchCalibrationForInputDevice(String inputDeviceDescriptor, int rotation, 50d6396d67201fb2b64d13070324bb115c9c23b08aJason Gerecke in TouchCalibration calibration); 51d6396d67201fb2b64d13070324bb115c9c23b08aJason Gerecke 529f25b7fdf216c9ef0bd2322cd223eeaf0d60f77fJeff Brown // Keyboard layouts configuration. 539f25b7fdf216c9ef0bd2322cd223eeaf0d60f77fJeff Brown KeyboardLayout[] getKeyboardLayouts(); 540748342d2ed264c01384fbaa4446a702a8824813Michael Wright KeyboardLayout[] getKeyboardLayoutsForInputDevice(in InputDeviceIdentifier identifier); 559f25b7fdf216c9ef0bd2322cd223eeaf0d60f77fJeff Brown KeyboardLayout getKeyboardLayout(String keyboardLayoutDescriptor); 56fb290df3c9a6f37ec050163029e25844de2f8590RoboErik String getCurrentKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier); 57fb290df3c9a6f37ec050163029e25844de2f8590RoboErik void setCurrentKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier, 58cf39bdf3dff5e29447f6ce734b76dc3490385e58Jeff Brown String keyboardLayoutDescriptor); 590748342d2ed264c01384fbaa4446a702a8824813Michael Wright String[] getEnabledKeyboardLayoutsForInputDevice(in InputDeviceIdentifier identifier); 60fb290df3c9a6f37ec050163029e25844de2f8590RoboErik void addKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier, 61cf39bdf3dff5e29447f6ce734b76dc3490385e58Jeff Brown String keyboardLayoutDescriptor); 62fb290df3c9a6f37ec050163029e25844de2f8590RoboErik void removeKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier, 639f25b7fdf216c9ef0bd2322cd223eeaf0d60f77fJeff Brown String keyboardLayoutDescriptor); 64d5f7ed9fe9dc3590f6ef9cb7470e29e836a95907Michael Wright KeyboardLayout getKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier, 65d5f7ed9fe9dc3590f6ef9cb7470e29e836a95907Michael Wright in InputMethodInfo imeInfo, in InputMethodSubtype imeSubtype); 66d5f7ed9fe9dc3590f6ef9cb7470e29e836a95907Michael Wright void setKeyboardLayoutForInputDevice(in InputDeviceIdentifier identifier, 67d5f7ed9fe9dc3590f6ef9cb7470e29e836a95907Michael Wright in InputMethodInfo imeInfo, in InputMethodSubtype imeSubtype, 68d5f7ed9fe9dc3590f6ef9cb7470e29e836a95907Michael Wright String keyboardLayoutDescriptor); 69af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78bJeff Brown 70af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78bJeff Brown // Registers an input devices changed listener. 71af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78bJeff Brown void registerInputDevicesChangedListener(IInputDevicesChangedListener listener); 72a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown 739209c9cd9a6f779d0d9d86f9b2e368df564fa6bbMichael Wright // Queries whether the device is currently in tablet mode 749209c9cd9a6f779d0d9d86f9b2e368df564fa6bbMichael Wright int isInTabletMode(); 7539e5e947447bc611205404ae6a4690656f1aa0f9Michael Wright // Registers a tablet mode change listener 7639e5e947447bc611205404ae6a4690656f1aa0f9Michael Wright void registerTabletModeChangedListener(ITabletModeChangedListener listener); 7739e5e947447bc611205404ae6a4690656f1aa0f9Michael Wright 78a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown // Input device vibrator control. 79a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown void vibrate(int deviceId, in long[] pattern, int repeat, IBinder token); 80a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown void cancelVibrate(int deviceId, IBinder token); 811db5397d88e722b1ab82ccb2b429ceec1179ccd8Jun Mukai 82e051f6f1fdb5e21cbed394d29dfcab5c642e4129Michael Wright void setPointerIconType(int typeId); 83d4eaef7f4c5a5d281de4fff272cd33e892e26264Jun Mukai void setCustomPointerIcon(in PointerIcon icon); 843787de16d24001eeb452e1c711d4290a396e67c9Vladislav Kaznacheev 853787de16d24001eeb452e1c711d4290a396e67c9Vladislav Kaznacheev void requestPointerCapture(IBinder windowToken, boolean enabled); 864532e6158474a263d9d26c2b42240bcf7ce9b172Jeff Brown} 87