/* * Copyright 2012, Gerasim Troeglazov (3dEyes**), 3dEyes@gmail.com. * All rights reserved. * Distributed under the terms of the MIT License. */ #ifndef __EQUALIZER_H__ #define __EQUALIZER_H__ #define MAX_CHANNELS 8 #define EQ_BANDS 10 class Equalizer { public: Equalizer(); ~Equalizer(); void SetFormat(int channels, float framerate); void SetPreAmp(double); double PreAmp(void); void SetBand(int band, double value); double Band(int band); int BandCount(void); float BandFrequency(int band); void ProcessBuffer(float *buffer, int samples); void CleanUp(); private: void RecalcGains(void); void BandPassFilterCalcs(float *a, float *b, float f); bool fActivated; int fChannels; float fRate; int fActiveBands; float fAWeights[EQ_BANDS][2]; float fBWeights[EQ_BANDS][2]; float fWDataVector[MAX_CHANNELS][EQ_BANDS][2]; float fGainVector[MAX_CHANNELS][EQ_BANDS]; float fFrequency[EQ_BANDS]; double fBands[EQ_BANDS]; double fPreAmp; }; #endif //__EQUALIZER_H__