// Copyright 2018 yuzu emulator team // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include "common/common_types.h" #include "core/file_sys/vfs.h" #include "core/hle/result.h" namespace Loader { class AppLoader; } // namespace Loader namespace FileSys { enum class ContentRecordType : u8; enum class StorageId : u8 { None = 0, Host = 1, GameCard = 2, NandSystem = 3, NandUser = 4, SdCard = 5, }; /// File system interface to the RomFS archive class RomFSFactory { public: explicit RomFSFactory(Loader::AppLoader& app_loader); ~RomFSFactory(); void SetPackedUpdate(VirtualFile update_raw); ResultVal OpenCurrentProcess(); ResultVal Open(u64 title_id, StorageId storage, ContentRecordType type); private: VirtualFile file; VirtualFile update_raw; bool updatable; u64 ivfc_offset; }; } // namespace FileSys