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@201
|
7 Integration of the filter provided by:
|
lbajardsilogic@201
|
8 Dublin Institute of Technology - Audio Research Group 2007
|
lbajardsilogic@201
|
9 www.audioresearchgroup.com
|
lbajardsilogic@201
|
10 Author: Dan Barry
|
lbajardsilogic@201
|
11
|
lbajardsilogic@79
|
12 This program is free software; you can redistribute it and/or
|
lbajardsilogic@79
|
13 modify it under the terms of the GNU General Public License as
|
lbajardsilogic@79
|
14 published by the Free Software Foundation; either version 2 of the
|
lbajardsilogic@79
|
15 License, or (at your option) any later version. See the file
|
lbajardsilogic@79
|
16 COPYING included with this distribution for more information.
|
lbajardsilogic@79
|
17 */
|
lbajardsilogic@79
|
18
|
lbajardsilogic@79
|
19 #ifndef _TIME_STRETCH_FILTER_H_
|
lbajardsilogic@79
|
20 #define _TIME_STRETCH_FILTER_H_
|
lbajardsilogic@79
|
21
|
lbajardsilogic@223
|
22 #include "base/PropertyContainer.h"
|
lbajardsilogic@79
|
23
|
benoitrigolleau@280
|
24 /*Hot Fixe*/
|
benoitrigolleau@280
|
25 extern bool freeze;
|
benoitrigolleau@280
|
26 /**********/
|
benoitrigolleau@280
|
27
|
benoitrigolleau@280
|
28
|
lbajardsilogic@223
|
29 class TimeStretchFilter : public PropertyContainer
|
lbajardsilogic@79
|
30 {
|
lbajardsilogic@79
|
31 Q_OBJECT
|
lbajardsilogic@79
|
32
|
lbajardsilogic@79
|
33 public:
|
lbajardsilogic@79
|
34 TimeStretchFilter();
|
lbajardsilogic@79
|
35 virtual ~TimeStretchFilter();
|
lbajardsilogic@79
|
36
|
lbajardsilogic@223
|
37 virtual QString getPropertyContainerIconName() const {return "";}
|
lbajardsilogic@223
|
38
|
lbajardsilogic@206
|
39 virtual QString getPropertyContainerName() const {return "Time and Pitch filter";}
|
lbajardsilogic@206
|
40
|
lbajardsilogic@79
|
41 virtual PropertyList getProperties() const;
|
lbajardsilogic@79
|
42 virtual QString getPropertyLabel(const PropertyName &) const;
|
lbajardsilogic@79
|
43 virtual PropertyType getPropertyType(const PropertyName &) const;
|
lbajardsilogic@79
|
44 virtual int getPropertyRangeAndValue(const PropertyName &,
|
lbajardsilogic@79
|
45 int *min, int *max, int *deflt) const;
|
lbajardsilogic@79
|
46 virtual QString getPropertyValueLabel(const PropertyName &,
|
lbajardsilogic@79
|
47 int value) const;
|
lbajardsilogic@79
|
48
|
lbajardsilogic@79
|
49 virtual void setProperty(const PropertyName &, int value);
|
lbajardsilogic@79
|
50
|
lbajardsilogic@223
|
51 inline float getPitchFactor() {return m_interpfactor;}
|
lbajardsilogic@223
|
52 inline float getMaxPitchFactor() {return m_pmaxfactor;}
|
lbajardsilogic@79
|
53
|
lbajardsilogic@223
|
54 inline bool bypass() {return !m_enabled;}
|
lbajardsilogic@223
|
55 inline bool transcheck() {return m_transcheck;}
|
lbajardsilogic@223
|
56 inline bool peakcheck() {return m_peakcheck;}
|
benoitrigolleau@276
|
57
|
benoitrigolleau@278
|
58 inline bool isFreezed() {return m_freezecheck;}
|
lbajardsilogic@181
|
59
|
lbajardsilogic@225
|
60 inline bool isEnabled() {return m_enabled;}
|
lbajardsilogic@225
|
61
|
lbajardsilogic@127
|
62 signals:
|
lbajardsilogic@127
|
63 void playSpeedChanged(float);
|
lbajardsilogic@223
|
64 void filterEnabled(bool);
|
lbajardsilogic@127
|
65
|
lbajardsilogic@136
|
66 public slots :
|
lbajardsilogic@136
|
67 void setFilterEnabled(bool b);
|
lbajardsilogic@136
|
68 void setFilterEnabled(int b);
|
lbajardsilogic@136
|
69
|
lbajardsilogic@79
|
70 protected:
|
lbajardsilogic@79
|
71
|
lbajardsilogic@225
|
72 bool m_enabled;
|
lbajardsilogic@225
|
73
|
lbajardsilogic@79
|
74 bool m_transcheck;
|
lbajardsilogic@79
|
75 bool m_peakcheck;
|
benoitrigolleau@276
|
76 bool m_freezecheck;
|
lbajardsilogic@79
|
77
|
lbajardsilogic@111
|
78 float m_tmaxfactor;
|
lbajardsilogic@111
|
79 float m_pmaxfactor;
|
lbajardsilogic@79
|
80
|
lbajardsilogic@82
|
81 float m_interpfactor;
|
lbajardsilogic@79
|
82
|
lbajardsilogic@79
|
83 };
|
lbajardsilogic@79
|
84
|
lbajardsilogic@79
|
85 #endif |