From d854c5d93c71d3d607dd22970f1a06f078f350ea Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 22 Dec 2014 18:53:19 -0500 Subject: [PATCH] move ARDOUR::Configuration and ARDOUR::ConfigVariable into libpbd --- gtk2_ardour/option_editor.cc | 5 +- gtk2_ardour/option_editor.h | 8 +- gtk2_ardour/ui_config.h | 6 +- libs/ardour/ardour/debug.h | 1 - libs/ardour/ardour/rc_configuration.h | 9 +- libs/ardour/ardour/session_configuration.h | 8 +- libs/ardour/configuration.cc | 119 ------------------ libs/ardour/debug.cc | 1 - libs/ardour/session_configuration.cc | 3 + libs/ardour/wscript | 1 - libs/pbd/debug.cc | 1 + .../ardour => pbd/pbd}/configuration.h | 18 +-- .../pbd}/configuration_variable.h | 25 ++-- libs/pbd/pbd/debug.h | 1 + libs/pbd/wscript | 1 + 15 files changed, 46 insertions(+), 161 deletions(-) delete mode 100644 libs/ardour/configuration.cc rename libs/{ardour/ardour => pbd/pbd}/configuration.h (79%) rename libs/{ardour/ardour => pbd/pbd}/configuration_variable.h (86%) diff --git a/gtk2_ardour/option_editor.cc b/gtk2_ardour/option_editor.cc index aa975b6b94..7ff5bc5adb 100644 --- a/gtk2_ardour/option_editor.cc +++ b/gtk2_ardour/option_editor.cc @@ -22,7 +22,8 @@ #include #include "gtkmm2ext/utils.h" -#include "ardour/configuration.h" +#include "pbd/configuration.h" + #include "ardour/rc_configuration.h" #include "ardour/utils.h" #include "ardour/dB.h" @@ -377,7 +378,7 @@ OptionEditorPage::OptionEditorPage (Gtk::Notebook& n, std::string const & t) * @param o Configuration to edit. * @param t Title for the dialog. */ -OptionEditor::OptionEditor (Configuration* c, std::string const & t) +OptionEditor::OptionEditor (PBD::Configuration* c, std::string const & t) : ArdourWindow (t), _config (c) { using namespace Notebook_Helpers; diff --git a/gtk2_ardour/option_editor.h b/gtk2_ardour/option_editor.h index cb5f76f31d..a91c2404fc 100644 --- a/gtk2_ardour/option_editor.h +++ b/gtk2_ardour/option_editor.h @@ -46,7 +46,7 @@ * options dialog. */ -namespace ARDOUR { +namespace PBD { class Configuration; } @@ -647,7 +647,7 @@ public: class OptionEditor : public ArdourWindow { public: - OptionEditor (ARDOUR::Configuration *, std::string const &); + OptionEditor (PBD::Configuration *, std::string const &); ~OptionEditor (); void add_option (std::string const &, OptionEditorComponent *); @@ -658,8 +658,8 @@ public: protected: virtual void parameter_changed (std::string const &); - - ARDOUR::Configuration* _config; + + PBD::Configuration* _config; private: diff --git a/gtk2_ardour/ui_config.h b/gtk2_ardour/ui_config.h index 244c1a0a82..c9f950d947 100644 --- a/gtk2_ardour/ui_config.h +++ b/gtk2_ardour/ui_config.h @@ -29,7 +29,7 @@ #include "pbd/stateful.h" #include "pbd/xml++.h" -#include "ardour/configuration_variable.h" +#include "pbd/configuration_variable.h" #include "canvas/colors.h" @@ -96,11 +96,11 @@ class UIConfiguration : public PBD::Stateful /* declare variables */ #undef UI_CONFIG_VARIABLE -#define UI_CONFIG_VARIABLE(Type,var,name,value) ARDOUR::ConfigVariable var; +#define UI_CONFIG_VARIABLE(Type,var,name,value) PBD::ConfigVariable var; #include "ui_config_vars.h" #undef UI_CONFIG_VARIABLE -#define CANVAS_FONT_VARIABLE(var,name) ARDOUR::ConfigVariable var; +#define CANVAS_FONT_VARIABLE(var,name) PBD::ConfigVariable var; #include "canvas_vars.h" #undef CANVAS_FONT_VARIABLE 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 diff --git a/libs/ardour/configuration.cc b/libs/ardour/configuration.cc deleted file mode 100644 index d5ca426a74..0000000000 --- a/libs/ardour/configuration.cc +++ /dev/null @@ -1,119 +0,0 @@ -/* - Copyright (C) 1999-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. - -*/ - -#include - -#include "pbd/compose.h" - -#include "ardour/configuration.h" -#include "ardour/debug.h" - -using namespace ARDOUR; -using namespace std; -using namespace PBD; - -Configuration::Configuration () -{ -} - -Configuration::~Configuration () -{ -} - -void -ConfigVariableBase::add_to_node (XMLNode& node) -{ - const std::string v = get_as_string (); - DEBUG_TRACE (DEBUG::Configuration, string_compose ("Config variable %1 stored as [%2]\n", _name, v)); - XMLNode* child = new XMLNode ("Option"); - child->add_property ("name", _name); - child->add_property ("value", v); - node.add_child_nocopy (*child); -} - -bool -ConfigVariableBase::set_from_node (XMLNode const & node) -{ - if (node.name() == "Config" || node.name() == "Canvas" || node.name() == "UI") { - - /* ardour.rc */ - - const XMLProperty* prop; - XMLNodeList nlist; - XMLNodeConstIterator niter; - XMLNode* child; - - nlist = node.children(); - - for (niter = nlist.begin(); niter != nlist.end(); ++niter) { - - child = *niter; - - if (child->name() == "Option") { - if ((prop = child->property ("name")) != 0) { - if (prop->value() == _name) { - if ((prop = child->property ("value")) != 0) { - set_from_string (prop->value()); - return true; - } - } - } - } - } - - } else if (node.name() == "Options") { - - /* session file */ - - XMLNodeList olist; - XMLNodeConstIterator oiter; - XMLNode* option; - const XMLProperty* opt_prop; - - olist = node.children(); - - for (oiter = olist.begin(); oiter != olist.end(); ++oiter) { - - option = *oiter; - - if (option->name() == _name) { - if ((opt_prop = option->property ("val")) != 0) { - set_from_string (opt_prop->value()); - return true; - } - } - } - } - - return false; -} - -void -ConfigVariableBase::notify () -{ - // placeholder for any debugging desired when a config variable is modified -} - -void -ConfigVariableBase::miss () -{ - // placeholder for any debugging desired when a config variable - // is set but to the same value as it already has -} - diff --git a/libs/ardour/debug.cc b/libs/ardour/debug.cc index 4a7453f172..c0993e9da6 100644 --- a/libs/ardour/debug.cc +++ b/libs/ardour/debug.cc @@ -29,7 +29,6 @@ uint64_t PBD::DEBUG::MidiSourceIO = PBD::new_debug_bit ("midisourceio"); uint64_t PBD::DEBUG::MidiPlaylistIO = PBD::new_debug_bit ("midiplaylistio"); uint64_t PBD::DEBUG::MidiDiskstreamIO = PBD::new_debug_bit ("mididiskstreamio"); uint64_t PBD::DEBUG::SnapBBT = PBD::new_debug_bit ("snapbbt"); -uint64_t PBD::DEBUG::Configuration = PBD::new_debug_bit ("configuration"); uint64_t PBD::DEBUG::Latency = PBD::new_debug_bit ("latency"); uint64_t PBD::DEBUG::LatencyCompensation = PBD::new_debug_bit ("latencycompensation"); uint64_t PBD::DEBUG::Peaks = PBD::new_debug_bit ("peaks"); diff --git a/libs/ardour/session_configuration.cc b/libs/ardour/session_configuration.cc index f9f43ba4b2..dc4f9a6bc8 100644 --- a/libs/ardour/session_configuration.cc +++ b/libs/ardour/session_configuration.cc @@ -21,12 +21,15 @@ #include /* for g_stat() */ #include /* for build_filename() */ +#include "pbd/error.h" #include "pbd/file_utils.h" +#include "pbd/locale_guard.h" #include "pbd/pathexpand.h" #include "ardour/types.h" #include "ardour/filesystem_paths.h" #include "ardour/session_configuration.h" +#include "ardour/utils.h" #include "i18n.h" using namespace ARDOUR; diff --git a/libs/ardour/wscript b/libs/ardour/wscript index bce1b127f4..2b4cf45310 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -56,7 +56,6 @@ libardour_sources = [ 'capturing_processor.cc', 'chan_count.cc', 'chan_mapping.cc', - 'configuration.cc', 'config_text.cc', 'control_protocol_manager.cc', 'cycle_timer.cc', diff --git a/libs/pbd/debug.cc b/libs/pbd/debug.cc index f967061c25..dfa189002f 100644 --- a/libs/pbd/debug.cc +++ b/libs/pbd/debug.cc @@ -50,6 +50,7 @@ uint64_t PBD::DEBUG::Pool = PBD::new_debug_bit ("pool"); uint64_t PBD::DEBUG::EventLoop = PBD::new_debug_bit ("eventloop"); uint64_t PBD::DEBUG::AbstractUI = PBD::new_debug_bit ("abstractui"); uint64_t PBD::DEBUG::FileUtils = PBD::new_debug_bit ("fileutils"); +uint64_t PBD::DEBUG::Configuration = PBD::new_debug_bit ("configuration"); uint64_t PBD::debug_bits = 0x0; diff --git a/libs/ardour/ardour/configuration.h b/libs/pbd/pbd/configuration.h similarity index 79% rename from libs/ardour/ardour/configuration.h rename to libs/pbd/pbd/configuration.h index f8e512e458..6e3f6ca434 100644 --- a/libs/ardour/ardour/configuration.h +++ b/libs/pbd/pbd/configuration.h @@ -17,23 +17,23 @@ */ -#ifndef __ardour_configuration_h__ -#define __ardour_configuration_h__ +#ifndef __libpbd_configuration_h__ +#define __libpbd_configuration_h__ #include #include "pbd/signals.h" #include "pbd/stateful.h" -#include "ardour/configuration_variable.h" +#include "pbd/configuration_variable.h" class XMLNode; -namespace ARDOUR { +namespace PBD { -class LIBARDOUR_API Configuration : public PBD::Stateful +class LIBPBD_API Configuration : public PBD::Stateful { public: - Configuration(); - virtual ~Configuration(); + Configuration() {} + virtual ~Configuration() {} virtual void map_parameters (boost::function&) = 0; virtual int set_state (XMLNode const &, int) = 0; @@ -44,6 +44,6 @@ class LIBARDOUR_API Configuration : public PBD::Stateful PBD::Signal1 ParameterChanged; }; -} // namespace ARDOUR +} // namespace PBD -#endif /* __ardour_configuration_h__ */ +#endif /* __libpbd_configuration_h__ */ diff --git a/libs/ardour/ardour/configuration_variable.h b/libs/pbd/pbd/configuration_variable.h similarity index 86% rename from libs/ardour/ardour/configuration_variable.h rename to libs/pbd/pbd/configuration_variable.h index 7a83c34c3f..86c13b0f28 100644 --- a/libs/ardour/ardour/configuration_variable.h +++ b/libs/pbd/pbd/configuration_variable.h @@ -17,21 +17,20 @@ */ -#ifndef __ardour_configuration_variable_h__ -#define __ardour_configuration_variable_h__ +#ifndef __libpbd_configuration_variable_h__ +#define __libpbd_configuration_variable_h__ #include #include +#include #include "pbd/xml++.h" #include "pbd/convert.h" -#include "ardour/libardour_visibility.h" -#include "ardour/types.h" -#include "ardour/utils.h" +#include "pbd/libpbd_visibility.h" -namespace ARDOUR { +namespace PBD { -class LIBARDOUR_API ConfigVariableBase { +class LIBPBD_API ConfigVariableBase { public: ConfigVariableBase (std::string str) : _name (str) {} @@ -52,7 +51,7 @@ class LIBARDOUR_API ConfigVariableBase { }; template -class /*LIBARDOUR_API*/ ConfigVariable : public ConfigVariableBase +class /*LIBPBD_API*/ ConfigVariable : public ConfigVariableBase { public: @@ -92,7 +91,7 @@ class /*LIBARDOUR_API*/ ConfigVariable : public ConfigVariableBase /** Specialisation of ConfigVariable for std::string to cope with whitespace properly */ template<> -class /*LIBARDOUR_API*/ ConfigVariable : public ConfigVariableBase +class /*LIBPBD_API*/ ConfigVariable : public ConfigVariableBase { public: @@ -127,7 +126,7 @@ class /*LIBARDOUR_API*/ ConfigVariable : public ConfigVariableBase }; template<> -class /*LIBARDOUR_API*/ ConfigVariable : public ConfigVariableBase +class /*LIBPBD_API*/ ConfigVariable : public ConfigVariableBase { public: @@ -164,7 +163,7 @@ class /*LIBARDOUR_API*/ ConfigVariable : public ConfigVariableBase }; template -class /*LIBARDOUR_API*/ ConfigVariableWithMutation : public ConfigVariable +class /*LIBPBD_API*/ ConfigVariableWithMutation : public ConfigVariable { public: ConfigVariableWithMutation (std::string name, T val, T (*m)(T)) @@ -193,7 +192,7 @@ class /*LIBARDOUR_API*/ ConfigVariableWithMutation : public ConfigVariable }; template<> -class /*LIBARDOUR_API*/ ConfigVariableWithMutation : public ConfigVariable +class /*LIBPBD_API*/ ConfigVariableWithMutation : public ConfigVariable { public: ConfigVariableWithMutation (std::string name, std::string val, std::string (*m)(std::string)) @@ -219,4 +218,4 @@ class /*LIBARDOUR_API*/ ConfigVariableWithMutation : public ConfigV } -#endif /* __ardour_configuration_variable_h__ */ +#endif /* __libpbd_configuration_variable_h__ */ diff --git a/libs/pbd/pbd/debug.h b/libs/pbd/pbd/debug.h index 446d730dc2..e9a94dfe35 100644 --- a/libs/pbd/pbd/debug.h +++ b/libs/pbd/pbd/debug.h @@ -45,6 +45,7 @@ namespace PBD { LIBPBD_API extern uint64_t Pool; LIBPBD_API extern uint64_t EventLoop; LIBPBD_API extern uint64_t AbstractUI; + LIBPBD_API extern uint64_t Configuration; extern uint64_t FileUtils; } } diff --git a/libs/pbd/wscript b/libs/pbd/wscript index 0b3b5dbf2d..f6ea66f504 100644 --- a/libs/pbd/wscript +++ b/libs/pbd/wscript @@ -34,6 +34,7 @@ libpbd_sources = [ 'boost_debug.cc', 'cartesian.cc', 'command.cc', + 'configuration_variable.cc', 'convert.cc', 'controllable.cc', 'controllable_descriptor.cc',