summaryrefslogtreecommitdiff
path: root/Source/Android/jni/MainAndroid.cpp
diff options
context:
space:
mode:
authorGreg Wicks <gwicks95@gmail.com>2018-02-16 13:47:52 -0500
committerGreg Wicks <gwicks95@gmail.com>2018-02-16 13:47:52 -0500
commite19922c5de083e718c15c7b27f6780a4e5a740ed (patch)
tree7a89a52cebdaeeb6ab567cae09b7463ef214da80 /Source/Android/jni/MainAndroid.cpp
parentf3826b4e9224b61119c72efcda808f7c07e58a72 (diff)
Android: Implement game-specific settings overrides UI
Diffstat (limited to 'Source/Android/jni/MainAndroid.cpp')
-rw-r--r--Source/Android/jni/MainAndroid.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/Source/Android/jni/MainAndroid.cpp b/Source/Android/jni/MainAndroid.cpp
index ad0c0cb7c6..404ce93e3a 100644
--- a/Source/Android/jni/MainAndroid.cpp
+++ b/Source/Android/jni/MainAndroid.cpp
@@ -30,6 +30,7 @@
#include "Core/Boot/Boot.h"
#include "Core/BootManager.h"
+#include "Core/ConfigLoaders/GameConfigLoader.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h"
#include "Core/HW/DVD/DVDInterface.h"
@@ -640,6 +641,57 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_eglBindAPI(J
eglBindAPI(api);
}
+JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_InitGameIni(JNIEnv* env,
+ jobject obj,
+ jstring jGameID)
+{
+ // Initialize an empty INI file
+ IniFile ini;
+ std::string gameid = GetJString(env, jGameID);
+
+ __android_log_print(ANDROID_LOG_DEBUG, "InitGameIni", "Initializing base game config file");
+ ini.Save(File::GetUserPath(D_GAMESETTINGS_IDX) + gameid + ".ini");
+}
+
+JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetUserSetting(
+ JNIEnv* env, jobject obj, jstring jGameID, jstring jSection, jstring jKey)
+{
+ IniFile ini;
+ std::string gameid = GetJString(env, jGameID);
+ std::string section = GetJString(env, jSection);
+ std::string key = GetJString(env, jKey);
+
+ ini = SConfig::GetInstance().LoadGameIni(gameid, 0);
+ std::string value;
+
+ ini.GetOrCreateSection(section)->Get(key, &value, "-1");
+
+ return env->NewStringUTF(value.c_str());
+}
+
+JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SetUserSetting(
+ JNIEnv* env, jobject obj, jstring jGameID, jstring jSection, jstring jKey, jstring jValue)
+{
+ IniFile ini;
+ std::string gameid = GetJString(env, jGameID);
+ std::string section = GetJString(env, jSection);
+ std::string key = GetJString(env, jKey);
+ std::string val = GetJString(env, jValue);
+
+ ini.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + gameid + ".ini");
+
+ if (val != "-1")
+ {
+ ini.GetOrCreateSection(section)->Set(key, val);
+ }
+ else
+ {
+ ini.GetOrCreateSection(section)->Delete(key);
+ }
+
+ ini.Save(File::GetUserPath(D_GAMESETTINGS_IDX) + gameid + ".ini");
+}
+
JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetConfig(
JNIEnv* env, jobject obj, jstring jFile, jstring jSection, jstring jKey, jstring jDefault)
{