tweak wscript files to set PACKAGE in one place
[ardour.git] / libs / ardour / midi_region.cc
index ba926211a3fa2f5512cbd80c201443558bee4aa2..f501390c2403275764cc10c9feac424d3e151fd6 100644 (file)
 #include "pbd/xml++.h"
 #include "pbd/enumwriter.h"
 
-#include "ardour/midi_region.h"
-#include "ardour/session.h"
-#include "ardour/gain.h"
+#include "ardour/automation_control.h"
 #include "ardour/dB.h"
-#include "ardour/playlist.h"
+#include "ardour/gain.h"
+#include "ardour/midi_model.h"
+#include "ardour/midi_region.h"
+#include "ardour/midi_ring_buffer.h"
 #include "ardour/midi_source.h"
+#include "ardour/playlist.h"
 #include "ardour/region_factory.h"
+#include "ardour/session.h"
 #include "ardour/types.h"
-#include "ardour/midi_ring_buffer.h"
 
 #include "i18n.h"
 #include <locale.h>
@@ -118,7 +120,7 @@ MidiRegion::~MidiRegion ()
 /** Create a new MidiRegion that has its own version of some/all of the Source used by another.
  */
 boost::shared_ptr<MidiRegion>
-MidiRegion::clone ()
+MidiRegion::clone () const
 {
        BeatsFramesConverter bfc (_session.tempo_map(), _position);
        Evoral::MusicalTime const bbegin = bfc.from (_start);
@@ -220,8 +222,6 @@ MidiRegion::_read_at (const SourceList& /*srcs*/, Evoral::EventSink<framepos_t>&
                return 0; /* read nothing */
        }
 
-       _read_data_count = 0;
-
        boost::shared_ptr<MidiSource> src = midi_source(chan_n);
        src->set_note_mode(mode);
 
@@ -246,8 +246,6 @@ MidiRegion::_read_at (const SourceList& /*srcs*/, Evoral::EventSink<framepos_t>&
                return 0; /* "read nothing" */
        }
 
-       _read_data_count += src->read_data_count();
-
        return to_read;
 }
 
@@ -296,6 +294,30 @@ MidiRegion::separate_by_channel (ARDOUR::Session&, vector< boost::shared_ptr<Reg
        return -1;
 }
 
+boost::shared_ptr<Evoral::Control>
+MidiRegion::control (const Evoral::Parameter& id, bool create)
+{
+       return model()->control(id, create);
+}
+
+boost::shared_ptr<const Evoral::Control>
+MidiRegion::control (const Evoral::Parameter& id) const
+{
+       return model()->control(id);
+}
+
+boost::shared_ptr<MidiModel>
+MidiRegion::model()
+{
+       return midi_source()->model();
+}
+
+boost::shared_ptr<const MidiModel>
+MidiRegion::model() const
+{
+       return midi_source()->model();
+}
+
 int
 MidiRegion::exportme (ARDOUR::Session&, ARDOUR::ExportSpecification&)
 {