OpenWareLaboratory
SignalProcessor.h
Go to the documentation of this file.
1 #ifndef __SignalProcessor_h__
2 #define __SignalProcessor_h__
3 
4 #include "FloatArray.h"
5 #include "ComplexFloatArray.h"
6 
11 public:
12  virtual ~SignalProcessor(){}
13  virtual float process(float input){
14  return input;
15  }
16  virtual void process(FloatArray input, FloatArray output){
17  for(size_t i=0; i<output.getSize(); ++i)
18  output[i] = process(input[i]);
19  }
20 };
21 
22 class AudioBuffer;
24 public:
26  virtual void process(AudioBuffer& input, AudioBuffer& output) = 0;
27 };
28 
30 public:
32  virtual ComplexFloat process(ComplexFloat input) = 0;
33  virtual void process(ComplexFloatArray input, ComplexFloatArray output) {
34  for (size_t i = 0; i < output.getSize(); i++)
35  output[i] = process(ComplexFloat(input[i]));
36  }
37 };
38 #endif // __SignalProcessor_h__
virtual ~ComplexSignalProcessor()
virtual ComplexFloat process(ComplexFloat input)=0
virtual void process(ComplexFloatArray input, ComplexFloatArray output)
This class contains useful methods for manipulating arrays of floats.
Definition: FloatArray.h:12
virtual void process(AudioBuffer &input, AudioBuffer &output)=0
virtual ~MultiSignalProcessor()
Base class for signal processors such as Filters.
virtual float process(float input)
virtual void process(FloatArray input, FloatArray output)
virtual ~SignalProcessor()
size_t getSize() const
Definition: SimpleArray.h:31
A structure defining a floating point complex number as two members of type float.