mirror of https://github.com/AxioDL/nod.git
42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#ifndef __NOD_DISC_GCN__
|
|
#define __NOD_DISC_GCN__
|
|
|
|
#include "DiscBase.hpp"
|
|
|
|
namespace nod
|
|
{
|
|
class DiscBuilderGCN;
|
|
|
|
class DiscGCN : public DiscBase
|
|
{
|
|
friend class DiscMergerGCN;
|
|
DiscBuilderGCN makeMergeBuilder(SystemStringView outPath, FProgress progressCB);
|
|
public:
|
|
DiscGCN(std::unique_ptr<IDiscIO>&& dio, bool& err);
|
|
bool extractDiscHeaderFiles(SystemStringView path, const ExtractionContext& ctx) const;
|
|
};
|
|
|
|
class DiscBuilderGCN : public DiscBuilderBase
|
|
{
|
|
friend class DiscMergerGCN;
|
|
public:
|
|
DiscBuilderGCN(SystemStringView outPath, FProgress progressCB);
|
|
EBuildResult buildFromDirectory(SystemStringView dirIn);
|
|
static uint64_t CalculateTotalSizeRequired(SystemStringView dirIn);
|
|
};
|
|
|
|
class DiscMergerGCN
|
|
{
|
|
DiscGCN& m_sourceDisc;
|
|
DiscBuilderGCN m_builder;
|
|
public:
|
|
DiscMergerGCN(SystemStringView outPath, DiscGCN& sourceDisc, FProgress progressCB);
|
|
EBuildResult mergeFromDirectory(SystemStringView dirIn);
|
|
static uint64_t CalculateTotalSizeRequired(DiscGCN& sourceDisc, SystemStringView dirIn);
|
|
};
|
|
|
|
}
|
|
|
|
|
|
#endif // __NOD_DISC_GCN__
|