A modded EditSaber for making beat saber maps.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.3 KiB

  1. #pragma once
  2. #include "SevenZipLibrary.h"
  3. #include <atlbase.h>
  4. #include "FileInfo.h"
  5. #include "CompressionFormat.h"
  6. #include "CompressionLevel.h"
  7. namespace SevenZip
  8. {
  9. class SevenZipArchive
  10. {
  11. public:
  12. SevenZipArchive(const SevenZipLibrary& library, const TString& archivePath);
  13. virtual ~SevenZipArchive();
  14. virtual bool ReadInArchiveMetadata();
  15. virtual void SetCompressionFormat(const CompressionFormatEnum& format);
  16. virtual CompressionFormatEnum GetCompressionFormat();
  17. virtual void SetCompressionLevel(const CompressionLevelEnum& level);
  18. virtual CompressionLevelEnum GetCompressionLevel();
  19. virtual bool DetectCompressionFormat();
  20. virtual size_t GetNumberOfItems();
  21. virtual std::vector<TString> GetItemsNames();
  22. virtual std::vector<size_t> GetOrigSizes();
  23. protected:
  24. bool m_ReadMetadata = false;
  25. bool m_OverrideCompressionFormat = false;
  26. const SevenZipLibrary& m_library;
  27. TString m_archivePath;
  28. CompressionFormatEnum m_compressionFormat;
  29. CompressionLevelEnum m_compressionLevel;
  30. size_t m_numberofitems = 0;
  31. std::vector<TString> m_itemnames;
  32. std::vector<size_t> m_origsizes;
  33. private:
  34. bool pri_GetNumberOfItems();
  35. bool pri_GetItemsNames();
  36. bool pri_DetectCompressionFormat(CompressionFormatEnum & format);
  37. bool pri_DetectCompressionFormat();
  38. };
  39. }