From: nick_m Date: Wed, 13 Apr 2016 14:30:48 +0000 (+1000) Subject: Tempo ramps - formatting, ensure correct initial lock style. X-Git-Tag: 5.0-pre0~410 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=0b2c47614846016079e68be12a956319aa95ce27;hp=0080781ddf3aea1df4c4896f6a6a8febc5da80e0;p=ardour.git Tempo ramps - formatting, ensure correct initial lock style. --- diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 0f3beee8b1..305cfe52f0 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -301,7 +301,7 @@ Session::Session (AudioEngine &eng, , first_file_header_format_reset (true) , have_looped (false) , _have_rec_enabled_track (false) - , _have_rec_disabled_track (true) + , _have_rec_disabled_track (true) , _step_editors (0) , _suspend_timecode_transmission (0) , _speakers (new Speakers) diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc index 59942f8d81..4dbcbeb277 100644 --- a/libs/ardour/tempo.cc +++ b/libs/ardour/tempo.cc @@ -155,7 +155,11 @@ TempoSection::TempoSection (const XMLNode& node) } if ((prop = node.property ("lock-style")) == 0) { - set_position_lock_style (MusicTime); + if (movable()) { + set_position_lock_style (MusicTime); + } else { + set_position_lock_style (AudioTime); + } } else { set_position_lock_style (PositionLockStyle (string_2_enum (prop->value(), position_lock_style()))); } @@ -517,19 +521,23 @@ MeterSection::MeterSection (const XMLNode& node) throw failed_constructor(); } - if ((prop = node.property ("lock-style")) == 0) { - warning << _("MeterSection XML node has no \"lock-style\" property") << endmsg; - set_position_lock_style (MusicTime); - } else { - set_position_lock_style (PositionLockStyle (string_2_enum (prop->value(), position_lock_style()))); - } - if ((prop = node.property ("movable")) == 0) { error << _("MeterSection XML node has no \"movable\" property") << endmsg; throw failed_constructor(); } set_movable (string_is_affirmative (prop->value())); + + if ((prop = node.property ("lock-style")) == 0) { + warning << _("MeterSection XML node has no \"lock-style\" property") << endmsg; + if (movable()) { + set_position_lock_style (MusicTime); + } else { + set_position_lock_style (AudioTime); + } + } else { + set_position_lock_style (PositionLockStyle (string_2_enum (prop->value(), position_lock_style()))); + } } XMLNode& @@ -621,6 +629,8 @@ TempoMap::TempoMap (framecnt_t fr) t->set_movable (false); m->set_movable (false); + t->set_position_lock_style (AudioTime); + m->set_position_lock_style (AudioTime); /* note: frame time is correct (zero) for both of these */ @@ -788,7 +798,7 @@ TempoMap::do_insert (MetricSection* section) */ *(dynamic_cast(*i)) = *(dynamic_cast(insert_meter)); - (*i)->set_position_lock_style (insert_meter->position_lock_style()); + (*i)->set_position_lock_style (AudioTime); need_add = false; } else { _metrics.erase (i); @@ -952,10 +962,9 @@ TempoMap::replace_meter (const MeterSection& ms, const Meter& meter, const BBT_T add_meter_locked (meter, bbt_to_beats_locked (_metrics, where), where, true); } else { MeterSection& first (first_meter()); - const PositionLockStyle pl = ms.position_lock_style(); /* cannot move the first meter section */ *static_cast(&first) = meter; - first.set_position_lock_style (pl); + first.set_position_lock_style (AudioTime); } recompute_map (_metrics); }