mirror of https://github.com/zeldaret/tp.git
80 lines
2.6 KiB
C++
80 lines
2.6 KiB
C++
#ifndef JASSEQCTRL_H
|
|
#define JASSEQCTRL_H
|
|
|
|
#include "JSystem/JAudio2/JASSeqReader.h"
|
|
|
|
class JASTrack;
|
|
class JASSeqParser;
|
|
|
|
/**
|
|
* @ingroup jsystem-jaudio
|
|
*
|
|
*/
|
|
class JASSeqCtrl {
|
|
public:
|
|
enum IntrType {
|
|
INTRTYPE_VALUE_0,
|
|
INTRTYPE_VALUE_1,
|
|
INTRTYPE_VALUE_2,
|
|
INTRTYPE_VALUE_3,
|
|
INTRTYPE_VALUE_4,
|
|
INTRTYPE_VALUE_5,
|
|
INTRTYPE_VALUE_6,
|
|
};
|
|
|
|
/* 802938BC */ JASSeqCtrl();
|
|
/* 80293924 */ void init();
|
|
/* 80293980 */ void start(void*, u32);
|
|
/* 802939C4 */ int tickProc(JASTrack*);
|
|
/* 80293ABC */ void interrupt(JASSeqCtrl::IntrType);
|
|
/* 80293AE0 */ void setIntrMask(u32);
|
|
/* 80293AF0 */ void clrIntrMask(u32);
|
|
/* 80293B00 */ int retIntr();
|
|
/* 80293B28 */ int findIntr();
|
|
/* 80293B78 */ void checkIntr();
|
|
/* 80293BE8 */ void timerProcess();
|
|
|
|
const JASSeqReader* getSeqReader() const { return &mReader; }
|
|
void* getBase() { return mReader.getBase(); }
|
|
void* getAddr(u32 param_0) { return mReader.getAddr(param_0); }
|
|
u8 getByte(u32 param_0) const { return mReader.getByte(param_0); }
|
|
u16 get16(u32 param_0) const { return mReader.get16(param_0); }
|
|
u32 get24(u32 param_0) const { return mReader.get24(param_0); }
|
|
u32 get32(u32 param_0) const { return mReader.get32(param_0); }
|
|
void* getCur() { return mReader.getCur(); }
|
|
u32 readByte() { return mReader.readByte(); }
|
|
u32 read16() { return mReader.read16(); }
|
|
u32 read24() { return mReader.read24(); }
|
|
bool call(u32 param_0) { return mReader.call(param_0); }
|
|
bool ret() { return mReader.ret(); }
|
|
void jump(u32 param_0) { mReader.jump(param_0); }
|
|
bool loopStart(u32 param_0) { return mReader.loopStart(param_0); }
|
|
bool loopEnd() { return mReader.loopEnd(); }
|
|
int readMidiValue() { return mReader.readMidiValue(); }
|
|
void wait(s32 param_0) { field_0x40 = param_0; }
|
|
void clrIntr() { field_0x44 = NULL; }
|
|
void setIntrTable(u32 param_0) { field_0x48 = param_0; }
|
|
void setIntrTimer(u32 param_0, u32 param_1) {
|
|
field_0x50 = param_0;
|
|
field_0x54 = param_1;
|
|
field_0x58 = param_1;
|
|
}
|
|
void waitNoteFinish() { field_0x51 = 1; }
|
|
|
|
/* 0x00 */ JASSeqReader mReader;
|
|
/* 0x3c */ JASSeqParser* field_0x3c;
|
|
/* 0x40 */ s32 field_0x40;
|
|
/* 0x44 */ void* field_0x44;
|
|
/* 0x48 */ u32 field_0x48;
|
|
/* 0x4c */ u16 field_0x4c;
|
|
/* 0x4e */ u16 field_0x4e;
|
|
/* 0x50 */ u8 field_0x50;
|
|
/* 0x51 */ u8 field_0x51;
|
|
/* 0x52 */ u16 field_0x52;
|
|
/* 0x54 */ u32 field_0x54;
|
|
/* 0x58 */ u32 field_0x58;
|
|
static JASSeqParser sDefaultParser;
|
|
};
|
|
|
|
#endif /* JASSEQCTRL_H */
|