diff options
Diffstat (limited to 'Source/Android/jni/AndroidCommon/IDCache.cpp')
| -rw-r--r-- | Source/Android/jni/AndroidCommon/IDCache.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/Source/Android/jni/AndroidCommon/IDCache.cpp b/Source/Android/jni/AndroidCommon/IDCache.cpp index 33a679bf55..ed382745c0 100644 --- a/Source/Android/jni/AndroidCommon/IDCache.cpp +++ b/Source/Android/jni/AndroidCommon/IDCache.cpp @@ -113,6 +113,9 @@ static jclass s_core_device_control_class; static jfieldID s_core_device_control_pointer; static jmethodID s_core_device_control_constructor; +static jclass s_input_detector_class; +static jfieldID s_input_detector_pointer; + static jmethodID s_runnable_run; namespace IDCache @@ -525,6 +528,16 @@ jmethodID GetCoreDeviceControlConstructor() return s_core_device_control_constructor; } +jclass GetInputDetectorClass() +{ + return s_input_detector_class; +} + +jfieldID GetInputDetectorPointer() +{ + return s_input_detector_pointer; +} + jmethodID GetRunnableRun() { return s_runnable_run; @@ -746,6 +759,12 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) "(Lorg/dolphinemu/dolphinemu/features/input/model/CoreDevice;J)V"); env->DeleteLocalRef(core_device_control_class); + const jclass input_detector_class = + env->FindClass("org/dolphinemu/dolphinemu/features/input/model/InputDetector"); + s_input_detector_class = reinterpret_cast<jclass>(env->NewGlobalRef(input_detector_class)); + s_input_detector_pointer = env->GetFieldID(input_detector_class, "pointer", "J"); + env->DeleteLocalRef(input_detector_class); + const jclass runnable_class = env->FindClass("java/lang/Runnable"); s_runnable_run = env->GetMethodID(runnable_class, "run", "()V"); env->DeleteLocalRef(runnable_class); @@ -779,10 +798,11 @@ JNIEXPORT void JNI_OnUnload(JavaVM* vm, void* reserved) env->DeleteGlobalRef(s_control_class); env->DeleteGlobalRef(s_control_group_class); env->DeleteGlobalRef(s_control_reference_class); + env->DeleteGlobalRef(s_control_group_container_class); env->DeleteGlobalRef(s_emulated_controller_class); env->DeleteGlobalRef(s_numeric_setting_class); env->DeleteGlobalRef(s_core_device_class); env->DeleteGlobalRef(s_core_device_control_class); - env->DeleteGlobalRef(s_control_group_container_class); + env->DeleteGlobalRef(s_input_detector_class); } } |
