revmodel.hpp

Go to the documentation of this file.
00001 // Reverb model declaration
00002 //
00003 // Google Summer of Code 2007
00004 //
00005 // Authors: Biodun Osunkunle <biodun@videolan.org>
00006 //
00007 // Mentor : Jean-Baptiste Kempf <jb@videolan.org>
00008 //
00009 // Original written by Jezar at Dreampoint, June 2000
00010 
00011 #ifndef _revmodel_
00012 #define _revmodel_
00013 
00014 #include "comb.hpp"
00015 #include "allpass.hpp"
00016 #include "tuning.h"
00017 
00018 class revmodel
00019 {
00020 public:
00021             revmodel();
00022     void    mute();
00023     void    processreplace(float *inputL, float *outputL, long numsamples, int skip);
00024     void    processmix(float *inputL, float *outputL, long numsamples, int skip);
00025     void    setroomsize(float value);
00026     float    getroomsize();
00027     void    setdamp(float value);
00028     float    getdamp();
00029     void    setwet(float value);
00030     float    getwet();
00031     void    setdry(float value);
00032     float    getdry();
00033     void    setwidth(float value);
00034     float    getwidth();
00035     void    setmode(float value);
00036     float    getmode();
00037 private:
00038     void    update();
00039 private:
00040     float    gain;
00041     float    roomsize,roomsize1;
00042     float    damp,damp1;
00043     float    wet,wet1,wet2;
00044     float    dry;
00045     float    width;
00046     float    mode;
00047 
00048 // The following are all declared inline
00049 // to remove the need for dynamic allocation
00050 // with its subsequent error-checking messiness
00051 
00052 // Comb filters
00053     comb    combL[numcombs];
00054     comb    combR[numcombs];
00055 
00056     // Allpass filters
00057     allpass    allpassL[numallpasses];
00058     allpass    allpassR[numallpasses];
00059 
00060     // Buffers for the combs
00061     float    bufcombL1[combtuningL1];
00062     float    bufcombR1[combtuningR1];
00063     float    bufcombL2[combtuningL2];
00064     float    bufcombR2[combtuningR2];
00065     float    bufcombL3[combtuningL3];
00066     float    bufcombR3[combtuningR3];
00067     float    bufcombL4[combtuningL4];
00068     float    bufcombR4[combtuningR4];
00069     float    bufcombL5[combtuningL5];
00070     float    bufcombR5[combtuningR5];
00071     float    bufcombL6[combtuningL6];
00072     float    bufcombR6[combtuningR6];
00073     float    bufcombL7[combtuningL7];
00074     float    bufcombR7[combtuningR7];
00075     float    bufcombL8[combtuningL8];
00076     float    bufcombR8[combtuningR8];
00077 
00078     // Buffers for the allpasses
00079     float    bufallpassL1[allpasstuningL1];
00080     float    bufallpassR1[allpasstuningR1];
00081     float    bufallpassL2[allpasstuningL2];
00082     float    bufallpassR2[allpasstuningR2];
00083     float    bufallpassL3[allpasstuningL3];
00084     float    bufallpassR3[allpasstuningR3];
00085     float    bufallpassL4[allpasstuningL4];
00086     float    bufallpassR4[allpasstuningR4];
00087 };
00088 
00089 #endif//_revmodel_
00090 
00091 //ends

Generated on Wed Aug 13 08:02:37 2008 for VLC by  doxygen 1.5.1