annotate sv/filter/EqualizerFilter.h @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents 2aea571dc9d4
children
rev   line source
lbajardsilogic@223 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@223 2
lbajardsilogic@223 3 /* Sound Access
lbajardsilogic@223 4 EASAIER client application.
benoitrigolleau@240 5 Silogic 2008. Laure Bajard.
lbajardsilogic@223 6
lbajardsilogic@223 7 Integration of the filter provided by:
lbajardsilogic@223 8 Dublin Institute of Technology - Audio Research Group 2007
lbajardsilogic@223 9 www.audioresearchgroup.com
lbajardsilogic@223 10 Author: Dan Barry
lbajardsilogic@223 11
lbajardsilogic@223 12 This program is free software; you can redistribute it and/or
lbajardsilogic@223 13 modify it under the terms of the GNU General Public License as
lbajardsilogic@223 14 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@223 15 License, or (at your option) any later version. See the file
lbajardsilogic@223 16 COPYING included with this distribution for more information.
lbajardsilogic@223 17 */
lbajardsilogic@241 18
lbajardsilogic@241 19 #ifndef _EQUALIZER_FILTER_H_
lbajardsilogic@241 20 #define _EQUALIZER_FILTER_H_
lbajardsilogic@241 21
lbajardsilogic@241 22 #include <QMutex>
lbajardsilogic@241 23
lbajardsilogic@241 24 #include "base/PropertyContainer.h"
lbajardsilogic@241 25
lbajardsilogic@241 26 class EqualizerFilter : public PropertyContainer
lbajardsilogic@241 27 {
lbajardsilogic@241 28 Q_OBJECT
lbajardsilogic@241 29
lbajardsilogic@241 30 public:
lbajardsilogic@241 31 EqualizerFilter(size_t framesize, QMutex *mutex);
lbajardsilogic@241 32 virtual ~EqualizerFilter();
lbajardsilogic@241 33
lbajardsilogic@241 34 virtual QString getPropertyContainerIconName() const {return "";}
lbajardsilogic@241 35
lbajardsilogic@241 36 virtual QString getPropertyContainerName() const {return "Time and Pitch filter";}
lbajardsilogic@241 37
lbajardsilogic@241 38 virtual QString getPropertyGroupName(const PropertyName &) const;
lbajardsilogic@241 39
lbajardsilogic@241 40 virtual PropertyList getProperties() const;
lbajardsilogic@241 41 virtual QString getPropertyLabel(const PropertyName &) const;
lbajardsilogic@241 42 virtual PropertyType getPropertyType(const PropertyName &) const;
lbajardsilogic@241 43 virtual int getPropertyRangeAndValue(const PropertyName &,
lbajardsilogic@241 44 int *min, int *max, int *deflt) const;
lbajardsilogic@241 45 virtual QString getPropertyValueLabel(const PropertyName &,
lbajardsilogic@241 46 int value) const;
lbajardsilogic@241 47
lbajardsilogic@241 48 virtual void setProperty(const PropertyName &, int value);
lbajardsilogic@241 49 virtual void setProperty(const PropertyName &, QVector<float> value);
lbajardsilogic@241 50
lbajardsilogic@241 51 inline bool isEnabled() {return m_enabled;}
lbajardsilogic@241 52
lbajardsilogic@241 53 inline bool bypass() {return !m_enabled;}
lbajardsilogic@241 54 inline bool simpleMode() {return m_simpleMode;}
lbajardsilogic@241 55 inline int* gainband() {return m_gainband;}
lbajardsilogic@241 56
lbajardsilogic@241 57 inline QVector<float>& curve() {return m_eqcurve;}
lbajardsilogic@241 58
lbajardsilogic@241 59 void emitPlotFFTArray(float *signal, int framesize);
lbajardsilogic@241 60
lbajardsilogic@241 61 void create_filterbands();
lbajardsilogic@241 62
lbajardsilogic@241 63 signals:
lbajardsilogic@241 64 void filterEnabled(bool);
lbajardsilogic@241 65 void signalChanged(float *);
lbajardsilogic@241 66 void filterChanged(float *);
lbajardsilogic@241 67 void enableDrawCurve(bool);
lbajardsilogic@241 68
lbajardsilogic@241 69 public slots :
lbajardsilogic@241 70 void setFilterEnabled(bool b);
lbajardsilogic@241 71 void setFilterEnabled(int b);
lbajardsilogic@241 72
lbajardsilogic@241 73 protected:
lbajardsilogic@241 74
lbajardsilogic@241 75 QVector<float> m_eqcurve;
lbajardsilogic@241 76 float* m_curve;
lbajardsilogic@241 77 float* m_plotbandcurve;
lbajardsilogic@241 78
lbajardsilogic@241 79 bool m_enabled;
lbajardsilogic@241 80
lbajardsilogic@241 81 bool m_simpleMode;
lbajardsilogic@241 82
lbajardsilogic@241 83 int m_gainband[5];
lbajardsilogic@241 84 int m_nbBand;
lbajardsilogic@241 85
lbajardsilogic@241 86 int m_resolution;
lbajardsilogic@241 87
lbajardsilogic@241 88 float **band;
lbajardsilogic@241 89
lbajardsilogic@241 90 size_t m_framesize;
lbajardsilogic@241 91
lbajardsilogic@241 92 QMutex * m_mutex;
lbajardsilogic@241 93 };
lbajardsilogic@241 94
lbajardsilogic@223 95 #endif