input.cpp revision 2c6081ce3593712f30dacd990a97209c791d6ced
1a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn/* 2a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * Copyright (C) 2009 The Android Open Source Project 3a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * 4a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 5a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * you may not use this file except in compliance with the License. 6a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * You may obtain a copy of the License at 7a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * 8a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 9a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * 10a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * Unless required by applicable law or agreed to in writing, software 11a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 12a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * See the License for the specific language governing permissions and 14a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn * limitations under the License. 15a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn */ 16a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 17a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn#define LOG_TAG "input" 18a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn#include <utils/Log.h> 19a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 20a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn#include <android/input.h> 21a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn#include <ui/Input.h> 22a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn#include <ui/InputTransport.h> 23682674154e3fe88f6061245145f934f25f1a2eb8Dianne Hackborn#include <utils/PollLoop.h> 24a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 25d76b67c340d1564abf8d14d976fdaf83bf2b3320Dianne Hackborn#include <android_runtime/android_app_NativeActivity.h> 26d76b67c340d1564abf8d14d976fdaf83bf2b3320Dianne Hackborn 27a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn#include <poll.h> 28a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 29a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackbornusing android::InputEvent; 30a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackbornusing android::KeyEvent; 31a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackbornusing android::MotionEvent; 32a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 332e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AInputEvent_getType(const AInputEvent* event) { 34a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const InputEvent*>(event)->getType(); 35a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 36a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 372e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AInputEvent_getDeviceId(const AInputEvent* event) { 38a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const InputEvent*>(event)->getDeviceId(); 39a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 40a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 41c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownint32_t AInputEvent_getSource(const AInputEvent* event) { 42c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return static_cast<const InputEvent*>(event)->getSource(); 43a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 44a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 452e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AKeyEvent_getAction(const AInputEvent* key_event) { 46a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const KeyEvent*>(key_event)->getAction(); 47a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 48a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 492e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AKeyEvent_getFlags(const AInputEvent* key_event) { 50a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const KeyEvent*>(key_event)->getFlags(); 51a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 52a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 532e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AKeyEvent_getKeyCode(const AInputEvent* key_event) { 54a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const KeyEvent*>(key_event)->getKeyCode(); 55a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 56a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 572e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AKeyEvent_getScanCode(const AInputEvent* key_event) { 58a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const KeyEvent*>(key_event)->getScanCode(); 59a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 60a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 612e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AKeyEvent_getMetaState(const AInputEvent* key_event) { 62a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const KeyEvent*>(key_event)->getMetaState(); 63a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 642e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AKeyEvent_getRepeatCount(const AInputEvent* key_event) { 65a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const KeyEvent*>(key_event)->getRepeatCount(); 66a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 67a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 682e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint64_t AKeyEvent_getDownTime(const AInputEvent* key_event) { 69a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const KeyEvent*>(key_event)->getDownTime(); 70a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 71a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 72c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 732e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint64_t AKeyEvent_getEventTime(const AInputEvent* key_event) { 74a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const KeyEvent*>(key_event)->getEventTime(); 75a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 76a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 772e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AMotionEvent_getAction(const AInputEvent* motion_event) { 78a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getAction(); 79a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 80a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 812e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AMotionEvent_getMetaState(const AInputEvent* motion_event) { 82a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getMetaState(); 83a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 84a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 852e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AMotionEvent_getEdgeFlags(const AInputEvent* motion_event) { 86a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return reinterpret_cast<const MotionEvent*>(motion_event)->getEdgeFlags(); 87a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 88a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 892e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint64_t AMotionEvent_getDownTime(const AInputEvent* motion_event) { 90a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getDownTime(); 91a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 92a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 932e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint64_t AMotionEvent_getEventTime(const AInputEvent* motion_event) { 94a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getEventTime(); 95a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 96a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 972e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getXOffset(const AInputEvent* motion_event) { 98a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getXOffset(); 99a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 100a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1012e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getYOffset(const AInputEvent* motion_event) { 102a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getYOffset(); 103a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 104a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1052e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getXPrecision(const AInputEvent* motion_event) { 106a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getXPrecision(); 107a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 108a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1092e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getYPrecision(const AInputEvent* motion_event) { 110a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getYPrecision(); 111a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 112a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1132e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornsize_t AMotionEvent_getPointerCount(const AInputEvent* motion_event) { 114a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getPointerCount(); 115a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 116a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1172e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AMotionEvent_getPointerId(const AInputEvent* motion_event, size_t pointer_index) { 118a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getPointerId(pointer_index); 119a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 120a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1212e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getRawX(const AInputEvent* motion_event, size_t pointer_index) { 122a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getRawX(pointer_index); 123a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 124a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1252e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getRawY(const AInputEvent* motion_event, size_t pointer_index) { 126a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getRawY(pointer_index); 127a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 128a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1292e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getX(const AInputEvent* motion_event, size_t pointer_index) { 130a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getX(pointer_index); 131a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 132a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1332e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getY(const AInputEvent* motion_event, size_t pointer_index) { 134a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getY(pointer_index); 135a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 136a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1372e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_index) { 138a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getPressure(pointer_index); 139a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 140a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1412e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getSize(const AInputEvent* motion_event, size_t pointer_index) { 142a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getSize(pointer_index); 143a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 144a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 145c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownfloat AMotionEvent_getTouchMajor(const AInputEvent* motion_event, size_t pointer_index) { 146c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return static_cast<const MotionEvent*>(motion_event)->getTouchMajor(pointer_index); 147c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown} 148c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 149c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownfloat AMotionEvent_getTouchMinor(const AInputEvent* motion_event, size_t pointer_index) { 150c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return static_cast<const MotionEvent*>(motion_event)->getTouchMinor(pointer_index); 151c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown} 152c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 153c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownfloat AMotionEvent_getToolMajor(const AInputEvent* motion_event, size_t pointer_index) { 154c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return static_cast<const MotionEvent*>(motion_event)->getToolMajor(pointer_index); 155c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown} 156c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 157c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownfloat AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_index) { 158c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return static_cast<const MotionEvent*>(motion_event)->getToolMinor(pointer_index); 159c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown} 160c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 161c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownfloat AMotionEvent_getOrientation(const AInputEvent* motion_event, size_t pointer_index) { 162c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return static_cast<const MotionEvent*>(motion_event)->getOrientation(pointer_index); 163c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown} 164c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 1652e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornsize_t AMotionEvent_getHistorySize(const AInputEvent* motion_event) { 166a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getHistorySize(); 167a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 168a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1692e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint64_t AMotionEvent_getHistoricalEventTime(AInputEvent* motion_event, 170a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn size_t history_index) { 171a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getHistoricalEventTime( 172a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn history_index); 173a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 174a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1752e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getHistoricalRawX(AInputEvent* motion_event, size_t pointer_index, 176a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn size_t history_index) { 177a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getHistoricalRawX( 178a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn pointer_index, history_index); 179a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 180a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1812e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getHistoricalRawY(AInputEvent* motion_event, size_t pointer_index, 182a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn size_t history_index) { 183a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getHistoricalRawY( 184a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn pointer_index, history_index); 185a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 186a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1872e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getHistoricalX(AInputEvent* motion_event, size_t pointer_index, 188a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn size_t history_index) { 189a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getHistoricalX( 190a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn pointer_index, history_index); 191a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 192a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1932e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getHistoricalY(AInputEvent* motion_event, size_t pointer_index, 194a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn size_t history_index) { 195a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getHistoricalY( 196a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn pointer_index, history_index); 197a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 198a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 1992e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getHistoricalPressure(AInputEvent* motion_event, size_t pointer_index, 200a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn size_t history_index) { 201a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getHistoricalPressure( 202a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn pointer_index, history_index); 203a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 204a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 2052e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornfloat AMotionEvent_getHistoricalSize(AInputEvent* motion_event, size_t pointer_index, 206a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn size_t history_index) { 207a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn return static_cast<const MotionEvent*>(motion_event)->getHistoricalSize( 208a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn pointer_index, history_index); 209a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 210a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 211c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownfloat AMotionEvent_getHistoricalTouchMajor(AInputEvent* motion_event, size_t pointer_index, 212c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown size_t history_index) { 213c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return static_cast<const MotionEvent*>(motion_event)->getHistoricalTouchMajor( 214c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown pointer_index, history_index); 215c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown} 216c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 217c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownfloat AMotionEvent_getHistoricalTouchMinor(AInputEvent* motion_event, size_t pointer_index, 218c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown size_t history_index) { 219c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return static_cast<const MotionEvent*>(motion_event)->getHistoricalTouchMinor( 220c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown pointer_index, history_index); 221c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown} 222c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 223c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownfloat AMotionEvent_getHistoricalToolMajor(AInputEvent* motion_event, size_t pointer_index, 224c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown size_t history_index) { 225c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return static_cast<const MotionEvent*>(motion_event)->getHistoricalToolMajor( 226c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown pointer_index, history_index); 227c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown} 228c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 229c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownfloat AMotionEvent_getHistoricalToolMinor(AInputEvent* motion_event, size_t pointer_index, 230c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown size_t history_index) { 231c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return static_cast<const MotionEvent*>(motion_event)->getHistoricalToolMinor( 232c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown pointer_index, history_index); 233c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown} 234c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 235c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brownfloat AMotionEvent_getHistoricalOrientation(AInputEvent* motion_event, size_t pointer_index, 236c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown size_t history_index) { 237c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown return static_cast<const MotionEvent*>(motion_event)->getHistoricalOrientation( 238c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown pointer_index, history_index); 239c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown} 240c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 241c5ed5910c9ef066cec6a13bbb404ec57b1e92637Jeff Brown 242682674154e3fe88f6061245145f934f25f1a2eb8Dianne Hackbornvoid AInputQueue_attachLooper(AInputQueue* queue, ALooper* looper, 24385448bbecd4e0909eecfab15b7c3605f114d0427Dianne Hackborn ALooper_callbackFunc* callback, void* data) { 244d76b67c340d1564abf8d14d976fdaf83bf2b3320Dianne Hackborn queue->attachLooper(looper, callback, data); 245682674154e3fe88f6061245145f934f25f1a2eb8Dianne Hackborn} 246682674154e3fe88f6061245145f934f25f1a2eb8Dianne Hackborn 247682674154e3fe88f6061245145f934f25f1a2eb8Dianne Hackbornvoid AInputQueue_detachLooper(AInputQueue* queue) { 248d76b67c340d1564abf8d14d976fdaf83bf2b3320Dianne Hackborn queue->detachLooper(); 249a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 250a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 2512c6081ce3593712f30dacd990a97209c791d6cedDianne Hackbornint32_t AInputQueue_hasEvents(AInputQueue* queue) { 252d76b67c340d1564abf8d14d976fdaf83bf2b3320Dianne Hackborn return queue->hasEvents(); 253a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 254a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn 2552e9f93e8db509d5236229dc8540e0904c5dbb9f5Dianne Hackbornint32_t AInputQueue_getEvent(AInputQueue* queue, AInputEvent** outEvent) { 256d76b67c340d1564abf8d14d976fdaf83bf2b3320Dianne Hackborn return queue->getEvent(outEvent); 257d76b67c340d1564abf8d14d976fdaf83bf2b3320Dianne Hackborn} 258d76b67c340d1564abf8d14d976fdaf83bf2b3320Dianne Hackborn 2592c6081ce3593712f30dacd990a97209c791d6cedDianne Hackbornint32_t AInputQueue_preDispatchEvent(AInputQueue* queue, AInputEvent* event) { 2602c6081ce3593712f30dacd990a97209c791d6cedDianne Hackborn return queue->preDispatchEvent(event) ? 1 : 0; 2612c6081ce3593712f30dacd990a97209c791d6cedDianne Hackborn} 2622c6081ce3593712f30dacd990a97209c791d6cedDianne Hackborn 263d76b67c340d1564abf8d14d976fdaf83bf2b3320Dianne Hackbornvoid AInputQueue_finishEvent(AInputQueue* queue, AInputEvent* event, int handled) { 264d76b67c340d1564abf8d14d976fdaf83bf2b3320Dianne Hackborn queue->finishEvent(event, handled != 0); 265a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackborn} 266