~kulthauskante/nsynth/devel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*
 * nonlimitedSynth - Backend to reacTIVision
 *
 * Copyright (c) 2007-2008 Karsten Krispin
 * 
 * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */
 
 #include "Configuration/Configuration.h"
 
Configuration * Configuration::_configInstance = 0;
 
Configuration::Configuration()
{
	_configInstance = this;
}

Configuration::~Configuration()
{
}


DefaultsMap * Configuration::classDefaults(QString className, QList<QString> classNames)
{
	
	if(_cachedClassDefaults.contains(className))
		return _cachedClassDefaults.value(className);
	
	DefaultsMap * map = new DefaultsMap;
	QString currentClassName;
	while(!classNames.empty())
	{
		currentClassName = classNames.takeFirst();
		DefaultsMap currentDefaults = this->_classDefaults.value(currentClassName, DefaultsMap());
		QList<QString> keys = currentDefaults.keys();
		while(!keys.empty())
		{
			QString currentKey = keys.takeFirst();
			map->insert(currentKey, currentDefaults[currentKey]);
		}
	}
	
	_cachedClassDefaults.insert(className, map);
	
	return map;
}

DefaultsMap * Configuration::classDefaults(QString className)
{
	return Configuration::classDefaults(className, QList<QString>() << className);
}


DefaultsMap * Configuration::fiducialDefaults(unsigned int fid, QList<QString> classNames)
{
	DefaultsMap * map = 0;

	if(map)
	{	map = new DefaultsMap(*map);}
	else
	{ map = new DefaultsMap(); }
	
	return map;
	
}

void Configuration::clear()
{
	//_attributes.clear();
	SynthObject::List children = this->children();
	
	while(!children.empty())
	{
		this->removeChild(children.first());
		children.takeFirst()->deref();
	}
}