#include <midiparser_gmf.h>
Public Member Functions | |
MidiParser_GMF (int8 source=-1, bool useDosTempos=false) | |
bool | loadMusic (byte *data, uint32 size) override |
Public Member Functions inherited from MidiParser_SMF | |
MidiParser_SMF (int8 source=-1) | |
int32 | determineDataSize (Common::SeekableReadStream *stream) override |
Public Member Functions inherited from MidiParser | |
MidiParser (int8 source=-1) | |
virtual void | unloadMusic () |
virtual void | property (int prop, int value) |
virtual void | setMidiDriver (MidiDriver_BASE *driver) |
void | setTimerRate (uint32 rate) |
virtual void | setTempo (uint32 tempo) |
virtual void | onTimer () |
bool | isPlaying () const |
bool | startPlaying () |
void | stopPlaying () |
void | pausePlaying () |
void | resumePlaying () |
bool | setTrack (int track) |
bool | jumpToTick (uint32 tick, bool fireEvents=false, bool stopNotes=true, bool dontSendNoteOn=false) |
virtual bool | hasJumpIndex (uint8 index) |
virtual bool | jumpToIndex (uint8 index, bool stopNotes=true) |
uint32 | getPPQN () |
virtual uint32 | getTick () |
Protected Member Functions | |
void | parseNextEvent (EventInfo &info) override |
Protected Member Functions inherited from MidiParser_SMF | |
uint32 | compressToType0 (byte *tracks[], byte numTracks, byte *buffer, bool malformedPitchBends=false) |
Protected Member Functions inherited from MidiParser | |
virtual void | resetTracking () |
virtual void | allNotesOff () |
virtual bool | processEvent (const EventInfo &info, bool fireEvents=true) |
void | activeNote (byte channel, byte note, bool active) |
void | hangingNote (byte channel, byte note, uint32 ticksLeft, bool recycle=true) |
void | hangAllActiveNotes () |
virtual void | onTrackStart (uint8 track) |
virtual void | sendToDriver (uint32 b) |
void | sendToDriver (byte status, byte firstOp, byte secondOp) |
virtual void | sendMetaEventToDriver (byte type, byte *data, uint16 length) |
uint32 | read4high (byte *&data) |
uint16 | read2low (byte *&data) |
Protected Attributes | |
byte * | _tracksEndPos [MAXIMUM_TRACKS] |
bool | _useDosTempos |
Protected Attributes inherited from MidiParser_SMF | |
byte * | _buffer |
int8 | _noteChannelToTrack [16] |
Protected Attributes inherited from MidiParser | |
uint16 | _activeNotes [128] |
Each uint16 is a bit mask for channels that have that note on. | |
NoteTimer | _hangingNotes [32] |
Used for "Smart Jump" and MIDI formats that do not include explicit Note Off events. More... | |
byte | _hangingNotesCount |
Count of hanging notes, used to optimize expiration. | |
MidiDriver_BASE * | _driver |
The device to which all events will be transmitted. | |
uint32 | _timerRate |
The time in microseconds between onTimer() calls. Obtained from the MidiDriver. | |
uint32 | _ppqn |
Pulses Per Quarter Note. (We refer to "pulses" as "ticks".) | |
uint32 | _tempo |
Microseconds per quarter note. | |
uint32 | _psecPerTick |
Microseconds per tick (_tempo / _ppqn). | |
uint32 | _sysExDelay |
Number of microseconds until the next SysEx event can be sent. | |
bool | _autoLoop |
For lightweight clients that don't provide their own flow control. | |
bool | _smartJump |
Support smart expiration of hanging notes when jumping. | |
bool | _centerPitchWheelOnUnload |
Center the pitch wheels when unloading a song. | |
bool | _sendSustainOffOnNotesOff |
Send a sustain off on a notes off event, stopping hanging notes. | |
bool | _disableAllNotesOffMidiEvents |
Don't send All Notes Off MIDI messages. | |
bool | _disableAutoStartPlayback |
Do not automatically start playback after parsing MIDI data or setting the track. | |
byte * | _tracks [MAXIMUM_TRACKS] |
Multi-track MIDI formats are supported, up to 120 tracks. | |
byte | _numTracks |
Count of total tracks for multi-track MIDI formats. 1 for single-track formats. | |
byte | _activeTrack |
Keeps track of the currently active track, in multi-track formats. | |
Tracker | _position |
The current time/position in the active track. | |
EventInfo | _nextEvent |
bool | _abortParse |
If a jump or other operation interrupts parsing, flag to abort. | |
bool | _jumpingToTick |
True if currently inside jumpToTick. | |
bool | _doParse |
True if the parser should be parsing; false if it should not be active. | |
bool | _pause |
True if the parser has paused parsing. | |
int8 | _source |
Additional Inherited Members | |
Public Types inherited from MidiParser | |
enum | { mpAutoLoop = 2, mpSmartJump = 3, mpCenterPitchWheelOnUnload = 4, mpSendSustainOffOnNotesOff = 5, mpDisableAllNotesOffMidiEvents = 6, mpDisableAutoStartPlayback = 7 } |
typedef void(* | XMidiCallbackProc) (byte eventData, void *refCon) |
Static Public Member Functions inherited from MidiParser | |
static void | defaultXMidiCallback (byte eventData, void *refCon) |
static MidiParser * | createParser_SMF (int8 source=-1) |
static MidiParser * | createParser_XMIDI (XMidiCallbackProc proc=defaultXMidiCallback, void *refCon=0, int source=-1) |
static MidiParser * | createParser_QT (int8 source=-1) |
static void | timerCallback (void *data) |
Static Protected Member Functions inherited from MidiParser | |
static uint32 | readVLQ (byte *&data) |
Static Protected Attributes inherited from MidiParser | |
static const uint8 | MAXIMUM_TRACKS = 120 |
MIDI parser for the GMF format used by the DOS (and Acorn CD) versions of Simon The Sorcerer. GMF is basically SMF but with the following differences: