Window.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #ifndef CSL_WINDOW_H
00021 #define CSL_WINDOW_H
00022 
00023 #include "CSL_Core.h"
00024 
00025 namespace csl {
00026 
00029 class Window : public UnitGenerator {
00030 public:             // Constructors:
00031     Window();       
00032 
00033     Window(unsigned windowSize, float gain = 1); 
00034     ~Window();      
00035 
00036     void setSize(unsigned windowSize);  
00037     void setGain(float gain);               
00038     sample *window() { return mWindowBuffer.mMonoBuffers[0]; }; 
00039 
00040     void nextBuffer(Buffer &outputBuffer, unsigned outBufNum) throw (CException);
00041     void dump();        
00042     
00043 protected:
00044     Buffer mWindowBuffer;       
00045     unsigned mWindowBufferPos;  
00046     unsigned mWindowSize;       
00047     float mGain;                    
00048 
00049     virtual void fillWindow();      
00050 };
00051 
00053 class RectangularWindow : public Window {
00054 public:
00055     RectangularWindow() : Window() { }
00056     RectangularWindow(unsigned windowSize) : Window(windowSize) { }
00057     RectangularWindow(unsigned windowSize, float gain) : Window(windowSize, gain) { }
00058     ~RectangularWindow() { }
00059     
00060 protected:
00061     void fillWindow();
00062 };
00063 
00065 class HammingWindow : public Window {
00066 public:
00067 
00068     HammingWindow() : Window() { }
00069     HammingWindow(unsigned windowSize) : Window(windowSize) { }
00070     HammingWindow(unsigned windowSize, float gain) : Window(windowSize, gain) { }
00071     ~HammingWindow() { }
00072 
00073 protected:
00074     void fillWindow();
00075 };
00076 
00078 class HannWindow : public Window {
00079 public:
00080     HannWindow() : Window() { }
00081     HannWindow(unsigned windowSize) : Window(windowSize) { }
00082     HannWindow(unsigned windowSize, float gain) : Window(windowSize, gain) { }
00083     ~HannWindow() { }
00084     
00085 protected:
00086     void fillWindow();
00087 };
00088 
00090 class BlackmanWindow : public Window {
00091 public:
00092     BlackmanWindow() : Window() { }
00093     BlackmanWindow(unsigned windowSize) : Window(windowSize) { }
00094     BlackmanWindow(unsigned windowSize, float gain) : Window(windowSize, gain) { }
00095     ~BlackmanWindow() { }
00096     
00097 protected:
00098     void fillWindow();
00099 };
00100 
00102 class BlackmanHarrisWindow : public Window {
00103 public:
00104     BlackmanHarrisWindow() : Window() { }
00105     BlackmanHarrisWindow(unsigned windowSize) : Window(windowSize) { }
00106     BlackmanHarrisWindow(unsigned windowSize, float gain) : Window(windowSize, gain) { }
00107     ~BlackmanHarrisWindow() { }
00108     
00109 protected:
00110     void fillWindow();
00111 };
00112 
00114 class WelchWindow : public Window {
00115 public:
00116     WelchWindow() : Window() { }
00117     WelchWindow(unsigned windowSize) : Window(windowSize) { }
00118     WelchWindow(unsigned windowSize, float gain) : Window(windowSize, gain) { }
00119     ~WelchWindow() { }
00120     
00121 protected:
00122     void fillWindow();
00123 };
00124 
00125 }  // end of namespace block
00126 
00127 #endif

Generated on Fri Apr 6 20:18:13 2007 for CSL by  doxygen 1.4.5-20051010