lbajardsilogic@79
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
lbajardsilogic@79
|
2
|
lbajardsilogic@79
|
3 /* Sound Access
|
lbajardsilogic@79
|
4 EASAIER client application.
|
lbajardsilogic@79
|
5 Silogic 2007. Laure Bajard.
|
lbajardsilogic@79
|
6
|
lbajardsilogic@79
|
7 This program is free software; you can redistribute it and/or
|
lbajardsilogic@79
|
8 modify it under the terms of the GNU General Public License as
|
lbajardsilogic@79
|
9 published by the Free Software Foundation; either version 2 of the
|
lbajardsilogic@79
|
10 License, or (at your option) any later version. See the file
|
lbajardsilogic@79
|
11 COPYING included with this distribution for more information.
|
lbajardsilogic@79
|
12 */
|
lbajardsilogic@79
|
13
|
lbajardsilogic@79
|
14 #include "Filter.h"
|
lbajardsilogic@79
|
15
|
lbajardsilogic@223
|
16 Filter::Filter() : QObject(),
|
benoitrigolleau@88
|
17 m_sourceChannelCount(0),
|
lbajardsilogic@202
|
18 filterEnabled(false)
|
lbajardsilogic@79
|
19 {}
|
lbajardsilogic@79
|
20
|
lbajardsilogic@79
|
21 Filter::~Filter()
|
lbajardsilogic@223
|
22 {
|
lbajardsilogic@223
|
23 while (!m_filterCollection.empty())
|
lbajardsilogic@223
|
24 {
|
lbajardsilogic@223
|
25 std::vector<PropertyContainer*>::iterator iter = m_filterCollection.begin();
|
lbajardsilogic@223
|
26 PropertyContainer* filterElt = *(iter);
|
lbajardsilogic@223
|
27 if (filterElt)
|
lbajardsilogic@223
|
28 {
|
lbajardsilogic@224
|
29 emit propertyContainerRemoved(filterElt->objectName());
|
lbajardsilogic@223
|
30 delete filterElt;
|
lbajardsilogic@223
|
31 filterElt = 0;
|
lbajardsilogic@223
|
32 }
|
lbajardsilogic@223
|
33 m_filterCollection.erase(iter);
|
lbajardsilogic@223
|
34 }
|
lbajardsilogic@223
|
35 }
|
benoitrigolleau@88
|
36
|
lbajardsilogic@203
|
37 bool Filter::isFilterEnabled() const {
|
benoitrigolleau@88
|
38 return filterEnabled;
|
benoitrigolleau@88
|
39 }
|
benoitrigolleau@88
|
40
|
benoitrigolleau@88
|
41
|
benoitrigolleau@88
|
42 void Filter::setFilterEnabled(bool b){
|
benoitrigolleau@88
|
43 filterEnabled=b;
|
benoitrigolleau@88
|
44 }
|
benoitrigolleau@88
|
45
|
benoitrigolleau@88
|
46 void Filter::setFilterEnabled(int b){
|
lbajardsilogic@203
|
47 filterEnabled=(bool)b;
|
lbajardsilogic@203
|
48
|
benoitrigolleau@88
|
49 }
|
benoitrigolleau@88
|
50
|
lbajardsilogic@203
|
51 QString Filter::toEasaierXmlString(QString indent, QString extraAttributes) const
|
lbajardsilogic@203
|
52 {
|
lbajardsilogic@203
|
53 QString s;
|
lbajardsilogic@203
|
54
|
lbajardsilogic@225
|
55 std::vector<PropertyContainer*>::const_iterator iter;
|
lbajardsilogic@225
|
56 for (iter=m_filterCollection.begin(); iter!=m_filterCollection.end(); iter++)
|
lbajardsilogic@225
|
57 {
|
lbajardsilogic@225
|
58 PropertyContainer* filterElt = *(iter);
|
lbajardsilogic@203
|
59
|
lbajardsilogic@225
|
60 s += indent + QString("<filter groupname=\"%1\" name=\"%2\" ").arg(objectName()).arg(filterElt->objectName());
|
lbajardsilogic@225
|
61
|
lbajardsilogic@225
|
62 PropertyContainer::PropertyList propertyList = filterElt->getProperties();
|
lbajardsilogic@225
|
63 for(int i=0; i< ((int) propertyList.size());i++)
|
lbajardsilogic@225
|
64 {
|
lbajardsilogic@225
|
65 int min, max, deflt;
|
lbajardsilogic@225
|
66 int value = filterElt->getPropertyRangeAndValue(propertyList[i], &min, &max, &deflt);
|
lbajardsilogic@225
|
67 s += propertyList[i] + QString("=\"%1\" ").arg(value);
|
lbajardsilogic@225
|
68 }
|
lbajardsilogic@225
|
69
|
lbajardsilogic@225
|
70 s += QString(" %1 />\n").arg(extraAttributes);
|
lbajardsilogic@203
|
71 }
|
lbajardsilogic@203
|
72
|
lbajardsilogic@203
|
73 return s;
|
lbajardsilogic@203
|
74 }
|
benoitrigolleau@88
|
75
|
lbajardsilogic@203
|
76 void Filter::setProperties(const QXmlAttributes &attributes)
|
lbajardsilogic@203
|
77 {
|
lbajardsilogic@225
|
78 QString name = attributes.value("name");
|
lbajardsilogic@225
|
79
|
lbajardsilogic@225
|
80 std::vector<PropertyContainer*>::const_iterator iter;
|
lbajardsilogic@225
|
81 for (iter=m_filterCollection.begin(); iter!=m_filterCollection.end(); iter++)
|
lbajardsilogic@225
|
82 {
|
lbajardsilogic@225
|
83 PropertyContainer* filterElt = *(iter);
|
lbajardsilogic@203
|
84
|
lbajardsilogic@225
|
85 if (filterElt->objectName() == name)
|
lbajardsilogic@225
|
86 {
|
lbajardsilogic@225
|
87 PropertyContainer::PropertyList propertyList = filterElt->getProperties();
|
lbajardsilogic@225
|
88 int value;
|
lbajardsilogic@225
|
89 for(int i=0; i< ((int) propertyList.size());i++)
|
lbajardsilogic@225
|
90 {
|
lbajardsilogic@225
|
91 value = attributes.value(propertyList[i]).toInt();
|
lbajardsilogic@225
|
92 filterElt->setProperty(propertyList[i], value);
|
lbajardsilogic@225
|
93 }
|
lbajardsilogic@225
|
94 filterElt->emitPropertiesChanged();
|
lbajardsilogic@225
|
95 }
|
lbajardsilogic@203
|
96 }
|
lbajardsilogic@203
|
97 } |