1
0
Fork 0
forked from suyu/suyu

frontend_common: Consistently use references

Was swapping between references and pointers for no reason. Just unify them here since each of these utility functions will need their parameters to be alive.
This commit is contained in:
t895 2024-01-24 12:34:50 -05:00
parent 1a3fc3724a
commit 97ca160b08
3 changed files with 41 additions and 41 deletions

View file

@ -463,8 +463,8 @@ int Java_org_yuzu_yuzu_1emu_NativeLibrary_installFileToNand(JNIEnv* env, jobject
}; };
return static_cast<int>( return static_cast<int>(
ContentManager::InstallNSP(&EmulationSession::GetInstance().System(), ContentManager::InstallNSP(EmulationSession::GetInstance().System(),
EmulationSession::GetInstance().System().GetFilesystem().get(), *EmulationSession::GetInstance().System().GetFilesystem(),
GetJString(env, j_file), callback)); 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, void Java_org_yuzu_yuzu_1emu_NativeLibrary_removeDLC(JNIEnv* env, jobject jobj,
jstring jprogramId) { jstring jprogramId) {
auto program_id = EmulationSession::GetProgramId(env, 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, 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)); program_id, GetJString(env, jname));
} }
jobject Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyInstalledContents(JNIEnv* env, jobject jobj, jobjectArray Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyInstalledContents(JNIEnv* env,
jobject jcallback) { jobject jobj,
jobject jcallback) {
auto jlambdaClass = env->GetObjectClass(jcallback); auto jlambdaClass = env->GetObjectClass(jcallback);
auto jlambdaInvokeMethod = env->GetMethodID( auto jlambdaInvokeMethod = env->GetMethodID(
jlambdaClass, "invoke", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); 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(); auto& session = EmulationSession::GetInstance();
std::vector<std::string> result = ContentManager::VerifyInstalledContents( std::vector<std::string> result = ContentManager::VerifyInstalledContents(
&session.System(), session.GetContentProvider(), callback); session.System(), *session.GetContentProvider(), callback);
jobjectArray jresult = jobjectArray jresult =
env->NewObjectArray(result.size(), IDCache::GetStringClass(), ToJString(env, "")); env->NewObjectArray(result.size(), IDCache::GetStringClass(), ToJString(env, ""));
for (size_t i = 0; i < result.size(); ++i) { 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(); auto& session = EmulationSession::GetInstance();
return static_cast<jint>( 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, jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getSavePath(JNIEnv* env, jobject jobj,

View file

@ -47,14 +47,14 @@ inline bool RemoveDLC(const Service::FileSystem::FileSystemController& fs_contro
/** /**
* \brief Removes all DLC for a game * \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 * \param program_id Program ID for the game that will have all of its DLC removed
* \return Number of 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{}; size_t count{};
const auto& fs_controller = system->GetFileSystemController(); const auto& fs_controller = system.GetFileSystemController();
const auto dlc_entries = system->GetContentProvider().ListEntriesFilter( const auto dlc_entries = system.GetContentProvider().ListEntriesFilter(
FileSys::TitleType::AOC, FileSys::ContentRecordType::Data); FileSys::TitleType::AOC, FileSys::ContentRecordType::Data);
std::vector<u64> program_dlc_entries; std::vector<u64> program_dlc_entries;
@ -124,15 +124,15 @@ inline bool RemoveMod(const Service::FileSystem::FileSystemController& fs_contro
/** /**
* \brief Installs an NSP * \brief Installs an NSP
* \param system Raw pointer to the system instance * \param system Reference to the system instance
* \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 NSP file * \param filename Path to the NSP file
* \param callback Callback to report the progress of the installation. The first size_t * \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 * 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 true to the callback, it will cancel the installation as soon as possible.
* \return [InstallResult] representing how the installation finished * \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::string& filename,
const std::function<bool(size_t, size_t)>& callback) { const std::function<bool(size_t, size_t)>& callback) {
const auto copy = [callback](const FileSys::VirtualFile& src, const FileSys::VirtualFile& dest, 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; 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"))) { if (boost::to_lower_copy(file->GetName()).ends_with(std::string("nsp"))) {
nsp = std::make_shared<FileSys::NSP>(file); nsp = std::make_shared<FileSys::NSP>(file);
if (nsp->IsExtractedType()) { if (nsp->IsExtractedType()) {
@ -173,7 +173,7 @@ inline InstallResult InstallNSP(Core::System* system, FileSys::VfsFilesystem* vf
return InstallResult::Failure; return InstallResult::Failure;
} }
const auto res = const auto res =
system->GetFileSystemController().GetUserNANDContents()->InstallEntry(*nsp, true, copy); system.GetFileSystemController().GetUserNANDContents()->InstallEntry(*nsp, true, copy);
switch (res) { switch (res) {
case FileSys::InstallResult::Success: case FileSys::InstallResult::Success:
return InstallResult::Success; return InstallResult::Success;
@ -188,17 +188,17 @@ inline InstallResult InstallNSP(Core::System* system, FileSys::VfsFilesystem* vf
/** /**
* \brief Installs an NCA * \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 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 title_type Type of NCA package to install
* \param callback Callback to report the progress of the installation. The first size_t * \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 * 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 true to the callback, it will cancel the installation as soon as possible.
* \return [InstallResult] representing how the installation finished * \return [InstallResult] representing how the installation finished
*/ */
inline InstallResult InstallNCA(FileSys::VfsFilesystem* vfs, const std::string& filename, inline InstallResult InstallNCA(FileSys::VfsFilesystem& vfs, const std::string& filename,
FileSys::RegisteredCache* registered_cache, FileSys::RegisteredCache& registered_cache,
const FileSys::TitleType title_type, const FileSys::TitleType title_type,
const std::function<bool(size_t, size_t)>& callback) { const std::function<bool(size_t, size_t)>& callback) {
const auto copy = [callback](const FileSys::VirtualFile& src, const FileSys::VirtualFile& dest, 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; 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(); const auto id = nca->GetStatus();
// Game updates necessary are missing base RomFS // Game updates necessary are missing base RomFS
@ -233,7 +233,7 @@ inline InstallResult InstallNCA(FileSys::VfsFilesystem* vfs, const std::string&
return InstallResult::Failure; 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) { if (res == FileSys::InstallResult::Success) {
return InstallResult::Success; return InstallResult::Success;
} else if (res == FileSys::InstallResult::OverwriteExisting) { } 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 * \brief Verifies the installed contents for a given ManualContentProvider
* \param system Raw pointer to the system instance * \param system Reference to the system instance
* \param provider Raw pointer to the content provider that's tracking indexed games * \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 * \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 * 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. * 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. * \return A list of entries that failed to install. Returns an empty vector if successful.
*/ */
inline std::vector<std::string> VerifyInstalledContents( 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) { const std::function<bool(size_t, size_t)>& callback) {
// Get content registries. // Get content registries.
auto bis_contents = system->GetFileSystemController().GetSystemNANDContents(); auto bis_contents = system.GetFileSystemController().GetSystemNANDContents();
auto user_contents = system->GetFileSystemController().GetUserNANDContents(); auto user_contents = system.GetFileSystemController().GetUserNANDContents();
std::vector<FileSys::RegisteredCache*> content_providers; std::vector<FileSys::RegisteredCache*> content_providers;
if (bis_contents) { if (bis_contents) {
@ -309,11 +309,11 @@ inline std::vector<std::string> VerifyInstalledContents(
const auto title_id = nca.GetTitleId(); const auto title_id = nca.GetTitleId();
std::string title_name = "unknown"; std::string title_name = "unknown";
const auto control = provider->GetEntry(FileSys::GetBaseTitleID(title_id), const auto control = provider.GetEntry(FileSys::GetBaseTitleID(title_id),
FileSys::ContentRecordType::Control); FileSys::ContentRecordType::Control);
if (control && control->GetStatus() == Loader::ResultStatus::Success) { if (control && control->GetStatus() == Loader::ResultStatus::Success) {
const FileSys::PatchManager pm{title_id, system->GetFileSystemController(), const FileSys::PatchManager pm{title_id, system.GetFileSystemController(),
*provider}; provider};
const auto [nacp, logo] = pm.ParseControlNCA(*control); const auto [nacp, logo] = pm.ParseControlNCA(*control);
if (nacp) { if (nacp) {
title_name = nacp->GetApplicationName(); title_name = nacp->GetApplicationName();
@ -335,7 +335,7 @@ inline std::vector<std::string> VerifyInstalledContents(
/** /**
* \brief Verifies the contents of a given game * \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 game_path Patch to the game file
* \param callback Callback to report the progress of the installation. The first size_t * \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 * 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 * \return GameVerificationResult representing how the verification process finished
*/ */
inline GameVerificationResult VerifyGameContents( 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 std::function<bool(size_t, size_t)>& callback) {
const auto loader = Loader::GetLoader( const auto loader =
*system, system->GetFilesystem()->OpenFile(game_path, FileSys::Mode::Read)); Loader::GetLoader(system, system.GetFilesystem()->OpenFile(game_path, FileSys::Mode::Read));
if (loader == nullptr) { if (loader == nullptr) {
return GameVerificationResult::NotImplemented; return GameVerificationResult::NotImplemented;
} }

View file

@ -2499,7 +2499,7 @@ void GMainWindow::RemoveUpdateContent(u64 program_id, InstalledEntryType type) {
} }
void GMainWindow::RemoveAddOnContent(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) { if (count == 0) {
QMessageBox::warning(this, GetGameListErrorRemoving(type), QMessageBox::warning(this, GetGameListErrorRemoving(type),
tr("There are no DLC installed for this title.")); tr("There are no DLC installed for this title."));
@ -2796,8 +2796,7 @@ void GMainWindow::OnGameListVerifyIntegrity(const std::string& game_path) {
return progress.wasCanceled(); return progress.wasCanceled();
}; };
const auto result = const auto result = ContentManager::VerifyGameContents(*system, game_path, QtProgressCallback);
ContentManager::VerifyGameContents(system.get(), game_path, QtProgressCallback);
progress.close(); progress.close();
switch (result) { switch (result) {
case ContentManager::GameVerificationResult::Success: case ContentManager::GameVerificationResult::Success:
@ -3266,7 +3265,7 @@ void GMainWindow::OnMenuInstallToNAND() {
return false; return false;
}; };
future = QtConcurrent::run([this, &file, progress_callback] { 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); progress_callback);
}); });
@ -3369,7 +3368,7 @@ ContentManager::InstallResult GMainWindow::InstallNCA(const QString& filename) {
} }
return false; 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); static_cast<FileSys::TitleType>(index), progress_callback);
} }
@ -4119,7 +4118,7 @@ void GMainWindow::OnVerifyInstalledContents() {
}; };
const std::vector<std::string> result = const std::vector<std::string> result =
ContentManager::VerifyInstalledContents(system.get(), provider.get(), QtProgressCallback); ContentManager::VerifyInstalledContents(*system, *provider, QtProgressCallback);
progress.close(); progress.close();
if (result.empty()) { if (result.empty()) {