Async 1.8.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
71namespace 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
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
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
The base class for an audio processor class.
An audio pipe class to clip audio to a given maximum level.
AudioClipper(float clip_level=1.0)
Default constuctor.
~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.
The base class for an audio processor.
Namespace for the asynchronous programming classes.