int
RCConfiguration::load_state ()
{
- bool found = false;
-
sys::path system_rc_file;
struct stat statbuf;
/* load system configuration first */
- if (find_file_in_search_path (ardour_search_path() + system_config_search_path(),
- "ardour_system.rc", system_rc_file) )
- {
- found = true;
-
+ if (find_file_in_search_path (ardour_search_path() + system_config_search_path(), "ardour_system.rc", system_rc_file)) {
string rcfile = system_rc_file.to_string();
/* stupid XML Parser hates empty files */
sys::path user_rc_file;
- if (find_file_in_search_path (ardour_search_path() + user_config_directory(),
- "ardour.rc", user_rc_file))
- {
- found = true;
-
+ if (find_file_in_search_path (ardour_search_path() + user_config_directory(), "ardour.rc", user_rc_file)) {
string rcfile = user_rc_file.to_string();
/* stupid XML parser hates empty files */
}
}
- if (!found)
- error << string_compose (_("%1: could not find configuration file (ardour.rc), canvas will look broken."), PROGRAM_NAME) << endmsg;
-
return 0;
}
root = new XMLNode("Ardour");
- const MIDI::Manager::PortList& ports = MIDI::Manager::instance()->get_midi_ports();
+ MIDI::Manager* mm = MIDI::Manager::instance();
- for (MIDI::Manager::PortList::const_iterator i = ports.begin(); i != ports.end(); ++i) {
- root->add_child_nocopy((*i)->get_state());
- }
+ if (mm) {
+ boost::shared_ptr<const MIDI::Manager::PortList> ports = mm->get_midi_ports();
+
+ for (MIDI::Manager::PortList::const_iterator i = ports->begin(); i != ports->end(); ++i) {
+ root->add_child_nocopy((*i)->get_state());
+ }
+ }
root->add_child_nocopy (get_variables ());
_midi_port_states.clear ();
+ Stateful::save_extra_xml (root);
+
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
node = *niter;
if (node->name() == "Config") {
set_variables (*node);
- } else if (node->name() == "Extra") {
- _extra_xml = new XMLNode (*node);
} else if (node->name() == ControlProtocolManager::state_node_name) {
_control_protocol_state = new XMLNode (*node);
} else if (node->name() == MIDI::Port::state_node_name) {