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