filesystem: Add CreateFactories methods to fs
Allows frontend to create registration caches for use before a game has booted.
This commit is contained in:
		
							parent
							
								
									410062031b
								
							
						
					
					
						commit
						ef3768f323
					
				@ -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
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user