diff options
Diffstat (limited to 'libs/ardour/session_state.cc')
-rw-r--r-- | libs/ardour/session_state.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index 54c1b59f39..fdbdb2da8d 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -725,13 +725,22 @@ Session::load_options (const XMLNode& node) return 0; } +bool +Session::save_config_options_predicate (ConfigVariableBase::Owner owner) const +{ + const ConfigVariableBase::Owner modified_by_session_or_user = (ConfigVariableBase::Owner) + (ConfigVariableBase::Session|ConfigVariableBase::Interface); + + return owner & modified_by_session_or_user; +} + XMLNode& Session::get_options () const { XMLNode* child; LocaleGuard lg (X_("POSIX")); - XMLNode& option_root = Config->get_partial_state (ConfigVariableBase::Interface); + XMLNode& option_root = Config->get_variables (mem_fun (*this, &Session::save_config_options_predicate)); child = option_root.add_child ("end-marker-is-free"); child->add_property ("val", _end_location_is_free ? "yes" : "no"); |