Remove the source files which got transferred to libpbd
[ardour.git] / libs / ardour / midi_playlist.cc
index 9c1e338b6c320e9ce9981df9e9e6c9695d1c3677..63c3b4985884134b664354a1cdf935d398912fe4 100644 (file)
@@ -31,6 +31,7 @@
 #include "ardour/midi_model.h"
 #include "ardour/midi_playlist.h"
 #include "ardour/midi_region.h"
+#include "ardour/midi_state_tracker.h"
 #include "ardour/types.h"
 
 #include "i18n.h"
@@ -84,7 +85,8 @@ template<typename Time>
 struct EventsSortByTimeAndType {
     bool operator() (Evoral::Event<Time>* a, Evoral::Event<Time>* b) {
            if (a->time() == b->time()) {
-                   if (EventTypeMap::instance().type_is_midi (a->event_type()) && EventTypeMap::instance().type_is_midi (b->event_type())) {
+                   if (parameter_is_midi ((AutomationType)a->event_type()) &&
+                       parameter_is_midi ((AutomationType)b->event_type())) {
                            /* negate return value since we must return whether
                             * or not a should sort before b, not b before a
                             */
@@ -286,14 +288,27 @@ MidiPlaylist::read (Evoral::EventSink<framepos_t>& dst, framepos_t start, framec
 }
 
 void
-MidiPlaylist::clear_note_trackers ()
+MidiPlaylist::reset_note_trackers ()
 {
        Playlist::RegionWriteLock rl (this, false);
 
        for (NoteTrackers::iterator n = _note_trackers.begin(); n != _note_trackers.end(); ++n) {
                delete n->second;
        }
-       DEBUG_TRACE (DEBUG::MidiTrackers, string_compose ("%1 clears all note trackers\n", name()));
+       DEBUG_TRACE (DEBUG::MidiTrackers, string_compose ("%1 reset all note trackers\n", name()));
+       _note_trackers.clear ();
+}
+
+void
+MidiPlaylist::resolve_note_trackers (Evoral::EventSink<framepos_t>& dst, framepos_t time)
+{
+       Playlist::RegionWriteLock rl (this, false);
+
+       for (NoteTrackers::iterator n = _note_trackers.begin(); n != _note_trackers.end(); ++n) {
+               n->second->resolve_notes(dst, time);
+               delete n->second;
+       }
+       DEBUG_TRACE (DEBUG::MidiTrackers, string_compose ("%1 resolve all note trackers\n", name()));
        _note_trackers.clear ();
 }