diff options
author | nick_m <mainsbridge@gmail.com> | 2016-08-13 04:02:46 +1000 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2016-08-14 03:04:53 +1000 |
commit | 172bcc816504a08eb1bccbb72f58d7db7a8cb7e4 (patch) | |
tree | 221baa1846edf97c24aae35e72b0838e2cbb307e /libs/ardour/region.cc | |
parent | 5c2ccc4f3eeccaedf8399e0c80d0394cf2b4f132 (diff) |
Audio-locked midi region fixes.
- don't alter region frame length on tempo change or position change.
- set region _start correctly (see comments) on tempo map change.
- ensure audio-locked region's beat is set on tempo map change
Diffstat (limited to 'libs/ardour/region.cc')
-rw-r--r-- | libs/ardour/region.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libs/ardour/region.cc b/libs/ardour/region.cc index f7874664a5..141deac7d5 100644 --- a/libs/ardour/region.cc +++ b/libs/ardour/region.cc @@ -558,7 +558,13 @@ Region::update_after_tempo_map_change (bool send) { boost::shared_ptr<Playlist> pl (playlist()); - if (!pl || _position_lock_style != MusicTime) { + if (!pl) { + return; + } + + if (_position_lock_style == AudioTime) { + /* don't signal as the actual position has not chnged */ + recompute_position_from_lock_style (0); return; } @@ -601,9 +607,7 @@ Region::set_position (framepos_t pos, int32_t sub_num) Notify a length change regardless (its more efficient for MidiRegions), and when Region has a _length_beats we will need it here anyway). */ - if (position_lock_style() == MusicTime) { - p_and_l.add (Properties::length); - } + p_and_l.add (Properties::length); send_change (p_and_l); |