Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
nw4hbm::snd::detail::MmlParser Class Reference

#include <MmlParser.h>

Public Types

enum  SeqArgType {
  SEQ_ARG_U8 = 0 , SEQ_ARG_S16 , SEQ_ARG_VMIDI , SEQ_ARG_RANDOM ,
  SEQ_ARG_VARIABLE
}
 
typedef enum nw4hbm::snd::detail::MmlParser::SeqArgType SeqArgType
 

Public Member Functions

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

Static Public Member Functions

static void EnablePrintVar (bool enable)
 

Static Public Attributes

static const int CALL_STACK_MAX_DEPTH = 3
 

Private Types

enum  MmlSeqData {
  MML_CMD_MIN = 0x80 , MML_WAIT = 0x80 , MML_SET_PRGNO , MML_OPENTRACK = 0x88 ,
  MML_JUMP , MML_CALL , MML_RNDPARAM = 0xA0 , MML_INDPARAM ,
  MML_EXECIF , MML_SET_TIMEBASE = 0xB0 , MML_SET_PAN = 0xC0 , MML_SET_TRACK_VOLUME ,
  MML_SET_PLAYER_VOLUME , MML_SET_TRANSPOSE , MML_SET_PITCHBEND , MML_SET_BENDRANGE ,
  MML_SET_PRIORITY , MML_SET_NOTEWAIT , MML_SET_TIE , MML_SET_PORTAMENTO ,
  MML_SET_LFODEPTH , MML_SET_LFOSPEED , MML_SET_LFOTARGET , MML_SET_LFORANGE ,
  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_PRINTVAR , MML_SET_SURROUNDPAN , MML_SET_LPFFREQ , MML_SET_FXSEND_A ,
  MML_SET_FXSEND_B , MML_SET_MAINSEND , MML_SET_INITPAN , MML_SET_MUTE ,
  MML_SET_FXSEND_C , MML_SET_DAMPER , MML_SET_LFODELAY = 0xE0 , MML_SET_TEMPO ,
  MML_CMD_E2h , MML_SET_SWEEPPITCH , MML_LOOP_END = 0xFC , MML_RET ,
  MML_ALLOCTRACK , MML_EOF , MML_CMD_MASK = 0x80 , MML_CMD_SET_MASK = 0xF0 ,
  MML_CMD_MAX = 0xFF , MML_EX_COMMAND = 0xF0 , 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 , MML_EX_CMD_MAX = 0xFFFF
}
 
typedef enum nw4hbm::snd::detail::MmlParser::MmlSeqData MmlSeqData
 

Private Member Functions

u8 ReadByte (const u8 **data) const
 
u16 Read16 (const u8 **data) const
 
u32 Read24 (const u8 **data) const
 
s32 ReadVar (const u8 **data) const
 
s32 ReadArg (const u8 **data, SeqPlayer *player, SeqTrack *track, SeqArgType type) const
 

Static Private Attributes

static bool mPrintVarEnabledFlag
 

Member Typedef Documentation

◆ MmlSeqData

◆ SeqArgType

Member Enumeration Documentation

◆ MmlSeqData

Enumerator
MML_CMD_MIN 
MML_WAIT 
MML_SET_PRGNO 
MML_OPENTRACK 
MML_JUMP 
MML_CALL 
MML_RNDPARAM 
MML_INDPARAM 
MML_EXECIF 
MML_SET_TIMEBASE 
MML_SET_PAN 
MML_SET_TRACK_VOLUME 
MML_SET_PLAYER_VOLUME 
MML_SET_TRANSPOSE 
MML_SET_PITCHBEND 
MML_SET_BENDRANGE 
MML_SET_PRIORITY 
MML_SET_NOTEWAIT 
MML_SET_TIE 
MML_SET_PORTAMENTO 
MML_SET_LFODEPTH 
MML_SET_LFOSPEED 
MML_SET_LFOTARGET 
MML_SET_LFORANGE 
MML_SET_PORTASPEED 
MML_SET_PORTATIME 
MML_SET_ATTACK 
MML_SET_DECAY 
MML_SET_SUSTAIN 
MML_SET_RELEASE 
MML_LOOP_START 
MML_SET_TRACK_VOLUME2 
MML_PRINTVAR 
MML_SET_SURROUNDPAN 
MML_SET_LPFFREQ 
MML_SET_FXSEND_A 
MML_SET_FXSEND_B 
MML_SET_MAINSEND 
MML_SET_INITPAN 
MML_SET_MUTE 
MML_SET_FXSEND_C 
MML_SET_DAMPER 
MML_SET_LFODELAY 
MML_SET_TEMPO 
MML_CMD_E2h 
MML_SET_SWEEPPITCH 
MML_LOOP_END 
MML_RET 
MML_ALLOCTRACK 
MML_EOF 
MML_CMD_MASK 
MML_CMD_SET_MASK 
MML_CMD_MAX 
MML_EX_COMMAND 
MML_EX_ARITHMETIC 
MML_EX_SET 
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 
MML_EX_EQ 
MML_EX_GE 
MML_EX_GT 
MML_EX_LE 
MML_EX_LT 
MML_EX_NE 
MML_EX_USERPROC 
MML_EX_CMD_MAX 

◆ SeqArgType

Enumerator
SEQ_ARG_U8 
SEQ_ARG_S16 
SEQ_ARG_VMIDI 
SEQ_ARG_RANDOM 
SEQ_ARG_VARIABLE 

Member Function Documentation

◆ CommandProc()

virtual void nw4hbm::snd::detail::MmlParser::CommandProc ( MmlSeqTrack * track,
u32 command,
s32 commandArg1,
s32 commandArg2 ) const
virtual

◆ EnablePrintVar()

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

◆ GetVariablePtr()

vs16 * nw4hbm::snd::detail::MmlParser::GetVariablePtr ( SeqPlayer * player,
SeqTrack * track,
int varNo ) const

◆ NoteOnCommandProc()

virtual Channel * nw4hbm::snd::detail::MmlParser::NoteOnCommandProc ( MmlSeqTrack * track,
int key,
int velocity,
s32 length,
bool tieFlag ) const
virtual

◆ Parse()

ParseResult nw4hbm::snd::detail::MmlParser::Parse ( MmlSeqTrack * track,
bool doNoteOn ) const

◆ Read16()

u16 nw4hbm::snd::detail::MmlParser::Read16 ( const u8 ** data) const
private

◆ Read24()

u32 nw4hbm::snd::detail::MmlParser::Read24 ( const u8 ** data) const
private

◆ ReadArg()

s32 nw4hbm::snd::detail::MmlParser::ReadArg ( const u8 ** data,
SeqPlayer * player,
SeqTrack * track,
SeqArgType type ) const
private

◆ ReadByte()

u8 nw4hbm::snd::detail::MmlParser::ReadByte ( const u8 ** data) const
inlineprivate

◆ ReadVar()

s32 nw4hbm::snd::detail::MmlParser::ReadVar ( const u8 ** data) const
private

Member Data Documentation

◆ CALL_STACK_MAX_DEPTH

const int nw4hbm::snd::detail::MmlParser::CALL_STACK_MAX_DEPTH = 3
static

◆ mPrintVarEnabledFlag

bool nw4hbm::snd::detail::MmlParser::mPrintVarEnabledFlag
staticprivate

The documentation for this class was generated from the following file: