Android: Add "Import Wii Save"

This commit is contained in:
JosJuice
2021-01-17 23:16:23 +01:00
parent b08306d0b8
commit cd4ccda51c
9 changed files with 111 additions and 4 deletions

View File

@ -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));
}
}