146b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown/* 246b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * Copyright (C) 2010 The Android Open Source Project 346b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * 446b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 546b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * you may not use this file except in compliance with the License. 646b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * You may obtain a copy of the License at 746b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * 846b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * http://www.apache.org/licenses/LICENSE-2.0 946b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * 1046b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * Unless required by applicable law or agreed to in writing, software 1146b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 1246b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1346b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * See the License for the specific language governing permissions and 1446b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * limitations under the License. 1546b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown */ 1646b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 1746b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown#ifndef _ANDROID_VIEW_KEYEVENT_H 1846b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown#define _ANDROID_VIEW_KEYEVENT_H 1946b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 2046b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown#include "jni.h" 211f2451007c660091b7b090c1ea332f9044515d2dJeff Brown#include <utils/Errors.h> 221f2451007c660091b7b090c1ea332f9044515d2dJeff Brown#include <utils/threads.h> 2346b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 2446b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brownnamespace android { 2546b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 2646b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brownclass KeyEvent; 2746b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 281f2451007c660091b7b090c1ea332f9044515d2dJeff Brown/* Obtains an instance of a DVM KeyEvent object as a copy of a native KeyEvent instance. 291f2451007c660091b7b090c1ea332f9044515d2dJeff Brown * Returns NULL on error. */ 3046b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brownextern jobject android_view_KeyEvent_fromNative(JNIEnv* env, const KeyEvent* event); 3146b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 321f2451007c660091b7b090c1ea332f9044515d2dJeff Brown/* Copies the contents of a DVM KeyEvent object to a native KeyEvent instance. 331f2451007c660091b7b090c1ea332f9044515d2dJeff Brown * Returns non-zero on error. */ 341f2451007c660091b7b090c1ea332f9044515d2dJeff Brownextern status_t android_view_KeyEvent_toNative(JNIEnv* env, jobject eventObj, 3546b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown KeyEvent* event); 3646b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 371f2451007c660091b7b090c1ea332f9044515d2dJeff Brown/* Recycles a DVM KeyEvent object. 381f2451007c660091b7b090c1ea332f9044515d2dJeff Brown * Key events should only be recycled if they are owned by the system since user 391f2451007c660091b7b090c1ea332f9044515d2dJeff Brown * code expects them to be essentially immutable, "tracking" notwithstanding. 401f2451007c660091b7b090c1ea332f9044515d2dJeff Brown * Returns non-zero on error. */ 411f2451007c660091b7b090c1ea332f9044515d2dJeff Brownextern status_t android_view_KeyEvent_recycle(JNIEnv* env, jobject eventObj); 421f2451007c660091b7b090c1ea332f9044515d2dJeff Brown 4346b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown} // namespace android 4446b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 4546b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown#endif // _ANDROID_OS_KEYEVENT_H 46