filesystem: Add CreateFactories methods to fs
Allows frontend to create registration caches for use before a game has booted.
This commit is contained in:
		| @@ -345,16 +345,15 @@ void CreateFactories(const FileSys::VirtualFilesystem& vfs, bool overwrite) { | ||||
|  | ||||
|     if (bis_factory == nullptr) | ||||
|         bis_factory = std::make_unique<FileSys::BISFactory>(nand_directory); | ||||
|  | ||||
|     auto savedata = std::make_unique<FileSys::SaveDataFactory>(std::move(nand_directory)); | ||||
|     save_data_factory = std::move(savedata); | ||||
|  | ||||
|     auto sdcard = std::make_unique<FileSys::SDMCFactory>(std::move(sd_directory)); | ||||
|     sdmc_factory = std::move(sdcard); | ||||
|     if (save_data_factory == nullptr) | ||||
|         save_data_factory = std::make_unique<FileSys::SaveDataFactory>(std::move(nand_directory)); | ||||
|     if (sdmc_factory == nullptr) | ||||
|         sdmc_factory = std::make_unique<FileSys::SDMCFactory>(std::move(sd_directory)); | ||||
| } | ||||
|  | ||||
| void InstallInterfaces(SM::ServiceManager& service_manager, const FileSys::VirtualFilesystem& vfs) { | ||||
|     RegisterFileSystems(vfs); | ||||
|     romfs_factory = nullptr; | ||||
|     CreateFactories(vfs, false); | ||||
|     std::make_shared<FSP_LDR>()->InstallAsService(service_manager); | ||||
|     std::make_shared<FSP_PR>()->InstallAsService(service_manager); | ||||
|     std::make_shared<FSP_SRV>()->InstallAsService(service_manager); | ||||
|   | ||||
| @@ -46,8 +46,12 @@ ResultVal<FileSys::VirtualDir> OpenSDMC(); | ||||
|  | ||||
| std::shared_ptr<FileSys::RegisteredCache> GetSystemNANDContents(); | ||||
| std::shared_ptr<FileSys::RegisteredCache> GetUserNANDContents(); | ||||
| std::shared_ptr<FileSys::RegisteredCache> GetSDMCContents(); | ||||
|  | ||||
| // Creates the SaveData, SDMC, and BIS Factories. Should be called once and before any function | ||||
| // above is called. | ||||
| void CreateFactories(const FileSys::VirtualFilesystem& vfs, bool overwrite = true); | ||||
|  | ||||
| /// Registers all Filesystem services with the specified service manager. | ||||
| void InstallInterfaces(SM::ServiceManager& service_manager, const FileSys::VirtualFilesystem& vfs); | ||||
|  | ||||
| // A class that wraps a VfsDirectory with methods that return ResultVal and ResultCode instead of | ||||
|   | ||||
| @@ -122,8 +122,7 @@ GMainWindow::GMainWindow() | ||||
|     show(); | ||||
|  | ||||
|     // Necessary to load titles from nand in gamelist. | ||||
|     Service::FileSystem::RegisterBIS(std::make_unique<FileSys::BISFactory>(vfs->OpenDirectory( | ||||
|         FileUtil::GetUserPath(FileUtil::UserPath::NANDDir), FileSys::Mode::ReadWrite))); | ||||
|     Service::FileSystem::CreateFactories(vfs); | ||||
|     game_list->PopulateAsync(UISettings::values.gamedir, UISettings::values.gamedir_deepscan); | ||||
|  | ||||
|     // Show one-time "callout" messages to the user | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zach Hilman
					Zach Hilman