Moves volume icon update in the timer
[vlc.git] / modules / audio_filter / spatializer / revmodel.hpp
1 // Reverb model declaration
2 //
3 // Google Summer of Code 2007
4 //
5 // Authors: Biodun Osunkunle <biodun@videolan.org>
6 //
7 // Mentor : Jean-Baptiste Kempf <jb@videolan.org>
8 //
9 // Original written by Jezar at Dreampoint, June 2000
10
11 #ifndef _revmodel_
12 #define _revmodel_
13
14 #include "comb.hpp"
15 #include "allpass.hpp"
16 #include "tuning.h"
17
18 class revmodel
19 {
20 public:
21             revmodel();
22     void    mute();
23     void    processreplace(float *inputL, float *outputL, long numsamples, int skip);
24     void    processmix(float *inputL, float *outputL, long numsamples, int skip);
25     void    setroomsize(float value);
26     float    getroomsize();
27     void    setdamp(float value);
28     float    getdamp();
29     void    setwet(float value);
30     float    getwet();
31     void    setdry(float value);
32     float    getdry();
33     void    setwidth(float value);
34     float    getwidth();
35     void    setmode(float value);
36     float    getmode();
37 private:
38     void    update();
39 private:
40     float    gain;
41     float    roomsize,roomsize1;
42     float    damp,damp1;
43     float    wet,wet1,wet2;
44     float    dry;
45     float    width;
46     float    mode;
47
48 // The following are all declared inline
49 // to remove the need for dynamic allocation
50 // with its subsequent error-checking messiness
51
52 // Comb filters
53     comb    combL[numcombs];
54     comb    combR[numcombs];
55
56     // Allpass filters
57     allpass    allpassL[numallpasses];
58     allpass    allpassR[numallpasses];
59
60     // Buffers for the combs
61     float    bufcombL1[combtuningL1];
62     float    bufcombR1[combtuningR1];
63     float    bufcombL2[combtuningL2];
64     float    bufcombR2[combtuningR2];
65     float    bufcombL3[combtuningL3];
66     float    bufcombR3[combtuningR3];
67     float    bufcombL4[combtuningL4];
68     float    bufcombR4[combtuningR4];
69     float    bufcombL5[combtuningL5];
70     float    bufcombR5[combtuningR5];
71     float    bufcombL6[combtuningL6];
72     float    bufcombR6[combtuningR6];
73     float    bufcombL7[combtuningL7];
74     float    bufcombR7[combtuningR7];
75     float    bufcombL8[combtuningL8];
76     float    bufcombR8[combtuningR8];
77
78     // Buffers for the allpasses
79     float    bufallpassL1[allpasstuningL1];
80     float    bufallpassR1[allpasstuningR1];
81     float    bufallpassL2[allpasstuningL2];
82     float    bufallpassR2[allpasstuningR2];
83     float    bufallpassL3[allpasstuningL3];
84     float    bufallpassR3[allpasstuningR3];
85     float    bufallpassL4[allpasstuningL4];
86     float    bufallpassR4[allpasstuningR4];
87 };
88
89 #endif//_revmodel_
90
91 //ends