Make Stateful::*instant_xml methods protected and non-virtual

Add add_instant_xml and instant_xml methods to the Session class which call
the corresponding Stateful methods with the session directory for the
directory argument

Add add_instant_xml and instant_xml methods to the Configuration class which
call the Stateful methods with ARDOUR::get_user_ardour_path() for the directory
argument


git-svn-id: svn://localhost/ardour2/trunk@2012 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Tim Mayberry 2007-06-17 00:47:40 +00:00
parent 4b95621853
commit 36291eb399
8 changed files with 48 additions and 21 deletions

View File

@ -428,11 +428,11 @@ ARDOUR_UI::save_ardour_state ()
XMLNode mnode(mixer->get_state());
if (session) {
session->add_instant_xml (enode, session->path());
session->add_instant_xml (mnode, session->path());
session->add_instant_xml (enode);
session->add_instant_xml (mnode);
} else {
Config->add_instant_xml (enode, get_user_ardour_path());
Config->add_instant_xml (mnode, get_user_ardour_path());
Config->add_instant_xml (enode);
Config->add_instant_xml (mnode);
}
save_keybindings ();
@ -481,7 +481,7 @@ void
ARDOUR_UI::no_memory_warning ()
{
XMLNode node (X_("no-memory-warning"));
Config->add_instant_xml (node, get_user_ardour_path());
Config->add_instant_xml (node);
}
void
@ -492,7 +492,7 @@ ARDOUR_UI::check_memory_locking ()
return;
#else // !__APPLE__
XMLNode* memory_warning_node = Config->instant_xml (X_("no-memory-warning"), get_user_ardour_path());
XMLNode* memory_warning_node = Config->instant_xml (X_("no-memory-warning"));
if (engine->is_realtime() && memory_warning_node == 0) {
@ -2446,9 +2446,9 @@ ARDOUR_UI::mixer_settings () const
XMLNode* node = 0;
if (session) {
node = session->instant_xml(X_("Mixer"), session->path());
node = session->instant_xml(X_("Mixer"));
} else {
node = Config->instant_xml(X_("Mixer"), get_user_ardour_path());
node = Config->instant_xml(X_("Mixer"));
}
if (!node) {
@ -2464,9 +2464,9 @@ ARDOUR_UI::editor_settings () const
XMLNode* node = 0;
if (session) {
node = session->instant_xml(X_("Editor"), session->path());
node = session->instant_xml(X_("Editor"));
} else {
node = Config->instant_xml(X_("Editor"), get_user_ardour_path());
node = Config->instant_xml(X_("Editor"));
}
if (!node) {

View File

@ -845,9 +845,9 @@ Editor::instant_save ()
}
if (session) {
session->add_instant_xml(get_state(), session->path());
session->add_instant_xml(get_state());
} else {
Config->add_instant_xml(get_state(), get_user_ardour_path());
Config->add_instant_xml(get_state());
}
}

View File

@ -431,7 +431,7 @@ ExportDialog::connect_to_session (Session *s)
void
ExportDialog::set_state()
{
XMLNode* node = session->instant_xml(X_("ExportDialog"), session->path());
XMLNode* node = session->instant_xml(X_("ExportDialog"));
XMLProperty* prop;
if (node) {
@ -582,7 +582,7 @@ ExportDialog::save_state()
}
node->add_child_nocopy(*tracks);
session->add_instant_xml(*node, session->path());
session->add_instant_xml(*node);
}
void

View File

@ -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");

View File

@ -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,

View File

@ -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)
{

View File

@ -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)

View File

@ -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;