/* * SSEQ Player - SDAT SBNK (Sound Bank) structures * By Naram Qashat (CyberBotX) [cyberbotx@cyberbotx.com] * Last modification on 2013-03-21 * * Nintendo DS Nitro Composer (SDAT) Specification document found at * http://www.feshrine.net/hacking/doc/nds-sdat.html */ #ifndef SSEQPLAYER_SBNK_H #define SSEQPLAYER_SBNK_H #include "SWAR.h" #include "INFOEntry.h" #include "common.h" struct SBNKInstrumentRange { uint8_t lowNote; uint8_t highNote; uint16_t record; uint16_t swav; uint16_t swar; uint8_t noteNumber; uint8_t attackRate; uint8_t decayRate; uint8_t sustainLevel; uint8_t releaseRate; uint8_t pan; SBNKInstrumentRange(uint8_t lowerNote, uint8_t upperNote, int recordType); void Read(PseudoFile &file); }; struct SBNKInstrument { uint8_t record; std::vector ranges; SBNKInstrument(); void Read(PseudoFile &file, uint32_t startOffset); }; struct SBNK { std::string filename; std::vector instruments; const SWAR *waveArc[4]; INFOEntryBANK info; SBNK(const std::string &fn = ""); SBNK(const SBNK &sbnk); SBNK &operator=(const SBNK &sbnk); void Read(PseudoFile &file); }; #endif