diff options
Diffstat (limited to 'sound/midiparser.h')
| -rw-r--r-- | sound/midiparser.h | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/sound/midiparser.h b/sound/midiparser.h index 0ba12ce2b1..3ef99fcd6e 100644 --- a/sound/midiparser.h +++ b/sound/midiparser.h @@ -267,13 +267,12 @@ struct NoteTimer {   * memory block containing the music data.)   */  class MidiParser { -private: +protected:  	uint16    _active_notes[128];   ///< Each uint16 is a bit mask for channels that have that note on.  	NoteTimer _hanging_notes[32];   ///< Maintains expiration info for up to 32 notes.  	                                ///< Used for "Smart Jump" and MIDI formats that do not include explicit Note Off events.  	byte      _hanging_notes_count; ///< Count of hanging notes, used to optimize expiration. -protected:  	MidiDriver *_driver;    ///< The device to which all events will be transmitted.  	uint32 _timer_rate;     ///< The time in microseconds between onTimer() calls. Obtained from the MidiDriver.  	uint32 _ppqn;           ///< Pulses Per Quarter Note. (We refer to "pulses" as "ticks".) @@ -303,6 +302,11 @@ protected:  	void hangingNote(byte channel, byte note, uint32 ticks_left, bool recycle = true);  	void hangAllActiveNotes(); +	virtual void sendToDriver(uint32 b); +	void sendToDriver(byte status, byte firstOp, byte secondOp) { +		sendToDriver(status | ((uint32)firstOp << 8) | ((uint32)secondOp << 16)); +	} +  	/**  	 * Platform independent BE uint32 read-and-advance.  	 * This helper function reads Big Endian 32-bit numbers  | 
