aboutsummaryrefslogtreecommitdiff
path: root/libs/installer_omod_native/src/omodinstaller.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/installer_omod_native/src/omodinstaller.h')
-rw-r--r--libs/installer_omod_native/src/omodinstaller.h101
1 files changed, 0 insertions, 101 deletions
diff --git a/libs/installer_omod_native/src/omodinstaller.h b/libs/installer_omod_native/src/omodinstaller.h
deleted file mode 100644
index de48b77..0000000
--- a/libs/installer_omod_native/src/omodinstaller.h
+++ /dev/null
@@ -1,101 +0,0 @@
-#ifndef OMODINSTALLER_H
-#define OMODINSTALLER_H
-
-#include <uibase/iplugininstallercustom.h>
-
-#include <QByteArray>
-#include <QList>
-#include <QString>
-
-#include <cstdint>
-#include <vector>
-
-class OmodInstaller : public MOBase::IPluginInstallerCustom
-{
- Q_OBJECT
- Q_INTERFACES(MOBase::IPlugin MOBase::IPluginInstaller MOBase::IPluginInstallerCustom)
- Q_PLUGIN_METADATA(IID "com.tannin.ModOrganizer.PluginInstallerCustom/1.0")
-
-public:
- OmodInstaller();
-
- // IPlugin
- bool init(MOBase::IOrganizer* organizer) override;
- QString name() const override;
- QString localizedName() const override;
- QString author() const override;
- QString description() const override;
- MOBase::VersionInfo version() const override;
- QList<MOBase::PluginSetting> settings() const override;
-
- // IPluginInstaller
- unsigned int priority() const override;
- bool isManualInstaller() const override;
- bool isArchiveSupported(std::shared_ptr<const MOBase::IFileTree> tree) const override;
-
- // IPluginInstallerCustom
- bool isArchiveSupported(const QString& archiveName) const override;
- std::set<QString> supportedExtensions() const override;
- EInstallResult install(MOBase::GuessedValue<QString>& modName, QString gameName,
- const QString& archiveName, const QString& version,
- int nexusID) override;
-
-private:
- MOBase::IOrganizer* m_organizer = nullptr;
-
- // OMOD config parsed from the binary "config" entry.
- struct OmodConfig
- {
- uint8_t fileVersion = 0;
- QString modName;
- int32_t major = 0;
- int32_t minor = 0;
- QString authorName;
- QString email;
- QString website;
- QString desc;
- uint8_t compressionType = 0; // 0 = deflate, 1 = lzma
- };
-
- // Entry from data.crc / plugins.crc.
- struct CrcEntry
- {
- QString path;
- uint32_t crc = 0;
- int64_t size = 0;
- };
-
- // Binary reader helper over a QByteArray.
- class BinaryReader
- {
- public:
- explicit BinaryReader(const QByteArray& data);
-
- uint8_t readByte();
- int32_t readInt32LE();
- uint32_t readUInt32LE();
- int64_t readInt64LE();
- void skip(int bytes);
- int read7BitEncodedInt();
- QString readNetString();
- QByteArray readBytes(int count);
- bool atEnd() const;
-
- private:
- const QByteArray& m_data;
- int m_pos = 0;
- };
-
- OmodConfig parseConfig(const QByteArray& data);
- std::vector<CrcEntry> parseCrcFile(const QByteArray& data);
- QByteArray decompressStream(const QByteArray& data, uint8_t compressionType);
-
- EInstallResult doInstall(MOBase::GuessedValue<QString>& modName,
- const QString& archiveName);
-
- void extractStream(const QString& omodDir, const QString& streamName,
- const QString& crcName, uint8_t compressionType,
- const QString& outDir);
-};
-
-#endif // OMODINSTALLER_H