NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
nw4r::snd::detail::MmlParser Class Reference

Description

Definition at line 24 of file snd_MmlParser.h.

Public Member Functions

virtual void CommandProc (MmlSeqTrack *track, ulong command, s32 commandArg1, s32 commandArg2) const
 
virtual ChannelNoteOnCommandProc (MmlSeqTrack *track, int key, int velocity, s32 length, bool tieFlag) const
 
MmlSeqTrack::ParseResult Parse (MmlSeqTrack *track, bool doNoteOn) const
 
s16 volatile * GetVariablePtr (SeqPlayer *player, SeqTrack *track, int varNo) const
 

Static Public Member Functions

static void EnablePrintVar (bool enable)
 
static ulong ParseAllocTrack (void const *baseAddress, ulong seqOffset, ulong *allocTrack)
 

Static Public Attributes

static int const TEMPO_MAX = 1023
 
static int const TEMPO_MIN = 0
 
static int const CALL_STACK_DEPTH = 3
 
static int const SURROUND_PAN_CENTER
 
static int const PAN_CENTER = 64
 

Private Types

enum  SeqArgType {
  SEQ_ARG_NONE ,
  SEQ_ARG_U8 ,
  SEQ_ARG_S16 ,
  SEQ_ARG_VMIDI ,
  SEQ_ARG_RANDOM ,
  SEQ_ARG_VARIABLE
}
 
enum  MmlCommand {
  MML_CMD_MIN = 0x80 ,
  MML_CMD_MAX = 0xff ,
  MML_CMD_MASK = 0x80 ,
  MML_CMD_SET_MASK = 0xf0 ,
  MML_WAIT = 0x80 ,
  MML_SET_PRGNO ,
  MML_OPEN_TRACK = 0x88 ,
  MML_JUMP ,
  MML_CALL ,
  MML_ARG_1_RANDOM = 0xa0 ,
  MML_ARG_1_VARIABLE ,
  MML_EXEC_IF ,
  MML_ARG_2_S16 ,
  MML_ARG_2_RANDOM ,
  MML_ARG_2_VARIABLE ,
  MML_SET_TIMEBASE = 0xb0 ,
  MML_SET_ENV_HOLD ,
  MML_SET_MONOPHONIC ,
  MML_SET_TRACK_VELOCITY_RANGE ,
  MML_SET_BIQUAD_TYPE ,
  MML_SET_BIQUAD_VALUE ,
  MML_SET_PAN = 0xc0 ,
  MML_SET_TRACK_VOLUME ,
  MML_SET_PLAYER_VOLUME ,
  MML_SET_TRANSPOSE ,
  MML_SET_PITCH_BEND ,
  MML_SET_BEND_RANGE ,
  MML_SET_PRIORITY ,
  MML_SET_NOTE_WAIT ,
  MML_SET_TIE ,
  MML_SET_PORTAMENTO ,
  MML_SET_LFO_DEPTH ,
  MML_SET_LFO_SPEED ,
  MML_SET_LFO_TARGET ,
  MML_SET_LFO_RANGE ,
  MML_SET_PORTASPEED ,
  MML_SET_PORTATIME ,
  MML_SET_ATTACK = 0xd0 ,
  MML_SET_DECAY ,
  MML_SET_SUSTAIN ,
  MML_SET_RELEASE ,
  MML_LOOP_START ,
  MML_SET_TRACK_VOLUME2 ,
  MML_PRINT_VAR ,
  MML_SET_SURROUND_PAN ,
  MML_SET_LPF_FREQ ,
  MML_SET_FX_SEND_A ,
  MML_SET_FX_SEND_B ,
  MML_SET_MAIN_SEND ,
  MML_SET_INIT_PAN ,
  MML_SET_MUTE ,
  MML_SET_FX_SEND_C ,
  MML_SET_DAMPER ,
  MML_SET_LFO_DELAY = 0xe0 ,
  MML_SET_TEMPO ,
  MML_SET_E2 ,
  MML_SET_SWEEP_PITCH ,
  MML_RESET_ADSR = 0xfb ,
  MML_LOOP_END ,
  MML_RET ,
  MML_ALLOC_TRACK ,
  MML_EOF
}
 
enum  MmlExCommand {
  MML_EX_COMMAND = 0xf0 ,
  MML_EX_CMD_MAX = 0xffff ,
  MML_EX_ARITHMETIC = 0x80 ,
  MML_EX_SET = 0x80 ,
  MML_EX_APL ,
  MML_EX_AMI ,
  MML_EX_AMU ,
  MML_EX_ADV ,
  MML_EX_ALS ,
  MML_EX_RND ,
  MML_EX_AAD ,
  MML_EX_AOR ,
  MML_EX_AER ,
  MML_EX_ACO ,
  MML_EX_AMD ,
  MML_EX_LOGIC = 0x90 ,
  MML_EX_EQ = 0x90 ,
  MML_EX_GE ,
  MML_EX_GT ,
  MML_EX_LE ,
  MML_EX_LT ,
  MML_EX_NE ,
  MML_EX_USERPROC = 0xe0
}
 

Private Member Functions

u8 ReadByte (byte_t const **ptr) const
 
u16 Read16 (byte_t const **ptr) const
 
ulong Read24 (byte_t const **ptr) const
 
s32 ReadVar (byte_t const **ptr) const
 
s32 ReadArg (byte_t const **ptr, SeqPlayer *player, SeqTrack *track, SeqArgType argType) const
 

Static Private Attributes

static bool mPrintVarEnabledFlag
 

Member Enumeration Documentation

◆ SeqArgType

enum nw4r::snd::detail::MmlParser::SeqArgType
private

Definition at line 29 of file snd_MmlParser.h.

◆ MmlCommand

enum nw4r::snd::detail::MmlParser::MmlCommand
private

Definition at line 40 of file snd_MmlParser.h.

◆ MmlExCommand

enum nw4r::snd::detail::MmlParser::MmlExCommand
private

Definition at line 115 of file snd_MmlParser.h.

Member Function Documentation

◆ EnablePrintVar()

static void nw4r::snd::detail::MmlParser::EnablePrintVar ( bool enable)
inlinestatic

Definition at line 162 of file snd_MmlParser.h.

◆ ReadByte()

u8 nw4r::snd::detail::MmlParser::ReadByte ( byte_t const ** ptr) const
inlineprivate

Definition at line 171 of file snd_MmlParser.h.

Member Data Documentation

◆ TEMPO_MAX

int const nw4r::snd::detail::MmlParser::TEMPO_MAX = 1023
static

Definition at line 180 of file snd_MmlParser.h.

◆ TEMPO_MIN

int const nw4r::snd::detail::MmlParser::TEMPO_MIN = 0
static

Definition at line 181 of file snd_MmlParser.h.

◆ CALL_STACK_DEPTH

int const nw4r::snd::detail::MmlParser::CALL_STACK_DEPTH = 3
static

Definition at line 182 of file snd_MmlParser.h.

◆ SURROUND_PAN_CENTER

int const nw4r::snd::detail::MmlParser::SURROUND_PAN_CENTER
static

Definition at line 183 of file snd_MmlParser.h.

◆ PAN_CENTER

int const nw4r::snd::detail::MmlParser::PAN_CENTER = 64
static

Definition at line 184 of file snd_MmlParser.h.

◆ mPrintVarEnabledFlag

bool nw4r::snd::detail::MmlParser::mPrintVarEnabledFlag
staticprivate

Definition at line 187 of file snd_MmlParser.h.