- NoteTrackers::iterator t = _note_trackers.find (mr.get());
- MidiStateTracker* tracker;
- bool new_tracker = false;
-
- if (t == _note_trackers.end()) {
- tracker = new MidiStateTracker;
- new_tracker = true;
- DEBUG_TRACE (DEBUG::MidiPlaylistIO, "\tBEFORE: new tracker\n");
- } else {
- tracker = t->second;
- DEBUG_TRACE (DEBUG::MidiPlaylistIO, string_compose ("\tBEFORE: tracker says there are %1 on notes", tracker->on()));
- }
-
- mr->read_at (dst, start, dur, chan_n, _note_mode, tracker);
- DEBUG_TRACE (DEBUG::MidiPlaylistIO, string_compose ("\tAFTER: tracker says there are %1 on notes", tracker->on()));
-
- if (new_tracker) {
- pair<Region*,MidiStateTracker*> newpair;
- newpair.first = mr.get();
- newpair.second = tracker;
- _note_trackers.insert (newpair);
- DEBUG_TRACE (DEBUG::MidiPlaylistIO, "\tadded tracker to trackers\n");
- }
-
- _read_data_count += mr->read_data_count();