diff options
author | t895 <clombardo169@gmail.com> | 2024-01-24 18:34:50 +0100 |
---|---|---|
committer | t895 <clombardo169@gmail.com> | 2024-01-25 18:53:49 +0100 |
commit | 97ca160b08537314ca6ba953a382aebda3da06b9 (patch) | |
tree | 53282078af75ecba5ad87c5bcd3ea1cdb14f0249 | |
parent | frontend_common: Remove key rederivation and keep key check (diff) | |
download | yuzu-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.cpp | 15 | ||||
-rw-r--r-- | src/frontend_common/content_manager.h | 56 | ||||
-rw-r--r-- | src/yuzu/main.cpp | 11 |
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()) { |