use XML state to store processors in mixer (strips) and fixup crash caused by missing...
[ardour.git] / libs / ardour / ardour / configuration.h
index 31cb74ab3343294f2e4fb41581ccd68aa7a6c4a1..70b7e166c155754986a01dff670566430d06a833 100644 (file)
@@ -36,20 +36,20 @@ class XMLNode;
 
 namespace ARDOUR {
 
-class Configuration : public Stateful
+class Configuration : public PBD::Stateful
 {
   public:
        Configuration();
        virtual ~Configuration();
 
        struct MidiPortDescriptor {
-           std::string tag;
-           std::string device;
-           std::string type;
-           std::string mode;
+               std::string tag;
+               std::string device;
+               std::string type;
+               std::string mode;
 
-           MidiPortDescriptor (const XMLNode&);
-           XMLNode& get_state();
+               MidiPortDescriptor (const XMLNode&);
+               XMLNode& get_state();
        };
 
        std::map<std::string,MidiPortDescriptor *> midi_ports;
@@ -59,9 +59,14 @@ class Configuration : public Stateful
        int load_state ();
        int save_state ();
 
+       /// calls Stateful::*instant_xml methods using 
+       /// ARDOUR::user_config_directory for the directory argument
+       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>);
+       XMLNode& get_variables (sigc::slot<bool,ConfigVariableBase::Owner>, std::string which_node = "Config");
        void set_variables (const XMLNode&, ConfigVariableBase::Owner owner);
 
        void set_current_owner (ConfigVariableBase::Owner);
@@ -70,7 +75,7 @@ class Configuration : public Stateful
 
        sigc::signal<void,const char*> ParameterChanged;
 
-        /* define accessor methods */
+       /* define accessor methods */
 
 #undef  CONFIG_VARIABLE
 #undef  CONFIG_VARIABLE_SPECIAL
@@ -83,10 +88,10 @@ class Configuration : public Stateful
 #include "ardour/configuration_vars.h"
 #undef  CONFIG_VARIABLE
 #undef  CONFIG_VARIABLE_SPECIAL
-       
+
   private:
 
-        /* declare variables */
+       /* declare variables */
 
 #undef  CONFIG_VARIABLE
 #undef  CONFIG_VARIABLE_SPECIAL