00001 00022 #ifndef ASYNC_AUDIO_DECIMATOR_INCLUDED 00023 #define ASYNC_AUDIO_DECIMATOR_INCLUDED 00024 00025 00026 /**************************************************************************** 00027 * 00028 * System Includes 00029 * 00030 ****************************************************************************/ 00031 00032 00033 00034 /**************************************************************************** 00035 * 00036 * Project Includes 00037 * 00038 ****************************************************************************/ 00039 00040 #include <AsyncAudioProcessor.h> 00041 00042 00043 /**************************************************************************** 00044 * 00045 * Local Includes 00046 * 00047 ****************************************************************************/ 00048 00049 00050 00051 /**************************************************************************** 00052 * 00053 * Forward declarations 00054 * 00055 ****************************************************************************/ 00056 00057 00058 00059 /**************************************************************************** 00060 * 00061 * Namespace 00062 * 00063 ****************************************************************************/ 00064 00065 namespace Async 00066 { 00067 00068 00069 /**************************************************************************** 00070 * 00071 * Forward declarations of classes inside of the declared namespace 00072 * 00073 ****************************************************************************/ 00074 00075 00076 00077 /**************************************************************************** 00078 * 00079 * Defines & typedefs 00080 * 00081 ****************************************************************************/ 00082 00083 00084 00085 /**************************************************************************** 00086 * 00087 * Exported Global Variables 00088 * 00089 ****************************************************************************/ 00090 00091 00092 00093 /**************************************************************************** 00094 * 00095 * Class definitions 00096 * 00097 ****************************************************************************/ 00098 00116 class AudioDecimator : public AudioProcessor 00117 { 00118 public: 00125 AudioDecimator(int decimation_factor, const float *filter_coeff, 00126 int taps); 00127 00131 ~AudioDecimator(void); 00132 00133 00134 protected: 00146 virtual void processSamples(float *dest, const float *src, int count); 00147 00148 00149 private: 00150 const int factor_M; 00151 float *p_Z; 00152 int H_size; 00153 const float *p_H; 00154 00155 AudioDecimator(const AudioDecimator&); 00156 AudioDecimator& operator=(const AudioDecimator&); 00157 00158 }; /* class AudioDecimator */ 00159 00160 00161 } /* namespace */ 00162 00163 #endif /* ASYNC_AUDIO_DECIMATOR_INCLUDED */ 00164 00165 00166 00167 /* 00168 * This file has not been truncated 00169 */ 00170