summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authort895 <clombardo169@gmail.com>2024-01-24 18:34:50 +0100
committert895 <clombardo169@gmail.com>2024-01-25 18:53:49 +0100
commit97ca160b08537314ca6ba953a382aebda3da06b9 (patch)
tree53282078af75ecba5ad87c5bcd3ea1cdb14f0249
parentfrontend_common: Remove key rederivation and keep key check (diff)
downloadyuzu-97ca160b08537314ca6ba953a382aebda3da06b9.tar
yuzu-97ca160b08537314ca6ba953a382aebda3da06b9.tar.gz
yuzu-97ca160b08537314ca6ba953a382aebda3da06b9.tar.bz2
yuzu-97ca160b08537314ca6ba953a382aebda3da06b9.tar.lz
yuzu-97ca160b08537314ca6ba953a382aebda3da06b9.tar.xz
yuzu-97ca160b08537314ca6ba953a382aebda3da06b9.tar.zst
yuzu-97ca160b08537314ca6ba953a382aebda3da06b9.zip
Diffstat (limited to '')
-rw-r--r--src/android/app/src/main/jni/native.cpp15
-rw-r--r--src/frontend_common/content_manager.h56
-rw-r--r--src/yuzu/main.cpp11
3 files changed, 41 insertions, 41 deletions
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp
index 963f57380..4c3644cc5 100644
--- a/src/android/app/src/main/jni/native.cpp
+++ b/src/android/app/src/main/jni/native.cpp
@@ -463,8 +463,8 @@ int Java_org_yuzu_yuzu_1emu_NativeLibrary_installFileToNand(JNIEnv* env, jobject
};
return static_cast<int>(
- ContentManager::InstallNSP(&EmulationSession::GetInstance().System(),
- EmulationSession::GetInstance().System().GetFilesystem().get(),
+ ContentManager::InstallNSP(EmulationSession::GetInstance().System(),
+ *EmulationSession::GetInstance().System().GetFilesystem(),
GetJString(env, j_file), callback));
}
@@ -819,7 +819,7 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_removeUpdate(JNIEnv* env, jobject job
void Java_org_yuzu_yuzu_1emu_NativeLibrary_removeDLC(JNIEnv* env, jobject jobj,
jstring jprogramId) {
auto program_id = EmulationSession::GetProgramId(env, jprogramId);
- ContentManager::RemoveAllDLC(&EmulationSession::GetInstance().System(), program_id);
+ ContentManager::RemoveAllDLC(EmulationSession::GetInstance().System(), program_id);
}
void Java_org_yuzu_yuzu_1emu_NativeLibrary_removeMod(JNIEnv* env, jobject jobj, jstring jprogramId,
@@ -829,8 +829,9 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_removeMod(JNIEnv* env, jobject jobj,
program_id, GetJString(env, jname));
}
-jobject Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyInstalledContents(JNIEnv* env, jobject jobj,
- jobject jcallback) {
+jobjectArray Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyInstalledContents(JNIEnv* env,
+ jobject jobj,
+ jobject jcallback) {
auto jlambdaClass = env->GetObjectClass(jcallback);
auto jlambdaInvokeMethod = env->GetMethodID(
jlambdaClass, "invoke", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
@@ -842,7 +843,7 @@ jobject Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyInstalledContents(JNIEnv* en
auto& session = EmulationSession::GetInstance();
std::vector<std::string> result = ContentManager::VerifyInstalledContents(
- &session.System(), session.GetContentProvider(), callback);
+ session.System(), *session.GetContentProvider(), callback);
jobjectArray jresult =
env->NewObjectArray(result.size(), IDCache::GetStringClass(), ToJString(env, ""));
for (size_t i = 0; i < result.size(); ++i) {
@@ -863,7 +864,7 @@ jint Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyGameContents(JNIEnv* env, jobje
};
auto& session = EmulationSession::GetInstance();
return static_cast<jint>(
- ContentManager::VerifyGameContents(&session.System(), GetJString(env, jpath), callback));
+ ContentManager::VerifyGameContents(session.System(), GetJString(env, jpath), callback));
}
jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getSavePath(JNIEnv* env, jobject jobj,
diff --git a/src/frontend_common/content_manager.h b/src/frontend_common/content_manager.h
index fb92a1695..1cbaa73f7 100644
--- a/src/frontend_common/content_manager.h
+++ b/src/frontend_common/content_manager.h
@@ -47,14 +47,14 @@ inline bool RemoveDLC(const Service::FileSystem::FileSystemController& fs_contro
/**
* \brief Removes all DLC for a game
- * \param system Raw pointer to the system instance
+ * \param system Reference to the system instance
* \param program_id Program ID for the game that will have all of its DLC removed
* \return Number of DLC removed
*/
-inline size_t RemoveAllDLC(Core::System* system, const u64 program_id) {
+inline size_t RemoveAllDLC(Core::System& system, const u64 program_id) {
size_t count{};
- const auto& fs_controller = system->GetFileSystemController();
- const auto dlc_entries = system->GetContentProvider().ListEntriesFilter(
+ const auto& fs_controller = system.GetFileSystemController();
+ const auto dlc_entries = system.GetContentProvider().ListEntriesFilter(
FileSys::TitleType::AOC, FileSys::ContentRecordType::Data);
std::vector<u64> program_dlc_entries;
@@ -124,15 +124,15 @@ inline bool RemoveMod(const Service::FileSystem::FileSystemController& fs_contro
/**
* \brief Installs an NSP
- * \param system Raw pointer to the system instance
- * \param vfs Raw pointer to the VfsFilesystem instance in Core::System
+ * \param system Reference to the system instance
+ * \param vfs Reference to the VfsFilesystem instance in Core::System
* \param filename Path to the NSP file
* \param callback Callback to report the progress of the installation. The first size_t
* parameter is the total size of the virtual file and the second is the current progress. If you
* return true to the callback, it will cancel the installation as soon as possible.
* \return [InstallResult] representing how the installation finished
*/
-inline InstallResult InstallNSP(Core::System* system, FileSys::VfsFilesystem* vfs,
+inline InstallResult InstallNSP(Core::System& system, FileSys::VfsFilesystem& vfs,
const std::string& filename,
const std::function<bool(size_t, size_t)>& callback) {
const auto copy = [callback](const FileSys::VirtualFile& src, const FileSys::VirtualFile& dest,
@@ -159,7 +159,7 @@ inline InstallResult InstallNSP(Core::System* system, FileSys::VfsFilesystem* vf
};
std::shared_ptr<FileSys::NSP> nsp;
- FileSys::VirtualFile file = vfs->OpenFile(filename, FileSys::Mode::Read);
+ FileSys::VirtualFile file = vfs.OpenFile(filename, FileSys::Mode::Read);
if (boost::to_lower_copy(file->GetName()).ends_with(std::string("nsp"))) {
nsp = std::make_shared<FileSys::NSP>(file);
if (nsp->IsExtractedType()) {
@@ -173,7 +173,7 @@ inline InstallResult InstallNSP(Core::System* system, FileSys::VfsFilesystem* vf
return InstallResult::Failure;
}
const auto res =
- system->GetFileSystemController().GetUserNANDContents()->InstallEntry(*nsp, true, copy);
+ system.GetFileSystemController().GetUserNANDContents()->InstallEntry(*nsp, true, copy);
switch (res) {
case FileSys::InstallResult::Success:
return InstallResult::Success;
@@ -188,17 +188,17 @@ inline InstallResult InstallNSP(Core::System* system, FileSys::VfsFilesystem* vf
/**
* \brief Installs an NCA
- * \param vfs Raw pointer to the VfsFilesystem instance in Core::System
+ * \param vfs Reference to the VfsFilesystem instance in Core::System
* \param filename Path to the NCA file
- * \param registered_cache Raw pointer to the registered cache that the NCA will be installed to
+ * \param registered_cache Reference to the registered cache that the NCA will be installed to
* \param title_type Type of NCA package to install
* \param callback Callback to report the progress of the installation. The first size_t
* parameter is the total size of the virtual file and the second is the current progress. If you
* return true to the callback, it will cancel the installation as soon as possible.
* \return [InstallResult] representing how the installation finished
*/
-inline InstallResult InstallNCA(FileSys::VfsFilesystem* vfs, const std::string& filename,
- FileSys::RegisteredCache* registered_cache,
+inline InstallResult InstallNCA(FileSys::VfsFilesystem& vfs, const std::string& filename,
+ FileSys::RegisteredCache& registered_cache,
const FileSys::TitleType title_type,
const std::function<bool(size_t, size_t)>& callback) {
const auto copy = [callback](const FileSys::VirtualFile& src, const FileSys::VirtualFile& dest,
@@ -224,7 +224,7 @@ inline InstallResult InstallNCA(FileSys::VfsFilesystem* vfs, const std::string&
return true;
};
- const auto nca = std::make_shared<FileSys::NCA>(vfs->OpenFile(filename, FileSys::Mode::Read));
+ const auto nca = std::make_shared<FileSys::NCA>(vfs.OpenFile(filename, FileSys::Mode::Read));
const auto id = nca->GetStatus();
// Game updates necessary are missing base RomFS
@@ -233,7 +233,7 @@ inline InstallResult InstallNCA(FileSys::VfsFilesystem* vfs, const std::string&
return InstallResult::Failure;
}
- const auto res = registered_cache->InstallEntry(*nca, title_type, true, copy);
+ const auto res = registered_cache.InstallEntry(*nca, title_type, true, copy);
if (res == FileSys::InstallResult::Success) {
return InstallResult::Success;
} else if (res == FileSys::InstallResult::OverwriteExisting) {
@@ -245,19 +245,19 @@ inline InstallResult InstallNCA(FileSys::VfsFilesystem* vfs, const std::string&
/**
* \brief Verifies the installed contents for a given ManualContentProvider
- * \param system Raw pointer to the system instance
- * \param provider Raw pointer to the content provider that's tracking indexed games
+ * \param system Reference to the system instance
+ * \param provider Reference to the content provider that's tracking indexed games
* \param callback Callback to report the progress of the installation. The first size_t
* parameter is the total size of the installed contents and the second is the current progress. If
* you return true to the callback, it will cancel the installation as soon as possible.
* \return A list of entries that failed to install. Returns an empty vector if successful.
*/
inline std::vector<std::string> VerifyInstalledContents(
- Core::System* system, FileSys::ManualContentProvider* provider,
+ Core::System& system, FileSys::ManualContentProvider& provider,
const std::function<bool(size_t, size_t)>& callback) {
// Get content registries.
- auto bis_contents = system->GetFileSystemController().GetSystemNANDContents();
- auto user_contents = system->GetFileSystemController().GetUserNANDContents();
+ auto bis_contents = system.GetFileSystemController().GetSystemNANDContents();
+ auto user_contents = system.GetFileSystemController().GetUserNANDContents();
std::vector<FileSys::RegisteredCache*> content_providers;
if (bis_contents) {
@@ -309,11 +309,11 @@ inline std::vector<std::string> VerifyInstalledContents(
const auto title_id = nca.GetTitleId();
std::string title_name = "unknown";
- const auto control = provider->GetEntry(FileSys::GetBaseTitleID(title_id),
- FileSys::ContentRecordType::Control);
+ const auto control = provider.GetEntry(FileSys::GetBaseTitleID(title_id),
+ FileSys::ContentRecordType::Control);
if (control && control->GetStatus() == Loader::ResultStatus::Success) {
- const FileSys::PatchManager pm{title_id, system->GetFileSystemController(),
- *provider};
+ const FileSys::PatchManager pm{title_id, system.GetFileSystemController(),
+ provider};
const auto [nacp, logo] = pm.ParseControlNCA(*control);
if (nacp) {
title_name = nacp->GetApplicationName();
@@ -335,7 +335,7 @@ inline std::vector<std::string> VerifyInstalledContents(
/**
* \brief Verifies the contents of a given game
- * \param system Raw pointer to the system instance
+ * \param system Reference to the system instance
* \param game_path Patch to the game file
* \param callback Callback to report the progress of the installation. The first size_t
* parameter is the total size of the installed contents and the second is the current progress. If
@@ -343,10 +343,10 @@ inline std::vector<std::string> VerifyInstalledContents(
* \return GameVerificationResult representing how the verification process finished
*/
inline GameVerificationResult VerifyGameContents(
- Core::System* system, const std::string& game_path,
+ Core::System& system, const std::string& game_path,
const std::function<bool(size_t, size_t)>& callback) {
- const auto loader = Loader::GetLoader(
- *system, system->GetFilesystem()->OpenFile(game_path, FileSys::Mode::Read));
+ const auto loader =
+ Loader::GetLoader(system, system.GetFilesystem()->OpenFile(game_path, FileSys::Mode::Read));
if (loader == nullptr) {
return GameVerificationResult::NotImplemented;
}
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index bb0fbef7c..e14410f7d 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -2499,7 +2499,7 @@ void GMainWindow::RemoveUpdateContent(u64 program_id, InstalledEntryType type) {
}
void GMainWindow::RemoveAddOnContent(u64 program_id, InstalledEntryType type) {
- const size_t count = ContentManager::RemoveAllDLC(system.get(), program_id);
+ const size_t count = ContentManager::RemoveAllDLC(*system, program_id);
if (count == 0) {
QMessageBox::warning(this, GetGameListErrorRemoving(type),
tr("There are no DLC installed for this title."));
@@ -2796,8 +2796,7 @@ void GMainWindow::OnGameListVerifyIntegrity(const std::string& game_path) {
return progress.wasCanceled();
};
- const auto result =
- ContentManager::VerifyGameContents(system.get(), game_path, QtProgressCallback);
+ const auto result = ContentManager::VerifyGameContents(*system, game_path, QtProgressCallback);
progress.close();
switch (result) {
case ContentManager::GameVerificationResult::Success:
@@ -3266,7 +3265,7 @@ void GMainWindow::OnMenuInstallToNAND() {
return false;
};
future = QtConcurrent::run([this, &file, progress_callback] {
- return ContentManager::InstallNSP(system.get(), vfs.get(), file.toStdString(),
+ return ContentManager::InstallNSP(*system, *vfs, file.toStdString(),
progress_callback);
});
@@ -3369,7 +3368,7 @@ ContentManager::InstallResult GMainWindow::InstallNCA(const QString& filename) {
}
return false;
};
- return ContentManager::InstallNCA(vfs.get(), filename.toStdString(), registered_cache,
+ return ContentManager::InstallNCA(*vfs, filename.toStdString(), *registered_cache,
static_cast<FileSys::TitleType>(index), progress_callback);
}
@@ -4119,7 +4118,7 @@ void GMainWindow::OnVerifyInstalledContents() {
};
const std::vector<std::string> result =
- ContentManager::VerifyInstalledContents(system.get(), provider.get(), QtProgressCallback);
+ ContentManager::VerifyInstalledContents(*system, *provider, QtProgressCallback);
progress.close();
if (result.empty()) {