#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>
/** 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);
return 0; /* read nothing */
}
- _read_data_count = 0;
-
boost::shared_ptr<MidiSource> src = midi_source(chan_n);
src->set_note_mode(mode);
return 0; /* "read nothing" */
}
- _read_data_count += src->read_data_count();
-
return to_read;
}
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&)
{