diff options
| author | 2023-12-10 20:46:49 -0500 | |
|---|---|---|
| committer | 2023-12-12 17:25:37 -0500 | |
| commit | dbddc627d4167e5bb6cc0c63a998c0a7e7890396 (patch) | |
| tree | e851b98f8184259ef21221faa2c8eaf99707cc6c /src/android | |
| parent | settings: Allow CPU Debug and Fastmem to be changed per-game (diff) | |
| download | yuzu-dbddc627d4167e5bb6cc0c63a998c0a7e7890396.tar.gz yuzu-dbddc627d4167e5bb6cc0c63a998c0a7e7890396.tar.xz yuzu-dbddc627d4167e5bb6cc0c63a998c0a7e7890396.zip | |
android: Add JNI initialization information for Game class
Unused in this PR, but will be useful later
Diffstat (limited to 'src/android')
| -rw-r--r-- | src/android/app/src/main/jni/id_cache.cpp | 55 | ||||
| -rw-r--r-- | src/android/app/src/main/jni/id_cache.h | 9 |
2 files changed, 64 insertions, 0 deletions
diff --git a/src/android/app/src/main/jni/id_cache.cpp b/src/android/app/src/main/jni/id_cache.cpp index df8935178..e7a86d3fd 100644 --- a/src/android/app/src/main/jni/id_cache.cpp +++ b/src/android/app/src/main/jni/id_cache.cpp | |||
| @@ -20,6 +20,15 @@ static jmethodID s_disk_cache_load_progress; | |||
| 20 | static jmethodID s_on_emulation_started; | 20 | static jmethodID s_on_emulation_started; |
| 21 | static jmethodID s_on_emulation_stopped; | 21 | static jmethodID s_on_emulation_stopped; |
| 22 | 22 | ||
| 23 | static jclass s_game_class; | ||
| 24 | static jmethodID s_game_constructor; | ||
| 25 | static jfieldID s_game_title_field; | ||
| 26 | static jfieldID s_game_path_field; | ||
| 27 | static jfieldID s_game_program_id_field; | ||
| 28 | static jfieldID s_game_developer_field; | ||
| 29 | static jfieldID s_game_version_field; | ||
| 30 | static jfieldID s_game_is_homebrew_field; | ||
| 31 | |||
| 23 | static jclass s_string_class; | 32 | static jclass s_string_class; |
| 24 | static jclass s_pair_class; | 33 | static jclass s_pair_class; |
| 25 | static jmethodID s_pair_constructor; | 34 | static jmethodID s_pair_constructor; |
| @@ -85,6 +94,38 @@ jmethodID GetOnEmulationStopped() { | |||
| 85 | return s_on_emulation_stopped; | 94 | return s_on_emulation_stopped; |
| 86 | } | 95 | } |
| 87 | 96 | ||
| 97 | jclass GetGameClass() { | ||
| 98 | return s_game_class; | ||
| 99 | } | ||
| 100 | |||
| 101 | jmethodID GetGameConstructor() { | ||
| 102 | return s_game_constructor; | ||
| 103 | } | ||
| 104 | |||
| 105 | jfieldID GetGameTitleField() { | ||
| 106 | return s_game_title_field; | ||
| 107 | } | ||
| 108 | |||
| 109 | jfieldID GetGamePathField() { | ||
| 110 | return s_game_path_field; | ||
| 111 | } | ||
| 112 | |||
| 113 | jfieldID GetGameProgramIdField() { | ||
| 114 | return s_game_program_id_field; | ||
| 115 | } | ||
| 116 | |||
| 117 | jfieldID GetGameDeveloperField() { | ||
| 118 | return s_game_developer_field; | ||
| 119 | } | ||
| 120 | |||
| 121 | jfieldID GetGameVersionField() { | ||
| 122 | return s_game_version_field; | ||
| 123 | } | ||
| 124 | |||
| 125 | jfieldID GetGameIsHomebrewField() { | ||
| 126 | return s_game_is_homebrew_field; | ||
| 127 | } | ||
| 128 | |||
| 88 | jclass GetStringClass() { | 129 | jclass GetStringClass() { |
| 89 | return s_string_class; | 130 | return s_string_class; |
| 90 | } | 131 | } |
| @@ -141,6 +182,19 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) { | |||
| 141 | s_on_emulation_stopped = | 182 | s_on_emulation_stopped = |
| 142 | env->GetStaticMethodID(s_native_library_class, "onEmulationStopped", "(I)V"); | 183 | env->GetStaticMethodID(s_native_library_class, "onEmulationStopped", "(I)V"); |
| 143 | 184 | ||
| 185 | const jclass game_class = env->FindClass("org/yuzu/yuzu_emu/model/Game"); | ||
| 186 | s_game_class = reinterpret_cast<jclass>(env->NewGlobalRef(game_class)); | ||
| 187 | s_game_constructor = env->GetMethodID(game_class, "<init>", | ||
| 188 | "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/" | ||
| 189 | "String;Ljava/lang/String;Ljava/lang/String;Z)V"); | ||
| 190 | s_game_title_field = env->GetFieldID(game_class, "title", "Ljava/lang/String;"); | ||
| 191 | s_game_path_field = env->GetFieldID(game_class, "path", "Ljava/lang/String;"); | ||
| 192 | s_game_program_id_field = env->GetFieldID(game_class, "programId", "Ljava/lang/String;"); | ||
| 193 | s_game_developer_field = env->GetFieldID(game_class, "developer", "Ljava/lang/String;"); | ||
| 194 | s_game_version_field = env->GetFieldID(game_class, "version", "Ljava/lang/String;"); | ||
| 195 | s_game_is_homebrew_field = env->GetFieldID(game_class, "isHomebrew", "Z"); | ||
| 196 | env->DeleteLocalRef(game_class); | ||
| 197 | |||
| 144 | const jclass string_class = env->FindClass("java/lang/String"); | 198 | const jclass string_class = env->FindClass("java/lang/String"); |
| 145 | s_string_class = reinterpret_cast<jclass>(env->NewGlobalRef(string_class)); | 199 | s_string_class = reinterpret_cast<jclass>(env->NewGlobalRef(string_class)); |
| 146 | env->DeleteLocalRef(string_class); | 200 | env->DeleteLocalRef(string_class); |
| @@ -174,6 +228,7 @@ void JNI_OnUnload(JavaVM* vm, void* reserved) { | |||
| 174 | env->DeleteGlobalRef(s_disk_cache_progress_class); | 228 | env->DeleteGlobalRef(s_disk_cache_progress_class); |
| 175 | env->DeleteGlobalRef(s_load_callback_stage_class); | 229 | env->DeleteGlobalRef(s_load_callback_stage_class); |
| 176 | env->DeleteGlobalRef(s_game_dir_class); | 230 | env->DeleteGlobalRef(s_game_dir_class); |
| 231 | env->DeleteGlobalRef(s_game_class); | ||
| 177 | env->DeleteGlobalRef(s_string_class); | 232 | env->DeleteGlobalRef(s_string_class); |
| 178 | env->DeleteGlobalRef(s_pair_class); | 233 | env->DeleteGlobalRef(s_pair_class); |
| 179 | 234 | ||
diff --git a/src/android/app/src/main/jni/id_cache.h b/src/android/app/src/main/jni/id_cache.h index 36233423e..24030be42 100644 --- a/src/android/app/src/main/jni/id_cache.h +++ b/src/android/app/src/main/jni/id_cache.h | |||
| @@ -20,6 +20,15 @@ jmethodID GetDiskCacheLoadProgress(); | |||
| 20 | jmethodID GetOnEmulationStarted(); | 20 | jmethodID GetOnEmulationStarted(); |
| 21 | jmethodID GetOnEmulationStopped(); | 21 | jmethodID GetOnEmulationStopped(); |
| 22 | 22 | ||
| 23 | jclass GetGameClass(); | ||
| 24 | jmethodID GetGameConstructor(); | ||
| 25 | jfieldID GetGameTitleField(); | ||
| 26 | jfieldID GetGamePathField(); | ||
| 27 | jfieldID GetGameProgramIdField(); | ||
| 28 | jfieldID GetGameDeveloperField(); | ||
| 29 | jfieldID GetGameVersionField(); | ||
| 30 | jfieldID GetGameIsHomebrewField(); | ||
| 31 | |||
| 23 | jclass GetStringClass(); | 32 | jclass GetStringClass(); |
| 24 | jclass GetPairClass(); | 33 | jclass GetPairClass(); |
| 25 | jmethodID GetPairConstructor(); | 34 | jmethodID GetPairConstructor(); |