sdmc_factory.h 983 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <memory>
  5. #include "core/file_sys/vfs_types.h"
  6. #include "core/hle/result.h"
  7. namespace FileSys {
  8. class RegisteredCache;
  9. class PlaceholderCache;
  10. /// File system interface to the SDCard archive
  11. class SDMCFactory {
  12. public:
  13. explicit SDMCFactory(VirtualDir sd_dir_, VirtualDir sd_mod_dir_);
  14. ~SDMCFactory();
  15. VirtualDir Open() const;
  16. VirtualDir GetSDMCModificationLoadRoot(u64 title_id) const;
  17. VirtualDir GetSDMCContentDirectory() const;
  18. RegisteredCache* GetSDMCContents() const;
  19. PlaceholderCache* GetSDMCPlaceholder() const;
  20. VirtualDir GetImageDirectory() const;
  21. u64 GetSDMCFreeSpace() const;
  22. u64 GetSDMCTotalSpace() const;
  23. private:
  24. VirtualDir sd_dir;
  25. VirtualDir sd_mod_dir;
  26. std::unique_ptr<RegisteredCache> contents;
  27. std::unique_ptr<PlaceholderCache> placeholder;
  28. };
  29. } // namespace FileSys