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_INPUTCHANNEL_H 1846b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown#define _ANDROID_VIEW_INPUTCHANNEL_H 1946b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 2046b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown#include "jni.h" 2146b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 229d3b1a424c5c61e24e9659d15fb353026a00d925Jeff Brown#include <input/InputTransport.h> 2346b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 24a95e4cb62f3642cb190d032dbf7dc40d9ecc6973Dianne Hackbornnamespace android { 2546b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 2646b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Browntypedef void (*InputChannelObjDisposeCallback)(JNIEnv* env, jobject inputChannelObj, 2746b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown const sp<InputChannel>& inputChannel, void* data); 2846b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 2946b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brownextern sp<InputChannel> android_view_InputChannel_getInputChannel(JNIEnv* env, 3046b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown jobject inputChannelObj); 3146b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 3246b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown/* Sets a callback that is invoked when the InputChannel DVM object is disposed (or finalized). 3346b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * This is used to automatically dispose of other native objects in the input dispatcher 3446b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown * and input queue to prevent memory leaks. */ 3546b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brownextern void android_view_InputChannel_setDisposeCallback(JNIEnv* env, jobject inputChannelObj, 3646b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown InputChannelObjDisposeCallback callback, void* data = NULL); 3746b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 3846b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown} // namespace android 3946b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown 4046b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown#endif // _ANDROID_OS_INPUTCHANNEL_H 41