+/*
+ 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 <sstream>
#include <ostream>
+#include <iostream>
#include <pbd/xml++.h>
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 ();
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;
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") {