summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/jni/native_config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/jni/native_config.cpp')
-rw-r--r--src/android/app/src/main/jni/native_config.cpp121
1 files changed, 66 insertions, 55 deletions
diff --git a/src/android/app/src/main/jni/native_config.cpp b/src/android/app/src/main/jni/native_config.cpp
index c6c3343dc..8ae10fbc7 100644
--- a/src/android/app/src/main/jni/native_config.cpp
+++ b/src/android/app/src/main/jni/native_config.cpp
@@ -8,11 +8,11 @@
#include "android_config.h"
#include "android_settings.h"
+#include "common/android/android_common.h"
+#include "common/android/id_cache.h"
#include "common/logging/log.h"
#include "common/settings.h"
#include "frontend_common/config.h"
-#include "jni/android_common/android_common.h"
-#include "jni/id_cache.h"
#include "native.h"
std::unique_ptr<AndroidConfig> global_config;
@@ -20,7 +20,7 @@ std::unique_ptr<AndroidConfig> per_game_config;
template <typename T>
Settings::Setting<T>* getSetting(JNIEnv* env, jstring jkey) {
- auto key = GetJString(env, jkey);
+ auto key = Common::Android::GetJString(env, jkey);
auto basic_setting = Settings::values.linkage.by_key[key];
if (basic_setting != 0) {
return static_cast<Settings::Setting<T>*>(basic_setting);
@@ -55,7 +55,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_initializePerGameConfig(JNIEnv*
jstring jprogramId,
jstring jfileName) {
auto program_id = EmulationSession::GetProgramId(env, jprogramId);
- auto file_name = GetJString(env, jfileName);
+ auto file_name = Common::Android::GetJString(env, jfileName);
const auto config_file_name = program_id == 0 ? file_name : fmt::format("{:016X}", program_id);
per_game_config =
std::make_unique<AndroidConfig>(config_file_name, Config::ConfigType::PerGameConfig);
@@ -186,9 +186,9 @@ jstring Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getString(JNIEnv* env, jobjec
jboolean needGlobal) {
auto setting = getSetting<std::string>(env, jkey);
if (setting == nullptr) {
- return ToJString(env, "");
+ return Common::Android::ToJString(env, "");
}
- return ToJString(env, setting->GetValue(static_cast<bool>(needGlobal)));
+ return Common::Android::ToJString(env, setting->GetValue(static_cast<bool>(needGlobal)));
}
void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setString(JNIEnv* env, jobject obj, jstring jkey,
@@ -198,7 +198,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setString(JNIEnv* env, jobject o
return;
}
- setting->SetValue(GetJString(env, value));
+ setting->SetValue(Common::Android::GetJString(env, value));
}
jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getIsRuntimeModifiable(JNIEnv* env, jobject obj,
@@ -214,13 +214,13 @@ jstring Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getPairedSettingKey(JNIEnv* e
jstring jkey) {
auto setting = getSetting<std::string>(env, jkey);
if (setting == nullptr) {
- return ToJString(env, "");
+ return Common::Android::ToJString(env, "");
}
if (setting->PairedSetting() == nullptr) {
- return ToJString(env, "");
+ return Common::Android::ToJString(env, "");
}
- return ToJString(env, setting->PairedSetting()->GetLabel());
+ return Common::Android::ToJString(env, setting->PairedSetting()->GetLabel());
}
jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getIsSwitchable(JNIEnv* env, jobject obj,
@@ -262,21 +262,21 @@ jstring Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getDefaultToString(JNIEnv* en
jstring jkey) {
auto setting = getSetting<std::string>(env, jkey);
if (setting != nullptr) {
- return ToJString(env, setting->DefaultToString());
+ return Common::Android::ToJString(env, setting->DefaultToString());
}
- return ToJString(env, "");
+ return Common::Android::ToJString(env, "");
}
jobjectArray Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getGameDirs(JNIEnv* env, jobject obj) {
- jclass gameDirClass = IDCache::GetGameDirClass();
- jmethodID gameDirConstructor = IDCache::GetGameDirConstructor();
+ jclass gameDirClass = Common::Android::GetGameDirClass();
+ jmethodID gameDirConstructor = Common::Android::GetGameDirConstructor();
jobjectArray jgameDirArray =
env->NewObjectArray(AndroidSettings::values.game_dirs.size(), gameDirClass, nullptr);
for (size_t i = 0; i < AndroidSettings::values.game_dirs.size(); ++i) {
- jobject jgameDir =
- env->NewObject(gameDirClass, gameDirConstructor,
- ToJString(env, AndroidSettings::values.game_dirs[i].path),
- static_cast<jboolean>(AndroidSettings::values.game_dirs[i].deep_scan));
+ jobject jgameDir = env->NewObject(
+ gameDirClass, gameDirConstructor,
+ Common::Android::ToJString(env, AndroidSettings::values.game_dirs[i].path),
+ static_cast<jboolean>(AndroidSettings::values.game_dirs[i].deep_scan));
env->SetObjectArrayElement(jgameDirArray, i, jgameDir);
}
return jgameDirArray;
@@ -292,14 +292,14 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setGameDirs(JNIEnv* env, jobject
}
jobject dir = env->GetObjectArrayElement(gameDirs, 0);
- jclass gameDirClass = IDCache::GetGameDirClass();
+ jclass gameDirClass = Common::Android::GetGameDirClass();
jfieldID uriStringField = env->GetFieldID(gameDirClass, "uriString", "Ljava/lang/String;");
jfieldID deepScanBooleanField = env->GetFieldID(gameDirClass, "deepScan", "Z");
for (int i = 0; i < size; ++i) {
dir = env->GetObjectArrayElement(gameDirs, i);
jstring juriString = static_cast<jstring>(env->GetObjectField(dir, uriStringField));
jboolean jdeepScanBoolean = env->GetBooleanField(dir, deepScanBooleanField);
- std::string uriString = GetJString(env, juriString);
+ std::string uriString = Common::Android::GetJString(env, juriString);
AndroidSettings::values.game_dirs.push_back(
AndroidSettings::GameDir{uriString, static_cast<bool>(jdeepScanBoolean)});
}
@@ -307,13 +307,13 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setGameDirs(JNIEnv* env, jobject
void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_addGameDir(JNIEnv* env, jobject obj,
jobject gameDir) {
- jclass gameDirClass = IDCache::GetGameDirClass();
+ jclass gameDirClass = Common::Android::GetGameDirClass();
jfieldID uriStringField = env->GetFieldID(gameDirClass, "uriString", "Ljava/lang/String;");
jfieldID deepScanBooleanField = env->GetFieldID(gameDirClass, "deepScan", "Z");
jstring juriString = static_cast<jstring>(env->GetObjectField(gameDir, uriStringField));
jboolean jdeepScanBoolean = env->GetBooleanField(gameDir, deepScanBooleanField);
- std::string uriString = GetJString(env, juriString);
+ std::string uriString = Common::Android::GetJString(env, juriString);
AndroidSettings::values.game_dirs.push_back(
AndroidSettings::GameDir{uriString, static_cast<bool>(jdeepScanBoolean)});
}
@@ -323,9 +323,11 @@ jobjectArray Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getDisabledAddons(JNIEnv
auto program_id = EmulationSession::GetProgramId(env, jprogramId);
auto& disabledAddons = Settings::values.disabled_addons[program_id];
jobjectArray jdisabledAddonsArray =
- env->NewObjectArray(disabledAddons.size(), IDCache::GetStringClass(), ToJString(env, ""));
+ env->NewObjectArray(disabledAddons.size(), Common::Android::GetStringClass(),
+ Common::Android::ToJString(env, ""));
for (size_t i = 0; i < disabledAddons.size(); ++i) {
- env->SetObjectArrayElement(jdisabledAddonsArray, i, ToJString(env, disabledAddons[i]));
+ env->SetObjectArrayElement(jdisabledAddonsArray, i,
+ Common::Android::ToJString(env, disabledAddons[i]));
}
return jdisabledAddonsArray;
}
@@ -339,7 +341,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setDisabledAddons(JNIEnv* env, j
const int size = env->GetArrayLength(jdisabledAddons);
for (int i = 0; i < size; ++i) {
auto jaddon = static_cast<jstring>(env->GetObjectArrayElement(jdisabledAddons, i));
- disabled_addons.push_back(GetJString(env, jaddon));
+ disabled_addons.push_back(Common::Android::GetJString(env, jaddon));
}
Settings::values.disabled_addons[program_id] = disabled_addons;
}
@@ -348,26 +350,27 @@ jobjectArray Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getOverlayControlData(JN
jobject obj) {
jobjectArray joverlayControlDataArray =
env->NewObjectArray(AndroidSettings::values.overlay_control_data.size(),
- IDCache::GetOverlayControlDataClass(), nullptr);
+ Common::Android::GetOverlayControlDataClass(), nullptr);
for (size_t i = 0; i < AndroidSettings::values.overlay_control_data.size(); ++i) {
const auto& control_data = AndroidSettings::values.overlay_control_data[i];
jobject jlandscapePosition =
- env->NewObject(IDCache::GetPairClass(), IDCache::GetPairConstructor(),
- ToJDouble(env, control_data.landscape_position.first),
- ToJDouble(env, control_data.landscape_position.second));
+ env->NewObject(Common::Android::GetPairClass(), Common::Android::GetPairConstructor(),
+ Common::Android::ToJDouble(env, control_data.landscape_position.first),
+ Common::Android::ToJDouble(env, control_data.landscape_position.second));
jobject jportraitPosition =
- env->NewObject(IDCache::GetPairClass(), IDCache::GetPairConstructor(),
- ToJDouble(env, control_data.portrait_position.first),
- ToJDouble(env, control_data.portrait_position.second));
+ env->NewObject(Common::Android::GetPairClass(), Common::Android::GetPairConstructor(),
+ Common::Android::ToJDouble(env, control_data.portrait_position.first),
+ Common::Android::ToJDouble(env, control_data.portrait_position.second));
jobject jfoldablePosition =
- env->NewObject(IDCache::GetPairClass(), IDCache::GetPairConstructor(),
- ToJDouble(env, control_data.foldable_position.first),
- ToJDouble(env, control_data.foldable_position.second));
-
- jobject jcontrolData = env->NewObject(
- IDCache::GetOverlayControlDataClass(), IDCache::GetOverlayControlDataConstructor(),
- ToJString(env, control_data.id), control_data.enabled, jlandscapePosition,
- jportraitPosition, jfoldablePosition);
+ env->NewObject(Common::Android::GetPairClass(), Common::Android::GetPairConstructor(),
+ Common::Android::ToJDouble(env, control_data.foldable_position.first),
+ Common::Android::ToJDouble(env, control_data.foldable_position.second));
+
+ jobject jcontrolData =
+ env->NewObject(Common::Android::GetOverlayControlDataClass(),
+ Common::Android::GetOverlayControlDataConstructor(),
+ Common::Android::ToJString(env, control_data.id), control_data.enabled,
+ jlandscapePosition, jportraitPosition, jfoldablePosition);
env->SetObjectArrayElement(joverlayControlDataArray, i, jcontrolData);
}
return joverlayControlDataArray;
@@ -384,33 +387,41 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setOverlayControlData(
for (int i = 0; i < size; ++i) {
jobject joverlayControlData = env->GetObjectArrayElement(joverlayControlDataArray, i);
- jstring jidString = static_cast<jstring>(
- env->GetObjectField(joverlayControlData, IDCache::GetOverlayControlDataIdField()));
+ jstring jidString = static_cast<jstring>(env->GetObjectField(
+ joverlayControlData, Common::Android::GetOverlayControlDataIdField()));
bool enabled = static_cast<bool>(env->GetBooleanField(
- joverlayControlData, IDCache::GetOverlayControlDataEnabledField()));
+ joverlayControlData, Common::Android::GetOverlayControlDataEnabledField()));
jobject jlandscapePosition = env->GetObjectField(
- joverlayControlData, IDCache::GetOverlayControlDataLandscapePositionField());
+ joverlayControlData, Common::Android::GetOverlayControlDataLandscapePositionField());
std::pair<double, double> landscape_position = std::make_pair(
- GetJDouble(env, env->GetObjectField(jlandscapePosition, IDCache::GetPairFirstField())),
- GetJDouble(env,
- env->GetObjectField(jlandscapePosition, IDCache::GetPairSecondField())));
+ Common::Android::GetJDouble(
+ env, env->GetObjectField(jlandscapePosition, Common::Android::GetPairFirstField())),
+ Common::Android::GetJDouble(
+ env,
+ env->GetObjectField(jlandscapePosition, Common::Android::GetPairSecondField())));
jobject jportraitPosition = env->GetObjectField(
- joverlayControlData, IDCache::GetOverlayControlDataPortraitPositionField());
+ joverlayControlData, Common::Android::GetOverlayControlDataPortraitPositionField());
std::pair<double, double> portrait_position = std::make_pair(
- GetJDouble(env, env->GetObjectField(jportraitPosition, IDCache::GetPairFirstField())),
- GetJDouble(env, env->GetObjectField(jportraitPosition, IDCache::GetPairSecondField())));
+ Common::Android::GetJDouble(
+ env, env->GetObjectField(jportraitPosition, Common::Android::GetPairFirstField())),
+ Common::Android::GetJDouble(
+ env,
+ env->GetObjectField(jportraitPosition, Common::Android::GetPairSecondField())));
jobject jfoldablePosition = env->GetObjectField(
- joverlayControlData, IDCache::GetOverlayControlDataFoldablePositionField());
+ joverlayControlData, Common::Android::GetOverlayControlDataFoldablePositionField());
std::pair<double, double> foldable_position = std::make_pair(
- GetJDouble(env, env->GetObjectField(jfoldablePosition, IDCache::GetPairFirstField())),
- GetJDouble(env, env->GetObjectField(jfoldablePosition, IDCache::GetPairSecondField())));
+ Common::Android::GetJDouble(
+ env, env->GetObjectField(jfoldablePosition, Common::Android::GetPairFirstField())),
+ Common::Android::GetJDouble(
+ env,
+ env->GetObjectField(jfoldablePosition, Common::Android::GetPairSecondField())));
AndroidSettings::values.overlay_control_data.push_back(AndroidSettings::OverlayControlData{
- GetJString(env, jidString), enabled, landscape_position, portrait_position,
- foldable_position});
+ Common::Android::GetJString(env, jidString), enabled, landscape_position,
+ portrait_position, foldable_position});
}
}