summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_state_tracker.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-11-19 20:47:18 -0500
committerDavid Robillard <d@drobilla.net>2014-11-20 11:31:31 -0500
commit8f8a4878f30795b7ac5398c8daa6b01b5c6d4468 (patch)
treead69529a7ee88452f77403104b8cd0d970d67123 /libs/ardour/midi_state_tracker.cc
parent9d8bbf4b9a7ddf2f7f030a6716f9d647190abca8 (diff)
Clean up some MIDI code.
Diffstat (limited to 'libs/ardour/midi_state_tracker.cc')
-rw-r--r--libs/ardour/midi_state_tracker.cc25
1 files changed, 1 insertions, 24 deletions
diff --git a/libs/ardour/midi_state_tracker.cc b/libs/ardour/midi_state_tracker.cc
index 466fc20b63..5e99c35294 100644
--- a/libs/ardour/midi_state_tracker.cc
+++ b/libs/ardour/midi_state_tracker.cc
@@ -47,16 +47,6 @@ MidiStateTracker::reset ()
}
void
-MidiStateTracker::track_note_onoffs (const Evoral::MIDIEvent<MidiBuffer::TimeType>& event)
-{
- if (event.is_note_on()) {
- add (event.note(), event.channel());
- } else if (event.is_note_off()){
- remove (event.note(), event.channel());
- }
-}
-
-void
MidiStateTracker::add (uint8_t note, uint8_t chn)
{
if (_active_notes[note+128 * chn] == 0) {
@@ -96,21 +86,8 @@ MidiStateTracker::remove (uint8_t note, uint8_t chn)
void
MidiStateTracker::track (const MidiBuffer::iterator &from, const MidiBuffer::iterator &to)
{
- // DEBUG_TRACE (PBD::DEBUG::MidiTrackers, string_compose ("%1 track notes\n", this));
-
for (MidiBuffer::iterator i = from; i != to; ++i) {
- const Evoral::MIDIEvent<MidiBuffer::TimeType> ev(*i, false);
-
- /* catch AllNotesOff message and turn off all notes
- */
-
- if (ev.type() == MIDI_CTL_ALL_NOTES_OFF) {
- cerr << "State tracker sees ALL_NOTES_OFF, silenceing " << sizeof (_active_notes) << endl;
- memset (_active_notes, 0, sizeof (_active_notes));
- _on = 0;
- } else {
- track_note_onoffs (ev);
- }
+ track(*i);
}
}