summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/partition_filesystem.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-07-08 05:24:51 +0200
committerbunnei <bunneidev@gmail.com>2018-07-08 05:24:51 +0200
commit913896cbd99e414c325c9d47a987376ed6d9fffd (patch)
treeb660920a49f538f0ee00486c50a0d153d53c423d /src/core/file_sys/partition_filesystem.h
parentMerge pull request #632 from FearlessTobi/add-discord-link (diff)
downloadyuzu-913896cbd99e414c325c9d47a987376ed6d9fffd.tar
yuzu-913896cbd99e414c325c9d47a987376ed6d9fffd.tar.gz
yuzu-913896cbd99e414c325c9d47a987376ed6d9fffd.tar.bz2
yuzu-913896cbd99e414c325c9d47a987376ed6d9fffd.tar.lz
yuzu-913896cbd99e414c325c9d47a987376ed6d9fffd.tar.xz
yuzu-913896cbd99e414c325c9d47a987376ed6d9fffd.tar.zst
yuzu-913896cbd99e414c325c9d47a987376ed6d9fffd.zip
Diffstat (limited to '')
-rw-r--r--src/core/file_sys/partition_filesystem.h29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/core/file_sys/partition_filesystem.h b/src/core/file_sys/partition_filesystem.h
index 9656b40bf..9c5810cf1 100644
--- a/src/core/file_sys/partition_filesystem.h
+++ b/src/core/file_sys/partition_filesystem.h
@@ -10,7 +10,6 @@
#include "common/common_funcs.h"
#include "common/common_types.h"
#include "common/swap.h"
-#include "core/file_sys/vfs.h"
namespace Loader {
enum class ResultStatus;
@@ -22,19 +21,19 @@ namespace FileSys {
* Helper which implements an interface to parse PFS/HFS filesystems.
* Data can either be loaded from a file path or data with an offset into it.
*/
-class PartitionFilesystem : public ReadOnlyVfsDirectory {
+class PartitionFilesystem {
public:
- explicit PartitionFilesystem(std::shared_ptr<VfsFile> file);
- Loader::ResultStatus GetStatus() const;
+ Loader::ResultStatus Load(const std::string& file_path, size_t offset = 0);
+ Loader::ResultStatus Load(const std::vector<u8>& file_data, size_t offset = 0);
- std::vector<std::shared_ptr<VfsFile>> GetFiles() const override;
- std::vector<std::shared_ptr<VfsDirectory>> GetSubdirectories() const override;
- std::string GetName() const override;
- std::shared_ptr<VfsDirectory> GetParentDirectory() const override;
- void PrintDebugInfo() const;
+ u32 GetNumEntries() const;
+ u64 GetEntryOffset(u32 index) const;
+ u64 GetEntrySize(u32 index) const;
+ std::string GetEntryName(u32 index) const;
+ u64 GetFileOffset(const std::string& name) const;
+ u64 GetFileSize(const std::string& name) const;
-protected:
- bool ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) override;
+ void Print() const;
private:
struct Header {
@@ -73,14 +72,16 @@ private:
#pragma pack(pop)
- Loader::ResultStatus status;
+ struct FileEntry {
+ FSEntry fs_entry;
+ std::string name;
+ };
Header pfs_header;
bool is_hfs;
size_t content_offset;
- std::vector<VirtualFile> pfs_files;
- std::vector<VirtualDir> pfs_dirs;
+ std::vector<FileEntry> pfs_entries;
};
} // namespace FileSys