annotate sv/filter/Filter.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents 3200ed3fc957
children
rev   line source
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 }