cannam@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ cannam@0: /* cannam@0: QM DSP Library cannam@0: cannam@0: Centre for Digital Music, Queen Mary, University of London. cannam@0: This file copyright 2005-2006 Christian Landone. cannam@0: All rights reserved. cannam@0: */ cannam@0: cannam@0: #ifndef DECIMATOR_H cannam@0: #define DECIMATOR_H cannam@0: cannam@0: class Decimator cannam@0: { cannam@0: public: cannam@22: void process( const double* src, double* dst ); cannam@22: void doAntiAlias( const double* src, double* dst, unsigned int length ); cannam@0: cannam@0: Decimator( unsigned int inLength, unsigned int decFactor ); cannam@0: virtual ~Decimator(); cannam@0: cannam@22: int getFactor() const { return m_decFactor; } cannam@22: static int getHighestSupportedFactor() { return 8; } cannam@22: cannam@0: private: cannam@0: void resetFilter(); cannam@0: void deInitialise(); cannam@0: void initialise( unsigned int inLength, unsigned int decFactor ); cannam@0: cannam@0: unsigned int m_inputLength; cannam@0: unsigned int m_outputLength; cannam@0: unsigned int m_decFactor; cannam@0: cannam@0: double Input; cannam@0: double Output ; cannam@0: cannam@0: double o1,o2,o3,o4,o5,o6,o7; cannam@0: cannam@0: double a[ 9 ]; cannam@0: double b[ 9 ]; cannam@0: cannam@0: double* decBuffer; cannam@0: }; cannam@0: cannam@0: #endif //