AsyncAudioClipper.h

Go to the documentation of this file.
00001 
00027 #ifndef ASYNC_AUDIO_CLIPPER_INCLUDED
00028 #define ASYNC_AUDIO_CLIPPER_INCLUDED
00029 
00030 
00031 /****************************************************************************
00032  *
00033  * System Includes
00034  *
00035  ****************************************************************************/
00036 
00037 
00038 
00039 /****************************************************************************
00040  *
00041  * Project Includes
00042  *
00043  ****************************************************************************/
00044 
00045 #include <AsyncAudioProcessor.h>
00046 
00047 
00048 
00049 /****************************************************************************
00050  *
00051  * Local Includes
00052  *
00053  ****************************************************************************/
00054 
00055 
00056 
00057 /****************************************************************************
00058  *
00059  * Forward declarations
00060  *
00061  ****************************************************************************/
00062 
00063 
00064 
00065 /****************************************************************************
00066  *
00067  * Namespace
00068  *
00069  ****************************************************************************/
00070 
00071 namespace Async
00072 {
00073 
00074 
00075 /****************************************************************************
00076  *
00077  * Forward declarations of classes inside of the declared namespace
00078  *
00079  ****************************************************************************/
00080 
00081   
00082 
00083 /****************************************************************************
00084  *
00085  * Defines & typedefs
00086  *
00087  ****************************************************************************/
00088 
00089 
00090 
00091 /****************************************************************************
00092  *
00093  * Exported Global Variables
00094  *
00095  ****************************************************************************/
00096 
00097 
00098 
00099 /****************************************************************************
00100  *
00101  * Class definitions
00102  *
00103  ****************************************************************************/
00104 
00113 class AudioClipper : public AudioProcessor
00114 {
00115   public:
00120     explicit AudioClipper(float clip_level=1.0) : clip_level(clip_level) {}
00121   
00125     ~AudioClipper(void) {}
00126   
00131     void setClipLevel(float level) { clip_level = level; }
00132 
00133     
00134   protected:
00135     virtual void processSamples(float *dest, const float *src, int count)
00136     {
00137       for (int i=0; i<count; ++i)
00138       {
00139         if (src[i] > clip_level)
00140         {
00141           dest[i] = clip_level;
00142         }
00143         else if (src[i] < -clip_level)
00144         {
00145           dest[i] = -clip_level;
00146         }
00147         else
00148         {
00149           dest[i] = src[i];
00150         }
00151       }
00152     }
00153     
00154     
00155   private:
00156     float clip_level;
00157     
00158     AudioClipper(const AudioClipper&);
00159     AudioClipper& operator=(const AudioClipper&);
00160     
00161 };  /* class AudioClipper */
00162 
00163 
00164 } /* namespace */
00165 
00166 #endif /* ASYNC_AUDIO_CLIPPER_INCLUDED */
00167 
00168 
00169 
00170 /*
00171  * This file has not been truncated
00172  */
00173 
Generated by  doxygen 1.6.2-20100208