#include <midiparser_simonwin.h>
Public Member Functions | |
int32 | determineDataSize (Common::SeekableReadStream *stream) override |
MidiParser_SimonWin (int8 source=-1, bool useDosTempos=false) | |
void | setTempo (uint32 tempo) override |
bool | loadMusic (byte *data, uint32 size) override |
void | unloadMusic () override |
Public Member Functions inherited from MidiParser_SMF | |
MidiParser_SMF (int8 source=-1) | |
Public Member Functions inherited from MidiParser | |
MidiParser (int8 source=-1) | |
virtual void | property (int prop, int value) |
virtual void | setMidiDriver (MidiDriver_BASE *driver) |
void | setTimerRate (uint32 rate) |
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 * | _trackData [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 |
Static Protected Attributes | |
static const uint8 | MAXIMUM_TRACKS = 16 |
Static Protected Attributes inherited from MidiParser | |
static const uint8 | MAXIMUM_TRACKS = 120 |
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) |
Parser for the MIDI data of the Windows versions of Simon The Sorcerer 1 and 2. This consists of 1 or more type 1 SMF files, preceded by a byte indicating the number of files. The MIDI data for Simon 1 also has broken pitch bend events, as well as incorrect tempos, which are corrected by this parser.
|
overridevirtual |
Returns the size in bytes of the MIDI data in the specified stream, or -1 if the size could not be determined. The MIDI data must be in the format handled by the MidiParser subclass that this method is called on. Not every MidiParser subclass has an implementation of this method.
Reimplemented from MidiParser_SMF.