/*
* SSEQ Player - SDAT INFO Entry structures
* By Naram Qashat (CyberBotX) [cyberbotx@cyberbotx.com]
*
* Nintendo DS Nitro Composer (SDAT) Specification document found at
* http://www.feshrine.net/hacking/doc/nds-sdat.html
*/
#pragma once
#include <cstdint>
struct PseudoFile;
struct INFOEntry
{
virtual ~INFOEntry()
{
}
virtual void Read(PseudoFile &file) = 0;
};
struct INFOEntrySEQ : INFOEntry
{
std::uint16_t fileID;
std::uint16_t bank;
std::uint8_t vol;
std::uint8_t ply;
INFOEntrySEQ();
void Read(PseudoFile &file) override;
};
struct INFOEntryBANK : INFOEntry
{
std::uint16_t fileID;
std::uint16_t waveArc[4];
INFOEntryBANK();
void Read(PseudoFile &file) override;
};
struct INFOEntryWAVEARC : INFOEntry
{
std::uint16_t fileID;
INFOEntryWAVEARC();
void Read(PseudoFile &file) override;
};
struct INFOEntryPLAYER : INFOEntry
{
std::uint16_t channelMask;
INFOEntryPLAYER();
void Read(PseudoFile &file) override;
};