summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_region.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2016-10-30 23:42:06 +1100
committernick_m <mainsbridge@gmail.com>2016-11-11 03:37:08 +1100
commitac23496b40537d97469acdec89f787f056dc3bba (patch)
treeeb41c4cbecc217883cb62424d7267fa9cfc4fe47 /libs/ardour/midi_region.cc
parent0e867b544b6d1b5f82f46cec7171998b2f2ca3bc (diff)
MidiRegion _start/_length beats are frame based only when lock style is Audiotime
Diffstat (limited to 'libs/ardour/midi_region.cc')
-rw-r--r--libs/ardour/midi_region.cc21
1 files changed, 8 insertions, 13 deletions
diff --git a/libs/ardour/midi_region.cc b/libs/ardour/midi_region.cc
index cff7ab2ed8..ec0cd95c8b 100644
--- a/libs/ardour/midi_region.cc
+++ b/libs/ardour/midi_region.cc
@@ -213,8 +213,10 @@ MidiRegion::post_set (const PropertyChange& pc)
so disallow (this has been set from XML state anyway).
*/
if (!_session.loading()) {
- /* update non-musically */
- update_length_beats (0);
+ /* ensure this only updates non-musical regions */
+ if (position_lock_style() == AudioTime) {
+ update_length_beats (0);
+ }
}
} else if (pc.contains (Properties::start) && !pc.contains (Properties::start_beats)) {
set_start_beats_from_start_frames ();
@@ -224,7 +226,9 @@ MidiRegion::post_set (const PropertyChange& pc)
void
MidiRegion::set_start_beats_from_start_frames ()
{
- _start_beats = (pulse() * 4.0) - _session.tempo_map().quarter_note_at_frame (_position - _start);
+ if (position_lock_style() == AudioTime) {
+ _start_beats = (pulse() * 4.0) - _session.tempo_map().quarter_note_at_frame (_position - _start);
+ }
}
void
@@ -451,13 +455,6 @@ MidiRegion::set_state (const XMLNode& node, int version)
{
int ret = Region::set_state (node, version);
- if (ret == 0) {
- /* set length beats to the frame (non-musical) */
- if (position_lock_style() == AudioTime) {
- update_length_beats (0);
- }
- }
-
return ret;
}
@@ -605,9 +602,7 @@ void
MidiRegion::set_start_internal (framecnt_t s, const int32_t sub_num)
{
Region::set_start_internal (s, sub_num);
- if (position_lock_style() == AudioTime) {
- set_start_beats_from_start_frames ();
- }
+ set_start_beats_from_start_frames ();
}
void