summaryrefslogtreecommitdiff
path: root/src/android
diff options
context:
space:
mode:
authorGravatar t8952023-12-10 20:46:49 -0500
committerGravatar t8952023-12-12 17:25:37 -0500
commitdbddc627d4167e5bb6cc0c63a998c0a7e7890396 (patch)
treee851b98f8184259ef21221faa2c8eaf99707cc6c /src/android
parentsettings: Allow CPU Debug and Fastmem to be changed per-game (diff)
downloadyuzu-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.cpp55
-rw-r--r--src/android/app/src/main/jni/id_cache.h9
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;
20static jmethodID s_on_emulation_started; 20static jmethodID s_on_emulation_started;
21static jmethodID s_on_emulation_stopped; 21static jmethodID s_on_emulation_stopped;
22 22
23static jclass s_game_class;
24static jmethodID s_game_constructor;
25static jfieldID s_game_title_field;
26static jfieldID s_game_path_field;
27static jfieldID s_game_program_id_field;
28static jfieldID s_game_developer_field;
29static jfieldID s_game_version_field;
30static jfieldID s_game_is_homebrew_field;
31
23static jclass s_string_class; 32static jclass s_string_class;
24static jclass s_pair_class; 33static jclass s_pair_class;
25static jmethodID s_pair_constructor; 34static 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
97jclass GetGameClass() {
98 return s_game_class;
99}
100
101jmethodID GetGameConstructor() {
102 return s_game_constructor;
103}
104
105jfieldID GetGameTitleField() {
106 return s_game_title_field;
107}
108
109jfieldID GetGamePathField() {
110 return s_game_path_field;
111}
112
113jfieldID GetGameProgramIdField() {
114 return s_game_program_id_field;
115}
116
117jfieldID GetGameDeveloperField() {
118 return s_game_developer_field;
119}
120
121jfieldID GetGameVersionField() {
122 return s_game_version_field;
123}
124
125jfieldID GetGameIsHomebrewField() {
126 return s_game_is_homebrew_field;
127}
128
88jclass GetStringClass() { 129jclass 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();
20jmethodID GetOnEmulationStarted(); 20jmethodID GetOnEmulationStarted();
21jmethodID GetOnEmulationStopped(); 21jmethodID GetOnEmulationStopped();
22 22
23jclass GetGameClass();
24jmethodID GetGameConstructor();
25jfieldID GetGameTitleField();
26jfieldID GetGamePathField();
27jfieldID GetGameProgramIdField();
28jfieldID GetGameDeveloperField();
29jfieldID GetGameVersionField();
30jfieldID GetGameIsHomebrewField();
31
23jclass GetStringClass(); 32jclass GetStringClass();
24jclass GetPairClass(); 33jclass GetPairClass();
25jmethodID GetPairConstructor(); 34jmethodID GetPairConstructor();