annotate sv/filter/Filter.h @ 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 #ifndef _FILTER_H_
lbajardsilogic@79 15 #define _FILTER_H_
lbajardsilogic@79 16
lbajardsilogic@203 17 #include <QXmlAttributes>
lbajardsilogic@203 18
lbajardsilogic@79 19 #include "base/PropertyContainer.h"
lbajardsilogic@79 20
lbajardsilogic@223 21 class Filter : public QObject //: public PropertyContainer
lbajardsilogic@79 22 {
lbajardsilogic@79 23 Q_OBJECT
lbajardsilogic@79 24
lbajardsilogic@79 25 public:
lbajardsilogic@79 26 Filter();
lbajardsilogic@79 27 virtual ~Filter();
lbajardsilogic@79 28
lbajardsilogic@223 29 //virtual QString getPropertyLabel(const PropertyName &) const {return "";}
lbajardsilogic@223 30 //virtual QString getPropertyContainerName() const {return "";}
lbajardsilogic@223 31 //virtual QString getPropertyContainerIconName() const {return "";}
lbajardsilogic@79 32
benoitrigolleau@88 33
lbajardsilogic@79 34 /**
lbajardsilogic@79 35 * Put (and possibly process) a given number of input samples.
lbajardsilogic@79 36 * Number should usually equal the value returned from
lbajardsilogic@79 37 * getRequiredInputSamples().
lbajardsilogic@79 38 */
lbajardsilogic@79 39 virtual void putInput(float **input, size_t samples) = 0;
lbajardsilogic@79 40
lbajardsilogic@79 41 /**
lbajardsilogic@79 42 * Get some processed samples.
lbajardsilogic@79 43 */
lbajardsilogic@79 44 virtual void getOutput(float **output, size_t samples) = 0;
lbajardsilogic@79 45
lbajardsilogic@82 46 virtual size_t getRequiredInputSamples(size_t outputSamplesNeeded) = 0;
lbajardsilogic@79 47
lbajardsilogic@84 48 inline void setSourceChannelCount(size_t channel){m_sourceChannelCount = channel;}
lbajardsilogic@84 49 inline size_t getSourceChannelCount(){return m_sourceChannelCount;}
lbajardsilogic@203 50 bool isFilterEnabled() const;
benoitrigolleau@88 51
lbajardsilogic@181 52 /*allow or not to add another filter of this type*/
lbajardsilogic@181 53 virtual bool allowMultiple() = 0;
lbajardsilogic@181 54
lbajardsilogic@203 55 QString toEasaierXmlString(QString indent, QString extraAttributes) const;
lbajardsilogic@203 56
lbajardsilogic@203 57 void setProperties(const QXmlAttributes &attributes);
lbajardsilogic@203 58
lbajardsilogic@223 59 std::vector<PropertyContainer*> getFilterCollection(){ return m_filterCollection;}
lbajardsilogic@223 60
benoitrigolleau@88 61 signals :
lbajardsilogic@203 62 void filterEnableChange(bool);
lbajardsilogic@224 63 void propertyContainerRemoved(QString);
lbajardsilogic@203 64
lbajardsilogic@225 65 void propertiesChanged(PropertyContainer *);
lbajardsilogic@84 66
lbajardsilogic@79 67 protected:
lbajardsilogic@79 68
lbajardsilogic@84 69 size_t m_sourceChannelCount;
benoitrigolleau@88 70 bool filterEnabled;
benoitrigolleau@88 71
benoitrigolleau@88 72 public slots :
benoitrigolleau@88 73 void setFilterEnabled(bool b);
benoitrigolleau@88 74 void setFilterEnabled(int b);
lbajardsilogic@79 75
lbajardsilogic@223 76 protected:
lbajardsilogic@223 77 std::vector<PropertyContainer*> m_filterCollection;
lbajardsilogic@79 78 };
lbajardsilogic@79 79
lbajardsilogic@79 80 #endif