Logo Search packages:      
Sourcecode: scummvm version File versions  Download package

MidiParser_XMIDI Class Reference

Inheritance diagram for MidiParser_XMIDI:


List of all members.

Detailed Description

The XMIDI version of MidiParser.

Much of this code is adapted from the XMIDI implementation from the exult project.

Definition at line 36 of file midiparser_xmidi.cpp.

Public Types

enum  { mpMalformedPitchBends = 1, mpAutoLoop = 2, mpSmartJump = 3, mpCenterPitchWheelOnUnload = 4 }
 Configuration options for MidiParser. More...

Public Member Functions

uint32 getPPQN ()
virtual uint32 getTick ()
bool jumpToTick (uint32 tick, bool fireEvents=false)
bool loadMusic (byte *data, uint32 size)
void onTimer ()
virtual void property (int prop, int value)
void setMidiDriver (MidiDriver *driver)
void setTempo (uint32 tempo)
void setTimerRate (uint32 rate)
bool setTrack (int track)
virtual void unloadMusic ()

Static Public Member Functions

static MidiParsercreateParser_SMF ()
static MidiParsercreateParser_XMIDI ()
static void timerCallback (void *data)

Protected Member Functions

void activeNote (byte channel, byte note, bool active)
virtual void allNotesOff ()
void hangAllActiveNotes ()
void hangingNote (byte channel, byte note, uint32 ticks_left, bool recycle=true)
void parseNextEvent (EventInfo &info)
uint16 read2low (byte *&data)
 Platform independent LE uint16 read-and-advance.
uint32 read4high (byte *&data)
 Platform independent BE uint32 read-and-advance.
uint32 readVLQ2 (byte *&data)
void resetTracking ()

Static Protected Member Functions

static uint32 readVLQ (byte *&data)

Protected Attributes

bool _abort_parse
 If a jump or other operation interrupts parsing, flag to abort.
byte _active_track
 Keeps track of the currently active track, in multi-track formats.
bool _autoLoop
 For lightweight clients that don't provide their own flow control.
bool _centerPitchWheelOnUnload
 Center the pitch wheels when unloading a song.
 The device to which all events will be transmitted.
uint32 _inserted_delta
EventInfo _next_event
NoteTimer _notes_cache [32]
byte _num_tracks
 Count of total tracks for multi-track MIDI formats. 1 for single-track formats.
Tracker _position
 The current time/position in the active track.
uint32 _ppqn
 Pulses Per Quarter Note. (We refer to "pulses" as "ticks".).
uint32 _psec_per_tick
 Microseconds per tick (_tempo / _ppqn).
bool _smartJump
 Support smart expiration of hanging notes when jumping.
uint32 _tempo
 Microseconds per quarter note.
uint32 _timer_rate
 The time in microseconds between onTimer() calls. Obtained from the MidiDriver.
byte * _tracks [120]
 Multi-track MIDI formats are supported, up to 120 tracks.

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

Generated by  Doxygen 1.6.0   Back to index