From 008bfceb77298f21c592a3860d75d5cc4b315e4d Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 30 Nov 2014 18:33:22 -0500 Subject: [PATCH] Clean up state tracking of raw MIDI. --- libs/ardour/ardour/midi_ring_buffer.h | 20 +------------------- libs/ardour/ardour/midi_state_tracker.h | 15 ++------------- libs/ardour/midi_ring_buffer.cc | 8 +------- libs/ardour/midi_state_tracker.cc | 18 ++++++++++++++++++ 4 files changed, 22 insertions(+), 39 deletions(-) diff --git a/libs/ardour/ardour/midi_ring_buffer.h b/libs/ardour/ardour/midi_ring_buffer.h index 78d14b9185..13588e4f04 100644 --- a/libs/ardour/ardour/midi_ring_buffer.h +++ b/libs/ardour/ardour/midi_ring_buffer.h @@ -57,25 +57,7 @@ public: void flush (framepos_t start, framepos_t end); void reset_tracker (); - void loop_resolve (MidiBuffer& dst, framepos_t); - -protected: - inline bool is_channel_event(uint8_t event_type_byte) { - // mask out channel information - event_type_byte &= 0xF0; - // midi channel events range from 0x80 to 0xE0 - return (0x80 <= event_type_byte) && (event_type_byte <= 0xE0); - } - - inline bool is_note_on(uint8_t event_type_byte) { - // mask out channel information - return (event_type_byte & 0xF0) == MIDI_CMD_NOTE_ON; - } - - inline bool is_note_off(uint8_t event_type_byte) { - // mask out channel information - return (event_type_byte & 0xF0) == MIDI_CMD_NOTE_OFF; - } + void loop_resolve (MidiBuffer& dst, framepos_t); private: MidiStateTracker _tracker; 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 void track (const Evoral::Event