From 14721eb149414f3b45b2d549c7b9cbf76e90e90f Mon Sep 17 00:00:00 2001 From: zilmar Date: Sun, 2 Oct 2016 07:26:13 +1100 Subject: [PATCH] [Android] Save recent rom on running, not load, add access to other native functions --- Source/Android/Bridge/jniBridge.cpp | 46 ++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/Source/Android/Bridge/jniBridge.cpp b/Source/Android/Bridge/jniBridge.cpp index af1a30700..85f42ed7e 100644 --- a/Source/Android/Bridge/jniBridge.cpp +++ b/Source/Android/Bridge/jniBridge.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -143,21 +144,20 @@ void AddRecentRom(const char * ImagePath) WriteTrace(TraceUserInterface, TraceDebug, "Done"); } -void GameLoaded(void * /*NotUsed*/) -{ - stdstr FileLoc = g_Settings->LoadStringVal(Game_File); - if (FileLoc.length() > 0) - { - AddRecentRom(FileLoc.c_str()); - } -} - void GameCpuRunning(void * /*NotUsed*/) { WriteTrace(TraceUserInterface, TraceDebug, "Start"); bool Running = g_Settings->LoadBool(GameRunning_CPU_Running); WriteTrace(TraceUserInterface, TraceDebug, Running ? "Game Started" : "Game Stopped"); - if (!Running) + if (Running) + { + stdstr FileLoc = g_Settings->LoadStringVal(Game_File); + if (FileLoc.length() > 0) + { + AddRecentRom(FileLoc.c_str()); + } + } + else { JNIEnv *env = Android_JNI_GetEnv(); if (env != NULL) @@ -231,7 +231,6 @@ EXPORT jboolean CALL Java_emu_project64_jni_NativeExports_appInit(JNIEnv* env, j RegisterUISettings(); g_Settings->RegisterChangeCB(GameRunning_CPU_Running, NULL, (CSettings::SettingChangedFunc)GameCpuRunning); - g_Settings->RegisterChangeCB(Game_File, NULL, (CSettings::SettingChangedFunc)GameLoaded); } else { @@ -347,6 +346,13 @@ EXPORT void CALL Java_emu_project64_jni_NativeExports_ExternalEvent(JNIEnv* env, WriteTrace(TraceUserInterface, TraceDebug, "Done"); } +EXPORT void CALL Java_emu_project64_jni_NativeExports_ResetApplicationSettings(JNIEnv* env, jclass cls) +{ + WriteTrace(TraceUserInterface, TraceDebug, "start"); + CSettingTypeApplication::ResetAll(); + WriteTrace(TraceUserInterface, TraceDebug, "Done"); +} + EXPORT void CALL Java_emu_project64_jni_NativeExports_onSurfaceCreated(JNIEnv * env, jclass cls) { WriteTrace(TraceUserInterface, TraceDebug, "Start"); @@ -393,12 +399,25 @@ EXPORT void CALL Java_emu_project64_jni_NativeExports_onSurfaceChanged(JNIEnv * EXPORT void CALL Java_emu_project64_jni_NativeExports_UISettingsSaveBool(JNIEnv* env, jclass cls, jint Type, jboolean Value) { + WriteTrace(TraceUserInterface, TraceDebug, "Saving UI %d value: %s",Type,Value ? "true" : "false"); UISettingsSaveBool((UISettingID)Type, Value); + WriteTrace(TraceUserInterface, TraceDebug, "Saved"); } EXPORT void CALL Java_emu_project64_jni_NativeExports_UISettingsSaveDword(JNIEnv* env, jclass cls, jint Type, jint Value) { + WriteTrace(TraceUserInterface, TraceDebug, "Saving UI %d value: %X",Type,Value); UISettingsSaveDword((UISettingID)Type, Value); + WriteTrace(TraceUserInterface, TraceDebug, "Saved"); +} + +EXPORT void CALL Java_emu_project64_jni_NativeExports_UISettingsSaveString(JNIEnv* env, jclass cls, jint Type, jstring Buffer) +{ + const char *value = env->GetStringUTFChars(Buffer, 0); + WriteTrace(TraceUserInterface, TraceDebug, "Saving UI %d value: %s",Type,value); + UISettingsSaveString((UISettingID)Type, value); + WriteTrace(TraceUserInterface, TraceDebug, "Saved"); + env->ReleaseStringUTFChars(Buffer, value); } EXPORT jboolean CALL Java_emu_project64_jni_NativeExports_UISettingsLoadBool(JNIEnv* env, jclass cls, jint Type) @@ -411,6 +430,11 @@ EXPORT int CALL Java_emu_project64_jni_NativeExports_UISettingsLoadDword(JNIEnv* return UISettingsLoadDword((UISettingID)Type); } +EXPORT jstring CALL Java_emu_project64_jni_NativeExports_UISettingsLoadString(JNIEnv* env, jclass cls, int Type) +{ + return env->NewStringUTF(UISettingsLoadStringVal((UISettingID)Type).c_str()); +} + EXPORT jstring CALL Java_emu_project64_jni_NativeExports_UISettingsLoadStringIndex(JNIEnv* env, jclass cls, jint Type, jint Index) { return env->NewStringUTF(UISettingsLoadStringIndex((UISettingID)Type, Index).c_str());