variable plugin port config.
[ardour.git] / libs / ardour / ardour / session_configuration.h
index 138702ae843b14a1033ca85255689ba829936c68..62c12e56ef304baf9d47a2b933a0dff1103b5a03 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2009 Paul Davis 
+    Copyright (C) 2009 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 #ifndef __ardour_session_configuration_h__
 #define __ardour_session_configuration_h__
 
-#include "ardour/configuration.h"
+#include "pbd/configuration.h"
 
 namespace ARDOUR {
 
-class SessionConfiguration : public Configuration
+class LIBARDOUR_API SessionConfiguration : public PBD::Configuration
 {
 public:
        SessionConfiguration ();
 
-       void map_parameters (sigc::slot<void, const char*>);
-       int set_state (XMLNode const &);
+       void map_parameters (boost::function<void (std::string)>&);
+       int set_state (XMLNode const &, int version);
        XMLNode& get_state ();
        XMLNode& get_variables ();
        void set_variables (XMLNode const &);
 
+       bool load_state ();
+       bool save_state ();
+
        /* define accessor methods */
 
 #undef  CONFIG_VARIABLE
 #undef  CONFIG_VARIABLE_SPECIAL
 #define CONFIG_VARIABLE(Type,var,name,value) \
-        Type get_##var () const { return var.get(); } \
-        bool set_##var (Type val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret;  }
+       Type get_##var () const { return var.get(); } \
+       bool set_##var (Type val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret;  }
 #define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) \
-        Type get_##var () const { return var.get(); } \
-        bool set_##var (Type val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret; }
+       Type get_##var () const { return var.get(); } \
+       bool set_##var (Type val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret; }
 #include "ardour/session_configuration_vars.h"
 #undef  CONFIG_VARIABLE
 #undef  CONFIG_VARIABLE_SPECIAL
@@ -54,16 +57,16 @@ public:
        /* declare variables */
 
 #undef  CONFIG_VARIABLE
-#undef  CONFIG_VARIABLE_SPECIAL        
-#define CONFIG_VARIABLE(Type,var,name,value) ConfigVariable<Type> var;
-#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) ConfigVariableWithMutation<Type> var;
+#undef  CONFIG_VARIABLE_SPECIAL
+#define CONFIG_VARIABLE(Type,var,name,value) PBD::ConfigVariable<Type> var;
+#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) PBD::ConfigVariableWithMutation<Type> var;
 #include "ardour/session_configuration_vars.h"
 #undef  CONFIG_VARIABLE
-#undef  CONFIG_VARIABLE_SPECIAL        
+#undef  CONFIG_VARIABLE_SPECIAL
 
        int foo;
 };
 
 }
-       
+
 #endif