summaryrefslogtreecommitdiff
path: root/libs/ardour/session_state.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-07-12 11:19:15 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-07-12 11:19:49 -0400
commit472ef8c55cc976a581721392ffc1e3a2209ad1fe (patch)
treeadc8e73e1fafd16c64f4409f773a2ab2b6617ec6 /libs/ardour/session_state.cc
parent49fbb6fa153e5ff39bedccaa5d4ad2d0b6ed573e (diff)
once the user has explicitly set the session range end, playlist/range changes do not move it.
The user may drag the marker, edit in the Location UI, or use nudge, to set the end
Diffstat (limited to 'libs/ardour/session_state.cc')
-rw-r--r--libs/ardour/session_state.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 752c8d03c9..1aafd7118b 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -1095,6 +1095,8 @@ Session::state (bool full_state)
}
}
+ node->add_property ("end-is-free", _session_range_end_is_free ? X_("yes") : X_("no"));
+
/* save the ID counter */
snprintf (buf, sizeof (buf), "%" PRIu64, ID::counter());
@@ -1358,6 +1360,10 @@ Session::set_state (const XMLNode& node, int version)
setup_raid_path(_session_dir->root_path());
+ if ((prop = node.property (X_("end-is-free"))) != 0) {
+ _session_range_end_is_free = string_is_affirmative (prop->value());
+ }
+
if ((prop = node.property (X_("id-counter"))) != 0) {
uint64_t x;
sscanf (prop->value().c_str(), "%" PRIu64, &x);