EHS/include/ehs/io/RIFF.h

38 lines
612 B
C++

#pragma once
#include "ehs/EHS.h"
#include "ehs/Str.h"
#include "ehs/Vector.h"
#include "ehs/Serializer.h"
#include "RIFF_Chunk.h"
namespace ehs
{
class EHS_LIB_IO RIFF
{
private:
Str_8 type;
Vector<RIFF_Chunk> chunks;
public:
RIFF() = default;
RIFF(const Str_8& filePath);
RIFF(Serializer<>& data);
RIFF(const RIFF& riff) = default;
operator const RIFF_Chunk*() const;
Str_8 GetType() const;
bool HasChunk(const UInt_64 hashId) const;
bool HasChunk(const Str_8& id) const;
RIFF_Chunk GetChunk(const UInt_64 hashId) const;
RIFF_Chunk GetChunk(const Str_8& id) const;
};
}