Mercurial > hg > easaier-soundaccess
annotate sv/filter/FilterStack.h @ 282:d9319859a4cf tip
(none)
author | benoitrigolleau |
---|---|
date | Fri, 31 Oct 2008 11:00:24 +0000 |
parents | c413e82a4812 |
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_STACK_H_ |
lbajardsilogic@79 | 15 #define _FILTER_STACK_H_ |
lbajardsilogic@79 | 16 |
lbajardsilogic@79 | 17 #include <QObject> |
lbajardsilogic@79 | 18 #include <map> |
lbajardsilogic@79 | 19 |
lbajardsilogic@79 | 20 #include "Filter.h" |
lbajardsilogic@79 | 21 |
lbajardsilogic@79 | 22 class FilterStack : public QObject |
lbajardsilogic@79 | 23 { |
lbajardsilogic@79 | 24 Q_OBJECT |
lbajardsilogic@79 | 25 |
lbajardsilogic@79 | 26 public: |
lbajardsilogic@79 | 27 FilterStack(); |
lbajardsilogic@79 | 28 virtual ~FilterStack(); |
lbajardsilogic@79 | 29 |
lbajardsilogic@79 | 30 void addFilter(Filter * filter); |
lbajardsilogic@79 | 31 void removeFilter(QString &name); |
lbajardsilogic@79 | 32 |
lbajardsilogic@79 | 33 void removeAllFilters(); |
lbajardsilogic@79 | 34 |
lbajardsilogic@79 | 35 void putInput(float **input, size_t samples); |
lbajardsilogic@79 | 36 void getOutput(float **output, size_t samples); |
lbajardsilogic@79 | 37 |
lbajardsilogic@79 | 38 QString getUniqueFilterName(QString candidate); |
lbajardsilogic@79 | 39 |
lbajardsilogic@82 | 40 size_t getRequiredInputSamples(size_t outputSamplesNeeded); |
lbajardsilogic@106 | 41 size_t getRequiredSkipSamples(); |
lbajardsilogic@82 | 42 |
lbajardsilogic@84 | 43 void setSourceChannelCount(size_t channel); |
lbajardsilogic@84 | 44 |
lbajardsilogic@181 | 45 Filter* findFilter(QString &name); |
lbajardsilogic@181 | 46 |
lbajardsilogic@181 | 47 bool allowOtherFilter(QString &labelType); |
lbajardsilogic@181 | 48 |
lbajardsilogic@203 | 49 QString toEasaierXmlString(QString indent, QString extraAttributes) const; |
lbajardsilogic@203 | 50 |
lbajardsilogic@79 | 51 signals: |
lbajardsilogic@223 | 52 void newFilterAdded(PropertyContainer *); |
lbajardsilogic@79 | 53 void filterRemoved(QString); |
lbajardsilogic@79 | 54 |
lbajardsilogic@79 | 55 protected: |
lbajardsilogic@79 | 56 std::map<int, Filter *> m_filters; |
lbajardsilogic@79 | 57 |
lbajardsilogic@79 | 58 int m_count; |
lbajardsilogic@84 | 59 |
lbajardsilogic@84 | 60 size_t m_sourceChannelCount; |
lbajardsilogic@79 | 61 }; |
lbajardsilogic@79 | 62 |
lbajardsilogic@79 | 63 #endif |