sdmc_factory.h 1010 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright 2018 yuzu emulator team
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <memory>
  6. #include "core/file_sys/vfs_types.h"
  7. #include "core/hle/result.h"
  8. namespace FileSys {
  9. class RegisteredCache;
  10. class PlaceholderCache;
  11. /// File system interface to the SDCard archive
  12. class SDMCFactory {
  13. public:
  14. explicit SDMCFactory(VirtualDir sd_dir_, VirtualDir sd_mod_dir_);
  15. ~SDMCFactory();
  16. ResultVal<VirtualDir> Open() const;
  17. VirtualDir GetSDMCModificationLoadRoot(u64 title_id) const;
  18. VirtualDir GetSDMCContentDirectory() const;
  19. RegisteredCache* GetSDMCContents() const;
  20. PlaceholderCache* GetSDMCPlaceholder() const;
  21. VirtualDir GetImageDirectory() const;
  22. u64 GetSDMCFreeSpace() const;
  23. u64 GetSDMCTotalSpace() const;
  24. private:
  25. VirtualDir sd_dir;
  26. VirtualDir sd_mod_dir;
  27. std::unique_ptr<RegisteredCache> contents;
  28. std::unique_ptr<PlaceholderCache> placeholder;
  29. };
  30. } // namespace FileSys