summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/configuration.h5
-rw-r--r--libs/ardour/ardour/session.h6
-rw-r--r--libs/ardour/configuration.cc13
-rw-r--r--libs/ardour/session_state.cc11
-rw-r--r--libs/pbd/pbd/stateful.h6
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;