lbajardsilogic@79: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@79: lbajardsilogic@79: /* Sound Access lbajardsilogic@79: EASAIER client application. lbajardsilogic@79: Silogic 2007. Laure Bajard. lbajardsilogic@79: lbajardsilogic@201: Integration of the filter provided by: lbajardsilogic@201: Dublin Institute of Technology - Audio Research Group 2007 lbajardsilogic@201: www.audioresearchgroup.com lbajardsilogic@201: Author: Dan Barry lbajardsilogic@201: lbajardsilogic@79: This program is free software; you can redistribute it and/or lbajardsilogic@79: modify it under the terms of the GNU General Public License as lbajardsilogic@79: published by the Free Software Foundation; either version 2 of the lbajardsilogic@79: License, or (at your option) any later version. See the file lbajardsilogic@79: COPYING included with this distribution for more information. lbajardsilogic@79: */ lbajardsilogic@79: lbajardsilogic@79: #ifndef _TIME_STRETCH_FILTER_H_ lbajardsilogic@79: #define _TIME_STRETCH_FILTER_H_ lbajardsilogic@79: lbajardsilogic@223: #include "base/PropertyContainer.h" lbajardsilogic@79: benoitrigolleau@280: /*Hot Fixe*/ benoitrigolleau@280: extern bool freeze; benoitrigolleau@280: /**********/ benoitrigolleau@280: benoitrigolleau@280: lbajardsilogic@223: class TimeStretchFilter : public PropertyContainer lbajardsilogic@79: { lbajardsilogic@79: Q_OBJECT lbajardsilogic@79: lbajardsilogic@79: public: lbajardsilogic@79: TimeStretchFilter(); lbajardsilogic@79: virtual ~TimeStretchFilter(); lbajardsilogic@79: lbajardsilogic@223: virtual QString getPropertyContainerIconName() const {return "";} lbajardsilogic@223: lbajardsilogic@206: virtual QString getPropertyContainerName() const {return "Time and Pitch filter";} lbajardsilogic@206: lbajardsilogic@79: virtual PropertyList getProperties() const; lbajardsilogic@79: virtual QString getPropertyLabel(const PropertyName &) const; lbajardsilogic@79: virtual PropertyType getPropertyType(const PropertyName &) const; lbajardsilogic@79: virtual int getPropertyRangeAndValue(const PropertyName &, lbajardsilogic@79: int *min, int *max, int *deflt) const; lbajardsilogic@79: virtual QString getPropertyValueLabel(const PropertyName &, lbajardsilogic@79: int value) const; lbajardsilogic@79: lbajardsilogic@79: virtual void setProperty(const PropertyName &, int value); lbajardsilogic@79: lbajardsilogic@223: inline float getPitchFactor() {return m_interpfactor;} lbajardsilogic@223: inline float getMaxPitchFactor() {return m_pmaxfactor;} lbajardsilogic@79: lbajardsilogic@223: inline bool bypass() {return !m_enabled;} lbajardsilogic@223: inline bool transcheck() {return m_transcheck;} lbajardsilogic@223: inline bool peakcheck() {return m_peakcheck;} benoitrigolleau@276: benoitrigolleau@278: inline bool isFreezed() {return m_freezecheck;} lbajardsilogic@181: lbajardsilogic@225: inline bool isEnabled() {return m_enabled;} lbajardsilogic@225: lbajardsilogic@127: signals: lbajardsilogic@127: void playSpeedChanged(float); lbajardsilogic@223: void filterEnabled(bool); lbajardsilogic@127: lbajardsilogic@136: public slots : lbajardsilogic@136: void setFilterEnabled(bool b); lbajardsilogic@136: void setFilterEnabled(int b); lbajardsilogic@136: lbajardsilogic@79: protected: lbajardsilogic@79: lbajardsilogic@225: bool m_enabled; lbajardsilogic@225: lbajardsilogic@79: bool m_transcheck; lbajardsilogic@79: bool m_peakcheck; benoitrigolleau@276: bool m_freezecheck; lbajardsilogic@79: lbajardsilogic@111: float m_tmaxfactor; lbajardsilogic@111: float m_pmaxfactor; lbajardsilogic@79: lbajardsilogic@82: float m_interpfactor; lbajardsilogic@79: lbajardsilogic@79: }; lbajardsilogic@79: lbajardsilogic@79: #endif