diff options
Diffstat (limited to 'src/android/app/src/main/jni/native_config.cpp')
-rw-r--r-- | src/android/app/src/main/jni/native_config.cpp | 121 |
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}); } } |