Call ARDOUR::cleanup at the end of libardour tests (from
[ardour.git] / libs / ardour / midi_playlist.cc
index 81b14dd9337da6576377c9d461b179d03cbebcaa..9c1e338b6c320e9ce9981df9e9e6c9695d1c3677 100644 (file)
 
 #include <algorithm>
 #include <iostream>
+#include <utility>
 
 #include <stdlib.h>
 
-#include "pbd/error.h"
-
 #include "evoral/EventList.hpp"
 
-#include "ardour/configuration.h"
 #include "ardour/debug.h"
 #include "ardour/midi_model.h"
 #include "ardour/midi_playlist.h"
 #include "ardour/midi_region.h"
-#include "ardour/midi_ring_buffer.h"
-#include "ardour/session.h"
 #include "ardour/types.h"
 
 #include "i18n.h"
@@ -107,7 +103,7 @@ MidiPlaylist::read (Evoral::EventSink<framepos_t>& dst, framepos_t start, framec
           its OK to block (for short intervals).
        */
 
-       Playlist::RegionLock rl (this, false);
+       Playlist::RegionReadLock rl (this);
 
        DEBUG_TRACE (DEBUG::MidiPlaylistIO, string_compose ("++++++ %1 .. %2  +++++++ %3 trackers +++++++++++++++++\n", 
                                                            start, start + dur, _note_trackers.size()));
@@ -257,10 +253,7 @@ MidiPlaylist::read (Evoral::EventSink<framepos_t>& dst, framepos_t start, framec
                        } else {
 
                                if (new_tracker) {
-                                       pair<Region*,MidiStateTracker*> newpair;
-                                       newpair.first = mr.get();
-                                       newpair.second = tracker;
-                                       _note_trackers.insert (newpair).first;
+                                       _note_trackers.insert (make_pair (mr.get(), tracker));
                                        DEBUG_TRACE (DEBUG::MidiPlaylistIO, "\tadded tracker to trackers\n");
                                }
                        }
@@ -295,7 +288,7 @@ MidiPlaylist::read (Evoral::EventSink<framepos_t>& dst, framepos_t start, framec
 void
 MidiPlaylist::clear_note_trackers ()
 {
-       Playlist::RegionLock rl (this, false);
+       Playlist::RegionWriteLock rl (this, false);
 
        for (NoteTrackers::iterator n = _note_trackers.begin(); n != _note_trackers.end(); ++n) {
                delete n->second;
@@ -367,7 +360,7 @@ MidiPlaylist::destroy_region (boost::shared_ptr<Region> region)
        bool changed = false;
 
        {
-               RegionLock rlock (this);
+               RegionWriteLock rlock (this);
                RegionList::iterator i;
                RegionList::iterator tmp;
 
@@ -401,7 +394,7 @@ MidiPlaylist::contained_automation()
           its OK to block (for short intervals).
        */
 
-       Playlist::RegionLock rl (this, false);
+       Playlist::RegionReadLock rl (this);
        set<Evoral::Parameter> ret;
 
        for (RegionList::const_iterator r = regions.begin(); r != regions.end(); ++r) {