#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