tp/include/JSystem/JAudio2/JASBNKParser.h

80 lines
2.0 KiB
C++

#ifndef JASBNKPARSER_H
#define JASBNKPARSER_H
#include "JSystem/JAudio2/JASOscillator.h"
class JASBank;
class JASBasicBank;
class JKRHeap;
namespace JASBNKParser {
struct TFileHeader {
/* 0x0 */ u8 _00[4];
/* 0x4 */ u32 mSize;
/* 0x8 */ u8 _08[4];
/* 0xC */ u32 mVersion;
};
namespace Ver1 {
struct TOsc {
/* 0x00 */ u8 _00[4];
/* 0x04 */ u8 mTarget;
/* 0x08 */ f32 _08;
/* 0x0C */ u32 mTableOffset;
/* 0x10 */ u32 _10;
/* 0x14 */ f32 mScale;
/* 0x18 */ f32 _18;
};
struct TPercData {
/* 0x00 */ f32 mVolume;
/* 0x04 */ f32 mPitch;
/* 0x08 */ u8 mPan;
/* 0x0A */ u16 mRelease;
/* 0x0C */ u32 field_0xc;
};
struct TChunk {
/* 0x0 */ u32 mID;
/* 0x4 */ u32 mSize;
};
struct TEnvtChunk : TChunk {
/* 0x8 */ u8 mData[0];
};
struct TOscChunk : TChunk {
/* 0x8 */ u32 mCount;
/* 0xC */ TOsc mOsc[0];
};
struct TListChunk : TChunk {
/* 0x8 */ u32 mCount;
/* 0xC */ u32 mOffsets[0];
};
/* 80299600 */ static TChunk* findChunk(void const*, u32);
/* 8029963C */ static JASBasicBank* createBasicBank(void const*, JKRHeap*);
};
namespace Ver0 {
struct THeader {};
struct TOsc {};
/* 80299A3C */ static JASBasicBank* createBasicBank(void const*, JKRHeap*);
/* 80299E68 */ static void findOscPtr(JASBasicBank*, THeader const*, TOsc const*);
/* 80299F8C */ static void getOscTableEndPtr(JASOscillator::Point const*);
};
/* 80299538 */ static JASBank* createBank(void const*, JKRHeap*);
/* 80299558 */ static JASBasicBank* createBasicBank(void const*, JKRHeap*);
inline static u32 getBankNumber(const void* param_0) { return ((u32*)param_0)[2]; }
extern u32 sUsedHeapSize;
};
#endif /* JASBNKPARSER_H */