X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fconfiguration_variable.h;h=a61283ecd0155bce6fa5ac0f3acf2150318f2bfc;hb=6698f5f686bef82b0c9568558c83a3b9b3344700;hp=4327fa69b1df9b195a24c708e4c958cf179d828d;hpb=762d2ae936bd78053d9f344ce9392b7867304ae2;p=ardour.git diff --git a/libs/ardour/ardour/configuration_variable.h b/libs/ardour/ardour/configuration_variable.h index 4327fa69b1..a61283ecd0 100644 --- a/libs/ardour/ardour/configuration_variable.h +++ b/libs/ardour/ardour/configuration_variable.h @@ -1,8 +1,28 @@ +/* + 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 #include @@ -27,10 +47,13 @@ class ConfigVariableBase { virtual void add_to_node (XMLNode& node) = 0; virtual bool set_from_node (const XMLNode& node, Owner owner) = 0; + void show_stored_value (const std::string&); + static void set_show_stored_values (bool yn); protected: std::string _name; Owner _owner; + static bool show_stores; void notify (); void miss (); @@ -43,7 +66,7 @@ class ConfigVariable : public ConfigVariableBase ConfigVariable (std::string str) : ConfigVariableBase (str) {} ConfigVariable (std::string str, T val) : ConfigVariableBase (str), value (val) {} - virtual bool set (T val, Owner owner) { + virtual bool set (T val, Owner owner = ARDOUR::ConfigVariableBase::Config) { if (val == value) { miss (); return false; @@ -61,12 +84,13 @@ class ConfigVariable : public ConfigVariableBase void add_to_node (XMLNode& node) { std::stringstream ss; ss << value; + show_stored_value (ss.str()); XMLNode* child = new XMLNode ("Option"); child->add_property ("name", _name); child->add_property ("value", ss.str()); node.add_child_nocopy (*child); } - + bool set_from_node (const XMLNode& node, Owner owner) { if (node.name() == "Config") {