| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This file is of the same format as file that generated by |
| // base/android/jni_generator/jni_generator.py |
| // For |
| // com/google/vr/internal/controller/NativeCallbacks |
| |
| // Local modification includes: |
| // 1. Remove all implementaiton, only keep definition. |
| // 2. Use absolute path instead of relative path. |
| // 3. Removed all helper functions such as: Create. |
| // 4. Removed external functions that don't have implementation in shim file. |
| // 5. Replace all nativeHandle to handle. This is because jni_generator.py |
| // require jni functions start with "native" prefix. So we add the prefix to |
| // generate the file. But the real jni functions in the static library |
| // doesn't have the prefix. |
| // 6. Added function RegisterNativeCallbacksNatives at the end of this file. |
| |
| #ifndef com_google_vr_internal_controller_NativeCallbacks_JNI |
| #define com_google_vr_internal_controller_NativeCallbacks_JNI |
| |
| #include "base/android/jni_android.h" |
| // ---------------------------------------------------------------------------- |
| // Native JNI methods |
| // ---------------------------------------------------------------------------- |
| #include <jni.h> |
| #include <atomic> |
| #include <type_traits> |
| |
| #include "base/android/jni_generator/jni_generator_helper.h" |
| #include "base/android/jni_int_wrapper.h" |
| |
| // Step 1: forward declarations. |
| namespace { |
| const char kNativeCallbacksClassPath[] = |
| "com/google/vr/internal/controller/NativeCallbacks"; |
| // Leaking this jclass as we cannot use LazyInstance from some threads. |
| std::atomic<jclass> g_NativeCallbacks_clazz __attribute__((unused)) (nullptr); |
| #define NativeCallbacks_clazz(env) \ |
| base::android::LazyGetClass(env, kNativeCallbacksClassPath, \ |
| &g_NativeCallbacks_clazz) |
| |
| } // namespace |
| |
| namespace NativeCallbacks { |
| // Step 2: method stubs. |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleStateChanged( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData, |
| jint controllerIndex, |
| jint newState); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleControllerRecentered( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData, |
| jint controllerIndex, |
| jlong timestampNanos, |
| jfloat qx, |
| jfloat qy, |
| jfloat qz, |
| jfloat qw); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleTouchEvent( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData, |
| jint controllerIndex, |
| jlong timestampNanos, |
| jint action, |
| jfloat x, |
| jfloat y); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleOrientationEvent( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData, |
| jint controllerIndex, |
| jlong timestampNanos, |
| jfloat qx, |
| jfloat qy, |
| jfloat qz, |
| jfloat qw); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleButtonEvent( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData, |
| jint controllerIndex, |
| jlong timestampNanos, |
| jint buttonCode, |
| jboolean down); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleAccelEvent( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData, |
| jint controllerIndex, |
| jlong timestampNanos, |
| jfloat x, |
| jfloat y, |
| jfloat z); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleGyroEvent( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData, |
| jint controllerIndex, |
| jlong timestampNanos, |
| jfloat x, |
| jfloat y, |
| jfloat z); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handlePositionEvent( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData, |
| jint controllerIndex, |
| jlong timestampNanos, |
| jfloat x, |
| jfloat y, |
| jfloat z); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleBatteryEvent( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData, |
| jint controllerIndex, |
| jlong timestampNanos, |
| jboolean isCharging, |
| jint batteryLevelBucket); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleServiceInitFailed( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData, |
| jint failureReason); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleServiceFailed( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleServiceUnavailable( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleServiceConnected( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData, |
| jint flags); |
| |
| JNI_GENERATOR_EXPORT void |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleServiceDisconnected( |
| JNIEnv* env, |
| jobject jcaller, |
| jlong userData); |
| |
| // Step 3: RegisterNatives. |
| |
| static const JNINativeMethod kMethodsNativeCallbacks[] = { |
| {"handleStateChanged", |
| "(" |
| "J" |
| "I" |
| "I" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleStateChanged)}, |
| {"handleControllerRecentered", |
| "(" |
| "J" |
| "I" |
| "J" |
| "F" |
| "F" |
| "F" |
| "F" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleControllerRecentered)}, |
| {"handleTouchEvent", |
| "(" |
| "J" |
| "I" |
| "J" |
| "I" |
| "F" |
| "F" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleTouchEvent)}, |
| {"handleOrientationEvent", |
| "(" |
| "J" |
| "I" |
| "J" |
| "F" |
| "F" |
| "F" |
| "F" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleOrientationEvent)}, |
| {"handleButtonEvent", |
| "(" |
| "J" |
| "I" |
| "J" |
| "I" |
| "Z" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleButtonEvent)}, |
| {"handleAccelEvent", |
| "(" |
| "J" |
| "I" |
| "J" |
| "F" |
| "F" |
| "F" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleAccelEvent)}, |
| {"handleGyroEvent", |
| "(" |
| "J" |
| "I" |
| "J" |
| "F" |
| "F" |
| "F" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleGyroEvent)}, |
| {"handlePositionEvent", |
| "(" |
| "J" |
| "I" |
| "J" |
| "F" |
| "F" |
| "F" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handlePositionEvent)}, |
| {"handleBatteryEvent", |
| "(" |
| "J" |
| "I" |
| "J" |
| "Z" |
| "I" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleBatteryEvent)}, |
| {"handleServiceInitFailed", |
| "(" |
| "J" |
| "I" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleServiceInitFailed)}, |
| {"handleServiceFailed", |
| "(" |
| "J" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleServiceFailed)}, |
| {"handleServiceUnavailable", |
| "(" |
| "J" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleServiceUnavailable)}, |
| {"handleServiceConnected", |
| "(" |
| "J" |
| "I" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleServiceConnected)}, |
| {"handleServiceDisconnected", |
| "(" |
| "J" |
| ")" |
| "V", |
| reinterpret_cast<void*>( |
| Java_com_google_vr_internal_controller_NativeCallbacks_handleServiceDisconnected)}, |
| }; |
| |
| static bool RegisterNativesImpl(JNIEnv* env) { |
| if (base::android::IsSelectiveJniRegistrationEnabled(env)) |
| return true; |
| |
| const int kMethodsNativeCallbacksSize = |
| std::extent<decltype(kMethodsNativeCallbacks)>(); |
| |
| if (env->RegisterNatives(NativeCallbacks_clazz(env), kMethodsNativeCallbacks, |
| kMethodsNativeCallbacksSize) < 0) { |
| jni_generator::HandleRegistrationError(env, NativeCallbacks_clazz(env), |
| __FILE__); |
| return false; |
| } |
| |
| return true; |
| } |
| |
| static bool RegisterNativeCallbacksNatives(JNIEnv* env) { |
| return RegisterNativesImpl(env); |
| } |
| |
| } // namespace NativeCallbacks |
| |
| #endif // com_google_vr_internal_controller_NativeCallbacks_JNI |