diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/configuration.h | 5 | ||||
-rw-r--r-- | libs/ardour/ardour/session.h | 6 | ||||
-rw-r--r-- | libs/ardour/configuration.cc | 13 | ||||
-rw-r--r-- | libs/ardour/session_state.cc | 11 | ||||
-rw-r--r-- | libs/pbd/pbd/stateful.h | 6 |
5 files changed, 34 insertions, 7 deletions
diff --git a/libs/ardour/ardour/configuration.h b/libs/ardour/ardour/configuration.h index c63af0a4cf..91a1d04714 100644 --- a/libs/ardour/ardour/configuration.h +++ b/libs/ardour/ardour/configuration.h @@ -61,6 +61,11 @@ class Configuration : public PBD::Stateful int load_state (); int save_state (); + /// calls Stateful::*instant_xml methods using + /// ARDOUR::get_user_ardour_path for the directory + void add_instant_xml (XMLNode&); + XMLNode * instant_xml (const std::string& str); + int set_state (const XMLNode&); XMLNode& get_state (void); XMLNode& get_variables (sigc::slot<bool,ConfigVariableBase::Owner>, std::string which_node = "Config"); diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 16ee76a06b..136822ad48 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -440,8 +440,10 @@ class Session : public PBD::StatefulDestructible XMLNode& get_state(); int set_state(const XMLNode& node); // not idempotent XMLNode& get_template(); - - void add_instant_xml (XMLNode&, const std::string& dir); + + /// The instant xml file is written to the session directory + void add_instant_xml (XMLNode&); + XMLNode * instant_xml (const std::string& str); enum StateOfTheState { Clean = 0x0, diff --git a/libs/ardour/configuration.cc b/libs/ardour/configuration.cc index 9baa525cb7..062f30b700 100644 --- a/libs/ardour/configuration.cc +++ b/libs/ardour/configuration.cc @@ -156,6 +156,19 @@ Configuration::save_state() return 0; } +void +Configuration::add_instant_xml(XMLNode& node) +{ + Stateful::add_instant_xml (node, get_user_ardour_path()); +} + +XMLNode* +Configuration::instant_xml(const string& node_name) +{ + return Stateful::instant_xml (node_name, get_user_ardour_path()); +} + + bool Configuration::save_config_options_predicate (ConfigVariableBase::Owner owner) { diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index 0dd4b0b684..ea53a696d1 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -2740,12 +2740,17 @@ Session::controllable_by_id (const PBD::ID& id) } void -Session::add_instant_xml (XMLNode& node, const std::string& dir) +Session::add_instant_xml (XMLNode& node) { - Stateful::add_instant_xml (node, dir); - Config->add_instant_xml (node, get_user_ardour_path()); + Stateful::add_instant_xml (node, _path); + Config->add_instant_xml (node); } +XMLNode* +Session::instant_xml (const string& node_name) +{ + return Stateful::instant_xml (node_name, _path); +} int Session::save_history (string snapshot_name) diff --git a/libs/pbd/pbd/stateful.h b/libs/pbd/pbd/stateful.h index fed078c802..6866450cd2 100644 --- a/libs/pbd/pbd/stateful.h +++ b/libs/pbd/pbd/stateful.h @@ -41,11 +41,13 @@ class Stateful { void add_extra_xml (XMLNode&); XMLNode *extra_xml (const std::string& str); - virtual void add_instant_xml (XMLNode&, const std::string& dir); - XMLNode *instant_xml (const std::string& str, const std::string& dir); const PBD::ID& id() const { return _id; } protected: + + void add_instant_xml (XMLNode&, const std::string& dir); + XMLNode *instant_xml (const std::string& str, const std::string& dir); + XMLNode *_extra_xml; XMLNode *_instant_xml; PBD::ID _id; |