Async  1.5.0
AsyncAudioClipper.h
Go to the documentation of this file.
1 
27 #ifndef ASYNC_AUDIO_CLIPPER_INCLUDED
28 #define ASYNC_AUDIO_CLIPPER_INCLUDED
29 
30 
31 /****************************************************************************
32  *
33  * System Includes
34  *
35  ****************************************************************************/
36 
37 
38 
39 /****************************************************************************
40  *
41  * Project Includes
42  *
43  ****************************************************************************/
44 
45 #include <AsyncAudioProcessor.h>
46 
47 
48 
49 /****************************************************************************
50  *
51  * Local Includes
52  *
53  ****************************************************************************/
54 
55 
56 
57 /****************************************************************************
58  *
59  * Forward declarations
60  *
61  ****************************************************************************/
62 
63 
64 
65 /****************************************************************************
66  *
67  * Namespace
68  *
69  ****************************************************************************/
70 
71 namespace Async
72 {
73 
74 
75 /****************************************************************************
76  *
77  * Forward declarations of classes inside of the declared namespace
78  *
79  ****************************************************************************/
80 
81 
82 
83 /****************************************************************************
84  *
85  * Defines & typedefs
86  *
87  ****************************************************************************/
88 
89 
90 
91 /****************************************************************************
92  *
93  * Exported Global Variables
94  *
95  ****************************************************************************/
96 
97 
98 
99 /****************************************************************************
100  *
101  * Class definitions
102  *
103  ****************************************************************************/
104 
114 {
115  public:
120  explicit AudioClipper(float clip_level=1.0) : clip_level(clip_level) {}
121 
125  ~AudioClipper(void) {}
126 
131  void setClipLevel(float level) { clip_level = level; }
132 
133 
134  protected:
135  virtual void processSamples(float *dest, const float *src, int count)
136  {
137  for (int i=0; i<count; ++i)
138  {
139  if (src[i] > clip_level)
140  {
141  dest[i] = clip_level;
142  }
143  else if (src[i] < -clip_level)
144  {
145  dest[i] = -clip_level;
146  }
147  else
148  {
149  dest[i] = src[i];
150  }
151  }
152  }
153 
154 
155  private:
156  float clip_level;
157 
158  AudioClipper(const AudioClipper&);
159  AudioClipper& operator=(const AudioClipper&);
160 
161 }; /* class AudioClipper */
162 
163 
164 } /* namespace */
165 
166 #endif /* ASYNC_AUDIO_CLIPPER_INCLUDED */
167 
168 
169 
170 /*
171  * This file has not been truncated
172  */
173 
An audio pipe class to clip audio to a given maximum level.
The base class for an audio processor.
~AudioClipper(void)
Destructor.
void setClipLevel(float level)
Set the clip level.
virtual void processSamples(float *dest, const float *src, int count)
Process incoming samples and put them into the output buffer.
Namespace for the asynchronous programming classes.
The base class for an audio processor class.
AudioClipper(float clip_level=1.0)
Default constuctor.