From d854c5d93c71d3d607dd22970f1a06f078f350ea Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 22 Dec 2014 18:53:19 -0500 Subject: move ARDOUR::Configuration and ARDOUR::ConfigVariable into libpbd --- libs/ardour/ardour/configuration.h | 49 ------ libs/ardour/ardour/configuration_variable.h | 222 ---------------------------- libs/ardour/ardour/debug.h | 1 - libs/ardour/ardour/rc_configuration.h | 9 +- libs/ardour/ardour/session_configuration.h | 8 +- 5 files changed, 9 insertions(+), 280 deletions(-) delete mode 100644 libs/ardour/ardour/configuration.h delete mode 100644 libs/ardour/ardour/configuration_variable.h (limited to 'libs/ardour/ardour') diff --git a/libs/ardour/ardour/configuration.h b/libs/ardour/ardour/configuration.h deleted file mode 100644 index f8e512e458..0000000000 --- a/libs/ardour/ardour/configuration.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - 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 - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -#ifndef __ardour_configuration_h__ -#define __ardour_configuration_h__ - -#include -#include "pbd/signals.h" -#include "pbd/stateful.h" -#include "ardour/configuration_variable.h" - -class XMLNode; - -namespace ARDOUR { - -class LIBARDOUR_API Configuration : public PBD::Stateful -{ - public: - Configuration(); - virtual ~Configuration(); - - virtual void map_parameters (boost::function&) = 0; - virtual int set_state (XMLNode const &, int) = 0; - virtual XMLNode & get_state () = 0; - virtual XMLNode & get_variables () = 0; - virtual void set_variables (XMLNode const &) = 0; - - PBD::Signal1 ParameterChanged; -}; - -} // namespace ARDOUR - -#endif /* __ardour_configuration_h__ */ diff --git a/libs/ardour/ardour/configuration_variable.h b/libs/ardour/ardour/configuration_variable.h deleted file mode 100644 index 7a83c34c3f..0000000000 --- a/libs/ardour/ardour/configuration_variable.h +++ /dev/null @@ -1,222 +0,0 @@ -/* - Copyright (C) 2000-2007 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 - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -#ifndef __ardour_configuration_variable_h__ -#define __ardour_configuration_variable_h__ - -#include -#include - -#include "pbd/xml++.h" -#include "pbd/convert.h" -#include "ardour/libardour_visibility.h" -#include "ardour/types.h" -#include "ardour/utils.h" - -namespace ARDOUR { - -class LIBARDOUR_API ConfigVariableBase { - public: - - ConfigVariableBase (std::string str) : _name (str) {} - virtual ~ConfigVariableBase() {} - - std::string name () const { return _name; } - void add_to_node (XMLNode&); - bool set_from_node (XMLNode const &); - - virtual std::string get_as_string () const = 0; - virtual void set_from_string (std::string const &) = 0; - - protected: - std::string _name; - - void notify (); - void miss (); -}; - -template -class /*LIBARDOUR_API*/ ConfigVariable : public ConfigVariableBase -{ - public: - - ConfigVariable (std::string str) : ConfigVariableBase (str) {} - ConfigVariable (std::string str, T val) : ConfigVariableBase (str), value (val) {} - - T get() const { - return value; - } - - std::string get_as_string () const { - std::ostringstream ss; - ss << value; - return ss.str (); - } - - virtual bool set (T val) { - if (val == value) { - miss (); - return false; - } - value = val; - notify (); - return true; - } - - virtual void set_from_string (std::string const & s) { - std::stringstream ss; - ss << s; - ss >> value; - } - - protected: - virtual T get_for_save() { return value; } - T value; -}; - -/** Specialisation of ConfigVariable for std::string to cope with whitespace properly */ -template<> -class /*LIBARDOUR_API*/ ConfigVariable : public ConfigVariableBase -{ - public: - - ConfigVariable (std::string str) : ConfigVariableBase (str) {} - ConfigVariable (std::string str, std::string val) : ConfigVariableBase (str), value (val) {} - - std::string get() const { - return value; - } - - std::string get_as_string () const { - return value; - } - - virtual bool set (std::string val) { - if (val == value) { - miss (); - return false; - } - value = val; - notify (); - return true; - } - - virtual void set_from_string (std::string const & s) { - value = s; - } - - protected: - virtual std::string get_for_save() { return value; } - std::string value; -}; - -template<> -class /*LIBARDOUR_API*/ ConfigVariable : public ConfigVariableBase -{ - public: - - ConfigVariable (std::string str) : ConfigVariableBase (str), value (false) {} - ConfigVariable (std::string str, bool val) : ConfigVariableBase (str), value (val) {} - - bool get() const { - return value; - } - - std::string get_as_string () const { - std::ostringstream ss; - ss << value; - return ss.str (); - } - - virtual bool set (bool val) { - if (val == value) { - miss (); - return false; - } - value = val; - notify (); - return true; - } - - void set_from_string (std::string const & s) { - value = PBD::string_is_affirmative (s); - } - - protected: - virtual bool get_for_save() { return value; } - bool value; -}; - -template -class /*LIBARDOUR_API*/ ConfigVariableWithMutation : public ConfigVariable -{ - public: - ConfigVariableWithMutation (std::string name, T val, T (*m)(T)) - : ConfigVariable (name, val), mutator (m) {} - - bool set (T val) { - if (unmutated_value != val) { - unmutated_value = val; - return ConfigVariable::set (mutator (val)); - } - return false; - } - - void set_from_string (std::string const & s) { - T v; - std::stringstream ss; - ss << s; - ss >> v; - set (v); - } - - protected: - virtual T get_for_save() { return unmutated_value; } - T unmutated_value; - T (*mutator)(T); -}; - -template<> -class /*LIBARDOUR_API*/ ConfigVariableWithMutation : public ConfigVariable -{ - public: - ConfigVariableWithMutation (std::string name, std::string val, std::string (*m)(std::string)) - : ConfigVariable (name, val), mutator (m) {} - - bool set (std::string val) { - if (unmutated_value != val) { - unmutated_value = val; - return ConfigVariable::set (mutator (val)); - } - return false; - } - - void set_from_string (std::string const & s) { - set (s); - } - - protected: - virtual std::string get_for_save() { return unmutated_value; } - std::string unmutated_value; - std::string (*mutator)(std::string); -}; - -} - -#endif /* __ardour_configuration_variable_h__ */ diff --git a/libs/ardour/ardour/debug.h b/libs/ardour/ardour/debug.h index 74bc6e0d56..8f4b562905 100644 --- a/libs/ardour/ardour/debug.h +++ b/libs/ardour/ardour/debug.h @@ -33,7 +33,6 @@ namespace PBD { LIBARDOUR_API extern uint64_t MidiPlaylistIO; LIBARDOUR_API extern uint64_t MidiDiskstreamIO; LIBARDOUR_API extern uint64_t SnapBBT; - LIBARDOUR_API extern uint64_t Configuration; LIBARDOUR_API extern uint64_t Latency; LIBARDOUR_API extern uint64_t LatencyCompensation; LIBARDOUR_API extern uint64_t Peaks; diff --git a/libs/ardour/ardour/rc_configuration.h b/libs/ardour/ardour/rc_configuration.h index d85c723ff8..413f1699d3 100644 --- a/libs/ardour/ardour/rc_configuration.h +++ b/libs/ardour/ardour/rc_configuration.h @@ -23,16 +23,17 @@ #include #include +#include "pbd/configuration.h" + #include "ardour/libardour_visibility.h" #include "ardour/types.h" #include "ardour/utils.h" -#include "ardour/configuration.h" class XMLNode; namespace ARDOUR { -class LIBARDOUR_API RCConfiguration : public Configuration +class LIBARDOUR_API RCConfiguration : public PBD::Configuration { public: RCConfiguration(); @@ -74,8 +75,8 @@ class LIBARDOUR_API RCConfiguration : public Configuration #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL -#define CONFIG_VARIABLE(Type,var,name,value) ConfigVariable var; -#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) ConfigVariableWithMutation var; +#define CONFIG_VARIABLE(Type,var,name,value) PBD::ConfigVariable var; +#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) PBD::ConfigVariableWithMutation var; #include "ardour/rc_configuration_vars.h" #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL diff --git a/libs/ardour/ardour/session_configuration.h b/libs/ardour/ardour/session_configuration.h index c0af223943..62c12e56ef 100644 --- a/libs/ardour/ardour/session_configuration.h +++ b/libs/ardour/ardour/session_configuration.h @@ -20,11 +20,11 @@ #ifndef __ardour_session_configuration_h__ #define __ardour_session_configuration_h__ -#include "ardour/configuration.h" +#include "pbd/configuration.h" namespace ARDOUR { -class LIBARDOUR_API SessionConfiguration : public Configuration +class LIBARDOUR_API SessionConfiguration : public PBD::Configuration { public: SessionConfiguration (); @@ -58,8 +58,8 @@ public: #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL -#define CONFIG_VARIABLE(Type,var,name,value) ConfigVariable var; -#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) ConfigVariableWithMutation var; +#define CONFIG_VARIABLE(Type,var,name,value) PBD::ConfigVariable var; +#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) PBD::ConfigVariableWithMutation var; #include "ardour/session_configuration_vars.h" #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL -- cgit v1.2.3