diff options
| author | JosJuice <josjuice@gmail.com> | 2021-01-17 23:16:23 +0100 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2021-01-27 20:10:06 +0100 |
| commit | cd4ccda51c7b16be602ad32ffdf672a3de7cffeb (patch) | |
| tree | 8fd99d73acaf90d33951e9a6993c27b18d759000 /Source/Android/jni | |
| parent | b08306d0b89a34b4dc04a324ce47b8d8833230a8 (diff) | |
Android: Add "Import Wii Save"
Diffstat (limited to 'Source/Android/jni')
| -rw-r--r-- | Source/Android/jni/WiiUtils.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Source/Android/jni/WiiUtils.cpp b/Source/Android/jni/WiiUtils.cpp index c98dfe847c..a2f607d68a 100644 --- a/Source/Android/jni/WiiUtils.cpp +++ b/Source/Android/jni/WiiUtils.cpp @@ -8,8 +8,32 @@ #include "jni/AndroidCommon/AndroidCommon.h" +#include "Core/HW/WiiSave.h" #include "Core/WiiUtils.h" +// The hardcoded values here must match WiiUtils.java +static jint ConvertCopyResult(WiiSave::CopyResult result) +{ + switch (result) + { + case WiiSave::CopyResult::Success: + return 0; + case WiiSave::CopyResult::Error: + return 1; + case WiiSave::CopyResult::Cancelled: + return 2; + case WiiSave::CopyResult::CorruptedSource: + return 3; + case WiiSave::CopyResult::TitleMissing: + return 4; + default: + ASSERT(false); + return 1; + } + + static_assert(static_cast<int>(WiiSave::CopyResult::NumberOfEntries) == 5); +} + extern "C" { JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_utils_WiiUtils_installWAD(JNIEnv* env, @@ -19,4 +43,14 @@ JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_utils_WiiUtils_install const std::string path = GetJString(env, jFile); return static_cast<jboolean>(WiiUtils::InstallWAD(path)); } + +JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_utils_WiiUtils_importWiiSave(JNIEnv* env, + jclass, + jstring jFile) +{ + const std::string path = GetJString(env, jFile); + const auto can_overwrite = [] { return true; }; // TODO + + return ConvertCopyResult(WiiSave::Import(path, can_overwrite)); +} } |
