summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_region.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/midi_region.cc')
-rw-r--r--libs/ardour/midi_region.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/libs/ardour/midi_region.cc b/libs/ardour/midi_region.cc
index 5eea77ebca..a30b837c5f 100644
--- a/libs/ardour/midi_region.cc
+++ b/libs/ardour/midi_region.cc
@@ -116,6 +116,19 @@ MidiRegion::~MidiRegion ()
{
}
+void
+MidiRegion::set_position_internal (nframes_t pos, bool allow_bbt_recompute)
+{
+ BeatsFramesConverter old_converter(_session, _position - _start);
+ double length_beats = old_converter.from(_length);
+
+ Region::set_position_internal(pos, allow_bbt_recompute);
+
+ BeatsFramesConverter new_converter(_session, pos - _start);
+
+ set_length(new_converter.to(length_beats), 0);
+}
+
nframes_t
MidiRegion::read_at (MidiRingBuffer<nframes_t>& out, sframes_t position, nframes_t dur, uint32_t chan_n, NoteMode mode) const
{