diff options
author | David Robillard <d@drobilla.net> | 2014-11-30 18:33:22 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2014-11-30 23:56:19 -0500 |
commit | 008bfceb77298f21c592a3860d75d5cc4b315e4d (patch) | |
tree | 34e19194b2d450daa3b77aa0cf1c3062314bad0e /libs/ardour/ardour/midi_state_tracker.h | |
parent | 0f72ea4a349480cf1272571395f63c10b6152b4f (diff) |
Clean up state tracking of raw MIDI.
Diffstat (limited to 'libs/ardour/ardour/midi_state_tracker.h')
-rw-r--r-- | libs/ardour/ardour/midi_state_tracker.h | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/libs/ardour/ardour/midi_state_tracker.h b/libs/ardour/ardour/midi_state_tracker.h index 1a3d480045..d8a31c10aa 100644 --- a/libs/ardour/ardour/midi_state_tracker.h +++ b/libs/ardour/ardour/midi_state_tracker.h @@ -39,6 +39,7 @@ public: MidiStateTracker(); void track (const MidiBuffer::const_iterator& from, const MidiBuffer::const_iterator& to); + void track (const uint8_t* evbuf); void add (uint8_t note, uint8_t chn); void remove (uint8_t note, uint8_t chn); void resolve_notes (MidiBuffer& buffer, framepos_t time); @@ -54,19 +55,7 @@ public: template<typename Time> void track (const Evoral::Event<Time>& ev) { - const uint8_t type = ev.buffer()[0] & 0xF0; - const uint8_t chan = ev.buffer()[0] & 0x0F; - switch (type) { - case MIDI_CTL_ALL_NOTES_OFF: - reset(); - break; - case MIDI_CMD_NOTE_ON: - add(ev.buffer()[1], chan); - break; - case MIDI_CMD_NOTE_OFF: - remove(ev.buffer()[1], chan); - break; - } + track (ev.buffer()); } private: |