aboutsummaryrefslogtreecommitdiff
path: root/Src/external_dependencies/openmpt-trunk/unarchiver/unrar.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/external_dependencies/openmpt-trunk/unarchiver/unrar.h')
-rw-r--r--Src/external_dependencies/openmpt-trunk/unarchiver/unrar.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/Src/external_dependencies/openmpt-trunk/unarchiver/unrar.h b/Src/external_dependencies/openmpt-trunk/unarchiver/unrar.h
new file mode 100644
index 00000000..056a9475
--- /dev/null
+++ b/Src/external_dependencies/openmpt-trunk/unarchiver/unrar.h
@@ -0,0 +1,48 @@
+/*
+ * unrar.h
+ * -------
+ * Purpose: Header file for .rar loader
+ * Notes : (currently none)
+ * Authors: OpenMPT Devs
+ * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
+ */
+
+#pragma once
+
+#include "openmpt/all/BuildSettings.hpp"
+
+#include "archive.h"
+
+OPENMPT_NAMESPACE_BEGIN
+
+#ifdef MPT_WITH_UNRAR
+
+class CRarArchive
+ : public ArchiveBase
+{
+
+protected:
+
+ std::unique_ptr<OnDiskFileWrapper> diskFile;
+ bool captureCurrentFile = false;
+
+public:
+ CRarArchive(FileReader &file);
+ ~CRarArchive() override;
+
+ bool ExtractFile(std::size_t index) override;
+
+public:
+
+ void RARCallbackProcessData(const char * data, std::size_t size);
+
+private:
+
+ void Reset();
+ void ResetFile();
+
+};
+
+#endif // MPT_WITH_UNRAR
+
+OPENMPT_NAMESPACE_END